再次运行命令时变量不重置

时间:2012-02-17 01:26:49

标签: java bukkit

我有一段代码可以输出玩家的总体经验。

问题在于,如果实际XP的话,它输出的XP值不会改变。 例如,在50,000级,XP为2,147,483,647。当等级降至4时,XP值保持不变。

if (cmd.getName().equalsIgnoreCase("checkxp")) {
    // If person is null, it's not a player!
    if (person == null) {
        sender.sendMessage("This command can only be used by a player, sorry!");
        return false;
    } else {
        int curxp;
        Player player = (Player) sender;
        curxp = player.getTotalExperience();
        sender.sendMessage("You currently have: " + curxp + " XP!");
        return true;
    }
}

如何在运行后重置此值,以便重新检查XP并使用新的金额更新变量?

2 个答案:

答案 0 :(得分:2)

如果您不更新Player来自sender的{​​{1}}对象,它将保留旧值,因此我会检查sender是否有新数据。

答案 1 :(得分:1)

看看ExpSkills,看起来玩经验而不是水平是可行的。

现在暂时使用setTotalExperience()getTotalExperience()

一旦您完成所有工作,请尝试添加对级别的支持。 也许有一个转换器可以将水平转换为经验和体验到水平? 如果没有,这里是conversion charts