ワールドジェネレーター
ワールドジェネレーターの指定方法
釣りワールドを作成するときに、どのようなワールドを生成するかをジェネレーター定義で指定できます。 ジェネレーター定義は ID 付きの JSON ファイルとして管理され、ワールド設定やコマンドからその ID を指定して利用します。
前提条件
ジェネレーター定義は WorldLifecycle Integration が持つ内部形式で、Core は ID だけを扱います。
Integration を導入していない場合、Core はワールドを作成できません。
/mf world create は Failed to create world <id>. を返し、起動後の未ロードワールドの作成も警告を出してスキップします。
配置場所
ジェネレーター定義は Integration のデータフォルダから読み書きされます。
plugins/MoripaFishing-Integration-WorldLifecycle/generator/<id>.json起動時にディレクトリが無ければ作成され、同梱の terra.json / void.json / normal.json がファイル未存在の場合にのみ書き出されます。
既存ファイルは上書きされません。その後ディレクトリ内の JSON ファイルをすべて読み込むため、任意の ID のファイルを置けばジェネレーターを追加できます。
読み込めないファイルは警告を出して読み飛ばします。定義の変更は Integration の再起動 (サーバーの再起動) で反映されます。
Format
{
"id": "terra",
"generator": "Terra:OVERWORLD",
"type": null,
"biomeProvider": null,
"generatorSetting": null
}| フィールド | 型 | 既定値 | 説明 |
|---|---|---|---|
id | string | 必須 | ジェネレーター ID。ワールド設定やコマンドから参照される |
generator | string? | null | WorldCreator.generator() に渡す文字列。プラグイン提供のジェネレーターを プラグイン名:ID の形式で指定する |
type | string? | null | Bukkit の WorldType 名。NORMAL / FLAT / LARGE_BIOMES / AMPLIFIED のいずれか |
biomeProvider | string? | null | 名前空間付きバイオームキー(例: minecraft:plains)。指定するとワールド全体が単一バイオームに固定される |
generatorSetting | string? | null | WorldCreator.generatorSettings() に渡す JSON 文字列。FLAT の層構成などを指定する |
JSON のパースは未知キーを無視する寛容なモードで行われるため、定義に無いキーを書いても読み込みは失敗しません。
Preset
初期状態では次の 3 つが用意されています。
| ID | 内容 |
|---|---|
normal | すべてのフィールドが null で、バニラ相当の通常ワールドを生成する |
void | type が FLAT、generatorSetting で空気 1 層のスーパーフラットを指定した、実質的に何も無いワールド |
terra | generator に Terra:OVERWORLD を指定し、Terra プラグインに地形生成を委ねる |
void の定義は次のとおりです。type でワールドの種類を、generatorSetting でその種類固有の設定を指定する例になっています。
{
"id": "void",
"generator": null,
"type": "FLAT",
"biomeProvider": null,
"generatorSetting": "{\"layers\": [{\"block\": \"air\", \"height\": 1}], \"biome\":\"plains\"}"
}ジェネレーターの指定方法
ワールド設定 の world.generator にジェネレーター ID を指定します。既定値は void です。
generator はワールドを作成するときにのみ参照されます。
コマンドからワールドを作成する場合は、生成時にジェネレーターを引数で指定します。
/mf world create <id> <generator>必要な権限は moripafishing.command.world.create です。
<generator> には読み込み済みのジェネレーター ID がタブ補完されます。未知の ID を指定すると Failed to create world <id>. で失敗します。
注意点
- ジェネレーター ID の照合は完全一致で行われるため、常に大文字・小文字を区別します。
typeはWorldTypeの名前としてそのまま解決されるので大文字で記述する必要があり、不正な値を指定すると例外になります。biomeProviderに解決できないバイオームキーを指定するとIllegalArgumentExceptionが発生します。generatorで指定したプラグインがサーバーに導入されていない場合、ワールド生成に失敗します。- 同じキー (
moripafishing:<id>) のワールドが既に存在する場合は生成に失敗します。