Ошибка кодирования плагина CraftBukkit

1

Я делаю простой /heal плагин CraftBukkit Beta Build 1.7.2 R0.3 для CraftBukkit Beta Build 1.7.2 R0.3. (Я новичок в java.) Я программирую в Eclipse. Я получаю сообщение об ошибке:

Изображение 174551

Вот мой код:

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;
}
Теги:
minecraft
bukkit

1 ответ

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){

Кроме того, вы должны всегда использовать floats при настройке работоспособности с момента последнего обновления Bukkit. setHealth(int) устарел и заменен на setHealth(float), поэтому попробуйте:

targetPlayer.setHealth(20.0f);
  • 0
    Благодарю. Это был вопрос с плавающей точкой
  • 2
    Ваш комментарий о замене player.getServer() на Bukkit.getServer() имеет значения и на самом деле может быть отклонен в зависимости от стиля кодирования. @ mas0701 убедитесь, что вы проверили этот экземпляр Commandsender Player перед кастом, как сейчас, если вы запустите эту команду из консоли, вы получите неприятную ошибку.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню