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.
crafting check mods/rubies/main.craftTesty 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.
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ścieEdytory
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.
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.vsixJeśli crafting nie ma w PATH, ustaw jego ścieżkę w ustawieniu craftscript.craftingPath.
Neovim 0.11+
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
[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.