Java 无法强制转换为org.bukkit.entity.Player

Java 无法强制转换为org.bukkit.entity.Player,java,bukkit,Java,Bukkit,我是bukkit 1.8.3编程的初学者,但在测试时我正在为我的服务器制作一个命令包,现在我发现了这个错误。假设我想操作我自己,我键入op命令,出现此错误。假设heal命令没有此错误。以下是错误日志: 11:33:56 PM [WARN] Unexpected exception while parsing console command "heal Herobrine112211" 11:33:56 PM org.bukkit.command.CommandException: Unhandl

我是bukkit 1.8.3编程的初学者,但在测试时我正在为我的服务器制作一个命令包,现在我发现了这个错误。假设我想操作我自己,我键入op命令,出现此错误。假设heal命令没有此错误。以下是错误日志:

11:33:56 PM [WARN] Unexpected exception while parsing console command "heal Herobrine112211"
11:33:56 PM org.bukkit.command.CommandException: Unhandled exception executing command 'heal' in plugin UltimateCommandPack v1.0.5
11:33:56 PM at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[bukkit.jar:git-Bukkit-61ef214]
11:33:56 PM at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:140) ~[bukkit.jar:git-Bukkit-61ef214]
11:33:56 PM at org.bukkit.craftbukkit.v1_8_R2.CraftServer.dispatchCommand(CraftServer.java:625) ~[bukkit.jar:git-Bukkit-61ef214]
11:33:56 PM at org.bukkit.craftbukkit.v1_8_R2.CraftServer.dispatchServerCommand(CraftServer.java:611) [bukkit.jar:git-Bukkit-61ef214]
11:33:56 PM at net.minecraft.server.v1_8_R2.DedicatedServer.aN(DedicatedServer.java:372) [bukkit.jar:git-Bukkit-61ef214]
11:33:56 PM at net.minecraft.server.v1_8_R2.DedicatedServer.A(DedicatedServer.java:337) [bukkit.jar:git-Bukkit-61ef214]
11:33:56 PM at net.minecraft.server.v1_8_R2.MinecraftServer.z(MinecraftServer.java:626) [bukkit.jar:git-Bukkit-61ef214]
11:33:56 PM at net.minecraft.server.v1_8_R2.MinecraftServer.run(MinecraftServer.java:534) [bukkit.jar:git-Bukkit-61ef214]
11:33:56 PM at java.lang.Thread.run(Unknown Source) [?:1.7.0_75]
11:33:56 PM Caused by: java.lang.ClassCastException: org.bukkit.craftbukkit.v1_8_R2.command.ColouredConsoleSender cannot be cast to org.bukkit.entity.Player
11:33:56 PM at me.herobrine112211.ulticmdpack.System.onCommand(System.java:39) ~[?:?]
11:33:56 PM at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[bukkit.jar:git-Bukkit-61ef214]
11:33:56 PM ... 8 more
代码如下:

