メインコンテンツまでスキップ

ResurrectionChest設定と権限

権限​

権限用途デフォルト
resurrectionchest.*管理者に基本コマンドと、downloadall、forcereinstallcontent、downloadpluginupdate、applypluginupdate、reload、clearの各サブコマンドへのアクセスを付与し、初回起動時のリマインダーを表示します。setupとinitializeは、下記のそれぞれ専用のノードを確認しますop
resurrectionchest.setup管理者に/resurrectionchest setup、recommendedplugins、downloadallcontent、updatecontentへのアクセスを付与op
resurrectionchest.initialize/resurrectionchest initializeで初期設定メニューを開く権限です。op
resurrectionchest.useプレイヤーがチェストを登録し、死亡ドロップをそこにルーティングできるようにするtrue
resurrectionchest.model.freeプレイヤーが無料のFreeMinecraftModelsチェストビジュアル(Wooden Chest)を使用できるようにするtrue
resurrectionchest.model.premiumプレイヤーがプレミアムのFreeMinecraftModelsチェストビジュアル(Angelic Chest)を使用できるようにするop

resurrectionchest.useは実際のチェスト動作にとって重要な権限です。管理者権限とモデル権限は、それぞれコマンドとオプションのビジュアルにのみ影響します。

コマンド​

コマンド権限用途
/resurrectionchestresurrectionchest.*セットアップフローを案内する簡単な情報メッセージを出力
/resurrectionchest initializeresurrectionchest.initializeガイド付きの初期設定を開く。「推奨設定」「手動設定」「現在のコンテンツを使用」のいずれも設定完了として記録される。
/resurrectionchest setupresurrectionchest.setupセットアップメニューを開く(チェストパックの閲覧と切り替え、プラグインアップデートの確認、推奨プラグインの表示、自動アップデートの切り替え)
/resurrectionchest recommendedpluginsresurrectionchest.setupResurrectionChestの推奨コンパニオンプラグイン(FreeMinecraftModelsとResourcePackManager)を開く(コンソールの場合は一覧表示)
/resurrectionchest downloadallresurrectionchest.*プラグインアップデート(ある場合)と、Nightbreakから利用可能なすべてのコンテンツパックをダウンロード
/resurrectionchest downloadallcontentresurrectionchest.setupNightbreakから利用可能なすべてのコンテンツパックをダウンロード
/resurrectionchest updatecontent(エイリアス updateallcontent)resurrectionchest.setup古くなったインストール済みコンテンツパックのみを再ダウンロード
/resurrectionchest forcereinstallcontent <package|all>resurrectionchest.*インストール済みバージョンがすでに最新であっても、コンテンツパック(またはダウンロード済みのすべてのパック)を再ダウンロード。パッケージ名は Nightbreak のスラッグ wooden-chest、angelic-chest と all にタブ補完されます
/resurrectionchest downloadpluginupdateresurrectionchest.*利用可能な場合、ResurrectionChestのプラグインアップデートをダウンロード
/resurrectionchest applypluginupdateresurrectionchest.*ダウンロード済みのプラグインアップデートを、サーバーを再起動せずに適用。再起動不要のプラグイン更新を参照
/resurrectionchest reloadresurrectionchest.*ResurrectionChestをリロード
/resurrectionchest clearresurrectionchest.*追跡中のすべてのResurrectionChestブロックをクリア。追跡中の各チェストのインベントリをドロップし、チェストと看板のブロックを削除
/resurrectionchestchangelog [dismiss|disable]op、resurrectionchest.*、resurrectionchest.setup、またはresurrectionchest.initialize未読のResurrectionChestリリースノートをゲーム内で表示。チェンジログ通知を参照

ダウンロードされたプラグインアップデートはサーバーのupdateフォルダに配置されます。/resurrectionchest applypluginupdateまたはnightbreak.applyPluginUpdatesWithoutRestart設定でそれより早く適用しない限り、次回のサーバー再起動後に有効になります。

同梱のMagmaCoreツール群は、他のプラグインがまだその名前を取得していない場合に限り、共有の/nightbreak、/nightbreaklogin、/nightbreaklogout、/logifyコマンドも登録します。Nightbreakトークンを参照してください。

