Documentación de secuencias de comandos beta de Bedrock Edition

Quien soy
Alejandra Rangel
@alejandrarangel
Autor y referencias
Esta característica es exclusiva de Bedrock Edition. 

Contenido

  • 1 sistema de secuencias de comandos
    • Demos de 1.1
    • 1.2 Problemas conocidos
    • 1.3 Cambios importantes
    • Prerrequisitos de 1.4
    • 1.5 Primeros pasos
    • 1.6 Estructura de un guión
      • 1.6.1 1. Registro del sistema
      • 1.6.2 2. Inicialización del sistema
      • 1.6.3 3. Actualización del sistema
      • 1.6.4 4. Apagado del sistema
    • 1.7 Depuración
      • 1.7.1 En el juego
      • 1.7.2 Tiempo real (avanzado)
  • 2 objetos de API de secuencia de comandos
    • 2.1 Objeto de la API de Entity JS
    • 2.2 Objeto de API de nivel JS
    • 2.3 Componente JS API objeto
    • 2.4 Objeto de la API de consulta JS
    • 2.5 Objeto API ItemStack JS
    • 2.6 Bloquear objeto de API JS
    • 2.7 Objeto de API JS de área de tictac
    • 2.8 Objeto de API JS de área de marcación de entidad
    • 2.9 Objeto de API JS de área de marcación de nivel
  • 3 enlaces de secuencia de comandos
    • 3.1 Vinculaciones de entidades
      • 3.1.1 createEntity ()
      • 3.1.2 createEntity (Tipo, TemplateIdentifier)
      • 3.1.3 destroyEntity (EntityObject)
      • 3.1.4 isValidEntity (EntityObject)
    • 3.2 Vinculaciones de componentes
      • 3.2.1 registerComponent (ComponentIdentifier, ComponentData)
      • 3.2.2 createComponent (EntityObject, ComponentIdentifier)
      • 3.2.3 hasComponent (EntityObject, ComponentIdentifier)
      • 3.2.4 getComponent (EntityObject, ComponentIdentifier)
      • 3.2.5 applyComponentChanges (EntityObject, ComponentObject)
      • 3.2.6 destroyComponent (EntityObject, ComponentIdentifier)
    • 3.3 Vinculaciones de eventos
      • 3.3.1 registerEventData (EventIdentifier, EventData)
      • 3.3.2 createEventData (EventIdentifier)
      • 3.3.3 listenForEvent (EventIdentifier, CallbackObject)
      • 3.3.4 broadcastEvent (EventIdentifier, EventData)
    • 3.4 Consultas de entidad
      • 3.4.1 registerQuery ()
      • 3.4.2 registerQuery (Component, ComponentField1, ComponentField2, ComponentField3)
      • 3.4.3 addFilterToQuery (Consulta, ComponentIdentifier)
      • 3.4.4 getEntitiesFromQuery (consulta)
      • 3.4.5 getEntitiesFromQuery (Consulta, ComponentField1_Min, ComponentField2_Min, ComponentField3_Min, ComponentField1_Max, ComponentField2_Max, ComponentField3_Max)
    • 3.5 Comandos de barra
      • 3.5.1 executeCommand (comando, devolución de llamada)
    • 3.6 Enlaces de bloque
      • 3.6.1 getBlock (Área de tictac, x, y, z)
      • 3.6.2 getBlock (Área de tictac, PositionObject)
      • 3.6.3 getBlocks (Área de tictac, x min, y min, z min, x max, y max, z max)
      • 3.6.4 getBlocks (Área de tictac, Objeto de posición mínimo, Objeto de posición máximo)
  • 4 componentes de la secuencia de comandos
    • 4.1 Componentes de nivel
      • 4.1.1 minecraft: ticking_areas
      • 4.1.2 Minecraft: clima
    • 4.2 Componentes del servidor
      • 4.2.1 Minecraft: contenedor_armadura
      • 4.2.2 Minecraft: ataque
      • 4.2.3 minecraft: collision_box
      • 4.2.4 Minecraft: sensor_de_daños
      • 4.2.5 Minecraft: equipo
      • 4.2.6 Minecraft: equipable
      • 4.2.7 Minecraft: explotar
      • 4.2.8 Minecraft: contenedor de mano
      • 4.2.9 Minecraft: curable
      • 4.2.10 minecraft: salud
      • 4.2.11 minecraft: hotbar_container
      • 4.2.12 Minecraft: interactuar
      • 4.2.13 minecraft: inventario
      • 4.2.14 minecraft: contenedor_de_inventario
      • 4.2.15 minecraft: lookat
      • 4.2.16 minecraft: nombrable
      • 4.2.17 minecraft: posición
      • 4.2.18 minecraft: rotación
      • 4.2.19 Minecraft: tirador
      • 4.2.20 minecraft: spawn_entity
      • 4.2.21 minecraft: teletransporte
      • 4.2.22 minecraft: tick_world
    • 4.3 Componentes del cliente
      • 4.3.1 Minecraft: Molang
    • 4.4 Componentes del bloque
      • 4.4.1 Minecraft: estado de bloques
  • 5 componentes definidos por el usuario
  • 6 eventos de guión
    • 6.1 Eventos del cliente
      • 6.1.1 Escuchar eventos
        • 6.1.1.1 minecraft: client_entered_world
        • 6.1.1.2 minecraft: hit_result_changed
        • 6.1.1.3 Minecraft: hit_result_continuous
        • 6.1.1.4 Minecraft: pick_hit_result_changed
        • 6.1.1.5 Minecraft: pick_hit_result_continuous
      • 6.1.2 Eventos que pueden activarse
        • 6.1.2.1 Minecraft: display_chat_event
        • 6.1.2.2 Minecraft: load_ui
        • 6.1.2.3 Minecraft: send_ui_event
        • 6.1.2.4 Minecraft: spawn_particle_attached_entity
        • 6.1.2.5 minecraft: spawn_particle_in_world
        • 6.1.2.6 Minecraft: unload_ui
        • 6.1.2.7 minecraft: script_logger_config
    • 6.2 eventos del servidor
      • 6.2.1 Escuchar eventos
        • 6.2.1.1 minecraft: player_attacked_entity
        • 6.2.1.2 minecraft: entity_acquired_item
        • 6.2.1.3 minecraft: entity_carried_item_changed
        • 6.2.1.4 Minecraft: entity_created
        • 6.2.1.5 Minecraft: entity_death
        • 6.2.1.6 minecraft: entity_dropped_item
        • 6.2.1.7 minecraft: entity_equipped_armor
        • 6.2.1.8 minecraft: entity_start_riding
        • 6.2.1.9 minecraft: entity_stop_riding
        • 6.2.1.10 Minecraft: entity_tick
        • 6.2.1.11 minecraft: entity_use_item
        • 6.2.1.12 minecraft: block_destruction_started
        • 6.2.1.13 minecraft: block_destruction_stopped
        • 6.2.1.14 minecraft: block_interacted_with
        • 6.2.1.15 Minecraft: piston_moved_block
        • 6.2.1.16 minecraft: player_destroyed_block
        • 6.2.1.17 minecraft: player_placed_block
        • 6.2.1.18 minecraft: play_sound
        • 6.2.1.19 minecraft: weather_changed
      • 6.2.2 Eventos que pueden activarse
        • 6.2.2.1 Minecraft: display_chat_event
        • 6.2.2.2 Minecraft: ejecutar_comando
        • 6.2.2.3 minecraft: play_sound
        • 6.2.2.4 Minecraft: spawn_particle_attached_entity
        • 6.2.2.5 minecraft: spawn_particle_in_world
        • 6.2.2.6 minecraft: script_logger_config

Este es el documentación de secuencias de comandos para Bedrock Edition beta 1.13.0.5. Las nuevas funciones, componentes y capacidades de esta versión no son definitivas y pueden cambiar sin previo aviso antes de la versión final (1.13.0). Asegúrese de consultar la documentación una vez que la versión esté fuera de la versión beta si el complemento no funciona correctamente. No se garantiza que los paquetes de recursos y comportamiento creados para la versión beta funcionen en la versión final.





Sistema de secuencias de comandos

Minecraft Script Engine utiliza el lenguaje JavaScript.
Puede escribir scripts JavaScript y agruparlos con Behavior Packs para escuchar y responder a eventos del juego, obtener y modificar datos en componentes que tienen las entidades y afectar diferentes partes del juego.

Demos

A continuación, se muestran algunas demostraciones que le ayudarán a empezar a utilizar secuencias de comandos. Descomprímalos para ver el código o impórtelos como .mcpack para jugar con ellos

Demo Última actualización Enlace de descarga
RPG por turnos 17 de abril de 2019 [1]
Arena de la mafia 17 de abril de 2019 [2]

Problemas conocidos

Esta es la lista de problemas conocidos actualmente con Minecraft Script Engine

Inconveniente Solución
Los scripts no se cargan correctamente desde paquetes archivados Descomprima los paquetes de scripts antes de aplicarlos a un mundo. Si importa un paquete de scripts con la extensión .mcpack, lo descomprime por usted
La interfaz de usuario personalizada no funciona en modo VR o MR Actualmente, puedes usar la interfaz de usuario personalizada solo cuando ejecutas el juego en modo normal
La interfaz de usuario personalizada no conserva el estado al suspender y reanudar Actualmente no existe una solución alternativa para este problema
Salir de un mundo sin secuencias de comandos e ingresar a uno que tiene secuencias de comandos puede hacer que se cargue el mundo incorrecto Reinicie Minecraft antes de cargar un nuevo mundo con scripts
Llamar a removeEntity en una entidad moribunda podría hacer que el juego se bloquee No llames removeEntity al mismo marco en el que redujiste el daño de la entidad a 0. Eliminar la entidad obliga a eliminarla de inmediato. En su lugar, guarde las entidades moribundas y limpie el cuadro siguiente (consulte la demostración por turnos para ver un ejemplo de esto)

Rompiendo cambios

Mientras continuamos trabajando y refinando la API de secuencias de comandos experimental, es posible que debamos realizar cambios que rompan sus secuencias de comandos actuales. Consulte esta sección si sus scripts no funcionan como se esperaba.



Categoría Cambiar
UI engine.on ahora toma un nombre de faceta. Para verificar el inicio del motor de secuencia de comandos y conectarlo a la interfaz de usuario, necesita lo siguiente:

engine.on ("faceta: actualizado: core.scripting", ...); Seguido de la siguiente línea una vez que haya terminado de inicializar: engine.trigger ("facet: request", ["core.scripting"]);

Componentes Las llamadas a getComponent ahora devuelven los parámetros del componente dentro del parámetro 'datos' del objeto de retorno.
Eventos Los objetos de datos de eventos ahora contienen los parámetros del evento dentro del parámetro 'datos' del objeto de datos de eventos.
Eventos Los eventos personalizados deben registrarse antes de usarlos. Consulte la documentación de registerEventData para obtener más información.
Eventos Los eventos personalizados deben tener un espacio de nombres y no pueden usar el espacio de nombres 'minecraft'. Este espacio de nombres está reservado solo para eventos integrados.
Eventos Los datos de eventos ahora están estandarizados. Llame a createEventData para crear un objeto de datos de eventos precargado con todos los campos y valores predeterminados para un evento. Necesita este objeto de datos de eventos para activar cualquier evento.

Requisitos previos

Esta sección enumera el software mínimo y recomendado que necesita para crear sus propios scripts.
NOTA: Las secuencias de comandos solo se admiten en PC con Windows 10 en este momento. Si intenta abrir un mundo con scripts en un dispositivo que no admite scripts, verá un mensaje de error que le informa que no puede ingresar al mundo.


Software Mínimo Recomendado
Editor de código Visual Studio Code o cualquier editor de texto sin formato Visual Studio Community 2017 con los siguientes componentes instalados: 'Diagnóstico de JavaScript', 'Soporte de lenguaje JavaScript y TypeScript', 'Depurador Just-In-Time'
Depurador N/A Comunidad de Visual Studio 2017
Otros Paquete de comportamiento de vainilla disponible en [3]
Almacenamiento 1.0 GB de espacio libre para editor de texto, juegos y scripts 3.0 GB de espacio libre para Visual Studio, juegos y scripts

Cómo comenzar

