設定ファイルガイド
このページでは、.yml(.yaml)ファイルを正しく編集する方法を説明します。私のプラグインはすべて .yml 設定ファイルを使用しており、誤った編集を行うと初期化されたり動作しなくなったりします。
以下では、設定エントリーのすべての型と、値を変更する際にどのような書式にすべきかを紹介します。
.yml ファイルの編集方法
ファイルは .yml 形式で保存されており、設定作業には Notepad++ の使用を推奨します。もちろん、お好みの他のテキストエディターを使っても構いません。
Boolean
Boolean の値は true または false です。次のような見た目になります。
value1: true
value2: false
Boolean は true か false のいずれかの値しか受け付けません。通常は特定の機能をオン・オフするために使われます。
String
String の値は通常、単なるテキストです。String の値は次の形式に従って引用符で囲むことを強く推奨します。
value: "String"
これは常に必須というわけではありませんが、カラーコードを含む文字列、特に最初の文字がカラーコードで始まる場合は必須です。カラーコードはゲーム内のカラーコード形式に従います。つまり "&aTest" は緑色のテキストになります。色付きテキストが使えるかどうかは設定項目によって異なります。カラーコードについてはこのページを参照してください。
Details
Why?
設定の文字列は& などの特殊文字を受け付けます。value: "&aString" のようにこれらの特殊文字が先頭に来る場合、String が引用符で囲まれていないと値が消去され、その設定項目はデフォルトにリセットされます。これは Spigot が使用している設定システムの制約です。Serialized Location
Serialized Location は次のような見た目をした特殊な型の String です。
location: world,1.0,2.0,3.0,4.0,5.0
これは位置情報を保存・設定するために使われます。形式は worldName,X,Y,Z,PITCH,YAW です。ピッチとヨーはプレイヤーが向いている方向を決めるもので、Minecraft の位置情報と同じ方式で実装されています。
Multiplier
Multiplier の値は、プラグインの値をその数値で乗算します。これらの値は絶対に引用符で囲まないでください。例を示します。
damageMultiplier: 1.0
この場合、ダメージ倍率は 1 倍されるため、デフォルト値から変化しません。Multiplier が 2.0 であれば値は 2.0 倍されます。0.5 であれば 0.5 倍されます。
分数が苦手な方向けに補足すると、0.5 を掛けることは 2 で割ることと同じです。Multiplier の値は常に 0 より大きくする必要があり(0.0001 は有効です)、上限は特に高くない傾向があります。
Integer
Integer の値は単なる整数です。例:
value: 10
スクリプト用に、~ を使ってこれらの値をランダム化できます。例:
value: 1~10
Integer の値で重要なのは、整数でなければならないという点です。つまり 10.1 は無効です。
Double
Double は小数部を持てる十進数です。例:
value: 10.01
スクリプト用に、~ を使ってこれらの値をランダム化できます。例:
value: 1.0~10.01
Double は 10.0 のように整数になることもあり、10 と表記されることもあります。
Float
Float は 32 ビットの十進数で、Double より精度が低くなります。例:
value: 10.42452
スクリプト用に、~ を使ってこれらの値をランダム化できます。例:
value: 1.0~10.42452
Float も 10.0 のように整数になることがあり、10 と表記されることもあります。
String List
String List は String の値のリストです。非常に厳密な設定形式が求められるため、設定が最も難しい値になりがちです。
valuesList:
- "value,1"
- "value,2"
- "value,3"
String と同様に、値は引用符で囲むことを推奨します。String List はそれぞれ独自の形式を持つため、編集対象が要求する具体的な形式を確認する必要がありますが、全体的な形式は上記のようになります。
Map List
「Map List」は「Map」値のリストです。これはエリートスクリプティングでのみ使用され、次の設定形式が必要です。
parentMap:
- Map1:
key: value
- Map2:
key: value
keyForList:
- "value1"
- "value2"
ご覧のとおり、Map List の内部にはあらゆる形式を含められますが、スクリプティングで使う場合は、それぞれの Map で有効なキーと値をドキュメントで確認する必要があります。
Color Codes
次の修飾子を使って、色を指定したりテキストを太字にしたりすることもできます。
| コード | 色 | 例 |
|---|---|---|
| &4 | 暗い赤 | &4暗い赤の例。 |
| &c | 赤 | &c赤の例。 |
| &6 | オレンジ | &6オレンジの例。 |
| &e | 黄色 | &e黄色の例。 |
| &2 | 暗い緑 | &2暗い緑の例。 |
| &a | 緑 | &a緑の例。 |
| &b | アクア | &bアクアの例。 |
| &3 | 暗いアクア | &3暗いアクアの例。 |
| &1 | 暗い青 | &1暗い青の例。 |
| &9 | 青 | &9青の例。 |
| &d | 明るい紫 | &d明るい紫の例。 |
| &5 | 暗い紫 | &5暗い紫の例。 |
| &f | 白 | &f白の例。 |
| &7 | 灰色 | &7灰色の例。 |
| &8 | 暗い灰色 | &8暗い灰色の例。 |
| &0 | 黒 | &0黒の例。 |
| &r | 色のリセット | &rリセットの例。 |
| &l | 太字 | &l太字の例。 |
| &o | 斜体 | &o斜体の例。 |
| &n | 下線 | &n下線の例。 |
| &m | 打ち消し線 | |
| &k | ランダム | &k &fの例。 |
例からわかるとおり、修飾子は通常の Minecraft の構文に従いますが、EliteMobs で使う場合は § が & に置き換わります。これを使って、モブ名、クエストテキスト、ダンジョン名など、EliteMobs のほとんどのテキストを装飾できます。
正しく機能している場合、修飾子そのものはテキストに表示されない点に注意してください。ここで表示しているのはあくまで説明のためです。
色と他のテキスト修飾子を組み合わせることも可能です。たとえば、次のようにできます。
カスタムモブに見栄えのするカラフルな名前を付けたい場合は、次のようにします。
name: $normalBossLevel &aScary &dDragon
EliteMobs 10 以降では、次の例のように、あらゆる EliteMobs テキストでカラーグラデーションも使用できます。
name: "&cNormal Red Text <gradient:#FF6B00:#FFD700:#FFFF00> Cool Gradient Text </gradient>"
この例では、
&c applies standard red formatting to the text before the gradient.<gradient:...> starts the gradient definition.#FF6B00, #FFD700, and #FFFF00 are the colors used in the gradient.Cool Gradient Text is the text affected by the gradient.</gradient> ends the gradient section.
影響を受けるのはグラデーションタグの内側のテキストのみで、タグの外側の書式は変更されません。
グラデーションはもはやEliteMobs専用の機能ではありません。テキストパーサーはMagmaCoreにあるため、MagmaCoreを同梱するすべてのプラグインの設定ファイルで同じ構文が使えます。MiniMessageの残りのタグセット(<rainbow>、<#RRGGBB>、<red> などの名前付きカラー、<bold> などの装飾など)も同様に利用できます。完全な一覧はカラーコードを参照してください。
Material
Material の値は、IRON_CHESTPLATE のような MineCraft に存在するマテリアルです。有効な Material の一覧はこのページを参照してください。
helmet: IRON_HELMET
Material は、モブの装備、戦利品のドロップ、クエスト報酬など、いくつかの設定で値として使われます。
Filename
Filename の値は、MagmaGuy のプラグインで使えるように書式化された .yml 設定ファイルです。アイテムからクエストまで、あらゆるものが該当します。
uniqueLootList:
- filename: magmaguys_toothpick.yml
ワールドのトリミング
Minecraft のワールドを軽量化し、その結果として配布しやすくするために、サイズを削減したい場合があります。これは WorldBorder プラグインを使うことで実現できます。プラグインページには古いバージョンのサポートしか記載されていませんが、WorldBorder は通常、現行の MineCraft バージョンでも動作します。互換性を確認するため、ご自身の環境でテストしてください。
Details
Tip
初めて行う場合は、万が一に備えてワールドのバックアップを作成しておくとよいでしょう。プラグインをインストールしたら、ワールドの中央、またはトリミングしたい特定のエリアへ移動します。その後、/wb set x コマンドを実行します。ここで x はそのエリアに設定したいおおよその半径サイズです。
Details
Tip
/wb が動作しない場合は、/worldborder:wb を試してください。このコマンドを実行したら、ワールドの端まで飛んでいき、ワールドボーダーが正しく設定され、意図したサイズをカバーしていることを確認します。ワールドボーダーの端に到達すると押し戻され、チャットにメッセージが表示されるのでわかります。

上の画像では、紫のブロックの周囲だけを数チャンク残してワールドをトリミングすることを目指しています。これを行うには、紫のエリアの中央にある赤い四角の上に立ち、/wb set 50 を実行して、紫のエリアのすぐ外側にワールドボーダーを設定します。
次に /wb trim [freq] [pad] コマンドを、頻度を 200、パッドを 20 に設定して使用します。パッドはワールドボーダー(紫のエリア)の周囲に何チャンク残すかを決め、頻度は 1 秒あたり何チャンクを処理するかを決めます。/wb trim 200 20 を実行すると、/wb trim confirm を実行して確認するよう促されます。確認して少し待つと、ワールドがトリミングされてサイズが縮小され、配布しやすくなります。
ワールドボーダーは /wb clear all で削除できますし、そのまま残しておいても構いません。
ワールドフォルダーのトリミング
サーバーを停止し、バックアップのコピーで作業してください。region、raids.dat、level.dat 以外をすべて削除しないでください。地形、エンティティ、POI、ディメンションのデータが必要な場合があります。サーバーとプラグインが実際に使用するディレクトリ構造を保持してください。
古い Vanilla ワールドではネザーが DIM-1、エンドが DIM1 を使用します。Vanilla 26.1 では標準ディメンションが dimensions/minecraft/overworld、dimensions/minecraft/the_nether、dimensions/minecraft/the_end に移動し、region、entities、poi もそこに保存されます。必要な構造はサーバーソフトウェアとバージョンによって異なります。配布前に別のサーバーへコピーをインポートし、ワールドを確認してください。