「サーバーMOD/CraftBukkit/Bukkitプラグイン/YAMLファイル」の編集履歴(バックアップ)一覧はこちら

サーバーMOD/CraftBukkit/Bukkitプラグイン/YAMLファイル」の最新版変更点

追加された行は青色になります。

削除された行は赤色になります。

 ----
 目次
 #contents
 ----
 *YAMLファイルについて
 Bukkitプラグインの設定ファイルはYAML形式(拡張子.ymlのファイル)で作られていることがかなり多いです。 各プラグインの解説ページに毎回解説を書くわけにもいきませんので、ここで一括して説明します。
 
 また、YAMLファイルはテキストエディタで開いて編集します。 Windowsの場合メモ帳でもかまいませんが、文字コードの関係上Bukkitの設定をする際は常にTeraPadなどのUTF-8対応エディタで開くことをお勧めします。 Macの方は標準のテキストエディットでも問題ありません。
 
 *注意点
 - タブ文字は使用しない事。
 - 字下げは全て半角スペースで行う事。(半角スペース2つ以上であれば、スペースの個数はいくつでも構いませんが、一般的に「スペース2つ」を使うことが多いのでそれに合わせることをお勧めします。)
 - 各項目を設定する設定名と:(コロン)の後に値を入力しますが、必ず:(コロン)の後には1つ以上のスペースを置く事
 
 *基本的な書き方
 まず、次のような例を見てみましょう。
  # この行はコメントになります。
  name: steve
  description: '彼はマインクラフトのアイドル的存在だ。'
  amount: 5
  isAlive: true
 1行目は、コメント行です。このように、最初に半角のシャープ「#」を入れることで、コメント行にすることが可能です。
 2行目は、nameというキー名で、steveという文字列値を割り当てしています。
 3行目も同様に、descriptionというキー名で文字列を割り当てていますが、このようにシングルクォート「'」で囲むこともできます。
 この場合の値は「彼はマインクラフトのアイドル的存在だ。」のような文字列が割り当てされます。
 マルチバイト文字(全角文字)や、「&」などYamlにとって特殊な意味を持つ文字を文字列値の中に使いたいときは、必ずシングルクォーテーョンで囲むようにしてください。
 4行目は、amountというキー名で、5という数字を割り当てしています。
 5行目は、isAliveというキー名で、trueという真偽値を割り当てしています。
 
 *リストの書き方
 次に、文字列リストの書き方を見てみましょう。書き方は2種類あります。
  items:
  - IRON_SWORD
  - GRILLED_PORK
  - BREAD
  armors: [LEATHER_BOOTS, LEATHER_LEGGINGS, LEATHER_CHESTPLATE, LEATHER_HELMET]
 最初のitemsキーの方のリストは、ブロック形式でリストを指定しています。
 itemsキーに、IRON_SWORD、GRILLED_PORK、BREAD という3つの文字列を配列としてまとめて設定しています。
 1つの要素ごとに、ハイフンと半角空白「- 」ではじめて、改行を入れる必要が有ることに注意してください。
 
 次のarmorsキーの方のリストは、インライン形式(フロー形式とも呼ばれます)でリストを指定しています。
 armorsキーに、LEATHER_BOOTS、LEATHER_LEGGINGS、LEATHER_CHESTPLATE、LEATHER_HELMET という4つの文字列を配列としてまとめて設定しています。
 要素ごとに、コロン「,」で分けてください。また、全体を中カッコ「[」と「]」で囲む必要があります。
 
 ブロック形式でも、インライン形式でも、どちらも文字列リストになりますので、どちらの形式を使っても構いません。
 
 また、繰り返しになりますが、マルチバイト文字や「&」を文字列の中に使いたいときは、シングルクォート「'」で囲むことを忘れないで下さい。
 シングルクォートで囲んだ例:
  items:
  - 'IRON_SWORD'
  - 'GRILLED_PORK'
  - 'BREAD'
  armors: ['LEATHER_BOOTS', 'LEATHER_LEGGINGS', 'LEATHER_CHESTPLATE', 'LEATHER_HELMET']
 
 *ハッシュの書き方
 次に、ハッシュの書き方を見てみましょう。こちらも同様に、ブロック形式とインライン形式があり、どちらでも書けます。