package me.herobrine112211.ulticmdpack;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class System extends JavaPlugin implements Listener{

    public void onEnable() {
        getConfig().options().copyDefaults(true);
        saveConfig();
        Bukkit.getServer().getPluginManager().registerEvents(this, this);
        Bukkit.getServer().getLogger().info("Ultimate Command Pack Plugin has been actived!");
    }

    public void onDisable() {
        Bukkit.getServer().getLogger().info("Ultimate Command Pack Plugin has been disabled! This will give big problems to server.");
    }

    @EventHandler
    public void onPlayerJoin(PlayerJoinEvent joinevent){
        Player getplayer = joinevent.getPlayer();
        getplayer.sendMessage(ChatColor.AQUA + "Hey " + getplayer.getName() + "! Welcome to the Ultimate Prison server!");
        if(getplayer.getName().equals("Herobrine112211")){
            Bukkit.getServer().broadcastMessage(ChatColor.WHITE + "[" + ChatColor.GOLD + "BROADCAST" + ChatColor.WHITE + "] " + ChatColor.GOLD + "Server Creator Herobrine112211 has joined the game!!!!!!!!!!");
        }
    }

    @SuppressWarnings("deprecation")
    public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){


        Player player = (Player) sender;

            if (cmd.getName().equalsIgnoreCase("contactowner")) {
                if (!sender.hasPermission("contactowner")){
                    sender.sendMessage(ChatColor.RED + "Access denied.");
                    return true;
                }
                if (!(sender instanceof Player)) {
                    sender.sendMessage(ChatColor.RED + "Console will never need owner support.");
                    return true;
                }
                player.sendMessage(ChatColor.GOLD + "Owner: Herobrine112211. Live chat skype: gangsteris33.");
            }

            if (cmd.getName().equalsIgnoreCase("reloadconfig")){
                if (!sender.hasPermission("config.reload")){
                    sender.sendMessage(ChatColor.RED + "Access denied.");
                    return true;
                }
                reloadConfig();
                sender.sendMessage(ChatColor.RED + "Server config reloaded successfully.");
                return true;
            }

            if (cmd.getName().equalsIgnoreCase("saveconfig")){
                if (!sender.hasPermission("config.save")){
                    sender.sendMessage(ChatColor.RED + "Access denied.");
                    return true;
                }
                reloadConfig();
                sender.sendMessage(ChatColor.RED + "Server config saved successfully.");
                return true;
            }

            if (cmd.getName().equalsIgnoreCase("fakeop")) {
                if (!sender.hasPermission("fake.op")){
                    sender.sendMessage(ChatColor.RED + "Access denied.");
                    return true;
                }
                if (args.length == 0) {
                    sender.sendMessage(ChatColor.RED + "Please specify a player!");
                    return true;
                }
                Player target = Bukkit.getServer().getPlayer(args[0]);
                if (target == null) {
                    sender.sendMessage(ChatColor.RED + "Player must be online!");
                    return true;
                }
                target.sendMessage(ChatColor.YELLOW + "You are now op!");
            }

            if (cmd.getName().equalsIgnoreCase("fakejoin")) {
                if (!sender.hasPermission("fake.join")){
                    sender.sendMessage(ChatColor.RED + "Access denied.");
                    return true;
                }
                if (args.length == 0) {
                    sender.sendMessage(ChatColor.RED + "Please specify a name!");
                    return true;
                }
                Bukkit.getServer().broadcastMessage(ChatColor.YELLOW + args[0] + " joined the game.");
            }

            if (cmd.getName().equalsIgnoreCase("broadcast")) {
                if (!sender.hasPermission("broadcast")){
                    sender.sendMessage(ChatColor.RED + "Access denied.");
                    return true;
                }
                if (args.length == 0) {
                    sender.sendMessage(ChatColor.RED + "Please give a message to broadcast!");
                    return true;
                }
                StringBuilder strbl = new StringBuilder();
                for(int i = 0; i < args.length; i++){
                    strbl.append(args[i] + " ");
                }
                String broadcastas = strbl.toString();
                Bukkit.getServer().broadcastMessage(ChatColor.WHITE + "[" + ChatColor.GOLD + "BROADCAST" + ChatColor.WHITE + "] " + ChatColor.RED + broadcastas);
            }

            if (cmd.getName().equalsIgnoreCase("heal")) {
                if (!sender.hasPermission("heal")){
                    sender.sendMessage(ChatColor.RED + "Access denied.");
                    return true;
                }
                    if (args.length == 0) {
                            player.setHealth(20);
                            player.setFireTicks(0);
                            sender.sendMessage(ChatColor.GREEN + "Your health is now full!");
                            return true;
                    }
                    Player target = Bukkit.getServer().getPlayer(args[0]);
                    if (target == null) {
                        sender.sendMessage(ChatColor.RED + "Player must be online to be healed!");
                            return true;
                    }
                    target.setHealth(20);
                    target.setFireTicks(0);
                    target.sendMessage(ChatColor.GREEN + sender.getName() + " healed you!");
                    sender.sendMessage(ChatColor.GREEN + target.getName() + " is healed!");
            }

            if (cmd.getName().equalsIgnoreCase("feed")) {
                if (!sender.hasPermission("feed")){
                    sender.sendMessage(ChatColor.RED + "Access denied.");
                    return true;
                }
                if (args.length == 0) {
                        player.setFoodLevel(20);
                        sender.sendMessage(ChatColor.GREEN + "Your hunger is now full!");
                        return true;
                }
                Player target = Bukkit.getServer().getPlayer(args[0]);
                if (target == null) {
                    sender.sendMessage(ChatColor.RED + "Player must be online to be fed!");
                        return true;
                }
                target.setFoodLevel(20);
                target.sendMessage(ChatColor.GREEN + sender.getName() + " fed you!");
                sender.sendMessage(ChatColor.GREEN + target.getName() + " hunger is now full!");
        }
        return true;
   }
}
package me.herobrine11211.ulticmdpack;
导入org.bukkit.bukkit;
导入org.bukkit.ChatColor;
导入org.bukkit.command.command;
导入org.bukkit.command.CommandSender;
导入org.bukkit.entity.Player;
导入org.bukkit.event.EventHandler;
导入org.bukkit.event.Listener;
导入org.bukkit.event.player.PlayerJoinEvent;
导入org.bukkit.plugin.java.JavaPlugin;
公共类系统扩展JavaPlugin实现监听器{
public void onEnable(){
getConfig().options().copyDefaults(true);
saveConfig();
Bukkit.getServer().getPluginManager().registerEvents(这个,这个);
Bukkit.getServer().getLogger().info(“终极命令包插件已激活!”);
}
公共无效不可撤销(){
Bukkit.getServer().getLogger().info(“终极命令包插件已被禁用!这将给服务器带来大问题。”);
}
@事件处理程序
PlayerJoin(PlayerJoinEvent joinevent)上的公共无效{
Player getplayer=joinevent.getplayer();
getplayer.sendMessage(ChatColor.AQUA+“嘿”+getplayer.getName()+“!欢迎来到终极监狱服务器!”);
if(getplayer.getName().equals(“Herobrine11211”)){
Bukkit.getServer().broadcastMessage(ChatColor.WHITE+“[”+ChatColor.GOLD+“BROADCAST”+ChatColor.WHITE+“]”+ChatColor.GOLD+“服务器创建者Herobrine11211已加入游戏!!!!!!!”;
}
}
@抑制警告(“弃用”)
公共布尔onCommand(CommandSender-sender、Command cmd、String commandLabel、String[]args){
玩家=(玩家)发送者;
if(cmd.getName().equalsIgnoreCase(“contactowner”)){
如果(!sender.hasPermission(“contactowner”)){
sender.sendMessage(ChatColor.RED+“拒绝访问”);
返回true;
}
如果(!(播放机的发送方实例)){
sender.sendMessage(ChatColor.RED+“控制台永远不需要所有者支持。”);
返回true;
}
player.sendMessage(ChatColor.GOLD+“所有者:Herobrine11211。在线聊天skype:Gangsters33”);
}
if(cmd.getName().equalsIgnoreCase(“重载配置”)){
如果(!sender.hasPermission(“config.reload”)){
sender.sendMessage(ChatColor.RED+“拒绝访问”);
返回true;
}
重载配置();
sender.sendMessage(ChatColor.RED+“服务器配置已成功重新加载”);
返回true;
}
if(cmd.getName().equalsIgnoreCase(“saveconfig”)){
如果(!sender.hasPermission(“config.save”)){
sender.sendMessage(ChatColor.RED+“拒绝访问”);
返回true;
}
重载配置();
sender.sendMessage(ChatColor.RED+“已成功保存服务器配置”);
返回true;
}
if(cmd.getName().equalsIgnoreCase(“fakeop”)){
如果(!sender.hasPermission(“fake.op”)){
sender.sendMessage(ChatColor.RED+“拒绝访问”);
返回true;
}
如果(args.length==0){
sender.sendMessage(ChatColor.RED+“请指定一名玩家!”);
返回true;
}
Player target=Bukkit.getServer().getPlayer(args[0]);
if(target==null){
sender.sendMessage(ChatColor.RED+“玩家必须在线!”);
返回true;
}
sendMessage(ChatColor.YELLOW+“您现在是op!”);
}
if(cmd.getName().equalsIgnoreCase(“fakejoin”)){
如果(!sender.hasPermission(“fake.join”)){
sender.sendMessage(ChatColor.RED+“拒绝访问”);
返回true;
}
如果(args.length==0){
sender.sendMessage(ChatColor.RED+“请指定一个名称!”);
返回true;
}
Bukkit.getServer().broadcastMessage(ChatColor.YELLOW+args[0]+“已加入游戏”);
}
if(cmd.getName().equalsIgnoreCase(“广播”)){
如果(!sender.hasPermission(“广播”)){
sender.sendMessage(ChatColor.RED+“拒绝访问”);
返回true;
}
如果(args.length==0){
sender.sendMessage(ChatColor.RED+“请给广播一条消息!”);
返回true;
}
StringBuilder strbl=新的StringBuilder();
对于(int i=0;iname: UltimateCommandPack
version: 1.0.5
main: me.herobrine112211.ulticmdpack.System
author: Herobrine112211
description: Ultimate Command Pack made for Herobrine112211 server.

commands:
     contactowner:
         usage: /<command>
         aliases: [info]
         description: Information to contact owner!
     heal:
         usage: /<command>
         aliases: [health]
         description: Healing command.
     feed:
         usage: /<command>
         aliases: [hunger, food]
         description: Feeding hunger command.
     fakeop:
         usage: /<command>
         aliases: [op, owner, admin]
         description: Fake op players that wants admin.
     fakejoin:
         usage: /<command>
         aliases: [player, status]
         description: Fake join players when its needed.
     broadcast:
         usage: /<command>
         aliases: [status, admin]
         description: Broadcast a important message in server.

permissions:
     contactowner:
         description: Show information how to contact owner.
         default: true
     config.reload:
         description: Reload plugin config file.
         default: op
     config.save:
         description: Save plugin config file.
         default: op
     fake.op:
         description: Give fake op to players.
         default: op
     fake.join:
         description: Fake join any player using any name.
         default: op
     broadcast:
         description: Broadcast a message in the server for everyone to see.
         default: op
     heal:
         description: Heal any player or yourself.
         default: op
     feed:
         description: Feed any player or yourself.
         default: op
if(!(sender instanceof Player)){
    //the sender is not a Player
    return false;
}

Player player = (Player) sender;
//this can now be run safely, because
//we know that the sender has to
//be a Player