Función (edición Java)

Quien soy
Aina Prat
@ainaprat
Autor y referencias
Para el comando, consulte Comandos / función. : Función (Bedrock Edition) Se ha sugerido que esta página se mueva a las funciones de Java Edition.
Si este movimiento afecta a muchas páginas o puede ser potencialmente controvertido, no mueva la página hasta que se logre un consenso.
 [discutir] Razón: Coherencia con otros artículos que tienen una variante de Java y base; el plural debería ser discutido
Cuando se mueva, asegúrese de utilizar la herramienta adecuada en lugar de simplemente copiar y pegar el contenido de la página, para preservar el historial de ediciones. Esta función es exclusiva de Java Edition. 

Las funciones clave Permitir a los jugadores ejecutar listas de comandos usando archivos de texto con la extensión .mcfunction. Se recomienda utilizar codificación ANSI (sin BOM) para archivos de función para evitar problemas. Esta página cubre cómo utilizar las funciones en Java Edition.



Contenido

  • Uso de 1
    • 1.1 sintaxis de funciones
    • 1.2 Ejecutando una función
      • 1.2.1 comandos
      • 1.2.2 avances
      • 1.2.3 etiquetas
  • Historia de 2
  • Problemas con 3
  • 4

Uso

Para utilizar las funciones, se puede colocar un archivo de texto [FUNCTION_NAME] .mcfunction en la carpeta [WORLD_NAME] / datapacks / [DATA_PACK_NAME] / data / [NAMESPACE] / functions. Para ejecutar la función, use el nombre de la función completamente calificado, que es [NAMESPACE]: [FUNCTION_NAME]. Si no hay ambigüedad con otros paquetes de datos o con un comando de Minecraft existente, puede usar [FUNCTION_NAME]. Si el espacio de nombres se deja fuera al intentar llamar a una función, se utilizará por defecto en el espacio de nombres minecraft:. Se recomienda utilizar un espacio de nombres personalizado para evitar comportamientos no deseados en el caso de futuras adiciones al espacio de nombres predeterminado. [1]



Las funciones también se pueden colocar en subcarpetas dentro de la carpeta de funciones. También es necesario tener un archivo pack.mcmeta en la carpeta [DATA_PACK_NAME]. Por ejemplo, ejecutar la función custom: example / test hará referencia al archivo ubicado en data / custom / functions / example / test.mcfunction.

Las funciones, al ser archivos de texto, son fácilmente modificables y es menos probable que induzcan retrasos que los bloques de comando cuando se usan en grandes cantidades. Si se modifica o agrega una función, el uso del comando / reload volverá a cargar los archivos de función desde el disco. Esto permite que Minecraft reconozca cualquier cambio en los archivos de funciones, sin la necesidad de salir y volver a ingresar al mundo.

Al ejecutar / función con éxito, se mostrará un mensaje en el chat: Comando (s) ejecutados [cantidad] desde la función '[directorio de archivos de función]'. Las funciones integradas no mostrarán este mensaje de chat. La salida exitosa de los comandos dentro de una función no se puede medir con un comparador (aunque se podría lograr el mismo efecto con el uso del comando / execute store).

En un solo jugador o en un mundo LAN, como un bloque de comandos, una función puede ejecutar cualquier comando que no sea más restrictivo que el nivel de permiso 2.

En el software multijugador predeterminado, una función puede ejecutar cualquier comando que no sea más restrictivo que el nivel de permiso prescrito en la configuración de nivel de permiso de función en server.properties.

Sintaxis de la función

Prueba del sistema de funciones. En esta sencilla función se utilizaron tres mensajes / tellraw y un comando / give.


Dentro del archivo .mcfunction, se coloca un comando válido por línea, sin la barra diagonal habitual (/). Los jugadores pueden agregar comentarios dentro del archivo de texto de la función comenzando una línea con #.


Los comandos individuales en funciones pueden ser más largos que el límite de 32,500 caracteres en bloques de comandos, pero el número total de comandos que se ejecutan dentro de una función seguirá obedeciendo / gamerule maxCommandChainLength, que es 65,536 comandos por defecto; se ignorarán los comandos que superen este límite.

Ejecutando una función

Las funciones ejecutarán todos sus comandos en un solo tick y las funciones llamadas desde dentro de otras funciones también ejecutarán sus comandos en el mismo tick que su padre. Las funciones usarán el entorno de comandos de lo que sea que se llame a la función. Esto incluye el remitente del comando, la posición, la rotación, etc. posición diferente. Por ejemplo:

ejecutar como @a en @s ejecutar función foo: bar

foo: bar

teletransportar @s ~ ~ 5 ~ setblock ~ ~ -1 ~ emerald_block ejecutar en @s ejecutar setblock ~ ~ -1 ~ diamond_block

Cuando se llama a través de un jugador, esta función teletransportará a ese jugador 5 bloques hacia arriba, colocará un bloque esmeralda un bloque debajo de su posición original antes del teletransporte y colocará un bloque de diamante un bloque debajo de su nueva posición después del teletransporte.

Como se ve en el ejemplo anterior, el contexto del comando se puede actualizar como de costumbre mediante sus respectivos subcomandos / ejecutar.


Se sugiere usar el selector de destino @s para la entidad que se usa con más frecuencia en una función y usar / ejecutar como cuando se llama a esa función para modificar la entidad ejecutora a la entidad que se usa con más frecuencia. Esto puede simplificar el contenido si la entidad se seleccionó con argumentos de selector de destino y mejorar el rendimiento en general para la iteración reducida a través de la lista mundial de entidades.


