-2

Vaultは、Bukkit のプラグインであり、エコノミー APIでもあります。プレーヤーのお金に更新を投稿するために使用したり、サーバーで通貨として使用したりできます。

VaultAPIGithub でオープンソース化されています

金額が最大のアカウントを取得しようとしていますが、Vault の API では簡単ではありません。

だから、私がやろうとしたのは:

  1. すべての OfflinePlayer を繰り返し処理し、金額の値を比較する
  2. 最大値の回復

コード:

double highest = 0;
OfflinePlayer topPlayer;
OfflinePlayer[] players = Bukkit.getOfflinePlayers();

for (OfflinePlayer p : players) {
    double playerAmount = econ.getBalance(p);    //Econ is Economy  instance from Vault.
    if (playerAmount > highest){
        highest = playerAmount;
        topPlayer = p;
    }
}

すべてのアカウントを反復して最高額を見つけようとしましたが、 Players が多すぎると大幅に遅れます

どのプレイヤーが最大の金額を持っているかを見つける方法はありますか?

4

1 に答える 1

2

これを実現する方法はいくつかあります。

まず、Essentials のUserBalanceUpdateEventを使用して、残高が構成のハイ スコアよりも高いかどうかを判断できます (この場合、格納された値を新しい値とそれが属する UUID で更新します)。

次に、OfflinePlayers を反復処理できますが、非同期タスクを使用します。

于 2015-08-20T05:33:23.353 に答える