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.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.6 Enlaces de bloque
- 3.1 Vinculaciones de entidades
- 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
- 4.1 Componentes de nivel
- 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.1.1 Escuchar eventos
- 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
- 6.2.1 Escuchar eventos
- 6.1 Eventos del cliente
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.
{"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ámetrosTipo | 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 |
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.
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ódigosampleSystem.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ódigosampleSystem.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
|
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 retornoTipo | 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ámetrosTipo | 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 |
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ámetrosTipo | 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 |
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ámetrosTipo | 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 |
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ámetrosTipo | 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. |
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ámetrosTipo | 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 () |
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ámetrosTipo | 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 () |
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ámetrosTipo | 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 () |
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
| ||||||||||||
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ámetrosTipo | 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 () |
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ámetrosTipo | 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 () |
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.
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. |
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ámetrosTipo | 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. |
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ámetrosTipo | 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. |
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ámetrosTipo | 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. |
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.
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 |
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ámetrosTipo | 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. |
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 |
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ámetrosTipo | 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. |
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ámetrosTipo | Nombre | Descripción |
---|---|---|
Objeto de la API de consulta JS | Consulta | Esta es la consulta que registró anteriormente usando registerQuery () |
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 |
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ámetrosTipo | 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 |
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 |
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ámetrosTipo | 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 |
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ámetrosTipo | 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 |
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 | 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ámetrosTipo | 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 |
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ámetrosTipo | 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
| ||||||||||||
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 | 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ámetrosTipo | 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ámetrosTipo | 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
|
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ámetrosTipo | 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ámetrosTipo | 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ámetrosTipo | 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ámetrosTipo | 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ámetrosTipo | 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ámetrosTipo | Nombre | Valor por defecto | Descripción | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Formación | artículos | La matriz de elementos que se pueden usar para curar esta entidad Parámetros
| |||||||||||||||||
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ámetrosTipo | 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ámetrosTipo | 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
| |||||||||||||||||
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
| |||||||||||||||||
Objeto JSON | spawn_items | Tabla de botín con elementos para dejar caer al suelo tras una interacción exitosa Parámetros
| |||||||||||||||||
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ámetrosTipo | 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ámetrosTipo | 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ámetrosTipo | 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
| |||||||||||||
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ámetrosTipo | 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ámetrosTipo | 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ámetrosTipo | 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ámetrosTipo | 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ámetrosTipo | 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ámetrosTipo | 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ódigolet 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ódigolet 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 componentesthis.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 eventosTipo | 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 () |