プラグインファイル​

パス用途
plugins/ResurrectionChest/config.yml下の表にあるすべての設定
plugins/ResurrectionChest/playerData.yml登録済みチェストごとに1エントリ、プレイヤーUUIDをキーとして保存されます: チェストのlocation、チェスト登録時に選ばれたchestModelプレフィックス、そして古い登録を現在のブロック所有権タグへ移行するために使われるtrackedBlockSchemaVersion
plugins/ResurrectionChest/content_packages/wooden_chest.yml / angelic_chest.yml のコンテンツパック定義(isEnabled、name、description、version、folderName、nightbreakSlug、contentFilePrefixes、および任意のdownloadLinkとcategory)
plugins/ResurrectionChest/nightbreak-changelogs.yml/resurrectionchestchangelogの背後にある共有チェンジログ受信箱の既読・非表示状態。チェンジログ通知を参照
plugins/ResurrectionChest/imports/手動インポート用のドロップフォルダ。ここに置かれたものは起動時に展開され、モデルファイルはFreeMinecraftModelsへ振り分けられ、FreeMinecraftModelsが自動的に更新されます。手動インポートとゲーム内管理を参照
plugins/ResurrectionChest/resource_pack/共有のNightbreakメニューアイコンとフォントのアセット。プラグインの読み込み時に同梱のMagmaCoreから書き出され、同梱のコピーが変更されたときに再度書き出されます

サーバーの稼働中にplayerData.ymlを手動で編集しないでください。ResurrectionChestは、チェストが登録または削除されるたびにこのファイルを書き換えます。

設定項目​

config.ymlは現在、以下のユーザー向け設定を公開しています:

設定キー型デフォルト
setupDonebooleanfalse
nightbreak.autoDownloadPluginUpdatesbooleanfalse
nightbreak.applyPluginUpdatesWithoutRestartstringnever
Input name for death cheststring[DeathChest]
Enable high compatibility / low security mode for plugin conflictsbooleanfalse
Lower worn armor's durability on deathbooleantrue
Amount of durability to lower on deathint100
Chest creation messagestring&8[ResurrectionChest] &aYou've created your Death Chest!
Chest destruction messagestring&8[ResurrectionChest] &cYour Death Chest has been destroyed!
Chest missing messagestring&8[ResurrectionChest] &4Your Death Chest is missing!
Chest protected region messagestring&8[ResurrectionChest] &cYou can't create a Death Chest here - this area is protected!
Death messagestring&8[ResurrectionChest] &aYour items have been moved to your Death Chest!
deathChestRemovedMessagestring&8[ResurrectionChest] &cYour Death Chest has been removed!
Enable particle effects for death chestsbooleantrue
Particle effect 1stringENCHANTMENT_TABLE
Particle effect 2stringENCHANTMENT_TABLE
Particle effect 3stringPORTAL
blacklistedWorldslist[none]
storeXPbooleantrue
xpPercentageKeptdouble0.75
deathChestNameTagstring$playerName's &fResurrection Chest
freeSingleDeathChestModelNamestringresurrectionchest_free_single
freeDoubleDeathChestModelNamestringresurrectionchest_free_double
premiumSingleDeathChestModelNamestringresurrectionchest_angelic_single
premiumDoubleDeathChestModelNamestringresurrectionchest_angelic_double

自動プラグインおよびコンテンツアップデート​

nightbreak.autoDownloadPluginUpdatesは、ResurrectionChestに同梱されているNightbreak/MagmaCore共通の設定です。デフォルトはfalseです。

  • false(デフォルト)の場合、何も自動的にダウンロードされません。ResurrectionChestは起動から数分後(この遅延はプラグインごとにずらされています)とその後約1時間ごとにプラグインアップデートを確認し、ゲーム内のアップデートボタンに結果を表示できるようにしますが、実際のダウンロードは自分でトリガーします。
  • trueの場合、ResurrectionChestは起動から数分後に、利用可能なプラグインアップデートと古くなったコンテンツパックをダウンロードします。ダウンロードされたコンテンツアップデートは、サーバーの再起動後に使用されます。ダウンロードされたプラグインアップデートも、nightbreak.applyPluginUpdatesWithoutRestartによってそれより早く適用されない限り、再起動まで待機します。
  • 自動プラグインダウンロードには、有効なNightbreakアカウントトークンとアクティブなサポーターメンバーシップが必要です。

