Crear un plugin de Minecraft sin programar
En un servidor de Minecraft, todo lo que va más allá del juego base pasa por un plugin, y un plugin se escribe en Java. Ese es el muro con el que se topa la mayoría de quienes llevan un servidor: saben exactamente lo que quieren, y el único camino pasa por un lenguaje, un proyecto que compilar y una API que aprender. Esta página explica qué se puede hacer sin eso, y sobre todo dónde están los límites.
El muro, y las tres formas conocidas de rodearlo
Antes de NimBlock, quien no programa tiene tres opciones, y cada una tiene un límite claro que conviene conocer antes de decidirse por ella.
- Los bloques de comandos. Viven en el mundo, en un punto concreto, y se activan por redstone o por reloj. No saben reaccionar a un evento del servidor, y mucho menos impedirlo.
- Los datapacks. Se quedan dentro del marco vanilla: funciones, logros, tablas de botín. Sin comando real, sin interceptar el chat, sin cancelar acciones. A cambio, funcionan en un servidor vanilla, sin Paper.
- Skript. Mucho más potente que los dos anteriores, y más potente que NimBlock. Es un lenguaje de verdad, así que hay una sintaxis que aprender y errores que descifrar.
Los tres llevan años ahí y ninguno está superado. Lo que faltaba era el escalón entre el bloque de comandos y el lenguaje.
Una regla, en una frase
Toda la gramática de NimBlock cabe en una frase: cuando esto ocurre, si se cumplen estas condiciones, entonces haz esto. Un plugin es una lista de reglas, una regla es un disparador, unas cuantas condiciones y unas cuantas acciones. No hay nada más que aprender, y es intencionado: una gramática que cabe en una frase también cabe en la cabeza.
En el editor son bloques que encajan entre sí: un bloque que no puede ir en un sitio no encaja ahí. Y lo que el editor deja pasar, lo retoma el validador: una spec se acepta o se rechaza por completo, nunca a medias. Un plugin de protección al que le falte su regla de protección no se notaría en el juego, y ese es exactamente el tipo de fallo que nadie quiere.
Lo que se puede hacer hoy
9 disparadores, 8 condiciones, 14 acciones. La lista exacta, al día y con el detalle de cada parámetro, vive en la página de gramática: se genera a partir del catálogo, así que nunca miente. Resumiendo lo que permiten:
- Reaccionar a lo que pasa: una conexión, una desconexión, un mensaje en el chat, una muerte, un bloque roto o colocado, un comando que inventas, o simplemente cada N segundos.
- Filtrar por un permiso, el estado de operador, el mundo, los puntos de vida, el contenido de un texto, una comparación de números, o una probabilidad.
- Actuar: mensajes, títulos grandes, sonidos, objetos, efectos, curación, teletransportes, anuncios a todo el servidor, ejecución de un comando de consola, y cancelación del evento que acaba de ocurrir. Esta última es la que convierte la lista en protecciones de verdad.
Lo que esto no sustituye
Una página que promete todo no le sirve a nadie. Lo que NimBlock no hace:
- Ninguna mecánica de juego nueva. Un nuevo tipo de bloque, una entidad inédita, una interfaz de inventario a medida: eso es Java, y lo seguirá siendo.
- Sin variables ni bucles. Una regla reacciona, no calcula. Si tu idea necesita guardar un estado complejo entre dos eventos, estás más allá de esta gramática.
- Sin plugins de terceros. NimBlock ejecuta tus specs, no carga un .jar descargado de otro sitio.
- Un comando nuevo espera al próximo reinicio. El resto se aplica en caliente, sin cortar el servidor, pero Minecraft registra sus comandos al arrancar: el panel lo indica en el momento en que ocurre, en lugar de que lo descubras jugando.
Dónde se ejecuta el plugin
En ningún sitio se genera Java para luego compilarlo. El servidor carga un motor escrito una sola vez para todos, y ese motor lee tu spec. Por eso un plugin compuesto aquí no arrastra deuda: cuando Minecraft cambia, es el motor el que se adapta, una vez, y no cada uno de los plugins escritos con él.
En un servidor de NimBlock, la instalación lleva un clic y el plugin llega sin cortar la partida. El motor, por su parte, se publicará en los catálogos de plugins, para que la misma spec funcione en un servidor que no esté alojado aquí.
Preguntas frecuentes
- ¿Se puede hacer de verdad un plugin de Minecraft sin saber programar?
- Sí, con una condición: compones reglas dentro de una gramática dada, no escribes un programa cualquiera. Una regla dice «cuando esto ocurre, si se cumplen estas condiciones, entonces haz esto». Casi todo lo que pide un servidor entre amigos encaja en esa forma: mensajes de bienvenida, recompensas, protecciones, anuncios, comandos propios. Lo que no encaja es lo que exige inventar toda una mecánica de juego, y ahí hace falta Java.
- ¿En qué se diferencia de los bloques de comandos?
- Los bloques de comandos viven en el mundo, en un punto concreto, y se activan por redstone o por reloj. Un plugin se activa por un evento del servidor: un jugador que se conecta, un bloque roto, un mensaje en el chat. Lo que los bloques de comandos no saben hacer es reaccionar a lo que ocurre, y menos aún impedirlo. Una regla de NimBlock puede cancelar el evento que acaba de suceder.
- ¿Y comparado con un datapack?
- Un datapack se queda dentro del marco vanilla: funciones, logros, tablas de botín. No puede añadir un comando real, ni interceptar el chat, ni cancelar una acción. Un plugin de Paper sí puede, porque se ejecuta dentro del servidor y no en los datos del mundo. A cambio, un datapack funciona en un servidor vanilla, mientras que un plugin necesita Paper o Spigot.
- ¿Y comparado con Skript?
- Skript es el precursor del género y es más potente, sin comparación posible: es un lenguaje de verdad, con variables, bucles y una enorme biblioteca de extensiones. También es un lenguaje, así que hay una sintaxis que aprender, errores que leer y un archivo que no dice dónde se rompió. NimBlock hace mucho menos, pero rechaza una regla no válida antes de guardarla y te señala el punto exacto del problema en el bloque implicado. Si te manejas bien con Skript, quédate con Skript.
- ¿El plugin se compila a Java en algún momento?
- No, y esa es la decisión central del producto. Tu spec sigue siendo un archivo JSON, y el servidor carga un motor escrito una sola vez para todos que la lee y la ejecuta. No se genera nada, no se compila nada. Consecuencia práctica: una nueva versión de Minecraft se paga una vez en ese motor, no en cada uno de los plugins escritos con él.
- ¿Se puede llevar el plugin a un servidor que no esté en NimBlock?
- Está previsto, y el motor que lee las specs se publicará en los catálogos de plugins. Una spec es un archivo JSON normal: el motor la lee desde la carpeta de plugins del servidor. Todavía no está disponible en el momento en que se escribe esta página.
Compón tu primera regla, y míralo funcionar en un servidor que ya existe.
Gratis durante la beta · un servidor de 1 GB por cuenta