2

これは、プラグインのコードの一部です。

public boolean reapSoul(Player player, Player tplayer, double damage)
{
    if(player.hasPermission("myrace.wraith.reap"))
    {
        player.sendMessage(ChatColor.DARK_GRAY + "You have reaped " + tplayer.getName() + "'s soul.");
        damage = player.getLevel()/10;
        double heal = damage/2;
        tplayer.damage(damage);
        player.setHealth(player.getHealth() + heal);
    }
    return true;
}

おそらく多くのエラーがあることは承知しており、自分で対処できます。私が対処できないのは

player.setHealth(player.getHealth() + heal);

Eclipse (私の IDE) は、メソッド getHealth() がタイプ Player に対してあいまいであることを教えてくれます。

Bukkit 1.6.x のリリース以来、これはおそらく非常によくある質問であることは承知していますが、私が行った検索のどれも、私が理解できる解決策を提供してくれませんでした。

これが本当に解決策である場合、私に何ができるかを理解するのを手伝ってください...

ありがとうございました。

4

4 に答える 4

0

私は同じ問題を抱えていましたが、簡単な解決策を見つけました。いくつかのリフレクションを使用する必要があるだけです: ヘルスは double で取得できますが、int で取得することもできます:

Player j;   
int health_in_int=(int)j.getClass().getMethod("getHealth", double.class).invoke(j);
double health_in_double=(double)j.getClass().getMethod("getHealth", double.class).invoke(j);
于 2014-07-09T16:54:41.097 に答える