この設定は、/resurrectionchest setup内のツールバーのAutomatic Updatesトグルからゲーム内で切り替えるか、config.ymlを直接編集できます。

セットアップメニューには、Plugin Updateエントリ(インストール済み/利用可能なバージョンを表示し、クリックでアップデートをダウンロード)と、Recommended Pluginsエントリ(/resurrectionchest recommendedpluginsと同じリスト)も用意されています。

再起動不要のプラグイン更新​

ダウンロードされたプラグインアップデートは、サーバーのupdateフォルダで待機します。/resurrectionchest applypluginupdateを使うと、サーバーを再起動せずにアップデートを差し替えられます。ResurrectionChestが無効化され、jarが置き換えられ、新しいバージョンが読み込まれて有効化されます。ResurrectionChestに依存している他のMagmaGuyプラグインも一緒にリロードされます。

次の場合、このコマンドはメッセージを表示して実行を拒否します:

  • ダウンロード済みのアップデートが待機していない
  • 待機中のアップデートが実行中のバージョンより新しくない、またはjarが有効でない
  • 別の作者のプラグインがResurrectionChestにdependまたはsoft-dependしている。この場合は代わりにサーバーを再起動してください
  • 別のプラグイン差し替えがすでに実行中である

新しいバージョンの有効化に失敗した場合は、以前のjarが再度読み込まれ、アップデートは次回の再起動に備えてupdateフォルダに残ります。サードパーティ製のプラグインリローダーではなく、このコマンドを使用してください。

config.ymlのnightbreak.applyPluginUpdatesWithoutRestartは、プラグインアップデートのダウンロード直後に何が起こるかを決めます。これはdownloadpluginupdate、downloadall、セットアップメニューのPlugin Updateエントリ、自動ダウンロードのいずれによるダウンロードにも適用されます:

値動作
neverデフォルト。アップデートは次回の再起動まで待機します。resurrectionchest.*を持つオンラインの管理者には、再起動が必要であることが通知され、applypluginupdateコマンドが案内されます
when-emptyオンラインのプレイヤーがいなければ即座にアップデートを適用します。いる場合は30秒ごとに確認し、サーバーが空になった時点で適用します
immediatelyダウンロードが完了した時点ですぐにアップデートを適用します

それ以外の値はneverとして扱われます。

差し替えではResurrectionChestが無効化されてから再び有効化されるため、/resurrectionchest reloadと同様に、プレイヤーがまだチェストから回収していないXPは破棄されます。チェスト内のアイテムは影響を受けません。

リージョン保護​

デスチェストの登録は建築行為として扱われます。看板が受け入れられる前に、ResurrectionChestはMagmaCore共通のLocationQueryRegistryに、そのチェストブロックの位置でプレイヤーが建築してよいかを問い合わせます。

  • WorldGuard と GriefPrevention は自動的に統合されます。共有の場所所有権プロバイダーも、保護された場所と報告することで登録を拒否できます。保護や所有権のプロバイダーがなければ追加の制限はありません。
  • 保護プラグインが建築を拒否した場合、登録は拒否され、プレイヤーにはChest protected region messageが送られます。
  • 保護アダプタがエラーをスローした場合、クエリはフェイルクローズ(登録を拒否)となり、保護を暗黙にバイパスすることはありません。

組み込みアダプターは起動時に接続され、後の問い合わせでも有効なプラグインとの対応が再確認されます。WorldGuardまたはGriefPreventionが有効なのにそのアダプターの接続に失敗した場合、失敗はログに記録され、そのプラグインが有効である間はすべての登録が拒否されます。/resurrectionchest reloadでは接続は再試行されません。再試行されるのは、その保護プラグインが無効化またはリロードされた後、再起動不要のResurrectionChestアップデートの後、またはサーバーの再起動後です。

