Proyecto

CLI y editores

Una herramienta, crafting, para instalar, crear un mod, comprobarlo y probarlo sin abrir el juego. Y un servidor de lenguaje que da a tu editor los mismos errores que verías al cargar el mod.

command not found: crafting. Después de compilar, el ejecutable está en crafting-cli/build/install/crafting/bin/crafting. Añade esa carpeta al PATH o enlázalo desde una que ya esté, por ejemplo ln -s "$PWD/crafting-cli/build/install/crafting/bin/crafting" /usr/local/bin/crafting.

Órdenes

Orden Qué hace
install --mc 26.3 [--dir DIR] Añade el perfil de Crafting al launcher oficial.
install --mc 26.3 --server DIR Prepara una carpeta de servidor con start-crafting.sh y .bat.
new <nombre> [--kind script|kotlin|plugin] Crea un mod nuevo.
check <archivo.craft>… Comprueba sintaxis y tipos.
sandbox [carpeta] Servidor simulado para probar mods sin el juego.
mods [carpeta] Lista los mods de una carpeta del juego y comprueba sus dependencias.
lsp Servidor de lenguaje para editores (lo lanza el editor).
version Versión de Crafting.

Crear un mod

Crea un mod ya repartido por responsabilidades, como recomienda Organizar un mod:

Orden 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 (solo conecta las partes), content/ModContent.kt, events/Welcome.kt, commands/GemCommand.kt, manifiesto y build.gradle.kts para Java 25
crafting new gems --kind plugin La clase de entrada, events/ChatFilter.kt y commands/HelloCommand.kt

Revisar un mod

Comprueba la sintaxis y los tipos de uno o varios archivos .craft, siguiendo sus imports. Cada error lleva archivo y línea, y una sugerencia cuando hay un nombre parecido. Termina con un código de salida distinto de cero si hay errores, así que sirve en integración continua.

Terminal
crafting check mods/rubies/main.craft

Probar en el sandbox

Un servidor simulado con la misma API que el juego. Carga los mods de <carpeta>/mods y <carpeta>/plugins en modo desarrollo: guardar un archivo recarga el mod.

Órdenes dentro del sandboxTexto
join <nombre>                 un jugador entra
leave <nombre>                sale
as <nombre> <chat o /comando> habla o ejecuta un comando como ese jugador
/<comando>                    comando como consola
break <nombre> <x> <y> <z>    rompe un bloque
tick [n]                      avanza n ticks
op <nombre>                   da permisos de operador
inv <nombre>                  muestra el inventario
reload <mod>                  recarga un script o plugin
quit                          sale

Editores

Todos usan el mismo servidor de lenguaje, crafting lsp, que corre el verificador real de CraftScript. Necesitan crafting en el PATH.

VS Code

La extensión de CraftScript tiene: resaltado (también de {interpolación} y de los colores &a dentro de los textos), errores mientras escribes, autocompletado con tipos (tras player., tras on, tras :, y de tus clases y módulos importados), información al pasar el ratón, fragmentos, y los comandos Check current file y Run sandbox server for this mod.

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

Si crafting no está en el PATH, indica su ruta en el ajuste 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 y JetBrains

Sublime Text: el paquete LSP con el comando ["crafting", "lsp"] para archivos .craft, y la gramática CraftScript.tmLanguage.json. JetBrains: el plugin LSP4IJ con el mismo comando, e importar la gramática como bundle TextMate. La gramática sirve en cualquier editor que lea archivos .tmLanguage.