mvn clean verify鉱石の置換ルール、チャンク座標、リージョンヘッダーの読み取りなどをJUnitで確認します。実サーバーの保存・読み込み、他プラグインとの組み合わせ、生成中チャンクの挙動まで保証するものではありません。
本番サーバーを起動・停止・変更せず、別ディレクトリの使い捨てワールドで実施します。Paperの正確なバージョン、Javaバージョン、Orelessのコミット/JARハッシュ、他プラグインを記録してください。サーバーを用意するときはMinecraft/Paperの利用条件を各自で確認してください。
- 停止中にテストワールドのバックアップを取得し、復元できることを確認する。
buildと別名の通常ワールドをtarget-worldsに設定し、対象外のresource、lobbyも用意する。Oreless有効化後、buildの新規チャンクの対象鉱石が石・深層岩になり、ほかのワールドは変わらないことを確認する。- 生成済みの
buildに鉱石を設置する。通常の再起動・チャンク再読み込みだけでは、その鉱石が消えないことを確認する。 - 権限のないプレイヤーが
/oreless scan build confirmを実行できないことを確認する。 - 停止・保存済みのワールドについて、生成済みチャンク座標の一覧を独立に取得しておく。管理者の
preview buildではブロックが変わらず、scan buildでは開始せず、scan build confirm後、対象鉱石と設置鉱石が置換され、非対象ブロックが残ることを確認する。 - スキャン前後でリージョンのチャンク座標を比較する。新しい座標が作られていないことを確認する。
plugins/Oreless/existing-chunks-<UUID>.txtは実行時の対象一覧であり、ワールドのバックアップではない。 migration-state.ymlの対象UUIDの完了フラグがtrueとなり、2回目のscanが実行されないことを確認する。追加で設置した鉱石がrescan build confirmで置換されることを確認する。- 大きなテストワールドで
statusとcancel、および途中停止を試し、未完了が完了扱いにならないことを確認する。再開は途中再開ではなく対象全体の再スキャンになること、途中までの変更は残ることも確認する。 - テスト用コピーで壊れたリージョン、書き込めない設定ファイル、チャンク読み込み失敗を試し、誤って完了扱いにしないことを確認する。
- 正常停止・再起動後に置換結果と完了フラグが残っていることを確認する。
/reloadやホットリロードは導入手順に含めません。サーバーを完全に停止してからJARを入れ替えてください。Folia、カスタム生成器、他のBlockPopulatorとの併用は、個別の検証なしに対応済みとしないでください。
target-worldsの不正な型・重複・空文字、壊れたconfig/stateを拒否することを確認する。旧configからの完了状態移行がbuildにだけ適用されることを確認する。- テスト環境でプラグインを無効化した後、登録されたpopulatorが残っていないことを確認する。正式な更新手順では完全再起動を使う。
- 複数ワールドの指定省略が安全に拒否され、1ワールドの完了が別ワールドのスキャンを妨げないことを確認する。
- 自動テストと上記の手動検証結果を記録する。
- 公称対応Paperバージョンと実際の検証版をREADME/リリースノートへ記載する。
pom.xmlの版番号を更新し、既存リリースのJARを黙って上書きしない。- 配布JARに
META-INF/LICENSEがあり、Paper APIやJUnitのクラスが含まれないことを確認する。 sha256sum target/oreless-*.jarの結果をリリースノートへ掲載する。- リリース公開とサーバーへの導入は、別々の作業として扱う。