WorldManager
釣りワールドを管理する。
釣りワールドは設定ファイル (world/<id>.json) が存在すれば「定義済み」であり、 対応する Bukkit ワールドがロードされているかどうかに関わらず取得できる。
コアは Bukkit ワールドを直接変更しない。ワールドの作成・アンロードは WorldLifecycle、 天候・時刻・ボーダー・スポーンの適用は WorldStateApplier を実装した Integration が行う。 外部ワールド (WorldBinding.External で既存の Bukkit ワールドを登録したもの) は読み取り専用で、 Integration が導入されていても作成・アンロード・状態の適用を一切行わない。
取得系のメソッドは任意のスレッドから呼べる。変更系のメソッドはメインスレッドから呼ぶこと (それ以外から呼ぶと IllegalStateException を投げる)。
釣りワールドの運用 (Integration への適用・ワールドの作成) はサーバーの起動完了 (ServerLoadEvent) 後に始まる。 それまでは定義の読み書きのみ行う。
Functions
管理ワールドを定義し、Bukkit ワールドを作成する。メインスレッドから呼ぶこと。
釣りワールドの定義を削除する。メインスレッドから呼ぶこと。
デフォルトのワールド ID を返す。
利用可能なジェネレーター ID を返す。WorldLifecycle が未登録の場合は空。
定義済みのワールドを返す。未定義の場合は null。
Bukkit ワールドのキーから定義済みの釣りワールドを返す。該当しない場合は null。 Bukkit ワールドから釣りワールドを引く唯一の窓口。
定義済みの全ワールドを ID 順で返す。
config.id のワールドの設定を保存し、即座に適用させる。メインスレッドから呼ぶこと。