Proyekto

CLI at mga editor

Isang tool, crafting, para mag-install, gumawa ng mod, i-check ito at subukan ito nang hindi binubuksan ang laro. At isang language server na nagbibigay sa editor mo ng parehong mga error na makikita mo kapag nilo-load ang mod.

command not found: crafting. Pagkatapos mag-build, nasa crafting-cli/build/install/crafting/bin/crafting ang executable. Idagdag ang folder na iyon sa PATH mo o i-link ito mula sa folder na nasa PATH na, halimbawa ln -s "$PWD/crafting-cli/build/install/crafting/bin/crafting" /usr/local/bin/crafting.

Mga utos

Utos Ano ang ginagawa nito
install --mc 26.3 [--dir DIR] Idinadagdag ang profile ng Crafting sa opisyal na launcher.
install --mc 26.3 --server DIR Inihahanda ang folder ng server na may start-crafting.sh at .bat.
new <name> [--kind script|kotlin|plugin] Gumagawa ng bagong mod.
check <file.craft>… Tinitingnan ang syntax at mga type.
sandbox [folder] Simulated na server para subukan ang mga mod nang walang laro.
mods [folder] Inililista ang mga mod sa isang folder ng laro at tinitingnan ang mga dependency nila.
lsp Language server para sa mga editor (ang editor ang nagpapatakbo nito).
version Bersyon ng Crafting.

Gumawa ng mod

Gumagawa ng mod na nakahati na ayon sa responsibilidad, gaya ng inirerekomenda sa Pag-aayos ng mod:

Utos Ginagawa
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 (nagkakabit lang ng mga bahagi), content/ModContent.kt, events/Welcome.kt, commands/GemCommand.kt, isang manifest at build.gradle.kts para sa Java 25
crafting new gems --kind plugin Ang entry class, events/ChatFilter.kt at commands/HelloCommand.kt

Suriin ang mod

Tinitingnan ang syntax at mga type ng isa o higit pang .craft file, sinusundan ang mga import nila. Kasama sa bawat error ang file at linya, at mungkahi kapag may kahawig na pangalan. Lumalabas ito nang may non-zero na code kung may error, kaya magagamit mo ito sa continuous integration.

Terminal
crafting check mods/rubies/main.craft

Subukan sa sandbox

Isang simulated na server na may parehong API ng laro. Nilo-load nito ang mga mod sa <folder>/mods at <folder>/plugins sa development mode: nire-reload ng pag-save ng file ang mod.

Mga command sa loob ng sandboxText
join <name>                   pumapasok ang isang player
leave <name>                  umaalis
as <name> <chat or /command>  mag-chat o magpatakbo ng command bilang player na iyon
/<command>                    command bilang console
break <name> <x> <y> <z>      sirain ang isang block
tick [n]                      umusad nang n tick
op <name>                     magbigay ng permission ng operator
inv <name>                    ipakita ang inventory
reload <mod>                  i-reload ang isang script o plugin
quit                          lumabas

Mga editor

Iisang language server ang ginagamit nilang lahat, crafting lsp, na nagpapatakbo ng totoong checker ng CraftScript. Kailangan nilang nasa PATH ang crafting.

VS Code

Nagbibigay ang CraftScript extension ng: highlighting (pati ang {interpolation} at mga kulay na &a sa loob ng string), mga error habang nagta-type ka, typed na autocompletion (pagkatapos ng player., pagkatapos ng on, pagkatapos ng :, at para sa mga class mo at mga na-import na module), impormasyon kapag nag-hover, mga snippet, at ang mga command na Check current file at Run sandbox server for this mod.

Terminal
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

Kung wala sa PATH ang crafting, itakda ang path nito sa setting na 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 at JetBrains

Sublime Text: ang package na LSP na may command na ["crafting", "lsp"] para sa mga .craft file, at ang grammar na CraftScript.tmLanguage.json. JetBrains: ang plugin na LSP4IJ na may parehong command, at i-import ang grammar bilang TextMate bundle. Gumagana ang grammar sa anumang editor na nagbabasa ng mga .tmLanguage file.