我正为/heal
制作一个简单的CraftBukkit Beta Build 1.7.2 R0.3
Bukkit插件。 (我是java的新手。)我在Eclipse中编程。我收到的错误是:
这是我的代码:
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;
}
答案 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更新以来,在设置运行状况时应始终使用floats
。 setHealth(int)
已弃用,已替换为setHealth(float)
,因此请尝试:
targetPlayer.setHealth(20.0f);