Progetto

CLI ed editor

Un solo strumento, crafting, per installare, creare una mod, controllarla e provarla senza aprire il gioco. E un language server che dà al tuo editor gli stessi errori che vedresti caricando la mod.

command not found: crafting. Dopo la compilazione, l’eseguibile si trova in crafting-cli/build/install/crafting/bin/crafting. Aggiungi quella cartella al tuo PATH o crea un link da una cartella che ci sia già, per esempio ln -s "$PWD/crafting-cli/build/install/crafting/bin/crafting" /usr/local/bin/crafting.

Comandi

Comando Cosa fa
install --mc 26.3 [--dir DIR] Aggiunge il profilo di Crafting al launcher ufficiale.
install --mc 26.3 --server DIR Prepara una cartella server con start-crafting.sh e .bat.
new <name> [--kind script|kotlin|plugin] Crea una nuova mod.
check <file.craft>… Controlla sintassi e tipi.
sandbox [folder] Server simulato per provare le mod senza il gioco.
mods [folder] Elenca le mod in una cartella del gioco e ne controlla le dipendenze.
lsp Language server per gli editor (lo avvia l’editor).
version Versione di Crafting.

Creare una mod

Crea una mod già divisa per responsabilità, come consigliato in Organizzare una mod:

Comando Crea
crafting new gems main.craft, content/items.craft, content/blocks.craft, content/recipes.craft, events/welcome.craft, commands/gem.craft
crafting new gems --kind kotlin GemsMod.kt (si limita a collegare le parti), content/ModContent.kt, events/Welcome.kt, commands/GemCommand.kt, un manifest e build.gradle.kts per Java 25
crafting new gems --kind plugin La classe di ingresso, events/ChatFilter.kt e commands/HelloCommand.kt

Controllare una mod

Controlla la sintassi e i tipi di uno o più file .craft, seguendone gli import. Ogni errore include il file e la riga, più un suggerimento quando esiste un nome simile. Termina con un codice diverso da zero se ci sono errori, così puoi usarlo nell’integrazione continua.

Terminale
crafting check mods/rubies/main.craft

Provare nella sandbox

Un server simulato con la stessa API del gioco. Carica le mod in <cartella>/mods e <cartella>/plugins in modalità sviluppo: salvare un file ricarica la mod.

Comandi dentro la sandboxTesto
join <name>                   entra un giocatore
leave <name>                  esce
as <name> <chat or /command>  scrive in chat o esegue un comando come quel giocatore
/<command>                    comando come la console
break <name> <x> <y> <z>      rompe un blocco
tick [n]                      avanza di n tick
op <name>                     concede i permessi da operatore
inv <name>                    mostra l’inventario
reload <mod>                  ricarica uno script o un plugin
quit                          esce dalla sandbox

Editor

Usano tutti lo stesso language server, crafting lsp, che esegue il vero controllo di CraftScript. Hanno bisogno di crafting nel PATH.

VS Code

L’estensione CraftScript offre: evidenziazione della sintassi (compresi {interpolation} e i colori &a dentro le stringhe), errori mentre scrivi, completamento automatico tipizzato (dopo player., dopo on, dopo :, e per le tue classi e i moduli importati), informazioni al passaggio del mouse, snippet e i comandi Check current file e Run sandbox server for this mod.

Terminale
git clone <extension-repository> craftscript-vscode && cd craftscript-vscode
npm install --omit=dev
npx @vscode/vsce package --allow-missing-repository
code --install-extension craftscript-0.1.0.vsix

Se crafting non è nel PATH, imposta il suo percorso nell’impostazione craftscript.craftingPath.

Neovim 0.11+

~/.config/nvim/plugin/craftscript.luaLua
vim.filetype.add({ extension = { craft = "craftscript" } })

vim.lsp.config("craftscript", {
  cmd = { "crafting", "lsp" },
  filetypes = { "craftscript" },
  root_markers = { "main.craft", ".git" },
})
vim.lsp.enable("craftscript")

Helix

~/.config/helix/languages.tomlTOML
[language-server.craftscript]
command = "crafting"
args = ["lsp"]

[[language]]
name = "craftscript"
scope = "source.craftscript"
file-types = ["craft"]
roots = ["main.craft"]
comment-token = "//"
indent = { tab-width = 4, unit = "    " }
language-servers = ["craftscript"]

Sublime Text e JetBrains

Sublime Text: il pacchetto LSP con il comando ["crafting", "lsp"] per i file .craft, e la grammatica CraftScript.tmLanguage.json. JetBrains: il plugin LSP4IJ con lo stesso comando, e importa la grammatica come bundle TextMate. La grammatica funziona in qualsiasi editor che legga file .tmLanguage.