Vault連携
バージョン7.1.0以降、EliteMobsはVault連携(VaultAPI 1.7を使用)をサポートしています。Vaultをオンにすることで、EliteMobsの経済をサーバーの経済と統合できます。
ここで、それがなぜ悪い考えなのかを説明します:
EliteMobsにはレベリングシステムがありません。進行システムは、エリートモブを倒してより良いアイテムを手に入れ、武器スキルと防具スキルをレベルアップして、より高レベルの戦利品、より高レベルのモブ、より高レベルのクエスト、そしてより高レベルのアリーナの挑戦やダンジョンにアクセスできるようにすることに結びついています。
さらに、EliteMobsは、お守りの購入や、エリートモブから得た戦利品の再販に関して、非常にデリケートなバランスを保っています。
したがって、サーバーの経済をEliteMobsの経済と統合すると、プレイヤーは容易に金で頂点まで上り詰められるようになり、学習曲線をバイパスしてしまう可能性があります。
そうなると進行システムが正しく機能しなくなり、さらに深刻な問題につながります。高レベルのエリートモブはさまざまなパワーを持っており、プレイヤーは何十時間も戦いながら、エリートモブが持つパワーを識別する方法やそれに対抗する方法を学び、さらにエリートモブとの戦闘に備える方法を学んで、それらのパワーをゆっくりと習得していくことが意図されています。
プレイヤーが一足飛びに終盤に進んでしまうと、長時間のプレイを通じてEliteMobsを効率的に倒すために必要な知識を身につける時間がなかったため、戦闘難易度がほぼ不可能で極めて不公平に感じられるでしょう。
要件
Vault連携を使用するには、次のものが必要です。
- Vaultプラグイン(VaultAPI 1.7+と互換性のあるバージョン)
- Vaultに登録する経済プラグイン(EssentialsX、CMIなど)
- 両方のプラグインが適切に設定され、稼働していること
EliteMobsはVaultを自動的に検出し、設定で有効にされていれば使用します。
設定
Vault連携を有効にするには:
- サーバーにVaultプラグインがインストールされていることを確認する
- Vaultと連携する経済プラグイン(例:EssentialsX、CMIなど)があることを確認する
- EliteMobsプラグインフォルダ内の
EconomySettings.ymlを開く useVault: trueに設定する- サーバーを再起動する
設定例:
# Whether to use Vault for the economy instead of the built-in system.
# NOT RECOMMENDED! See: https://wiki.nightbreak.io/EliteMobs/vault
useVault: false
仕組み
Vault連携が有効な場合:
- すべてのEliteMobs通貨(エリートコイン)が、サーバーのメイン経済通貨に変換されます
- プレイヤーはエリートモブを倒したときに、エリートコインの代わりにサーバーの経済通貨を獲得します
- ショップの取引、スキルのアップグレード、その他すべてのEliteMobs経済機能が、サーバーの経済を使用します
- EliteMobsの経済システムは、完全にVaultに置き換えられます
通貨の操作:
- 入金:プレイヤーのVault残高にお金が追加されます
- 出金:プレイヤーのVault残高からお金が引かれます
- 残高確認:プレイヤーのVault残高を照会します
- 残高の直接設定:安全のため無効(経済プラグインを使用してください)
注意:Vault連携が有効な間、すべての通貨操作はVaultにルーティングされます。EliteMobsは、実行中にVaultが利用できなくなっても、内部経済へ密かにフォールバックすることはありません。そのため、useVaultがオンの間は、経済プラグインがVaultに登録された状態を保つようにしてください。
セキュリティ機能
セキュリティ上の理由から、EliteMobsはVaultを通じてプレイヤーの通貨残高を直接設定することをサポートしていません。そのような試みはすべてブロックされ、ログに記録されます。必要であれば、経済プラグインのコマンドを使って残高を直接設定してください。
例:シナリオ
Vaultなし:
- プレイヤーがレベル50のエリートモブを倒す
- 100エリートコインを受け取る(EliteMobsのデータベースに保存)
- エリートコインはEliteMobsのショップでのみ使用できる
Vaultあり:
- プレイヤーがレベル50のエリートモブを倒す
- 100[あなたの経済通貨]を受け取る(Vault/経済プラグインに保存)
- EliteMobsのショップに加えて、サーバー上の他のどこでもお金を使える
- 他のプレイヤーがEliteMobsのサービスを買うためにお金を送れる
- 経済がすべてのプラグインで統合される
これが推奨されない理由です:他の供給源からの通貨をプレイヤーが使えるようにすることで、意図された進行システムを壊してしまうからです。
トラブルシューティング
Vault連携が有効なのに機能しない場合:
-
サーバーログで次を確認する:"Vault detected."(EliteMobsのログ行の中)
- 見当たらない場合:Vaultプラグインがインストールされていないか、読み込まれていません
-
次の警告を確認する:"Vault preference detected. This is not the recommended setting."
- これはVault連携が有効なときに想定される動作です。エラーではなく、注意喚起です
- それでもVaultが機能しない場合は、経済プラグインがVaultに適切に登録されていることを確認してください
-
次を確認する:"Player tried to check currency when they had no economy entry"
- 原因:経済プラグインがプレイヤーのアカウントを作成していない
- 解決策:経済プラグインの設定を確認してください
-
有効にしているのにEliteMobsがまだエリートコインを使っている場合:
- 設定キーが正確に
useVault: trueであることを確認する - 設定変更後にサーバーを再起動する
- 経済プラグインがVaultに登録されていることを確認する
- 設定キーが正確に
開発者向け
アドオンや連携を開発している場合:
- Vaultのステータス:
VaultCompatibility.VAULT_ENABLED(静的なboolean)を確認する - 経済API:
EconomyHandlerのメソッドを使用する(VaultCompatibilityを直接使わない) - サポートされる操作:add、subtract、check(setは無効)
- 通貨の精度:内部システムは小数点以下2桁を使用する
- 実行時のフォールバックなし:
VAULT_ENABLEDがtrueのとき、EconomyHandlerは常にVaultに委譲し、内部経済への自動的な切り戻しはありません
ソースコードの場所:
- src/main/java/com/magmaguy/elitemobs/economy/VaultCompatibility.java
- src/main/java/com/magmaguy/elitemobs/economy/EconomyHandler.java
EliteMobsは、VaultAPI 1.7をコンパイル時のみの依存関係として使用します。VaultプラグインのJARは、実行時にサーバー上に存在している必要があります。