プロジェクト
CLI とエディター
インストール、Mod の作成、チェック、ゲームを開かないテストまでを 1 つのツール crafting で。さらに、Mod を読み込んだときと同じエラーをエディターに表示する言語サーバーもあります。
command not found: crafting。ビルド後、実行ファイルは crafting-cli/build/install/crafting/bin/crafting にあります。このフォルダーを PATH に追加するか、すでにパスが通っているフォルダーからリンクしてください。たとえば ln -s "$PWD/crafting-cli/build/install/crafting/bin/crafting" /usr/local/bin/crafting。
コマンド
| コマンド | 内容 |
|---|---|
install --mc 26.3 [--dir DIR] |
公式ランチャーに Crafting の起動構成を追加します。 |
install --mc 26.3 --server DIR |
start-crafting.sh と .bat を備えたサーバーフォルダーを用意します。 |
new <name> [--kind script|kotlin|plugin] |
新しい Mod を作成します。 |
check <file.craft>… |
構文と型をチェックします。 |
sandbox [folder] |
ゲームなしで Mod をテストするための、シミュレーションのサーバー。 |
mods [folder] |
ゲームフォルダー内の Mod を一覧表示し、依存関係をチェックします。 |
lsp |
エディター用の言語サーバー(エディターが起動します)。 |
version |
Crafting のバージョン。 |
Mod を作る
Mod の整理 で推奨しているとおり、最初から責務ごとに分かれた Mod を作成します。
| コマンド | 作成されるもの |
|---|---|
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(各部分をつなぐだけ)、content/ModContent.kt、events/Welcome.kt、commands/GemCommand.kt、マニフェスト、Java 25 用の build.gradle.kts |
crafting new gems --kind plugin |
エントリークラス、events/ChatFilter.kt、commands/HelloCommand.kt |
Mod をチェックする
1 つ以上の .craft ファイルの構文と型を、インポートをたどりながらチェックします。各エラーにはファイルと行が含まれ、似た名前があれば候補も示されます。エラーがあると 0 以外の終了コードで終わるので、継続的インテグレーションでも使えます。
crafting check mods/rubies/main.craftサンドボックスで試す
ゲームと同じ API を持つシミュレーションのサーバーです。<folder>/mods と <folder>/plugins の Mod を開発モードで読み込みます。ファイルを保存すると Mod が再読み込みされます。
join <name> プレイヤーが参加する
leave <name> 退出する
as <name> <chat or /command> そのプレイヤーとしてチャットまたはコマンドを実行
/<command> コンソールとしてコマンドを実行
break <name> <x> <y> <z> ブロックを壊す
tick [n] n ティック進める
op <name> オペレーター権限を与える
inv <name> インベントリを表示する
reload <mod> スクリプトかプラグインを再読み込みする
quit 終了するエディター
どのエディターも同じ言語サーバー crafting lsp を使い、本物の CraftScript チェッカーを実行します。PATH に crafting が必要です。
VS Code
CraftScript 拡張機能が提供するもの:ハイライト(文字列内の {interpolation} と &a の色を含む)、入力中のエラー表示、型に基づく補完(player. の後、on の後、: の後、自分のクラスやインポートしたモジュール)、ホバー情報、スニペット、そして Check current file と 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.vsixcrafting が PATH にない場合は、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 と JetBrains
Sublime Text:LSP パッケージで .craft ファイルにコマンド ["crafting", "lsp"] を設定し、CraftScript.tmLanguage.json の文法を使います。JetBrains:LSP4IJ プラグインで同じコマンドを設定し、文法を TextMate バンドルとしてインポートします。この文法は .tmLanguage ファイルを読めるどのエディターでも使えます。