Primero debe descargar el último paquete de comportamiento de Vanilla. Puede obtenerlo en el siguiente enlace: https://aka.ms/behaviorpacktemplate
Una vez que haya descargado el Behavior Pack, descomprímalo en una carpeta. Dentro del Behavior Pack se encuentra la carpeta de secuencias de comandos que contiene todos los archivos de secuencias de comandos que desea ejecutar.
En la carpeta de secuencias de comandos hay dos carpetas: una para las secuencias de comandos del cliente y otra para las secuencias de comandos del servidor.


  • Secuencias de comandos del servidor: estas secuencias de comandos se ejecutan en el lado del servidor del juego. Esto incluye generar nuevas entidades, agregar componentes o modificar componentes en una entidad.
  • Secuencias de comandos del cliente: estas secuencias de comandos se ejecutan en el lado del juego de cada jugador individual. Este es un buen lugar para responder a eventos y administrar cualquier cosa específica para el jugador.

Una vez que haya elegido si está creando un script de cliente o de servidor, simplemente agregue un nuevo archivo de texto en blanco con la extensión .js a la carpeta correspondiente y ábralo en su editor de código preferido. ¡Entonces codifique! Puede tener tantos archivos JavaScript como desee aquí (el nombre de los archivos no importa) ¡y todos se ejecutan de forma independiente entre sí!

Una vez que haya terminado de hacer cambios y desee probar el script en el juego, comprima el archivo a formato .zip y luego cambie la extensión de ".zip" a ".mcpack". Haz doble clic en el archivo .mcpack para importarlo a Minecraft. Crea un mundo y activa el paquete en tu mundo para probarlo. https://www.minecraft.net/en-us/addons/

NOTA: Para que el juego ejecute scripts, debes habilitar el juego experimental en el mundo donde se ejecutan los scripts. Esto es necesario mientras las secuencias de comandos aún están en versión beta.
Al ingresar a un mundo que tiene scripts de cliente, se le pedirá que acepte que desea ejecutar scripts en su dispositivo (esto aparece tanto para mundos locales como para mundos multijugador).
Además, si su paquete contiene scripts de cliente, debe incluir un módulo client_data en el manifiesto del paquete. Esto le dice al juego que cualquier cosa en la carpeta scripts / client debe enviarse a los clientes. Consulte la página de documentación complementaria para obtener más información sobre el contenido del manifiesto del paquete.

Estructura de carpetas Ejemplo de módulo de manifiesto necesario para scripts de cliente

{"description": "Módulo de secuencias de comandos de cliente de ejemplo", "type": "client_data", "uuid": "c05a992e-482a-455f-898c-58bbb4975e47", "version": [0, 0, 1]} vanilla_behavior_pack

carpeta raíz / scripts / cliente> myClientScript.js / server> myServerScript.js> manifest.json> pack_icon.png

Estructura de un guión

En esta sección puede encontrar una descripción rápida de la estructura básica de un archivo de script JavaScript para Minecraft Script Engine. Si desea obtener más información sobre JavaScript o desea seguir un tutorial de fundamentos, puede consultar la documentación oficial en Mozilla Developer Network aquí: https://developer.mozilla.org/docs/Web/JavaScript
Estas son, de alguna manera, las partes requeridas de un script, pero de ninguna manera son las únicas partes que puede tener. Puede crear métodos adicionales según sea necesario, ¡solo asegúrese de que se llamen desde algún lugar en uno de los métodos a continuación!

1. Registro del sistema

Primero, necesitamos registrar el sistema para nuestro archivo. Esto registra nuestro script para que se configure en los hilos del cliente o del servidor del juego. En términos generales, usted elige en función de si coloca el archivo de secuencia de comandos en las carpetas del cliente o del servidor. Para hacerlo, simplemente llame a registerSystem en el cliente o en el servidor y proporcione la versión de la API que necesita.

parámetros
Tipo Nombre Descripción
Entero majorVersion Esta es la versión principal del motor de secuencia de comandos de Minecraft para la que se diseñó su secuencia de comandos
Entero minorVersion Esta es la revisión del motor de secuencia de comandos de Minecraft para el que se diseñó su secuencia de comandos
Ejemplos de código Sistema cliente

dejar sampleClientSystem = client.registerSystem (0, 0); Sistema de servidor

let sampleServerSystem = server.registerSystem (0, 0);

2. Inicialización del sistema

Este es el primer método que se llama inmediatamente después de que se registra el sistema. Se ejecuta tan pronto como se carga el script al inicio del mundo.
Puede usar esto para configurar el entorno para su secuencia de comandos: registrar componentes y eventos personalizados, registrar oyentes de eventos, etc. Esto se ejecuta antes el mundo está listo y el jugador se le ha agregado. Esta función debe usarse para inicializar variables y configurar detectores de eventos.
¡No deberías intentar generar o interactuar con ninguna entidad en este momento! También debe evitar la interacción con los elementos de la interfaz de usuario o enviar mensajes a la ventana de chat, ya que esto se llama antes de que el jugador esté listo.

Ejemplo de código

