Question

I am making a simple /heal Bukkit plugin for CraftBukkit Beta Build 1.7.2 R0.3. (I'm new to java.) I am programming in Eclipse. I'm getting an error that says:

enter image description here

Here is my code:

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;
}
Was it helpful?

Solution

Try doing this:

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

instead of

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

and the same thing here, replace:

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

with:

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

Also, you should always use floats when setting health since a recent Bukkit update. setHealth(int) is deprecated, and replaced with setHealth(float), so try:

targetPlayer.setHealth(20.0f);
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top