はじめに

はじめての Mod

アイテム、ブロック、レシピ、あいさつ、コマンド。最初から小さなファイルに分かれています。ゲームを開かずに、シミュレーションのサーバーでテストします。

1. Mod を作る

ターミナル
crafting new gems
作成されるものテキスト
gems/
├── main.craft
├── content/
│   ├── items.craft
│   ├── blocks.craft
│   └── recipes.craft
├── events/
│   └── welcome.craft
└── commands/
    └── gem.craft

main.craft は、Mod が何で、どんな部分を持つかだけを書きます。コンテンツは content/ に、振る舞いは events/ と commands/ に置きます。この構成の理由は Mod の整理 を参照してください。VS Code 拡張機能を使うと、入力しながらエラー表示と補完が得られます。

2. ファイル

gems/main.craftCraftScript
mod "gems" { name: "gems", version: "1.0.0", author: "you" }

// 存在するもの
import "content/items"
import "content/blocks"
import "content/recipes"

// 起きること
import "events/welcome"
import "commands/gem"
gems/content/items.craftCraftScript
item "magic_gem" { rarity: "rare", glint: true }
gems/content/blocks.craftCraftScript
block "magic_block" {
    hardness: 3
    light: 10
    tool: "pickaxe"
    drops: "magic_gem"
}
gems/content/recipes.craftCraftScript
recipe shaped "magic_block" {
    pattern: ["GGG", "GGG", "GGG"]
    keys: { G: "magic_gem" }
    result: "magic_block"
}
gems/events/welcome.craftCraftScript
on join(e) {
    e.player.send("&aようこそ、{e.player.name}!")
}
gems/commands/gem.craftCraftScript
command gem(target: player?) requires "gems.gem" {
    let p = target ?? player
    p.give(item("gems:magic_gem", 1))
    return "{p.name} に魔法の宝石を渡しました"
}

3. チェックする

ターミナル
crafting check gems/main.craft

チェッカーはインポートをたどります。問題があれば、ファイル、行、期待していたものを示します。たとえば welcome.craft:2: error: Player has no property 'helth'. Did you mean 'health'? のように。

4. ゲームなしでテストする

サンドボックスは、本物のゲームと同じ API を持つシミュレーションのサーバーです。開発モードで起動するので、ファイルを保存すると Mod が再読み込みされます。

ターミナル
mkdir -p test/mods && cp -r gems test/mods/
crafting sandbox test
セッションテキスト
> join Steve
  [Steve] ようこそ、Steve!
> op Steve
> as Steve /gem
  [Steve] Steve に魔法の宝石を渡しました
> inv Steve
  1x gems:magic_gem
> quit

5. 遊ぶ

gems フォルダーを .minecraft/mods/ にコピーし、Crafting 26.3 の起動構成を開きます。アイテムのテクスチャは gems/textures/item/magic_gem.png に、ブロックのテクスチャは gems/textures/block/magic_block.png に置きます。サーバーでは、この Mod はブロックを追加するので、サーバーとすべてのクライアントに入れます。

6. 育てる

新しいアイデアはそれぞれの場所へ。別のアイテムは content/items.craft に、新しいゲームルールは events/ の新しいファイルに、複数のファイルで使う関数は lib/ に、設定は settings.craft に。完全なサンプル Mod は Mod の整理 にあります。