sampleSystem.initialize = function () {// registrar datos de eventos, registrar componentes, registrar consultas, escuchar eventos};

3. Actualización del sistema

Este método se llama una vez por cada tic del juego. El servidor y el cliente marcan 20 veces por segundo. Este es un buen lugar para obtener, verificar y reaccionar a los cambios de componentes.

Ejemplo de código

sampleSystem.update = function () {// Actualizar todas las cosas};

4. Apagado del sistema

Este método se llama cuando el motor de secuencia de comandos de Minecraft se está apagando. Para el cliente esto es cuando deja el mundo; para el servidor, esto es después de que el último jugador haya salido del mundo.

Ejemplo de código

sampleSystem.shutdown = function () {// Script de limpieza solo cosas};

Depuración

¿Tu guión no funciona o no está haciendo lo que quieres que haga? ¡No temas! Hemos incorporado algunas capacidades de depuración en el motor de secuencia de comandos para ayudarlo a descubrir qué está pasando con su secuencia de comandos. Si es nuevo en la programación o desea obtener más información sobre la depuración, le sugerimos que consulte la documentación sobre depuración con Visual Studio disponible aquí: https://docs.microsoft.com/visualstudio/debugger

Hay dos formas de saber qué sucedió cuando algo sale mal con un guión: en el juego y avanzado, que describiremos a continuación. Solo necesita el juego y su script para depurar en el juego, pero necesitará una PC con Windows 10 y Visual Studio instalados para la depuración avanzada.

En el juego

Al ejecutar un script en el juego, el juego imprimirá automáticamente el mensaje "Algo salió mal ..." al llegar a un error. Puede habilitar la impresión de información de depuración mucho más descriptiva en el chat enviando un evento minecraft: script_logger_config en el gancho System.initialize del script:

sampleSystem.initialize = function () {var scriptLoggerConfig = this.createEventData ("minecraft: script_logger_config"); scriptLoggerConfig.data.log_errors = true; scriptLoggerConfig.data.log_information = true; scriptLoggerConfig.data.log_warnings = true; this.broadcastEvent ("minecraft: script_logger_config", scriptLoggerConfig); / * Sus otras operaciones de configuración posteriores * /};

Cuando ejecutas el script en el juego, Script Engine imprime mensajes de error cada vez que algo sale mal. Por ejemplo, si intenta obtener un componente que el motor de secuencia de comandos no conoce, obtendrá un error.


Para ver estos mensajes, puede abrir la pantalla de chat que tiene todos los mensajes de error generados allí; o puede abrir el archivo de registro que generó el juego. La ubicación del archivo de registro varía según la plataforma. En Windows 10, puede encontrar el archivo de registro en% APPDATA% .. LocalPackagesMicrosoft.MinecraftUWP_8wekyb3d8bbweLocalStatelogs
Le recomendamos encarecidamente que incorpore más mensajes y herramientas de depuración en sus scripts mientras trabaja en ellos. Esto le ayuda a discernir cuándo algo no está funcionando bien. Comuníquese con el canal oficial de Discord si necesita ayuda adicional: https://discord.gg/Minecraft

En tiempo real (avanzado)

Si tiene una PC con Windows 10 con Visual Studio instalado, puede adjuntar el depurador de Visual Studio y depurar su script en tiempo real.

Si instaló Visual Studio con los componentes mencionados en la sección "Recomendados" de este documento, habrá instalado y habilitado el depurador Just-In-Time. Esta herramienta muestra un mensaje de Visual Studio cada vez que ocurre una excepción en su secuencia de comandos y le permite abrir Visual Studio en la línea de su secuencia de comandos que se rompió.

Además, puede conectarse al motor de secuencias de comandos manualmente y depurar su código. Puede utilizar la depuración remota para conectar y depurar Minecraft ejecutándose en otro dispositivo. Consulte la documentación del depurador de Visual Studio anterior para obtener instrucciones sobre cómo utilizar la depuración remota.

Primero debe iniciar Visual Studio. Si es la primera vez que inicia Visual Studio después de la instalación, le sugerimos que configure su entorno para el desarrollo de JavaScript e inicie sesión en su cuenta de Microsoft cuando se le solicite. Esto configurará la interfaz de Visual Studio con las herramientas más importantes que necesitará.

Una vez que tenga Visual Studio abierto, debe iniciar Minecraft. Luego crea un nuevo mundo con el juego experimental habilitado y aplica el paquete de comportamiento que contiene tus scripts.

Después de crear el mundo, vuelva a Visual Studio y haga clic en el menú Depurar. Luego haga clic en "Adjuntar al proceso". En la ventana que se abre habrá un cuadro de búsqueda titulado Proceso de filtrado. Haz clic en él y escribe Minecraft.

Una vez que la lista se reduce a solo la instancia de Minecraft en ejecución, puede verificar que el motor de secuencia de comandos se esté ejecutando mirando la columna Tipo. Esto dirá Script y x86 o x64.

Seleccione el proceso y haga clic en Adjuntar para adjuntar el depurador al juego. Ahora puede presionar el botón Pausa para pausar el motor de secuencia de comandos cuando se ejecuta la siguiente línea de código de secuencia de comandos. Esto le permite inspeccionar los valores de las variables en su secuencia de comandos e ingresar a Visual Studio si ocurre un error en su código.

ADVERTENCIA: Cuando llega a un punto de interrupción para recorrer el código con un depurador, es posible que un cliente agote el tiempo de espera y se desconecte o que el servidor desconecte a todos los jugadores.

Objetos de API de secuencia de comandos

Aquí puede encontrar la definición de algunos objetos devueltos por la API de script.

Objeto de la API de JS de entidad

Tipo Nombre Objeto de la API de JS de entidad Descripción
Cordón __escribe__ SOLO LECTURA. Esto define el tipo de objeto. Puede ser: "entidad" o "item_entity".
Cordón __identificador__ SOLO LECTURA. Este es el identificador del objeto en el formato espacio de nombres: nombre. Por ejemplo, si el tipo es entidad y el objeto representa una vaca vainilla, el identificador sería minecraft: vaca
Entero positivo id SOLO LECTURA. Este es el identificador único de la entidad.

Objeto de API de nivel JS

Tipo Nombre Objeto de API de nivel JS Descripción
Cordón __escribe__ SOLO LECTURA. Esto define el tipo de objeto. Será: "nivel".
Entero positivo level_id SOLO LECTURA. Este es el identificador único del nivel.

Objeto de API JS de componente

Tipo Nombre Objeto de API JS de componente Descripción
Cordón __escribe__ SOLO LECTURA. Esto define el tipo de objeto. Será: "componente".
Cordón __identificador__ SOLO LECTURA. Este es el identificador del objeto en el formato espacio de nombres: nombre. Por ejemplo, si el componente representa la posición de una entidad, el identificador sería minecraft: position. Los componentes personalizados también se pueden registrar usando el mismo formato y con un espacio de nombres que no sea Minecraft (ver: registerComponent ()).
Objeto JavaScript datos Este es el contenido del componente.

Objeto de la API de consulta JS

Tipo Nombre Objeto de la API de consulta JS Descripción
Cordón __escribe__ SOLO LECTURA. Esto define el tipo de objeto. Será: "consulta".
Entero positivo query_id SOLO LECTURA. Este es el identificador único de la consulta.

Objeto de API ItemStack JS

Tipo Nombre Objeto de API ItemStack JS Descripción
Cordón __escribe__ SOLO LECTURA. Esto define el tipo de objeto. Será: "item_stack".
Cordón __identificador__ SOLO LECTURA. Este es el identificador del objeto en el formato espacio de nombres: nombre. Por ejemplo, si el tipo es entidad y el objeto representa una vaca vainilla, el identificador sería minecraft: vaca
Cordón ít SOLO LECTURA. Este es el identificador del artículo.
Cordón contar SOLO LECTURA. Este es el número de elementos de la pila.

Bloquear objeto de API JS

Tipo Nombre Bloquear objeto de API JS Descripción
Cordón __escribe__ SOLO LECTURA. Esto define el tipo de objeto. Será: "bloque".
Cordón __identificador__ SOLO LECTURA. Este es el identificador del objeto en el formato espacio de nombres: nombre. Por ejemplo, si el tipo es bloque y el objeto representa un bloque de lecho rocoso, el identificador sería minecraft: lecho rocoso
Objeto JavaScript ticking_area SOLO LECTURA. Este es el objeto del área de tictac que se utilizó para obtener este bloque.
Objeto JavaScript block_position SOLO LECTURA. Esta es la posición del bloque y funciona como parte de su identificador único.

parámetros

Tipo Nombre Descripción
Entero x La posición x
Entero y La posición y
Entero z La posición z

Objeto de API JS de área de tictac

Hay dos tipos de objetos de área de tic-tac. Entidad y Nivel. Cuando una función llama a un área de tictac, puede tomar cualquier tipo como argumento.

Objeto de API JS de área de marcación de entidad

Tipo Nombre Objeto de API JS de área de marcación de entidad Descripción
Cordón __escribe__ SOLO LECTURA. Esto define el tipo de objeto. Será: "entity_ticking_area".
Entero positivo entity_ticking_area_id SOLO LECTURA. Este es el identificador único del área de marcación.

Objeto de API de JS de área de marcación de nivel

Tipo Nombre Objeto de API de JS de área de marcación de nivel Descripción
Cordón __escribe__ SOLO LECTURA. Esto define el tipo de objeto. Será: "level_ticking_area".
Cordón level_ticking_area_id SOLO LECTURA. Este es el identificador único del área de marcación.

Enlaces de secuencia de comandos

Los enlaces son las capacidades de Minecraft Script Engine para cambiar o modificar cosas en el juego.

Enlaces de entidad

createEntity ()

Crea una entidad vacía sin componentes y no la coloca en el mundo. La entidad vacía será de tipo custom y tendrá un identificador en blanco. Esta NO es una entidad válida que existe en el mundo, solo una vacía que solo los scripts conocen.

NOTA: Las entidades se crean primero en el servidor y luego se notifica al cliente de las nuevas entidades. Tenga en cuenta que si envía el objeto de resultado al cliente de inmediato, es posible que la entidad creada aún no exista en el cliente.

Valor de retorno
Tipo Ahorro Descripción
Objeto de la API de JS de entidad objeto Un objeto que representa la entidad recién creada
Objeto JavaScript nulo Algo salió mal al crear la entidad

createEntity (Type, TemplateIdentifier)

Crea una entidad y aplica la plantilla especificada como se define en JSON. Esto le permite crear rápidamente una entidad a partir de los paquetes de comportamiento aplicados como base para una entidad creada en secuencias de comandos. La entidad se generará en el mundo con todos los componentes, grupos de componentes y activadores de eventos que se definen en el archivo JSON del identificador especificado. Solo funciona con scripts registrados en el servidor.

NOTA: Las entidades se crean primero en el servidor y luego se notifica al cliente de las nuevas entidades. Tenga en cuenta que si envía el objeto de resultado al cliente de inmediato, es posible que la entidad creada aún no exista en el cliente.

parámetros
Tipo Nombre Descripción
Cordón Tipo Especifica el tipo de entidad que está creando la plantilla. Las entradas válidas son `entidad` y` item_entity`
Cordón TemplateIdentifier Puede ser cualquiera de los identificadores de entidad de los paquetes de comportamiento aplicados. Por ejemplo, especificar minecraft: cow aquí hará que la entidad proporcionada sea una vaca como se define en JSON
Valor de retorno
Tipo Ahorro Descripción
Objeto de la API de JS de entidad objeto Un objeto que representa la entidad recién creada
Objeto JavaScript nulo Algo salió mal al crear la entidad

destruirEntidad (EntityObject)

Destruye una entidad identificada por EntityObject. Si la entidad existe en el mundo, esto la elimina del mundo y la destruye. Esto también hace que EntityObject ya no sea válido; solo debe destruir una entidad después de que haya terminado con ella y ya no necesite hacer referencia a ella nuevamente. Esto NO mata a la entidad. No hay un evento para su muerte: se elimina.

parámetros
Tipo Nombre Descripción
Objeto de la API de JS de entidad EntityObject El objeto que se recuperó de una llamada a createEntity () o se recuperó de un evento de entidad
Valor de retorno
Tipo Ahorro Descripción
Boolean verdadero La entidad fue destruida con éxito
Objeto JavaScript nulo Algo salió mal al destruir la entidad

isValidEntity (EntityObject)

Comprueba si el objeto EntityObject dado corresponde a una entidad válida.

parámetros
Tipo Nombre Descripción
Objeto de la API de JS de entidad EntityObject El objeto que se recuperó de una llamada a createEntity () o se recuperó de un evento de entidad
Valor de retorno
Tipo Ahorro Descripción
Boolean verdadero La entidad está en la base de datos de entidades de Script Engine.
Boolean false La entidad no está en la base de datos de entidades de Script Engine.
Objeto JavaScript nulo Algo salió mal al validar la entidad

Enlaces de componentes

registerComponent (ComponentIdentifier, ComponentData)

Crea un componente personalizado que solo existe en el script. Luego se puede agregar, eliminar y actualizar de las entidades. Estos componentes personalizados solo existen mientras se ejecuta el motor de secuencia de comandos.

parámetros
Tipo Nombre Descripción
Cordón ComponentIdentifier El identificador del componente personalizado. Es necesario utilizar un espacio de nombres para que pueda consultarlo de forma única más adelante sin superponer un nombre con un componente integrado: por ejemplo, myPack: myCustomComponent
Objeto JavaScript ComponentData Un objeto JavaScript que define el nombre de los campos y los datos que cada campo contiene dentro del componente.
Valor de retorno
Tipo Ahorro Descripción
Boolean verdadero El componente se registró correctamente
Objeto JavaScript nulo Algo salió mal al registrar el componente

createComponent (EntityObject, ComponentIdentifier)

Crea el componente especificado y lo agrega a la entidad. Esto solo debe usarse con componentes personalizados que deben registrarse primero. Si la entidad ya tiene el componente, esto recupera el componente que ya está allí.

parámetros
Tipo Nombre Descripción
Objeto de la API de JS de entidad EntityObject EntityObject que se recuperó de una llamada a createEntity () o se recuperó de un evento
Cordón ComponentIdentifier El identificador del componente que se agregará a la entidad. Este es el identificador de un componente incorporado (consulte la sección Componentes de script) o un componente personalizado creado con una llamada a registerComponent ()
Valor de retorno
Tipo Ahorro Descripción
Objeto de API JS de componente objeto Un objeto con los siguientes campos y, además, todos los campos definidos en el componente
Objeto JavaScript nulo Algo salió mal al crear el componente

hasComponent (EntityObject, ComponentIdentifier)

Comprueba si la entidad dada tiene el componente especificado.

parámetros
Tipo Nombre Descripción
Objeto de la API de JS de entidad EntityObject EntityObject que se recuperó de una llamada a createEntity () o se recuperó de un evento
Cordón ComponentIdentifier El identificador del componente para verificar la entidad. Este es el identificador de un componente incorporado (consulte la sección Componentes de script) o un componente personalizado creado con una llamada a registerComponent ()
Valor de retorno
Tipo Ahorro Descripción
Boolean verdadero El EntityObject tiene el componente
Boolean false EntityObject no tiene el componente
Objeto JavaScript nulo Se pasó un componente desconocido o algo más salió mal al verificar si EntityObject tenía el componente

getComponent (EntityObject, ComponentIdentifier)

Busca el componente especificado en la entidad. Si existe, recupera los datos del componente y los devuelve.

parámetros
Tipo Nombre Descripción
Objeto de la API de JS de entidad EntityObject EntityObject que se recuperó de una llamada a createEntity () o se recuperó de un evento
Cordón ComponentIdentifier El identificador del componente que se recuperará de la entidad. Este es el identificador de un componente incorporado (consulte la sección Componentes de script) o un componente personalizado creado con una llamada a registerComponent ()
Valor de retorno
Tipo Ahorro Descripción
Objeto de API JS de componente objeto Un objeto con los siguientes campos y, además, todos los campos definidos en el componente

Objeto de API JS de componente

Tipo Nombre Objeto de API JS de componente Descripción
Cordón __escribe__ SOLO LECTURA. Esto define el tipo de objeto. Será: "componente".
Objeto JavaScript datos Este es el contenido del componente.
Objeto JavaScript nulo La entidad no tenía el componente o algo salió mal al obtener el componente.

applyComponentChanges (EntityObject, ComponentObject)

Aplica el componente y cualquier cambio realizado en el script de nuevo a la entidad. Lo que esto significa para cada componente puede ser ligeramente diferente: hace que el componente se recargue en la entidad con los nuevos datos como si se acabara de agregar a la entidad.

parámetros
Tipo Nombre Descripción
Objeto de la API de JS de entidad EntityObject El objeto de entidad al que estamos aplicando el componente cambia
Objeto de API JS de componente ComponentObject El objeto componente recuperado de la entidad que fue devuelto por createComponent () o getComponent ()
Valor de retorno
Tipo Ahorro Descripción
Boolean verdadero El componente se actualizó correctamente
Objeto JavaScript nulo Algo salió mal al actualizar el componente

destroyComponent (EntityObject, ComponentIdentifier)

Elimina el componente especificado de la entidad dada. Si la entidad tiene el componente, se elimina. Actualmente, esto solo funciona con componentes personalizados y no se puede usar para eliminar componentes definidos para una entidad en JSON.

parámetros
Tipo Nombre Descripción
Objeto de la API de JS de entidad EntityObject EntityObject que se recuperó de una llamada a createEntity () o se recuperó de un evento
Cordón ComponentIdentifier El identificador del componente que se eliminará de la entidad. Este es el identificador de un componente incorporado (consulte la sección Componentes de script) o un componente personalizado creado con una llamada a registerComponent ()
Valor de retorno
Tipo Ahorro Descripción
Boolean verdadero El componente se eliminó correctamente de la entidad.
Objeto JavaScript nulo La entidad no tenía el componente o algo salió mal al quitar el componente

Enlaces de eventos

Estos son los enlaces que se utilizan para manejar eventos. Para obtener una lista de eventos a los que puede reaccionar o desencadenar, consulte la sección Eventos de este documento.

registerEventData (EventIdentifier, EventData)

Registra el evento en el motor de secuencia de comandos. Esto le permite crear datos de eventos llamando a createEventData y hacer que se inicialicen con los datos y campos predeterminados correctos. Solo es necesario registrar los eventos personalizados.

parámetros
Tipo Nombre Descripción
Cordón EventIdentifier Este es el identificador del evento personalizado que estamos registrando. El espacio de nombres es obligatorio y no se puede configurar en Minecraft.
Objeto JavaScript EventData El objeto JavaScript con los campos correctos y los valores predeterminados para el evento.
Valor de retorno
Tipo Ahorro Descripción
Boolean verdadero Registrado exitosamente los datos del evento
Objeto JavaScript nulo Algo salió mal al registrar el evento para escuchar

createEventData (EventIdentifier)

Crea un objeto con todos los campos obligatorios y datos predeterminados para el evento especificado. Si el evento es un evento personalizado, es necesario que se haya registrado previamente.

parámetros
Tipo Nombre Descripción
Cordón EventIdentifier Este es el identificador del evento personalizado que estamos registrando. El espacio de nombres es obligatorio y no se puede configurar en Minecraft.
Valor de retorno
Tipo Ahorro Descripción
Objeto JavaScript El objeto que contiene los datos del evento.
Objeto JavaScript nulo Algo salió mal al registrar el evento para escuchar

listenForEvent (EventIdentifier, CallbackObject)

Le permite registrar un objeto JavaScript que se llama cada vez que se transmite el evento especificado. El evento puede ser un evento integrado o un evento especificado en un script.

parámetros
Tipo Nombre Descripción
Cordón EventIdentifier Este es el identificador del evento al que queremos reaccionar. Puede ser el identificador de un evento integrado o uno personalizado del script
Objeto JavaScript CallbackObject El objeto JavaScript que se llama cada vez que se transmite el evento.
Valor de retorno
Tipo Ahorro Descripción
Boolean verdadero Registrado exitosamente para escuchar el evento
Objeto JavaScript nulo Algo salió mal al registrar el evento para escuchar

broadcastEvent (EventIdentifier, EventData)

Le permite activar un evento con los datos deseados del script. Todo lo que se registró para escuchar el evento será notificado y se les entregarán los datos proporcionados.

parámetros
Tipo Nombre Descripción
Cordón EventIdentifier Este es el identificador del evento al que queremos reaccionar. Puede ser el identificador de un evento integrado o uno personalizado del script
Objeto JavaScript EventData Los datos del evento. Puede crear un nuevo objeto JavaScript con los parámetros que desea pasar al oyente y el motor se encargará de entregarle los datos.
Valor de retorno
Tipo Ahorro Descripción
Boolean verdadero Transmitió con éxito el evento
Objeto JavaScript nulo Algo salió mal al retransmitir el evento

Consultas de entidad

Las consultas de entidad son una forma de filtrar entidades en función de sus componentes. Una vez que haya registrado una consulta, puede solicitar todas las entidades que son capturadas por ella. Las consultas de entidad solo devuelven entidades que están actualmente activas en el nivel. Si su consulta se extiende a fragmentos que no están cargados actualmente, las entidades no se incluyen en la consulta.

registerQuery ()

Le permite registrar una consulta. Una consulta contiene todas las entidades que cumplen con el requisito de filtro.
No se agregan filtros de forma predeterminada cuando registra una consulta, por lo que captura todas las entidades.

Valor de retorno
Tipo Ahorro Descripción
Objeto de la API de consulta JS objeto Un objeto que contiene el ID de la consulta.
Objeto JavaScript nulo Algo salió mal al crear la consulta
Registro de consultas de ejemplo de código

var simple_query = {}; system.initialize = function () {simple_query = this.registerQuery (); };

registerQuery (Component, ComponentField1, ComponentField2, ComponentField3)

Le permite registrar una consulta que solo mostrará las entidades que tienen el componente dado y definirá qué campos de ese componente se usarán como filtro al obtener las entidades de la consulta. Puede proporcionar solo el identificador del componente o el identificador del componente y el nombre de 3 propiedades en ese componente que se va a probar (si especifica los nombres de las propiedades, debe especificar 3).

parámetros
Tipo Nombre Valor por defecto Descripción
Cordón Componente Este es el identificador del componente que se utiliza para filtrar entidades cuando
Cordón ComponentField1 "X" Este es el nombre del primer campo del componente por el que queremos filtrar las entidades. De forma predeterminada, se establece en x.
Cordón ComponentField2 "y" Este es el nombre del segundo campo del componente por el que queremos filtrar las entidades. De forma predeterminada, se establece en y.
Cordón ComponentField3 "z" Este es el nombre del tercer campo del componente por el que queremos filtrar las entidades. De forma predeterminada, se establece en z.
Valor de retorno
Tipo Ahorro Descripción
Objeto de la API de consulta JS objeto Un objeto que contiene el ID de la consulta.
Objeto JavaScript nulo Algo salió mal al crear la consulta
Registro de consulta de ejemplo de código

var spacial_query = {}; system.initialize = function () {spacial_query = this.registerQuery ("minecraft: posición", "x", "y", "z"); };

addFilterToQuery (Consulta, ComponentIdentifier)

De forma predeterminada, no se agregan filtros. Esto permite que las consultas capturen todas las entidades.

parámetros
Tipo Nombre Descripción
Objeto de la API de consulta JS Consulta El objeto que contiene el ID de la consulta a la que desea aplicar el filtro.
Cordón ComponentIdentifier Este es el identificador del componente que se agregará a la lista de filtros. Solo las entidades que tienen ese componente se enumerarán en la consulta.
Filtrado de consultas de ejemplo de código

var consulta_filtrada = {}; system.initialize = function () {filtrada_query = this.registerQuery (); this.addFilterToQuery (consulta_filtrada, "minecraft: explotar"); };

getEntitiesFromQuery (consulta)

Le permite buscar las entidades capturadas por una consulta.

parámetros
Tipo Nombre Descripción
Objeto de la API de consulta JS Consulta Esta es la consulta que registró anteriormente usando registerQuery ()
Valor de retorno
Tipo Ahorro Descripción
Formación matriz Una matriz de EntityObjects que representa las entidades que se encuentran dentro de la consulta.
Objeto JavaScript nulo Algo salió mal al crear la entidad
Obtención de entidades de ejemplo de código

system.update = function () {let all_entities = this.getEntitiesFromQuery (simple_query); let exploding_creepers = this.getEntitiesFromQuery (consulta_filtrada); };

getEntitiesFromQuery (Consulta, ComponentField1_Min, ComponentField2_Min, ComponentField3_Min, ComponentField1_Max, ComponentField2_Max, ComponentField3_Max)

Le permite obtener las entidades capturadas por una consulta que se creó con un filtro de componentes incorporado. Las únicas entidades que se devolverán son aquellas entidades que tienen el componente que se definió cuando se registró la consulta y que tienen un valor en los tres campos de ese componente que se definieron en la consulta dentro de los valores especificados en la llamada a getEntitiesFromQuery.

parámetros
Tipo Nombre Descripción
Objeto de la API de consulta JS Consulta Esta es la consulta que creó anteriormente usando registerQuery (...)
Decimal ComponentField1_Min El valor mínimo que debe tener el primer campo de componente en una entidad para que esa entidad se incluya en la consulta.
Decimal ComponentField2_Min El valor mínimo que debe tener el campo del segundo componente en una entidad para que esa entidad se incluya en la consulta.
Decimal ComponentField3_Min El valor mínimo que debe tener el campo del tercer componente en una entidad para que esa entidad se incluya en la consulta.
Decimal ComponentField1_Max El valor máximo que debe tener el primer campo de componente en una entidad para que esa entidad se incluya en la consulta.
Decimal ComponentField2_Max El valor máximo que debe tener el campo del segundo componente en una entidad para que esa entidad se incluya en la consulta.
Decimal ComponentField3_Max El valor máximo que debe tener el campo del tercer componente en una entidad para que esa entidad se incluya en la consulta
Valor de retorno
Tipo Ahorro Descripción
Formación matriz Una matriz de EntityObjects que representa las entidades que se encuentran dentro de la consulta.
Objeto JavaScript nulo Algo salió mal al crear la entidad


Obtención de entidades de ejemplo de código

system.update = function () {let player_pos_component = this.getComponent (jugador, "minecraft: posición"); let pos = player_pos_component.data; let entity_near_player = this.getEntitiesFromQuery (spacial_query, pos.x - 10, pos.x + 10, pos.y - 10, pos.y + 10, pos.z - 10, pos.z + 10); };

Comandos de barra

Puede utilizar el sistema tradicional de Slash Command desde scripts. Actualmente puedes activar un evento ("minecraft: execute_command") o usar el enlace executeCommand. Los comandos en los scripts están restringidos a los scripts del servidor, no se pueden ejecutar desde el lado del cliente en este momento.

executeCommand (comando, devolución de llamada)

Le permite ejecutar un comando de barra en el servidor. El comando se consultará y ejecutará al final del cuadro actual. Toda la salida de datos del comando se compilará en un objeto JavaScript y se enviará al objeto de devolución de llamada especificado en el segundo parámetro.

parámetros
Tipo Nombre Descripción
Cordón Comando El comando de barra para ejecutar
Objeto JSON Devolución de llamada El objeto JavaScript que se llamará después de que se ejecute el comando
Ejemplo

system.executeCommand ("/ fill ~ ~ ~ ~ 100 ~ 5 ~ 50 stone", (commandResultData) => this.commandCallback (commandResultData)); system.commandCallback = function (commandResultData) {let eventData = this.createEventData ("minecraft: display_chat_event"); if (eventData) {eventData.data.message = "Callback llamado! Command:" + commandResultData.command + "Data:" + JSON.stringify (commandResultData.data, null, ""); this.broadcastEvent ("minecraft: display_chat_event", eventData); }};

Enlaces de bloque

Estas funciones definen cómo interactúa con los bloques.

getBlock (Área de tictac, x, y, z)

Le permite obtener un bloque del mundo cuando se le proporciona una posición x, y, z. El bloque debe estar dentro de un área de tic-tac.

parámetros
Tipo Nombre Descripción
Objeto de API JS de área de marcación Área de tictac El área de tictac en la que se encuentra el bloque
Entero x La posición x del bloque que desea
Entero y La posición y del bloque que desea
Entero z La posición z del bloque que desea
Valor de retorno
Tipo Ahorro Descripción
Bloquear objeto de API JS objeto Un objeto que contiene el bloque
Objeto JavaScript nulo Algo salió mal al recuperar el bloque

getBlock (Área de tictac, PositionObject)

Le permite obtener un bloque del mundo cuando se le proporciona un objeto JavaScript que contiene una posición. El bloque debe estar dentro de un área de tic-tac.

parámetros

Tipo Nombre Descripción
Objeto de API JS de área de marcación Área de tictac El área de tictac en la que se encuentra el bloque
Objeto JavaScript PositionObject Un objeto JavaScript con la posición x, y y z del bloque que desea Parámetros
Tipo Nombre Descripción
Entero x La posición x
Entero y La posición y
Entero z La posición z
Valor de retorno
Tipo Ahorro Descripción
Bloquear objeto de API JS objeto Un objeto que contiene el bloque
Objeto JavaScript nulo Algo salió mal al recuperar el bloque

getBlocks (Área de tictac, x min, y min, z min, x max, y max, z max)

Le permite obtener una matriz de bloques del mundo cuando se proporciona una posición x, y y z mínima y máxima. Los bloques deben estar dentro de un área de tic-tac.

parámetros
Tipo Nombre Descripción
Objeto de API JS de área de marcación Área de tictac El área de tictac en la que se encuentran los bloques
Entero x min La posición x mínima de los bloques que desea
Entero y min La posición y mínima de los bloques que desea
Entero con min La posición z mínima de los bloques que desea
Entero x max La posición x máxima de los bloques que desea
Entero y max La posición y máxima de los bloques que desea
Entero desde max La posición z máxima de los bloques que desea
Valor de retorno
Tipo Ahorro Descripción
Formación matriz Una matriz 3D de objetos de bloque. Los índices son las posiciones de los bloques en relación con la posición mínima dada
Objeto JavaScript nulo Algo salió mal al recuperar los bloques

getBlocks (Área de tictac, Objeto de posición mínimo, Objeto de posición máximo)

Le permite obtener una variedad de bloques del mundo cuando se le proporciona una posición mínima y máxima. Los bloques deben estar dentro de un área de tic-tac.

parámetros
Tipo Nombre Descripción
Objeto de API JS de área de marcación Área de tictac El área de tictac en la que se encuentran los bloques
Objeto JavaScript Objeto de posición mínima Un objeto JavaScript con la posición mínima x, y, z de los bloques que desea

parámetros

Tipo Nombre Descripción
Entero x La posición x
Entero y La posición y
Entero z La posición z
Objeto JavaScript Objeto de posición máxima Un objeto JavaScript con la posición x, y y z máxima de los bloques que desea Parámetros
Tipo Nombre Descripción
Entero x La posición x
Entero y La posición y
Entero z La posición z
Valor de retorno
Tipo Ahorro Descripción
Formación matriz Una matriz 3D de objetos de bloque. Los índices son las posiciones de los bloques en relación con la posición mínima dada
Objeto JavaScript nulo Algo salió mal al recuperar los bloques

Componentes de la secuencia de comandos

Esta es la documentación de los atributos, propiedades y componentes disponibles en Minecraft Script Engine.

Hay dos tipos de componentes: componentes de servidor y componentes de cliente. Las secciones siguientes son más detalladas.

Los componentes se pueden agregar, recuperar, actualizar y eliminar de las entidades. No existen por sí mismos. Actualmente, solo los componentes definidos por el usuario se pueden agregar y eliminar de las entidades. Un componente debe estar en una entidad para poder recuperarlo o actualizarlo.

Consulte la sección Enlaces del motor de secuencias de comandos para ver cómo agregar, eliminar, recuperar y actualizar componentes. Esta sección trata sobre la API específica de cada componente.

Componentes de nivel

Estos son los componentes que pertenecen al nivel. Solo pueden pertenecer al objeto de nivel y no se pueden quitar de él. Puede obtener los componentes y cambiar sus datos a través del objeto de servidor global.

let levelComponent = this.getComponent (server.level, "minecraft: example_level_component");

minecraft: ticking_areas

Este componente da acceso a las áreas de tictac estáticas en el nivel. El componente contiene una serie de áreas marcadas. Se puede acceder a las áreas de marcación por nombre o por UUID si no se les dio un nombre.

minecraft: clima

El componente meteorológico permite a los usuarios cambiar el clima del nivel. Los niveles de lluvia y relámpagos se pueden cambiar de forma independiente y el ciclo meteorológico predeterminado se puede apagar por completo.

parámetros
Tipo Nombre Descripción
Boolean do_weather_cycle Esta es la opción mundial que determina si se utilizará el ciclo meteorológico vainilla
Decimal rain_level Un valor entre 0 y 1 que determina la intensidad de la lluvia.
Entero tiempo de lluvia Cuánto tiempo, en garrapatas, lloverá
Decimal lightning_level Un valor entre 0 y 1 que determina cuántos rayos y truenos hay
Entero rayo_tiempo ¿Cuánto tiempo, en garrapatas, habrá relámpagos y truenos durante

Componentes del servidor

Estos son los componentes que se ejecutan en el servidor y están sincronizados con todos los clientes (jugadores) del mundo.
En la medida de lo posible, la API de cada componente coincide con su contraparte JSON (con algunas diferencias observadas).

Minecraft: contenedor_armadura

Este componente representa el contenido de la armadura de una entidad. El componente contiene una matriz de objetos API ItemStack JS que representan cada ranura en el contenedor de armadura.

NOTA: Actualmente, los artículos y contenedores son de solo lectura. Las ranuras se ordenan de la cabeza a los pies.

// Este ejemplo comprobará la ranura de armadura del casco del jugador para un elemento específico después de que el jugador ataca a una entidad. system.listenForEvent ("minecraft: player_attacked_entity", function (eventData) {// Obtener el contenedor de armadura del jugador let playerArmor = system.getComponent (eventData.data.player, "minecraft: armor_container"); // Obtener el casco del jugador let playerHelmet = playerArmor.data [0]; // Destruye la entidad atacada si el jugador tiene un casco dorado equipado if (playerHelmet.item ==== "minecraft: golden_helmet") {system.destroyEntity (eventData.data.attacked_entity);} });

minecraft: ataque

Este componente controla el atributo Attack Damage de la entidad. Le permite cambiar los valores mínimos y máximos actuales. Una vez aplicados los cambios, el ataque actual de la entidad se restablecerá al mínimo especificado. Con el mínimo y máximo cambiado a los valores especificados. Cualquier beneficio o perjuicio quedará intacto.

parámetros
Tipo Nombre Valor por defecto Descripción
Rango [a, b] dañar Rango de la cantidad aleatoria de daño que inflige el ataque cuerpo a cuerpo. Un valor negativo puede curar a la entidad en lugar de dañarla Parámetros
Tipo Nombre Valor por defecto Descripción
Decimal range_min 0.0 La cantidad mínima de daño que causará la entidad.
Decimal range_max 0.0 La cantidad máxima de daño que causará la entidad.

minecraft: collision_box

Controla el cuadro de colisión de la entidad. Cuando se aplican cambios al componente, el cuadro de colisión de la entidad se actualiza inmediatamente para reflejar las nuevas dimensiones.

ADVERTENCIA: Si el cambio de las dimensiones de la caja de colisión hiciera que la entidad estuviera dentro de un bloque, la entidad podría quedarse atascada allí y comenzar a asfixiarse.

parámetros
Tipo Nombre Valor por defecto Descripción
Decimal anchura 1.0 Anchura y profundidad de la caja de colisión en bloques. Se asumirá que un valor negativo es 0
Decimal altura 1.0 Altura de la caja de colisión en bloques. Se asumirá que un valor negativo es 0

minecraft: sensor_daños

Define una serie de daños y cómo reacciona la entidad ante ellos, incluido si la entidad ignora ese daño o no. Actualmente, los activadores de Minecraft no se pueden serializar correctamente, por lo que cualquier activador existente se reemplazará por completo cuando apliqueComponentChanges ().

parámetros
Tipo Nombre Valor por defecto Descripción
Lista on_damage Lista de disparadores con los eventos a llamar al recibir este tipo específico de daño, permite especificar filtros para definiciones de entidades y eventos.
Boolean Deals_damage verdadero Si es verdadero, el daño infligido a la entidad le quitará salud, y se establece en falso para que la entidad ignore ese daño.
Cordón porque Tipo de daño que desencadena este conjunto de eventos.

// Este ejemplo hará que una entidad (en este caso, una enredadera) comience a explotar cuando el jugador la ataque. // Nota: la entidad debe tener el componente damage_sensor y los eventos asociados definidos en su descripción JSON. this.listenForEvent ("minecraft: player_attacked_entity", function (eventData) {let damageSensorComponent = serverSystem.getComponent (eventData.attacked_entity, "minecraft: damage_sensor"); damageSensorComponent.data [0] .on_damage = {event: "minecraftding" , filtros: [{prueba: "has_component", operador: "==", valor: "minecraft: respirable"}]}; serverSystem.applyComponentChanges (eventData.attacked_entity, damageSensorComponent);});

minecraft: equipo

Define la tabla de botín que utiliza la entidad para definir su equipo. Una vez que se aplican los cambios, el equipo se vuelve a enrollar y se elige un nuevo conjunto de equipos para la entidad.

parámetros
Tipo Nombre Valor por defecto Descripción
Cordón mesa La ruta del archivo a la tabla de equipos, en relación con la raíz del paquete de comportamiento.
Lista slot_drop_chance Una lista de ranuras con la posibilidad de soltar un artículo equipado de esa ranura

Minecraft: equipable

Define cuántos y con qué elementos se puede equipar la entidad.

ranuras

Lista de ranuras y el artículo que se puede equipar.

parámetros
Tipo Nombre Valor por defecto Descripción
Entero espacio 0 El número de ranura de esta ranura
Lista elementos_aceptados La lista de elementos que pueden ir en este espacio.
Cordón ít Identificador del artículo que se puede equipar para este espacio
Cordón interact_text Texto que se mostrará cuando la entidad pueda equiparse con este elemento al jugar con los controles de la pantalla táctil
Cordón on_equip Evento que se activa cuando esta entidad está equipada con este artículo.
Cordón on_unequip Evento que se activará cuando este elemento se elimine de esta entidad

Minecraft: explotar

Controla la explosión de la entidad, el temporizador hasta la explosión y si el temporizador está contando o no.

parámetros
Tipo Nombre Valor por defecto Descripción
Rango [a, b] fuseLength [0.0, 0.0] El rango para la cantidad aleatoria de tiempo que se encenderá la mecha antes de explotar, un valor negativo significa que la explosión será inmediata
Decimal industria 3.0 El radio de la explosión en bloques y la cantidad de daño que causa la explosión.
Decimal maxResistance Infinito La resistencia a la explosión de un bloque se limitará a este valor cuando se produzca una explosión.
Boolean fusible false Si es verdadero, el fusible ya está encendido cuando este componente se agrega a la entidad.
Boolean causasFuego false Si es verdadero, los bloques en el radio de explosión se prenderán fuego.
Boolean break_blocks verdadero Si es cierto, la explosión destruirá bloques en el radio de explosión.
Boolean fireAffectedByGriefing false Si es cierto, si la explosión provoca un incendio se ve afectado por la regla del juego de duelo de la mafia.
Boolean destroyAffectedByGriefing false Si es cierto, si la explosión rompe los bloques se ve afectado por la regla del juego de duelo de la mafia.

minecraft: hand_container

Este componente representa el contenido de las manos de una entidad. El componente contiene una matriz de objetos API ItemStack JS que representan cada espacio en el contenedor de mano.

Nota: Actualmente, los artículos y contenedores son de solo lectura. La ranura 0 es de mano principal La ranura 1 es de mano secundaria.

// Este ejemplo comprueba la ranura del jugador en busca de un elemento específico después de que el jugador ataca a una entidad. system.listenForEvent ("minecraft: player_attacked_entity", function (eventData) {// Obtener el contenedor de la mano del jugador let handContainer = system.getComponent (eventData.data.player, "minecraft: hand_container"); // Obtener el elemento de mano del jugador let offhandItem = handContainer.data [1]; // Destruye la entidad atacada si el jugador tiene un tótem en su mano izquierda if (offhandItem.item ==== "minecraft: totem") {system.destroyEntity (eventData.data.attacked_entity) ;}});

Minecraft: curable

Define cómo el jugador puede curar la entidad. Esto no controla cuánta salud puede tener la entidad; debe usar el componente Salud para eso en su lugar.

parámetros
Tipo Nombre Valor por defecto Descripción
Formación artículos La matriz de elementos que se pueden usar para curar esta entidad Parámetros
Tipo Nombre Valor por defecto Descripción
Cordón ít Identificador de artículo que se puede utilizar para curar esta entidad.
Entero sanar_cantidad 1 La cantidad de salud que gana esta entidad cuando se alimenta con este artículo.
Filtro de Minecraft filtros El grupo de filtros que define las condiciones para usar este elemento para curar la entidad.
Boolean force_use false Determina si el elemento se puede usar independientemente de que la entidad esté en plena salud
Filtro de Minecraft filtros El grupo de filtros que define las condiciones para este disparador

minecraft: salud

Define la salud actual y máxima posible de la entidad. Al volver a aplicar el componente a la entidad, la salud cambia. Si llega a 0 o menos, la entidad muere.

parámetros
Tipo Nombre Valor por defecto Descripción
Entero VALORAMOS 1 Salud actual de la entidad
Entero max 10 La salud máxima que puede curar la entidad

minecraft: hotbar_container

Este componente representa el contenido de la barra de acceso rápido de un reproductor. El componente contiene una matriz de Objetos API de ItemStack JS que representan cada ranura en la barra de acceso rápido.

NOTA: Actualmente, los artículos y contenedores son de solo lectura. Las ranuras están ordenadas de izquierda a derecha.

// Este ejemplo comprueba el espacio del primer elemento de la barra de acceso rápido del jugador para un elemento específico después de que el jugador ataca a una entidad. system.listenForEvent ("minecraft: player_attacked_entity", function (eventData) {// Obtener la barra de acceso rápido de los jugadores let playerHotbar = system.getComponent (eventData.data.player, "minecraft: hotbar_container"); // Obtener el elemento en la primera ranura en la barra de acceso rápido deja firstHotbarSlot = playerHotbar.data [0]; // Destruye la entidad atacada si el jugador tiene una manzana en su primer espacio de barra de acceso rápido if (firstHotbarSlot.item ==== "minecraft: apple") {system.destroyEntity ( eventData.data.attacked_entity);}});

Minecraft: interactuar

Define las formas en que el jugador puede interactuar con la entidad a la que se aplica este componente.

parámetros
Tipo Nombre Valor por defecto Descripción
Formación spawn_entities Una matriz de identificadores de entidad que se generarán cuando se produzca la interacción.
Cordón on_interact Un identificador de evento que se activa cuando se produce la interacción.
Objeto JSON partícula_en_inicio Efecto de partículas que se activará al inicio de la interacción Parámetros
Tipo Nombre Valor por defecto Descripción
Cordón tipo_de_partícula El tipo de partícula que se generará.
Decimal partícula_y_desplazamiento 0.0 Compensará la partícula esta cantidad en la dirección y
Boolean partícula_desplazamiento_hacia_interactor false Si la partícula aparecerá o no más cerca de quién realizó la interacción.
Decimal enfriamiento 0.0 Tiempo en segundos antes de que se pueda volver a interactuar con esta entidad
Boolean oscilación false Si es cierto, el jugador hará la animación de 'swing' al interactuar con esta entidad.
Boolean utilizar artículo false Si es verdadero, la interacción usará un elemento.
Entero hurt_item 0 La cantidad de daño que sufrirá el objeto cuando se use para interactuar con esta entidad. Un valor de 0 significa que el artículo no perderá durabilidad.
Cordón interact_text Texto para mostrar cuándo el jugador puede interactuar de esta manera con esta entidad cuando juega con los controles de la pantalla táctil.
Objeto JSON add_items Tabla de botín con elementos para agregar al inventario del jugador después de una interacción exitosa Parámetros
Tipo Nombre Valor por defecto Descripción
Cordón mesa Ruta del archivo, relativa a la ruta del paquete de comportamiento, al archivo de la tabla de botín
Objeto JSON spawn_items Tabla de botín con elementos para dejar caer al suelo tras una interacción exitosa Parámetros
Tipo Nombre Valor por defecto Descripción
Cordón mesa Ruta del archivo, relativa a la ruta del paquete de comportamiento, al archivo de la tabla de botín
Cordón transform_to_item El elemento utilizado se transformará en este elemento tras una interacción exitosa. Formato: itemName: auxValue
Formación Reproducir sonidos Una serie de identificadores de sonido para reproducir cuando se produce la interacción.

minecraft: inventario

Define el inventario de la entidad (tamaño, restricciones, etc.). Actualmente esto no permite cambiar el contenido del inventario de la entidad.

parámetros
Tipo Nombre Valor por defecto Descripción
Cordón tipo de contenedor ninguna Tipo de contenedor que tiene esta entidad. Puede ser caballo, minecart_chest, minecart_hopper, inventario, contenedor o tolva
Entero tamaño_de_inventario 5 Número de ranuras que tiene el contenedor
Boolean can_be_siphoned_from false Si es cierto, el contenido de este inventario se puede eliminar mediante una tolva.
Boolean privada false Si es cierto, solo la entidad puede acceder al inventario
Boolean restrict_to_owner false Si es verdadero, el inventario de la entidad solo puede ser accedido por su propietario o por ella misma.
Entero ranuras_adicionales_por_fuerza 0 Número de espacios que esta entidad puede ganar por fuerza extra


minecraft: contenedor_de_inventario

Este componente representa el contenido del inventario de una entidad. El componente contiene una matriz de objetos API ItemStack JS que representan cada espacio en el inventario. NOTA: Actualmente, los artículos y contenedores son de solo lectura: la ranura 0-8 es la barra de acceso rápido, 9-17 es la fila superior del inventario del jugador, 18-26 es la fila del medio, 27-35 es la fila inferior

// Este ejemplo comprobará el espacio del tercer elemento del inventario del jugador para un elemento específico después de que el jugador ataca a una entidad. system.listenForEvent ("minecraft: player_attacked_entity", function (eventData) {// Obtener el inventario de los jugadores let playerInventory = system.getComponent (eventData.data.player, "minecraft: Inventory_container"); // Obtener el artículo en el tercer espacio en el inventario let thirdItemSlot = playerInventory.data [2]; // Destruye la entidad atacada si el jugador tiene una manzana en su tercer espacio de artículo if (thirdItemSlot.item ==== "minecraft: apple") {system.destroyEntity ( eventData.data.attacked_entity);}});

Minecraft: mira

Hace que la entidad mire a otra entidad. Una vez aplicado, si una entidad del tipo especificado está cerca y se puede apuntar, la entidad se volverá hacia ella.

parámetros
Tipo Nombre Valor por defecto Descripción
Boolean Poner un objectivo verdadero Si es cierto, esta entidad establecerá el objetivo del ataque como la entidad que lo miró.
Decimal radio de búsqueda 10.0 Distancia máxima a la que esta entidad buscará a otra entidad mirándola
Boolean mAllowInvulnerable false Si es verdadero, las entidades invulnerables (por ejemplo, los jugadores en modo creativo) se consideran objetivos válidos.
Rango [a, b] look_cooldown [0.0, 0.0] El rango de la cantidad aleatoria de tiempo durante el cual la entidad se está 'enfriando' y no se enojará ni buscará un objetivo.
Filtro de Minecraft filtros jugador Define las entidades que pueden activar este componente.
Cordón look_event El identificador de evento que se ejecutará cuando las entidades especificadas en los filtros miran esta entidad.

Minecraft: nombrable

El componente identificable describe la capacidad de una entidad para recibir un nombre mediante una etiqueta de identificación y si el nombre aparece o no una vez aplicado. Además, las secuencias de comandos permiten establecer el nombre de la entidad directamente con la propiedad 'nombre'.

parámetros
Tipo Nombre Valor por defecto Descripción
Objeto JSON name_actions Describe los nombres especiales para esta entidad y los eventos a llamar cuando la entidad adquiere esos nombres Parámetros
Tipo Nombre Valor por defecto Descripción
Cordón on_name Evento que se llamará cuando esta entidad adquiera el nombre especificado en 'name_filter'
Lista filtro_nombre Lista de nombres especiales que harán que se activen los eventos definidos en 'on_named'
Cordón default_trigger Activador para ejecutarse cuando la entidad recibe un nombre
Boolean siempre muestra false Si es verdadero, el nombre siempre se mostrará.
Boolean allowNameTagRenaming verdadero Si es verdadero, se puede cambiar el nombre de esta entidad con etiquetas de nombre
Cordón nombre El nombre actual de la entidad, vacío si la entidad aún no ha sido nombrada, si no está vacío, se aplicará el nombre a la entidad.

minecraft: posición

Este componente le permite controlar la posición actual de una entidad en el mundo. Una vez aplicada, la entidad será teletransportada a la nueva posición especificada.

parámetros
Tipo Nombre Valor por defecto Descripción
Decimal x 0.0 Posición a lo largo del eje X (este-oeste) de la entidad
Decimal y 0.0 Posición a lo largo del eje Y (altura) de la entidad
Decimal z 0.0 Posición a lo largo del eje Z (norte-sur) de la entidad

minecraft: rotación

Este componente le permite controlar la rotación actual de una entidad en el mundo, así como la rotación de la cabeza de la entidad. Una vez aplicada, la entidad se rotará según lo especificado.

parámetros
Tipo Nombre Valor por defecto Descripción
Decimal x 0.0 Controla la rotación de la cabeza mirando hacia arriba y hacia abajo.
Decimal y 0.0 Controla la rotación del cuerpo paralela al suelo.

Minecraft: tirador

Define los ataques a distancia de la entidad. Esto no permite que la entidad use un ataque a distancia: solo define qué tipo de proyectil dispara.

parámetros
Tipo Nombre Valor por defecto Descripción
Cordón def Identificador de entidad para usar como proyectil para el ataque a distancia. La entidad debe tener el componente de proyectil para poder ser disparado como proyectil
Entero auxVal -1 ID del efecto de poción que se aplicará al golpear

Minecraft: spawn_entity

Controla la capacidad de la entidad para generar una entidad o un elemento. Esto es similar a la capacidad de la gallina de poner huevos después de un período de tiempo determinado.

parámetros
Tipo Nombre Valor por defecto Descripción
Boolean should_leash false Si es verdadero, esta entidad generada está ligada al padre
Entero num_to_spawn 1 La cantidad de entidades de este tipo que se generarán cada vez que esto se active.
Entero min_wait_time 300 Cantidad mínima de tiempo para esperar aleatoriamente en segundos antes de que se genere otra entidad
Entero max_wait_time 600 Cantidad máxima de tiempo para esperar aleatoriamente en segundos antes de que se genere otra entidad
Cordón spawn_sound álamo Identificador del efecto de sonido que se reproducirá cuando se genere la entidad
Cordón spawn_item huevo Identificador de artículo del artículo a generar
Cordón spawn_entity Identificador de la entidad a generar, déjelo en blanco para generar el elemento definido anteriormente en su lugar
Cordón spawn_method nacido Método a utilizar para generar la entidad
Cordón spawn_event minecraft: entity_born Evento para llamar cuando se genera la entidad
Filtro de Minecraft filtros Si está presente, la entidad especificada solo se generará si el filtro se evalúa como verdadero
Boolean de un solo uso false Si es verdadero, este componente solo generará la entidad especificada una vez

Minecraft: teletransporte

Esto controla la capacidad de la entidad para teletransportarse (similar al Enderman). Si desea teletransportar la entidad una vez, use el componente Posición en su lugar.

parámetros
Tipo Nombre Valor por defecto Descripción
Boolean telepuertos aleatorios verdadero Si es cierto, la entidad se teletransportará aleatoriamente.
Decimal minRandomTeleportTime 0.0 Cantidad mínima de tiempo en segundos entre teletransportes aleatorios
Decimal maxRandomTeleportTime 20.0 Cantidad máxima de tiempo en segundos entre teletransportes aleatorios
Vector [a, b, c] randomTeleportCube [32.0, 16.0, 32.0] La entidad se teletransportará a una posición aleatoria dentro del área definida por este cubo
Decimal distancia del blanco 16.0 Distancia máxima a la que la entidad se teletransportará al perseguir un objetivo
Decimal target_teleport_chance 1.0 La probabilidad de que la entidad se teletransporte entre 0.0 y 1.0. 1.0 significa 100%
Decimal lightTeleportChance 0.01 Modifica la posibilidad de que la entidad se teletransporte si la entidad está a la luz del día.
Decimal darkTeleportChance 0.01 Modifica la posibilidad de que la entidad se teletransporte si la entidad está en la oscuridad.

Minecraft: tick_world

El componente tick world es un componente de solo lectura que permite a los usuarios acceder a las áreas de tictac de las entidades, así como a los datos del área de tictac.

parámetros
Tipo Nombre Descripción
Entero radio El radio en trozos del área de tictac
Decimal distancia_a_jugadores distancia_a_jugadores
Boolean never_despawn Si esta área de tic-tac desaparecerá o no cuando un jugador esté fuera de alcance.
Objeto de API JS de área de marcación de entidad ticking_area La entidad del área de tictac que está adjunta a esta entidad

Componentes del cliente

Estos componentes solo se ejecutan en el cliente donde se ejecutó el script y solo se pueden usar desde los scripts del cliente.

Minecraft: Molang

El componente MoLang da acceso a las variables MoLang en una entidad. Para obtener más información sobre las variables de MoLang, revise la documentación adicional. En los scripts, puede obtener y configurar estas variables que se definen en los archivos JSON de la entidad. Debido a cómo se formatean las variables de MoLang (variable, pastoreo, por ejemplo), debe usar el operador en el objeto para acceder a la variable. El siguiente ejemplo muestra cómo utilizar el operador para acceder a la variable.

Ejemplo de código

let molangComponent = this.createComponent (entidad, "minecraft: molang"); molangComponent ["variable.molangexample"] = 1.0; this.applyComponentChanges (molangComponent);

Componentes de bloque

Estos componentes solo se encuentran en objetos de bloque y solo pueden estar en objetos de bloque

minecraft: blockstate

Este componente contiene todos los estados de bloque de un objeto de bloque. Los Blockstates controlan todos los diferentes aspectos de los bloques, desde su orientación hasta el tipo de madera que son. Los estados de bloque están representados por números, bools o cadenas. Consulte la documentación de Blockstates para ver los valores válidos para cada estado. Este componente permite obtener y configurar estos estados.

Ejemplo de código

let blockstateComponent = this.getComponent (bloque, "minecraft: blockstate"); blockstateComponent.data.coral_color = "azul"; this.applyComponentChanges (bloque, blockstateComponent);

Componentes definidos por el usuario

Los componentes definidos por el usuario son un tipo especial de componente que se puede definir en un script y ningún sistema de juego incorporado actúa sobre él.

El componente debe registrarse con Script Engine dándole un nombre y un conjunto de campos en el formato nombre: valor. Una vez aplicado, el componente se comporta como cualquiera de los componentes integrados: puede obtenerlo de una entidad, modificar sus valores y aplicar los cambios.

Actualmente, los componentes definidos por el usuario son los únicos componentes que pueden agregarse y eliminarse dinámicamente de una entidad mediante secuencias de comandos. No es necesario que estén definidos previamente en el archivo JSON de una entidad. En la versión actual estos componentes son no guardados o cargados nuevamente: existen solo mientras la entidad está allí y deben agregarse nuevamente al recargar el nivel.

Ejemplo de código Registro de componentes

this.registerComponent ("myNamespace: myComponent", {myString: "TamerJeison", myInt: 42, myFloat: 1.0, myArray: [1, 2, 3], myObject: {a: 1, b: 2, c: 3} });

Eventos de guion

Aquí puede encontrar la lista de eventos que puede escuchar y responder en sus guiones.

Eventos de clientes

Escuchar eventos

Los siguientes eventos de Minecraft son eventos que el motor de secuencias de comandos está escuchando y a los que puede reaccionar en los scripts.

minecraft: client_entered_world

Este evento se activa cada vez que un jugador se une al mundo.

Tipo Nombre Descripción
Objeto de la API de JS de entidad jugador El jugador que se unió
minecraft: hit_result_changed

Este evento se activa cada vez que la retícula cambia de apuntar a un bloque o aire a apuntar a una entidad y al revés. Hasta 1000 cuadras de distancia.

Tipo Nombre Descripción
Objeto de la API de JS de entidad entidad La entidad que fue golpeada o nula si se disparó al salir de una entidad
Vector [a, b, c] posición La posición de la entidad que fue golpeada o nula si se disparó al salir de una entidad

// Ejemplo de código system.initialize = function () {this.listenForEvent ("minecraft: hit_result_changed", this.onPick.bind (this)); }; system.onPick = function (eventData) {if (eventData.data.position! == null) {this.broadcastEvent ("minecraft: display_chat_event", "Pick at x:" + eventData.data.position.x + "y: "+ eventData.data.position.y +" z: "+ eventData.data.position.z); }};

minecraft: hit_result_continuous

Este evento se activa con cada actualización y le dice a qué entidad apunta la retícula en el mundo hasta 1000 cuadras de distancia.

Tipo Nombre Descripción
Objeto de la API de JS de entidad entidad La entidad que fue golpeada o nula si no apunta a una entidad
Vector [a, b, c] posición La posición de la entidad que fue golpeada o el bloque que fue golpeado

// Ejemplo de código system.initialize = function () {this.listenForEvent ("minecraft: hit_result_continuous", this.onPick.bind (this)); }; system.onPick = function (eventData) {if (eventData.data.position! == null) {this.broadcastEvent ("minecraft: display_chat_event", "Pick at x:" + eventData.data.position.x + "y: "+ eventData.data.position.y +" z: "+ eventData.data.position.z); }};

minecraft: pick_hit_result_changed

Este evento se activa cada vez que el puntero del mouse cambia de apuntar a un bloque o aire a apuntar a una entidad y viceversa. Hasta 1000 cuadras de distancia.

Tipo Nombre Descripción
Objeto de la API de JS de entidad entidad La entidad que fue golpeada o nula si se disparó al salir de una entidad
Vector [a, b, c] posición La posición de la entidad que fue golpeada o nula si se disparó al salir de una entidad

// Ejemplo de código system.initialize = function () {this.listenForEvent ("minecraft: pick_hit_result_changed", this.onPick.bind (this)); }; system.onPick = function (eventData) {if (eventData.data.position! == null) {this.broadcastEvent ("minecraft: display_chat_event", "Pick at x:" + eventData.data.position.x + "y: "+ eventData.data.position.y +" z: "+ eventData.data.position.z); }};

minecraft: pick_hit_result_continuous

Este evento se activa con cada actualización y le indica a qué entidad apunta el puntero del mouse en el mundo hasta 1000 cuadras de distancia.

Tipo Nombre Descripción
Objeto de la API de JS de entidad entidad La entidad que fue golpeada o nula si no apunta a una entidad
Vector [a, b, c] posición La posición de la entidad que fue golpeada o el bloque que fue golpeado

// Ejemplo de código system.initialize = function () {this.listenForEvent ("minecraft: pick_hit_result_continuous", this.onPick.bind (this)); }; system.onPick = function (eventData) {if (eventData.data.position! == null) {this.broadcastEvent ("minecraft: display_chat_event", "Pick at x:" + eventData.data.position.x + "y: "+ eventData.data.position.y +" z: "+ eventData.data.position.z); }};

Eventos que pueden activarse

Los siguientes eventos de Minecraft se pueden activar a partir de secuencias de comandos y hacer que el juego responda en consecuencia.

// Función auxiliar / ** * Simplifica los eventos de transmisión * @param {string} identifier El identificador del evento en el formato 'espacio de nombres: nombre' * @param {Object} propiedades Las propiedades del evento * @returns {(boolean | null)} Devuelve 'verdadero' si la transmisión del evento fue exitosa o 'nulo' cuando la transmisión del evento falló * / system.emit = function (identifier, properties) {const data = this.createEventData (identifier); data.data = Object.assign ({}, data.data, propiedades); return this.broadcastEvent (identificador, datos); }

minecraft: display_chat_event

Este evento se utiliza para mostrar un mensaje de chat al jugador específico que está ejecutando el script del cliente. Los datos del evento son el mensaje que se mostrará en texto sin formato. El formato especial se admite de la misma manera que lo sería si un jugador estuviera enviando el mensaje.

Tipo Nombre Valor por defecto Descripción
Cordón mensaje El mensaje de chat que se mostrará

// Función auxiliar / ** * Simplifica el registro * @param {... *} elementos Las variables para registrar * / system.log = función (... elementos) {const toString = item => {switch (Object.prototype .toString.call (elemento)) {caso '[objeto indefinido]': return 'indefinido'; caso '[objeto nulo]': devuelve 'nulo'; case '[object String]': return `" $ {item} "`; caso '[objeto Array]': const array = item.map (toString); return `[$ {array.join (',')}]`; case '[object Object]': const object = Object.keys (item) .map (key => `$ {key}: $ {toString (item [key])}`); return `{$ {object.join (',')}}`; case '[función de objeto]': return item.toString (); predeterminado: artículo devuelto; }} this.emit ('minecraft: display_chat_event', {mensaje: items.map (toString) .join ('')}); }, // Ejemplo const myString = 'Hola'; const myInt = 5; const myObject = {a: indefinido, b: 'Mundo'}; system.log (myString, myInt, myObject) // Resultado: "Hola" 5 {a: undefined, b: "World"}

Minecraft: load_ui

Este evento se usa para mostrar una pantalla de IU al jugador específico que ejecuta el script del cliente. Este evento agrega la pantalla de la interfaz de usuario a la parte superior de la pila de pantallas de la interfaz de usuario. La pantalla se muestra inmediatamente después de que se activa el evento. Solo las pantallas definidas en un archivo HTML se pueden mostrar usando este evento.

Parámetros de datos de eventos
Tipo Nombre Valor por defecto Descripción
Cordón camino La ruta del archivo al archivo HTML de la pantalla.
Objeto JSON opciones Puede definir las siguientes opciones para la pantalla estableciendo su valor en verdadero o falso:

always_accepts_input

Si es verdadero, la pantalla siempre aceptará y procesará la entrada durante el tiempo que esté en la pila, incluso si aparecen otras pantallas de IU personalizadas encima.

render_game_behind

Si es cierto, el juego continuará renderizándose debajo de esta pantalla.

absorbs_input

Si es verdadero, la entrada no se transmitirá a ninguna otra pantalla debajo

is_showing_menu

Si es verdadero, la pantalla se tratará como el menú de pausa y no se permitirá que el menú de pausa se muestre en la parte superior de esta pantalla.

should_steal_mouse

Si es verdadero, la pantalla capturará el puntero del mouse y limitará su movimiento a la pantalla de la interfaz de usuario

force_render_below

Si es verdadero, esta pantalla se renderizará incluso si hay otra pantalla encima y se renderizará sobre ella, incluido el HUD.

render_only_when_topmost

Si es verdadero, esta pantalla solo se renderizará si es la pantalla en la parte superior de la pila

minecraft: send_ui_event

Este evento se usa para enviar eventos de IU al motor de IU para el jugador específico que ejecuta el script. Una vez que se activa el evento, el evento de IU se enviará inmediatamente.
La interfaz de usuario personalizada se basa en HTML 5. Consulte la demostración de secuencias de comandos para ver un ejemplo de un archivo de interfaz de usuario personalizado.

Tipo Nombre Descripción
Cordón eventIdentifier El identificador del evento de IU
Cordón datos Los datos del evento de IU que se activa
Minecraft: spawn_particle_attached_entity

Este evento se utiliza para crear un efecto de partículas que seguirá a una entidad. Este efecto de partículas solo es visible para el reproductor específico que está ejecutando el script del cliente donde disparó el evento. Aquí se puede utilizar cualquier efecto definido en un archivo JSON (tanto en su paquete de recursos como en Minecraft). Las variables MoLang definidas en el JSON del efecto se pueden usar para controlar ese efecto cambiándolas en la entidad a la que está adjunto.

Tipo Nombre Valor por defecto Descripción
Cordón efecto El identificador del efecto de partículas que desea adjuntar a la entidad. Este es el mismo nombre que le dio al efecto en su archivo JSON
Vector [a, b, c] compensar [0, 0, 0] El desplazamiento desde el "centro" de la entidad donde desea generar el efecto
Objeto de la API de JS de entidad entidad El objeto de entidad al que desea adjuntar el efecto
minecraft: spawn_particle_in_world

Este evento se utiliza para crear un efecto de partículas estáticas en el mundo. Este efecto de partículas solo es visible para el reproductor específico que está ejecutando el script del cliente donde disparó el evento. Aquí se puede utilizar cualquier efecto definido en un archivo JSON (tanto en su paquete de recursos como en Minecraft). Una vez que se genera el efecto, no podrás controlarlo más. A diferencia de la versión del servidor del evento, la versión del cliente generará la partícula en la dimensión en la que se encuentra el jugador.

Tipo Nombre Valor por defecto Descripción
Cordón efecto El identificador del efecto de partículas que desea adjuntar al desove. Este es el mismo nombre que le dio al efecto en su archivo JSON
Vector [a, b, c] posición [0, 0, 0] La posición en el mundo donde desea generar el efecto.
Minecraft: unload_ui

Este evento se usa para eliminar una pantalla de IU de la pila del reproductor específico que ejecuta el script del cliente. Los datos del evento contienen el nombre de la pantalla que se eliminará como una cadena. Una vez que se activa el evento, se programará la eliminación de la pantalla de la pila la próxima vez que el motor de la interfaz de usuario pueda hacerlo. Solo las pantallas definidas en un archivo HTML se pueden eliminar mediante este evento.

minecraft: script_logger_config

Este evento se utiliza para activar y desactivar varios niveles de inicio de sesión para scripts de cliente. Tenga en cuenta que activar / desactivar el inicio de sesión no se limita al script que transmitió el evento. Afectará a TODOS los scripts del cliente, incluidos los de otros paquetes de comportamiento que se aplican al mundo. Consulte la sección Depuración para obtener más información sobre el registro.

Tipo Nombre Valor por defecto Descripción
Boolean log_errors false Configúrelo en verdadero para registrar cualquier error de secuencia de comandos que se produzca en el cliente.
Boolean log_warnings false Establézcalo en verdadero para registrar cualquier advertencia de secuencias de comandos que se produzca en el cliente.
Boolean log_information false Establézcalo en verdadero para registrar cualquier información general de secuencias de comandos que se produzca en el cliente. Esto incluye cualquier registro realizado con client.log ()

Eventos del servidor

Escuchar eventos

Los siguientes eventos de Minecraft son eventos que el motor de secuencias de comandos está escuchando y a los que puede reaccionar en los scripts.

minecraft: player_attacked_entity

Este evento se activa cada vez que un jugador ataca a una entidad.

Tipo Nombre Descripción
Objeto de la API de JS de entidad jugador El jugador que atacó a una entidad
Objeto de la API de JS de entidad entidad_atacada La entidad que fue atacada por el jugador.
minecraft: entity_acquired_item

Este evento se activa cada vez que una entidad adquiere un artículo.

Tipo Nombre Descripción
Objeto de la API de JS de entidad entidad La entidad que adquirió el artículo
Objeto de API ItemStack JS item_stack El artículo que fue adquirido
Cordón método_de_adquisición La forma en que la entidad adquirió el artículo.
Entero cantidad_adquirida El número total de artículos adquiridos por la entidad durante este evento.
Objeto de la API de JS de entidad entidad_secundaria Si existe, la entidad que afectó el artículo antes de su adquisición. Ejemplo: un jugador completa un intercambio con un aldeano. La propiedad `entidad` sería el jugador y la` entidad secundaria` sería el aldeano
minecraft: entity_carried_item_changed

Este evento se desencadena cada vez que una entidad cambia el artículo que lleva en la mano.

Tipo Nombre Descripción
Objeto de la API de JS de entidad entidad La entidad que cambió lo que llevaban
Objeto de API ItemStack JS artículo_cargado_anterior El artículo que anteriormente estaba en manos de la entidad.
Objeto de API ItemStack JS artículo_portado El artículo que ahora está en manos de la entidad.
minecraft: entity_created

Este evento se activa cada vez que se agrega una entidad al mundo.

Tipo Nombre Descripción
Objeto de la API de JS de entidad entidad La entidad que se acaba de crear
minecraft: entity_death

Este evento se desencadena cada vez que una entidad muere. Esto no se activará cuando se elimine una entidad (como cuando se usa destroyEntity).

Tipo Nombre Descripción
Objeto de la API de JS de entidad entidad La entidad que murió
minecraft: entity_dropped_item

Este evento se activa cada vez que una entidad suelta un artículo.

Tipo Nombre Descripción
Objeto de la API de JS de entidad entidad La entidad que dejó caer el artículo.
Objeto de API ItemStack JS item_stack El artículo que se cayó
minecraft: entity_equipped_armor

Este evento se activa cada vez que una entidad equipa un objeto en sus ranuras de armadura.

Tipo Nombre Descripción
Objeto de la API de JS de entidad entidad La entidad que está equipando la armadura.
Objeto de API ItemStack JS item_stack La armadura que se está equipando
minecraft: entity_start_riding

Este evento se desencadena cada vez que una entidad se convierte en un pasajero de otra entidad.

Tipo Nombre Descripción
Objeto de la API de JS de entidad entidad El jinete
Objeto de la API de JS de entidad montar La entidad que está siendo montada
minecraft: entity_stop_riding

Este evento se activa cada vez que una entidad deja de montar otra entidad.

Tipo Nombre Descripción
Objeto de la API de JS de entidad entidad La entidad que estaba montando otra entidad.
Boolean exit_from_rider Si es cierto, el ciclista dejó de conducir por decisión propia.
Boolean entity_is_being_destroyed Si es cierto, el ciclista dejó de montar porque ahora está muerto.
Boolean switching_rides Si es cierto, el ciclista dejó de montar porque ahora está montando una entidad diferente.
minecraft: entity_tick

Este evento se activa cada vez que se marca una entidad. Este evento no se activa cuando un jugador está marcado.

Tipo Nombre Descripción
Objeto de la API de JS de entidad entidad La entidad que estaba marcada
minecraft: entity_use_item

Este evento se activa cada vez que una entidad usa un artículo.

Tipo Nombre Descripción
Objeto de la API de JS de entidad entidad La entidad que está usando el artículo.
Objeto de API ItemStack JS item_stack El artículo que se está utilizando
Cordón use_method La forma en que la entidad usó el artículo.
minecraft: block_destruction_started

Este evento se activa cada vez que un jugador comienza a destruir un bloque.

Tipo Nombre Descripción
Objeto de la API de JS de entidad jugador El jugador que empezó a destruir el bloque
Objeto JavaScript block_position La posición del bloque que se está destruyendo.
minecraft: block_destruction_stopped

Este evento se activa cada vez que un jugador deja de destruir un bloque.

Tipo Nombre Descripción
Objeto de la API de JS de entidad jugador El jugador que dejó de destruir el bloque
Objeto JavaScript block_position La posición del bloque que estaba siendo destruido.
Decimal progreso_destrucción Qué tan avanzado estaba la destrucción antes de que se detuviera (rango 0-1)
minecraft: block_interacted_with

Este evento se activa cada vez que un jugador interactúa con un bloque.

Tipo Nombre Descripción
Objeto de la API de JS de entidad jugador El jugador que interactuó con el bloque.
Objeto JavaScript block_position La posición del bloque con el que se está interactuando
minecraft: piston_moved_block

Este evento se activa cada vez que un pistón mueve un bloque.

Tipo Nombre Descripción
Objeto JavaScript posición_pistón La posición del pistón que movió el bloque.
Objeto JavaScript block_position La posición del bloque que se movió
Cordón piston_action La acción que tomó el pistón, "extendido" o "retraído"
minecraft: player_destroyed_block

Este evento se activa cada vez que un jugador destruye un bloque.

Tipo Nombre Descripción
Objeto de la API de JS de entidad jugador El jugador que destruyó el bloque
Objeto JavaScript block_position La posición del bloque que fue destruido.
Cordón block_identifier El identificador del bloque que fue destruido
minecraft: player_placed_block

Este evento se activa cada vez que un jugador coloca un bloque.

Tipo Nombre Descripción
Objeto de la API de JS de entidad jugador El jugador que colocó el bloque
Objeto JavaScript block_position La posición del bloque que se colocó
minecraft: play_sound

Este evento se utiliza para reproducir un efecto de sonido. Actualmente, los sonidos solo se pueden reproducir en una posición fija en el mundo. Los sonidos globales y los sonidos reproducidos por una entidad se admitirán en una actualización posterior.

Tipo Nombre Valor por defecto Descripción
Cordón sonar El identificador del sonido que desea reproducir. Solo se pueden reproducir los sonidos definidos en los paquetes de recursos aplicados
Decimal volumen 1.0 El volumen del efecto de sonido. Un valor de 1.0 reproduce el efecto de sonido en su volumen original.
Decimal tono 1.0 El tono del efecto de sonido. Un valor de 1.0 reproduce el efecto de sonido con un tono regular
Vector [x, y, z] posición [0, 0, 0] La posición en el mundo en la que queremos reproducir el sonido.
minecraft: weather_changed

Este evento se activa cada vez que cambia el clima. Contiene información sobre el clima al que está cambiando.

Tipo Nombre Descripción
Cordón dimensión El nombre de la dimensión donde ocurrió el cambio de clima.
Boolean lloviendo Dice si el nuevo clima tiene lluvia
Boolean relámpago Dice si el nuevo clima tiene relámpagos

Eventos que pueden activarse

Los siguientes eventos de Minecraft se pueden activar a partir de secuencias de comandos y el juego responde en consecuencia.

// Función auxiliar / ** * Simplifica los eventos de transmisión * @param {string} identifier El identificador del evento en el formato 'espacio de nombres: nombre' * @param {Object} propiedades Las propiedades del evento * @returns {(boolean | null)} Devuelve 'verdadero' si la transmisión del evento fue exitosa o 'nulo' cuando la transmisión del evento falló * / system.emit = function (identifier, properties) {const data = this.createEventData (identifier); data.data = Object.assign ({}, data.data, propiedades); return this.broadcastEvent (identificador, datos); }

minecraft: display_chat_event

Este evento se utiliza para enviar un mensaje de chat desde el servidor a los jugadores. El mensaje de los datos del evento se envía como una cadena. El formato especial se admite de la misma manera que lo sería si un jugador estuviera enviando el mensaje.

Tipo Nombre Valor por defecto Descripción
Cordón mensaje El mensaje de chat que se mostrará

// Función auxiliar / ** * Simplifica el registro * @param {... *} elementos Las variables para registrar * / system.log = función (... elementos) {const toString = item => {switch (Object.prototype .toString.call (elemento)) {caso '[objeto indefinido]': return 'indefinido'; caso '[objeto Nulo]': devuelve 'nulo'; case '[object String]': return `" $ {item} "`; caso '[objeto Array]': const array = item.map (toString); return `[$ {array.join (',')}]`; case '[object Object]': const object = Object.keys (item) .map (key => `$ {key}: $ {toString (item [key])}`); return `{$ {object.join (',')}}`; case '[función de objeto]': return item.toString (); predeterminado: artículo devuelto; }} this.emit ('minecraft: display_chat_event', {mensaje: items.map (toString) .join ('')}); }, // Ejemplo const myString = 'Hola'; const myInt = 5; const myObject = {a: undefined, b: 'World'}; system.log (myString, myInt, myObject) // Resultado: "Hola" 5 {a: undefined, b: "World"}

minecraft: ejecutar_comando

Este evento se utiliza para ejecutar un comando de barra en el servidor con el nivel de permiso de propietario mundial. Los datos del evento contienen el comando de barra inclinada como una cadena. El comando de barra se procesará y se ejecutará después de que se envíe el evento.

Tipo Nombre Valor por defecto Descripción
Cordón comando El comando que se ejecutará
minecraft: play_sound

Este evento se utiliza para reproducir un efecto de sonido. Actualmente, los sonidos solo se pueden reproducir en una posición fija en el mundo. Los sonidos globales y los sonidos reproducidos por una entidad se admitirán en una actualización posterior.

Tipo Nombre Valor por defecto Descripción
Cordón sonar El identificador del sonido que desea reproducir. Solo se pueden reproducir los sonidos definidos en los paquetes de recursos aplicados
Decimal volumen 1.0 El volumen del efecto de sonido. Un valor de 1.0 reproducirá el efecto de sonido al volumen al que se grabó.
Decimal tono 1.0 El tono del efecto de sonido. Un valor de 1.0 reproducirá el efecto de sonido con un tono regular.
Vector [x, y, z] posición [0, 0, 0] La posición en el mundo en la que queremos reproducir el sonido.
Minecraft: spawn_particle_attached_entity

Este evento se utiliza para crear un efecto de partículas que seguirá a una entidad. Este efecto de partículas es visible para todos los jugadores. Aquí se puede utilizar cualquier efecto definido en un archivo JSON (tanto en su paquete de recursos como en Minecraft). Las variables MoLang definidas en el JSON del efecto se pueden usar para controlar ese efecto cambiándolas en la entidad a la que está adjunto.

Tipo Nombre Valor por defecto Descripción
Cordón efecto El identificador del efecto de partículas que desea adjuntar a la entidad. Este es el mismo identificador que le dio al efecto en su archivo JSON
Vector [x, y, z] compensar [0, 0, 0] El desplazamiento desde el "centro" de la entidad donde desea generar el efecto
Objeto de la API de JS de entidad entidad El objeto de entidad al que desea adjuntar el efecto
minecraft: spawn_particle_in_world

Este evento se utiliza para crear un efecto de partículas estáticas en el mundo. Este efecto de partículas es visible para todos los jugadores. Aquí se puede utilizar cualquier efecto definido en un archivo JSON (tanto en su paquete de recursos como en Minecraft). Una vez que se genera el efecto, no podrás controlarlo más.

Tipo Nombre Valor por defecto Descripción
Cordón efecto El identificador del efecto de partículas que desea adjuntar al desove. Este es el mismo nombre que le dio al efecto en su archivo JSON
Vector [x, y, z] posición [0, 0, 0] La posición en el mundo donde desea generar el efecto.
Cordón dimensión supramundo La dimensión en la que desea generar el efecto. Puede ser "mundo superior", "inferior" o "el fin".
minecraft: script_logger_config

Este evento se utiliza para activar y desactivar varios niveles de inicio de sesión para las secuencias de comandos del servidor. Tenga en cuenta que activar / desactivar el inicio de sesión no se limita al script que transmitió el evento. Afectará a TODOS los scripts del servidor, incluidos los de otros paquetes de comportamiento que se aplican al mundo. Consulte la sección Depuración para obtener más información sobre el registro.

Tipo Nombre Valor por defecto Descripción
Boolean log_errors false Establézcalo en verdadero para registrar cualquier error de secuencia de comandos que ocurra en el servidor.
Boolean log_warnings false Establézcalo en verdadero para registrar cualquier advertencia de secuencias de comandos que se produzca en el servidor.
Boolean log_information false Establézcalo en verdadero para registrar cualquier información general de secuencias de comandos que se produzca en el servidor. Esto incluye cualquier registro realizado con server.log ()


Añade un comentario de Documentación de secuencias de comandos beta de Bedrock Edition
¡Comentario enviado con éxito! Lo revisaremos en las próximas horas.