NimBlock Accedi

Creare un plugin Minecraft senza programmare

Su un server Minecraft, tutto ciò che va oltre il gioco base passa da un plugin, e un plugin si scrive in Java. È il muro contro cui sbatte la maggior parte di chi gestisce un server: sa esattamente cosa vuole, e l'unica strada passa da un linguaggio, un progetto da compilare e un'API da imparare. Questa pagina spiega cosa si può fare senza, e soprattutto dove sono i limiti.

Il muro, e i tre modi noti per aggirarlo

Prima di NimBlock, chi non programma ha tre opzioni, e ognuna ha un confine netto che conviene conoscere prima di impegnarsi.

  • I blocchi di comando. Vivono nel mondo, in un punto preciso, e si attivano con la redstone o con un orologio. Non sanno reagire a un evento del server, e tanto meno impedirlo.
  • I datapack. Restano dentro i confini vanilla: funzioni, progressi, tabelle del bottino. Nessun vero comando, nessuna intercettazione della chat, nessun annullamento di un'azione. In cambio, funzionano su un server vanilla, senza Paper.
  • Skript. Molto più potente dei due precedenti, e più potente di NimBlock. È un vero linguaggio, quindi una sintassi da imparare e errori da decifrare.

Questi tre esistono da anni e nessuno è superato. Quello che mancava è il gradino tra il blocco di comando e il linguaggio.

Una regola, in una frase

Tutta la grammatica di NimBlock sta in una frase: quando succede questo, se queste condizioni sono vere, allora fai questo. Un plugin è un elenco di regole, una regola è un trigger, qualche condizione e qualche azione. Non c'è altro da imparare, ed è voluto: una grammatica che sta in una frase sta anche in testa.

Regola « benvenuto »
Quando un giocatore entra nella partita
se il giocatore ha il permesso nimblock.vip
allora invia « Benvenuto {giocatore} ! »
dai 1 pane
riproduci un suono di aumento di livello

Nell'editor sono blocchi che si incastrano tra loro: un blocco che non ha il diritto di andare in un certo punto non ci si incastra. E quello che l'editor lascia passare, il validatore lo riprende: una spec è accettata o rifiutata per intero, mai a metà. Un plugin di protezione privato della sua regola di protezione non si vedrebbe in gioco, ed è esattamente il tipo di guasto che non si vuole.

Cosa si può fare oggi

9 trigger, 8 condizioni, 14 azioni. L'elenco esatto, aggiornato e con il dettaglio di ogni parametro, vive sulla pagina della grammatica: è generato a partire dal catalogo, quindi non mente mai. In breve, cosa permettono:

  • Reagire a ciò che succede: una connessione, una disconnessione, un messaggio in chat, una morte, un blocco distrutto o posizionato, un comando che inventi tu, o semplicemente ogni N secondi.
  • Filtrare in base a un permesso, lo stato di operatore, il mondo, la salute, il contenuto di un testo, un confronto tra numeri, o una probabilità.
  • Agire: messaggi, titoli grandi, suoni, oggetti, effetti, cure, teletrasporti, annunci a tutto il server, esecuzione di un comando da console, e annullamento dell'evento appena accaduto. È quest'ultimo a trasformare l'elenco in vere protezioni.

Cosa non sostituisce

Una pagina che promette tutto non serve a nessuno. Quello che NimBlock non fa:

  • Nessuna nuova meccanica di gioco. Un nuovo tipo di blocco, un'entità inedita, un'interfaccia dell'inventario su misura: questo è Java, e lo resterà.
  • Nessuna variabile né ciclo. Una regola reagisce, non calcola. Se la tua idea richiede di memorizzare uno stato complesso tra due eventi, sei oltre questa grammatica.
  • Nessun plugin di terze parti. NimBlock esegue le tue spec, non carica un .jar scaricato altrove.
  • Un nuovo comando attende il prossimo riavvio. Il resto si applica a caldo, senza interrompere il server, ma Minecraft registra i suoi comandi all'avvio: lo dice il pannello nel momento in cui succede, invece di scoprirlo in gioco.

Dove viene eseguito il plugin

Da nessuna parte c'è Java generato e poi compilato. Il server carica un motore scritto una volta per tutti, e questo motore legge la tua spec. È questo che fa sì che un plugin composto qui non abbia debiti: quando Minecraft cambia, è il motore ad adattarsi, una volta sola, e non ognuno dei plugin scritti con esso.

Su un server NimBlock, l'installazione richiede un clic e il plugin arriva senza interrompere la partita. Il motore, invece, sarà pubblicato nei cataloghi di plugin, così che la stessa spec possa girare su un server che non è ospitato qui.

Domande frequenti

Si può davvero creare un plugin Minecraft senza saper programmare?
Sì, a una condizione: componi regole dentro una grammatica data, non scrivi un programma qualsiasi. Una regola dice "quando succede questo, se queste condizioni sono vere, allora fai questo". Quasi tutto ciò che un server tra amici richiede rientra in questa forma: messaggi di benvenuto, ricompense, protezioni, annunci, comandi personalizzati. Quello che non ci rientra è ciò che richiede di inventare un'intera meccanica di gioco, e lì serve ancora Java.
In cosa si differenzia dai blocchi di comando?
I blocchi di comando vivono nel mondo, in un punto preciso, e si attivano con la redstone o con un orologio. Un plugin si attiva su un evento del server: un giocatore che si connette, un blocco distrutto, un messaggio in chat. Quello che i blocchi di comando non sanno fare è reagire a ciò che succede, e soprattutto impedire che succeda. Una regola NimBlock può annullare l'evento appena accaduto.
E rispetto a un datapack?
Un datapack resta dentro i confini del gioco vanilla: funzioni, progressi, tabelle del bottino. Non può aggiungere un vero comando, né intercettare la chat, né annullare un'azione. Un plugin Paper sì, perché gira nel server, non nei dati del mondo. In cambio, un datapack funziona su un server vanilla, mentre un plugin richiede Paper o Spigot.
E rispetto a Skript?
Skript è l'antenato del genere ed è più potente, senza alcun paragone possibile: è un vero linguaggio, con variabili, cicli e un'enorme libreria di estensioni. Essendo un linguaggio, però, comporta anche una sintassi da imparare, errori da interpretare e un file che non dice dove si è rotto. NimBlock fa molto meno, ma rifiuta una regola non valida prima di salvarla e ti mostra il punto esatto del problema sul blocco interessato. Se te la cavi bene con Skript, resta su Skript.
Il plugin viene compilato in Java da qualche parte?
No, ed è la scelta centrale del prodotto. La tua spec resta un file JSON, e il server carica un motore scritto una volta per tutti che la legge e la esegue. Niente viene generato, niente viene compilato. Conseguenza pratica: una nuova versione di Minecraft si paga una volta in questo motore, non in ognuno dei plugin scritti con esso.
Si può portare il plugin su un server che non è ospitato da NimBlock?
È previsto, e il motore che legge le spec sarà pubblicato nei cataloghi di plugin. Una spec è un normale file JSON: il motore la legge dalla cartella dei plugin del server. Non è ancora online nel momento in cui questa pagina viene scritta.

Componi la tua prima regola, e guardala girare su un server che esiste già.

Gratis durante la beta · un server da 1 GB per account