Projekt

CLI i edytory

Jedno narzędzie, crafting, do instalacji, tworzenia moda, sprawdzania go i testowania bez otwierania gry. Do tego serwer języka, który daje twojemu edytorowi te same błędy, które zobaczysz przy wczytywaniu moda.

command not found: crafting. Po zbudowaniu plik wykonywalny znajduje się w crafting-cli/build/install/crafting/bin/crafting. Dodaj ten folder do PATH albo utwórz do niego dowiązanie z folderu, który już tam jest, na przykład ln -s "$PWD/crafting-cli/build/install/crafting/bin/crafting" /usr/local/bin/crafting.

Polecenia

Polecenie Co robi
install --mc 26.3 [--dir DIR] Dodaje profil Craftingu do oficjalnego launchera.
install --mc 26.3 --server DIR Przygotowuje folder serwera ze start-crafting.sh i .bat.
new <name> [--kind script|kotlin|plugin] Tworzy nowy mod.
check <file.craft>… Sprawdza składnię i typy.
sandbox [folder] Symulowany serwer do testowania modów bez gry.
mods [folder] Wyświetla mody w folderze gry i sprawdza ich zależności.
lsp Serwer języka dla edytorów (uruchamia go edytor).
version Wersja Craftingu.

Tworzenie moda

Tworzy mod od razu podzielony według zadań, tak jak zaleca Porządkowanie moda:

Polecenie Tworzy
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 (tylko łączy części), content/ModContent.kt, events/Welcome.kt, commands/GemCommand.kt, manifest i build.gradle.kts dla Javy 25
crafting new gems --kind plugin Klasę wejściową, events/ChatFilter.kt i commands/HelloCommand.kt

Sprawdzanie moda

Sprawdza składnię i typy jednego lub kilku plików .craft, podążając za ich importami. Każdy błąd zawiera plik i wiersz, a do tego podpowiedź, gdy istnieje podobna nazwa. Kończy się kodem różnym od zera, jeśli są błędy, więc możesz go używać w ciągłej integracji.

Terminal
crafting check mods/rubies/main.craft

Testy w piaskownicy

Symulowany serwer z tym samym API co gra. Wczytuje mody z <folder>/mods i <folder>/plugins w trybie deweloperskim: zapisanie pliku przeładowuje mod.

Polecenia w sandboksieTekst
join <name>                   gracz dołącza
leave <name>                  wychodzi
as <name> <chat or /command>  pisze na czacie lub wykonuje polecenie jako ten gracz
/<command>                    polecenie jako konsola
break <name> <x> <y> <z>      niszczy blok
tick [n]                      przesuwa czas o n ticków
op <name>                     nadaje uprawnienia operatora
inv <name>                    pokazuje ekwipunek
reload <mod>                  przeładowuje skrypt lub wtyczkę
quit                          wyjście

Edytory

Wszystkie używają tego samego serwera języka, crafting lsp, który uruchamia prawdziwą sprawdzarkę CraftScript. Potrzebują crafting w PATH.

VS Code

Rozszerzenie CraftScript zapewnia: podświetlanie składni (w tym {interpolation} i kolorów &a w napisach), błędy w trakcie pisania, typowane podpowiedzi (po player., po on, po : oraz dla twoich klas i importowanych modułów), informacje po najechaniu, fragmenty kodu oraz polecenia Check current file i 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

Jeśli crafting nie ma w PATH, ustaw jego ścieżkę w ustawieniu 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 i JetBrains

Sublime Text: pakiet LSP z poleceniem ["crafting", "lsp"] dla plików .craft i gramatyka CraftScript.tmLanguage.json. JetBrains: wtyczka LSP4IJ z tym samym poleceniem; gramatykę zaimportuj jako pakiet TextMate. Gramatyka działa w każdym edytorze, który czyta pliki .tmLanguage.