Hay varios métodos para ejecutar un archivo de función en el juego:

Comandos

/función
  • Permite a los jugadores ejecutar una función o todas las funciones en una etiqueta de función una vez.
  • Utiliza el entorno de comandos de lo que sea que se llame el comando / función.
  • El entorno de comando inicial puede ser modificado por el comando / execute.
  • Uso: / función

Avances

Los avances pueden ejecutar una función una vez como recompensa por completarlos. Los comandos de la función se ejecutan a través del jugador que completó el avance.

Las funciones de recompensa se llaman dentro de los archivos JSON de avance con el siguiente formato:

{"rewards": {"function": "namespace: path / to / function / file"}}

Etiquetas

Las funciones se pueden agrupar mediante etiquetas en paquetes de datos. Estas etiquetas se pueden llamar para ejecutar todas las funciones dentro de esa etiqueta con / function # (espacio de nombres) :( etiqueta).

Las funciones etiquetadas en tick ejecutarán automáticamente cada tick al comienzo del tick. Las funciones etiquetadas en carga se ejecutarán después de (re) cargar el paquete de datos.

  • Nota: la marca se ejecutará antes de la carga después de volver a cargar el paquete de datos. Esto significa que no puede confiar inherentemente en un estado estable del paquete de datos para el primer tick.

Historia

Edición Java
1.12pre1Funciones agregadas.
pre3Ya no se permite que los comandos comiencen con / (barra diagonal)
Los comentarios ahora solo pueden ir precedidos de #; usar // ya no está permitido
pre4Se agregaron nuevos argumentos al comando / función: [si | a menos que] [selector]
pre6Las funciones omitidas (cuando falla un condicional) ahora se consideran fallas cuando se usan en comandos.
1.1317w43aLas funciones personalizadas se han trasladado a paquetes de datos.
17w45aLas funciones ahora están completamente analizadas y almacenadas en caché durante la carga.
17w49bEliminado / gamerule gameLoopFunction.
Ahora se puede etiquetar la función.
Las funciones etiquetadas en tick ahora ejecutan cada tick al comienzo del tick.
18w01aLas funciones etiquetadas en carga ahora se ejecutan después de (re) cargar el paquete de datos.
1.14.4pre4Se agregó el nivel de permiso de función a server.properties

Temas

Los problemas relacionados con la "Función" se mantienen en el rastreador de errores. Informe los problemas allí.

  1. ↑ "Hasta que vainilla agregue algo con el mismo nombre, ¡entonces no funcionará para ti! O si alguien más tiene que trabajar con tus cosas, ¡entonces confuso!" - @Dinnerbone en Twitter, 21 de junio de 2017
Edición Java
versiones
  • Demo
    • Localizaciones
  • Demostración de jugador de PC (Beta 1.3)
Desarrollo
Historial de versiones
  • Preclásico
  • Clásico
    • Creatividad clásica temprana
    • Prueba multijugador
    • Prueba de supervivencia
    • Creativo del Clásico Tardío
  • Indev
  • Infdev
  • Alpha
  • Beta
  • Versión completa
  • Versiones de desarrollo
  • Funciones eliminadas
    • Bloques
    • artículos
  • Funciones no utilizadas
  • Características exclusivas
  • Funciones mencionadas
    • Dimensión del cielo
  • Versiones planificadas
Apoyo técnico
  • Errores conocidos
    • Plataforma de Minecraft
  • Requisitos de hardware
  • al_version
  • Entidad de bloque
  • Comandos
    • Las funciones clave
  • Accidentes
  • Valores de datos
    • Clásico
    • Indev
    • Pre-aplanamiento
  • Versión de datos
  • Pantalla de depuración
  • Formatear códigos
  • Códigos clave
  • Plataforma de Minecraft
  • Versión del protocolo
  • Ubicación del recurso
  • Captura de pantalla
  • Semilla
  • Estadística
  • garrapata
  • Fragmento de desove
  • Coordenadas
.Minecraft
  • client.jar
  • client.json
  • launcher_profiles.json
  • options.txt
Recursos de desarrollo
  • Formato de archivo de yunque
  • Formato de fragmentos
  • Formato de almacenamiento de comandos
  • Formato de estructuras generadas
  • Formato de nivel
  • Tablas de botín
  • Formato de elemento de mapa
  • Modelo
  • Formato NBT
  • Mapa de ofuscación
  • Formato del reproductor
  • formato raids.dat
  • Formato de texto JSON sin procesar
  • Formato de archivo de región
  • Formato de archivo de bloque de estructura
    • Formato de archivo esquemático
  • Formato de marcador
  • Formato de lista de servidores
  • sonidos.json
  • Subtítulos
  • formato village.dat
Recursos de desarrollo heredados
  • Formato de nivel clásico
  • Protocolo de servidor clásico
  • Formato de nivel indev
  • Formato de nivel alfa
  • server_level.dat
Multijugador
  • Servidor
  • Minecraft Reinos
  • Lista de servidores
  • server.properties
  • Requisitos del servidor
Personalización del juego
  • Skins
  • Capes
  • Paquetes de recursos
  • Paquetes de datos
Paquetes de datos
Componentes
  • Avances
  • Dimensiones
    • tipos
  • Generación mundial
  • Las funciones clave
  • Modificadores de elementos
  • Tablas de botín
  • Predicados
  • Recetas
  • estructuras
  • Etiquetas
Tutoriales
  • Instalación de un paquete de datos
  • Creando un paquete de datos


Añade un comentario de Función (edición Java)
¡Comentario enviado con éxito! Lo revisaremos en las próximas horas.