CraftBukkit插件编码错误

时间:2014-03-26 23:12:47

标签: java eclipse minecraft bukkit

我正为/heal制作一个简单的CraftBukkit Beta Build 1.7.2 R0.3 Bukkit插件。 (我是java的新手。)我在Eclipse中编程。我收到的错误是:

enter image description here

这是我的代码:

public boolean onCommand_heal(CommandSender sender, Command cmd, String commandLabel, String[] args){
    Player player = (Player) sender;
    if(commandLabel.equalsIgnoreCase("heal")){
        if(args.length == 0){
        player.setHealth(20);
        player.setFireTicks(0);
        player.sendMessage(ChatColor.GOLD + "You are healed!"); 
        }else if(args.length == 1){
            if(player.getServer().getPlayer(args[0]) !=null){
                Player targetPlayer = player.getServer().getPlayer(args[0]);
                targetPlayer.setHealth(20);
                player.sendMessage(ChatColor.GOLD + "Player Healed!");
            }else{
                player.sendMessage(ChatColor.RED + "PLAYER NOT ONLINE!");
            }
        }
    }
    return false;
}

1 个答案:

答案 0 :(得分:3)

尝试这样做:

Player targetPlayer = Bukkit.getServer().getPlayer(args[0]);
//or this:
Player targetPlayer = plugin.getServer().getPlayer(args[0]);

而不是

Player targetPlayer = player.getServer().getPlayer(args[0]);

和此相同,替换:

if(player.getServer().getPlayer(args[0]) !=null){

使用:

if(Bukkit.getServer().getPlayer(args[0]) != null){

此外,自最近的Bukkit更新以来,在设置运行状况时应始终使用floatssetHealth(int)已弃用,已替换为setHealth(float),因此请尝试:

targetPlayer.setHealth(20.0f);
相关问题