防具の耐久度ペナルティ​

Lower worn armor's durability on death(デフォルトtrue)とAmount of durability to lower on death(デフォルト100)は、プレイヤーが着用していた防具がデスチェストへルーティングされる際に適用されます:

  • 死亡ドロップに含まれる着用中の各防具に、Amount of durability to lower on deathがダメージ値として加算されます
  • それによって最大耐久度に達する、または超える場合、その防具はドロップから完全に取り除かれます(保管されずに破壊されます)
  • そうでない場合は、ダメージを受けた防具がチェストに入ります

耐久度ペナルティがゼロまたは負の値なら、何も変更しません。

このペナルティが実行されるのは、ResurrectionChestが実際に処理する死亡時のみです。keepInventoryが有効な場合、ワールドがブラックリストに入っている場合、プレイヤーがresurrectionchest.useを持たない場合、登録されたチェストが見つからない場合はスキップされます。

高互換モード​

Enable high compatibility / low security mode for plugin conflicts(デフォルトfalse)は、ResurrectionChestがブロックに対して処理を行う前に、そのブロックをどれだけ厳密に検証するかを制御します。

  • falseの場合、看板やチェストがResurrectionChestのものとして扱われるのは、プラグインがブロックの永続データに書き込んだ所有者タグがまだ残っている場合だけです。
  • trueの場合、追跡中の場所では所有者タグの欠落が許容されます。ただし、別の所有者を示すタグは引き続き拒否され、追跡中のチェストは引き続きチェストブロックでなければなりません。

このモードは、別のプラグインがResurrectionChestの所有者タグを削除してしまう場合に使用してください。タグ欠落の確認を緩めるだけで、任意の置換ブロックや矛盾する所有者タグを許可するものではありません。

XP処理​

storeXPが有効な場合:

  • ResurrectionChestはプレイ中のプレイヤーの合計XPを追跡しますが、死亡した瞬間のプレイヤーの実際の合計値を読み取るため、他のプラグインのAPIから直接付与されたXPも計上されます
  • 死亡時に round(total XP * xpPercentageKept) を保存し、値を非負整数の範囲に収めます
  • ドロップされたXPを0に設定します
  • 所有者が次に登録されたチェストを開いたときに保存されたXPを返却します(ダブルチェストのどちら側でも構いません)
  • 回収前に再度死亡した場合、保存量は置き換えられるのではなく加算されます

xpPercentageKeptは設定の読み込み時に0〜1の範囲へクランプされるため、1を超える値は1として、負値や無効な値は0として扱われます。

重要な例外:

  • keepInventoryがアクティブな場合、ResurrectionChestは何も行いません。
  • keepLevelがアクティブな場合、XP保存の分岐はスキップされ、バニラのレベル処理はそのままになります。
  • 保存されたXPはメモリ上にのみ保持されます。playerData.ymlには書き込まれないため、サーバーの再起動、/resurrectionchest reload、プラグインのリロード、または再起動不要のプラグイン更新を行うと、まだ回収されていないXPは失われます。すでにチェストの中にあるアイテムは影響を受けません。

オーバーフロー処理​

アイテムは1スタックずつチェストに挿入され、部分的な挿入も許可されます:

  • 入る分は保管されます。既存のスタックへの上乗せも含みます
  • 入りきらなかった残量だけが、死亡地点の通常の死亡ドロップリストに残ります
  • プレイヤーはチェストが満杯であった警告を受け取ります

FreeMinecraftModels連携​

FreeMinecraftModelsがインストールされている場合、ResurrectionChestは実際のチェストの上に視覚的なチェストのプロップをスポーンできます。