-effects:
-  SPEED: 1
-  INCREASE_DAMAGE: 2
-  JUMP: 3
-enchants: [ARROW_DAMAGE: 4, ARROW_KNOCKBACK: 5]
+ effects:
+   SPEED: 1
+   INCREASE_DAMAGE: 2
+   JUMP: 3
+ enchants: [ARROW_DAMAGE: 4, ARROW_KNOCKBACK: 5]
 effectsキーの中にSPEEDキーがあり、その数値が1であることを示しています。
 同様に、effectsの中のINCREASE_DAMAGEキーが2、effectsの中のJUMPキーが3であることを示しています。
 ブロック形式で書くときは、子供の要素は、スペース2つで始めて(厳密には、2つ以上入れれば良い)、最後に改行を入れてください。
 
 下の例では、enchantsの中のARROW_DAMAGEキーが4、enchantsの中のARROW_KNOCKBACKキーが5であることを示しています。
 区切り文字のコロン「,」を入れ忘れないように注意してください。
 
 *複数行文字列の書き方
 複数行に渡る文字列を指定したいとき(文字列値の中に改行を含めたいとき)の例を見てみましょう。
  data: |
    There was a young fellow of Warwick
    Who had reason for feeling euphoric
      For he could, by election
      Have triune erection
    Ionic, Corinthian, and Doric
 この例では、dataというキーに
  There was a young fellow of Warwick
  Who had reason for feeling euphoric
  For he could, by election
  Have triune erection
  Ionic, Corinthian, and Doric
 という文字列値を割り当てています。
 キーを指定した後に、パイプ「|」を指定して、改行した後、スペース2つから始めて改行し、連続して要素を書き込めば、改行付きの文字列値として認識されます。
 
 *ハッシュの入れ子の書き方
 今までの内容の総復習として、ハッシュの入れ子を使った複雑な書き方を示します。
  items:
    sword:
      material: IRON_SWORD
      display_name: '伝説の剣エクスカリパー'
      lores: |
            この剣は、伝説の剣
            その名も、エクスカリパーである。
      enchants:
        DAMAGE_ALL: 5
        KNOCKBACK: 5
      durability: 1
    pork:
      material: GRILLED_PORK
      amount: 15
    bricks_slab: [material: STEP, amount: 64, data: 4]
 ここで注意して欲しいところは、キー&値のセットと、ハッシュを、混ぜて使用しないようにすることです。
 例えば、次の例は誤ったYAML形式です。
  items:
    sword: '剣です!'
      material: IRON_SWORD
      display_name: '伝説の剣エクスカリパー'
 sword は、ハッシュとしての子要素 material、display_name が存在しているにもかかわらず、sword に対して文字列値が与えられています。
 そのため、sword は文字列のデータを示すのか、ハッシュのデータを示すのか、曖昧であり、YAMLを読み込むとエラーになってしまいます。
 
 *YAMLファイルのエラー
  ERROR: while scanning for the next token found character '\t' that cannot start any token in "<unicode string>", line 3, column 1: default: true ^
 
 プラグインが読み込まれる時に上記のようなエラーがあればそれはYAMLファイルの構文に失敗しているということです。このエラーは'\t'の部分にTAB文字があるというエラーです。
 PermissionEx等のプラグインはこのようなエラーが起こると読み込まないものもあるため注意が必要です。
 [[注意点>サーバーMOD/CraftBukkit/Bukkitプラグイン/YAMLファイル#id_2786549c]]や出力されたエラーログを読んで、何が間違っているのかを確認しましょう。
 
 *その他
 Bukkitを利用する上で知っておくべきYAMLの基礎知識は、上記で十分でしょう。
 しかし、YAMLの記法はもっと複雑なところまで定義されており、このページでは全てを解説することは難しいです。
 
 もっと複雑な仕様まで理解したいのであれば、下記のリンクを参照してみてください。
 - YAML:[[http://www.yaml.org/]]
 
 このページはBukkit Japan Wiki(運営停止)から許可を得て使わさせていただいております。