-2

Vault是 Bukkit 的一个插件,也是一个经济 API。它可用于发布玩家资金的更新,并用作服务器中的货币。

VaultAPI也在Github 上开源

我正在尝试获取资金最多的帐户,但这在 Vault 的 API 中并不直截了当。

所以,我试图做的是:

  1. 遍历所有 OfflinePlayers 并比较货币价值
  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 回答