現在の動作:

  • プレイヤーがresurrectionchest.model.premiumを持っており、かつプレミアムモデルが実際にロードされている場合、プレミアムビジュアル(Angelic Chest)が優先されます
  • それ以外の場合、プレイヤーがresurrectionchest.model.freeを持っていれば無料ビジュアル(Wooden Chest)が使用されます
  • どちらの権限も使用可能なモデルを付与しない場合、プロップはスポーンされず、バニラのチェストがそのまま使用されます
  • 視覚モデルはチェストのサイズに基づいてシングルとダブルのバリエーション間で切り替わります
  • 実際のチェストは依然としてストレージのバックエンドです
  • FreeMinecraftModelsがリロードを完了するたびに、ResurrectionChestの外部から開始されたリロードも含めてプロップが更新されます。チェストの位置にすでに一致するプロップがある場合は、重複してスポーンさせずにそれを再利用します

モデルはチェストの登録時に一度だけ選ばれ、playerData.yml の chestModel として保存されます。そのため、次の点に注意してください。

  • 登録時に FreeMinecraftModels が入っていなければモデルなしで保存され、後から FreeMinecraftModels を導入してもバニラのチェストのままです
  • 登録後に権限を変更しても、既存のチェストのモデルは変更されません

どちらの場合も、新しいモデルを適用するにはチェストを壊し、看板を置き直して再登録する必要があります。

カスタムモデルのプロップがアクティブな場合、プレイヤーはそれと直接対話できます:

  • プロップを右クリックして、基礎となるチェストのインベントリを開く
  • プロップを左クリックして登録を破棄する(所有者のみが行えます。所有者以外が左クリックすると赤いメッセージが表示され、何も破壊されません)

FreeMinecraftModelsが存在しない、またはモデルをスポーンできない場合でも、基礎となるチェストは通常通り機能します。

コンテンツパック​

ResurrectionChestには、FreeMinecraftModelsのチェストモデルをラップする2つのコンテンツパックが付属しています:

  • Wooden Chest(無料): resurrectionchest_free_single / resurrectionchest_free_doubleを提供します。resurrectionchest.model.freeで使用されます。
  • Angelic Chest(プレミアム): resurrectionchest_angelic_single / resurrectionchest_angelic_doubleを提供します。resurrectionchest.model.premiumで使用されます。

各パックは、インストール時はFreeMinecraftModelsのmodelsフォルダ下に、アンインストール時はmodels_disabled下に配置されます。/resurrectionchest setupを通じてそれらを切り替えると、ファイルがこれらのフォルダ間を移動し、FreeMinecraftModelsが自動的にリロードされます。

ソースに基づく注意点​

現在のソースには、config.ymlで公開されているがDefaultConfig以外のどこからも参照されていないいくつかの設定エントリがあります:

  • Particle effect 1
  • Particle effect 2
  • freeSingleDeathChestModelName
  • freeDoubleDeathChestModelNameとpremiumDoubleDeathChestModelName(プラグインは内部でモデル名のプレフィックスresurrectionchest_freeとresurrectionchest_angelicをハードコードしており、チェストのサイズに基づいて_singleまたは_doubleを追加するため、"Double"の設定キーは現在チェストのビジュアルに影響しません)

対照的に、Particle effect 3は、現在のコードに明らかな実稼働の用途があるパーティクル設定です。読み込み時に一度だけ解決され(名前が有効なパーティクルでない場合は、コンソール警告とともにPORTALにフォールバックします)、その後はチェストのチャンクがロードされている間、ティックごとにスポーンされます。Enable particle effects for death chestsをfalseにすると、このティックごとのタスク自体がキャンセルされます。登録済みチェストが多いサーバーではこれが最も負荷の軽い選択肢です。premiumSingleDeathChestModelNameは、プレミアムプレフィックスを割り当てる前にプレミアムモデルファイルが存在することを確認するために使用されます。無料モデルファイルの存在は個別にチェックされません。

コマンド面での注意点がさらに2つあります:

  • /resurrectionchest initializeは初期設定を開き、resurrectionchest.initializeが必要です。/resurrectionchest setupはコンテンツ、更新、推奨プラグインの操作画面を開きます。
  • /resurrectionchest clearは1人のプレイヤーに限定されません。サーバー上のすべての登録済みチェストを一度に消去します。

削除コマンドは設定された所有権チェックに従い、チェックに通らないブロックは残します。チェストのワールドがアンロードされている場合、登録のみを削除し、そのワールドのブロックは削除しません。