Close
    Search Search

    Documentación de secuencias de comandos beta de Bedrock Edition

    Documentación de secuencias de comandos beta de Bedrock Edition Esta característica es exclusiva de Bedrock Edition. 

    Contenido

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





    Sistema de secuencias de comandos

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

    Demos

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

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

    Problemas conocidos

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

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

    Rompiendo cambios

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



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

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

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

    Requisitos previos

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


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

    Cómo comenzar

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


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

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

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

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

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

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

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

    Estructura de un guión

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

    1. Registro del sistema

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

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

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

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

    2. Inicialización del sistema

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

    Ejemplo de código

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

    3. Actualización del sistema

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

    Ejemplo de código

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

    4. Apagado del sistema

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

    Ejemplo de código

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

    Depuración

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

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

    En el juego

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

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

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


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

    En tiempo real (avanzado)

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

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

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

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

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

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

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

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

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

    Objetos de API de secuencia de comandos

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

    Objeto de la API de JS de entidad

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

    Objeto de API de nivel JS

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

    Objeto de API JS de componente

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

    Objeto de la API de consulta JS

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

    Objeto de API ItemStack JS

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

    Bloquear objeto de API JS

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

    parámetros

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

    Objeto de API JS de área de tictac

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

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

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

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

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

    Enlaces de secuencia de comandos

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

    Enlaces de entidad

    createEntity ()

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

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

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

    createEntity (Type, TemplateIdentifier)

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

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

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

    destruirEntidad (EntityObject)

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

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

    isValidEntity (EntityObject)

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

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

    Enlaces de componentes

    registerComponent (ComponentIdentifier, ComponentData)

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

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

    createComponent (EntityObject, ComponentIdentifier)

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

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

    hasComponent (EntityObject, ComponentIdentifier)

    Comprueba si la entidad dada tiene el componente especificado.

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

    getComponent (EntityObject, ComponentIdentifier)

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

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

    Objeto de API JS de componente

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

    applyComponentChanges (EntityObject, ComponentObject)

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

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

    destroyComponent (EntityObject, ComponentIdentifier)

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

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

    Enlaces de eventos

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

    registerEventData (EventIdentifier, EventData)

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

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

    createEventData (EventIdentifier)

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

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

    listenForEvent (EventIdentifier, CallbackObject)

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

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

    broadcastEvent (EventIdentifier, EventData)

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

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

    Consultas de entidad

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

    registerQuery ()

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

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

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

    registerQuery (Component, ComponentField1, ComponentField2, ComponentField3)

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

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

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

    addFilterToQuery (Consulta, ComponentIdentifier)

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

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

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

    getEntitiesFromQuery (consulta)

    Le permite buscar las entidades capturadas por una consulta.

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

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

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

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

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


    Obtención de entidades de ejemplo de código

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

    Comandos de barra

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

    executeCommand (comando, devolución de llamada)

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

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

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

    Enlaces de bloque

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

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

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

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

    getBlock (Área de tictac, PositionObject)

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

    parámetros

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

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

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

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

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

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

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

    parámetros

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

    Componentes de la secuencia de comandos

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

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

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

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

    Componentes de nivel

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

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

    minecraft: ticking_areas

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

    minecraft: clima

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

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

    Componentes del servidor

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

    Minecraft: contenedor_armadura

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

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

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

    minecraft: ataque

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

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

    minecraft: collision_box

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

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

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

    minecraft: sensor_daños

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

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

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

    minecraft: equipo

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

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

    Minecraft: equipable

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

    ranuras

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

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

    Minecraft: explotar

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

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

    minecraft: hand_container

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

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

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

    Minecraft: curable

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

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

    minecraft: salud

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

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

    minecraft: hotbar_container

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

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

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

    Minecraft: interactuar

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

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

    minecraft: inventario

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

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


    minecraft: contenedor_de_inventario

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

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

    Minecraft: mira

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

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

    Minecraft: nombrable

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

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

    minecraft: posición

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

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

    minecraft: rotación

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

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

    Minecraft: tirador

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

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

    Minecraft: spawn_entity

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

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

    Minecraft: teletransporte

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

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

    Minecraft: tick_world

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

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

    Componentes del cliente

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

    Minecraft: Molang

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

    Ejemplo de código

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

    Componentes de bloque

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

    minecraft: blockstate

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

    Ejemplo de código

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

    Componentes definidos por el usuario

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

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

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

    Ejemplo de código Registro de componentes

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

    Eventos de guion

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

    Eventos de clientes

    Escuchar eventos

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

    minecraft: client_entered_world

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

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

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

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

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

    minecraft: hit_result_continuous

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

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

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

    minecraft: pick_hit_result_changed

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

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

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

    minecraft: pick_hit_result_continuous

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

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

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

    Eventos que pueden activarse

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

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

    minecraft: display_chat_event

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

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

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

    Minecraft: load_ui

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

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

    always_accepts_input

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

    render_game_behind

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

    absorbs_input

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

    is_showing_menu

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

    should_steal_mouse

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

    force_render_below

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

    render_only_when_topmost

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

    minecraft: send_ui_event

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

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

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

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

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

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

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

    minecraft: script_logger_config

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

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

    Eventos del servidor

    Escuchar eventos

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

    minecraft: player_attacked_entity

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Eventos que pueden activarse

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

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

    minecraft: display_chat_event

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

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

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

    minecraft: ejecutar_comando

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

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

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

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

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

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

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

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

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

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


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