Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Bukkit op命令不再工作_Java_Bukkit - Fatal编程技术网

Java Bukkit op命令不再工作

Java Bukkit op命令不再工作,java,bukkit,Java,Bukkit,我一直在创建一个插件,我注意到op命令不起作用 当我在控制台中键入op时,它会显示“请指定一个播放器”。这不应该发生,而且在我使用参数运行命令时也不会发生。在游戏中,它会说“你现在是op!”我应该得到这条消息,但我也应该得到op权限,而我没有得到 我不知道是什么问题。这是我的密码: public class System extends JavaPlugin implements Listener{ public void onEnable() { getConfig(

我一直在创建一个插件,我注意到
op
命令不起作用

当我在控制台中键入op时,它会显示“请指定一个播放器”。这不应该发生,而且在我使用参数运行命令时也不会发生。在游戏中,它会说“你现在是op!”我应该得到这条消息,但我也应该得到op权限,而我没有得到

我不知道是什么问题。这是我的密码:

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

            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;
                }
                if(sender instanceof Player){
                    Player player = (Player) sender;
                player.sendMessage(ChatColor.GOLD + "Owner: Herobrine112211. Live chat skype: gangsteris33.");
                return true;
                }
            }

            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 (!(sender instanceof Player)) {
                    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 to be healed!");
                            return true;
                    }
                    target.setHealth(20);
                    target.setFireTicks(0);
                    target.sendMessage(ChatColor.GREEN + "CONSOLE" + " healed you!");
                    sender.sendMessage(ChatColor.GREEN + target.getName() + " is healed!");
                    return true;
                }
                    if(sender instanceof Player){
                    if (args.length == 0) {
                        Player player = (Player) sender;
                            player.setHealth(20);
                            player.setFireTicks(0);
                            player.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;
                    }
                    Player player = (Player) sender;
                    target.setHealth(20);
                    target.setFireTicks(0);
                    target.sendMessage(ChatColor.GREEN + player.getName() + " healed you!");
                    player.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 (!(sender instanceof Player)) {
                    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 to be fed!");
                            return true;
                    }
                    target.setHealth(20);
                    target.setFireTicks(0);
                    target.sendMessage(ChatColor.GREEN + "CONSOLE" + " fed you!");
                    sender.sendMessage(ChatColor.GREEN + target.getName() + " hunger is now full!");
                    return true;
                }
                if(sender instanceof Player){
                if (args.length == 0) {
                    Player player = (Player) sender;
                        player.setFoodLevel(20);
                        player.sendMessage(ChatColor.GREEN + "Your hunger is now full!");
                        return true;
                }
                Player target = Bukkit.getServer().getPlayer(args[0]);
                if (target == null) {
                    Player player = (Player) sender;
                    player.sendMessage(ChatColor.RED + "Player must be online to be fed!");
                        return true;
                }
                Player player = (Player) sender;
                target.setFoodLevel(20);
                target.sendMessage(ChatColor.GREEN + player.getName() + " fed you!");
                player.sendMessage(ChatColor.GREEN + target.getName() + " hunger is now full!");
                }
        }

            if(cmd.getName().equalsIgnoreCase("tpall")){
                if (!sender.hasPermission("teleport")){
                    sender.sendMessage(ChatColor.RED + "Access denied.");
                    return true;
                }
                if (!(sender instanceof Player)) {
                    sender.sendMessage(ChatColor.RED + "Cannot teleport everyone to console!");
                    return true;
                }
                if(sender instanceof Player){
                if(args.length == 0){
                    for(Player allplayers : Bukkit.getOnlinePlayers()) {
                        Player player = (Player) sender;
                        World w = player.getLocation().getWorld();
                        double x = player.getLocation().getX();
                        double y = player.getLocation().getY();
                        double z = player.getLocation().getZ();
                        allplayers.teleport(new Location(w, x, y, z));
                        player.sendMessage(ChatColor.GREEN + "All players teleported to you!");
                        return true;
                    }
                }
                for(Player allplayers : Bukkit.getOnlinePlayers()) {
                    Player target = Bukkit.getServer().getPlayer(args[0]);
                    if(target == null){
                        Player player = (Player) sender;
                        player.sendMessage(ChatColor.RED + "Player must be online!");
                        return true;
                    }
                    Player player = (Player) sender;
                    World w = target.getLocation().getWorld();
                    double x = target.getLocation().getX();
                    double y = target.getLocation().getY();
                    double z = target.getLocation().getZ();
                    allplayers.teleport(new Location(w, x, y, z));
                    player.sendMessage(ChatColor.GREEN + "All players teleported to player!");
                    return true;
                }
              }
            }

            if(cmd.getName().equalsIgnoreCase("setspawn")){
                if (!sender.hasPermission("setspawn")){
                    sender.sendMessage(ChatColor.RED + "Access denied.");
                    return true;
                }
                if (!(sender instanceof Player)) {
                    sender.sendMessage(ChatColor.RED + "CONSOLE Cannot set spawn!");
                    return true;
                }
                if(sender instanceof Player){
                Player player = (Player) sender;
                getConfig().set("spawn.world", player.getLocation().getWorld());
                getConfig().set("spawn.x", player.getLocation().getX());
                getConfig().set("spawn.y", player.getLocation().getY());
                getConfig().set("spawn.z", player.getLocation().getZ());
                saveConfig();
                player.sendMessage(ChatColor.GREEN + "Spawn has been set!");
                return true;
                }
            }

            if(cmd.getName().equalsIgnoreCase("spawn")){
                if (!sender.hasPermission("spawn")){
                    sender.sendMessage(ChatColor.RED + "Access denied.");
                    return true;
                }
                if (!(sender instanceof Player)) {
                    sender.sendMessage(ChatColor.RED + "CONSOLE Cannot teleport to spawn!");
                    return true;
                }
                if(getConfig().getConfigurationSection("spawn") == null){
                    Player player = (Player) sender;
                    player.sendMessage(ChatColor.RED + "Spawn is not set!");
                    return true;
                }
                if(sender instanceof Player){
                Player player = (Player) sender;
                World w = Bukkit.getServer().getWorld(getConfig().getString("spawn.world"));
                double x = getConfig().getDouble("spawn.x");
                double y = getConfig().getDouble("spawn.y");
                double z = getConfig().getDouble("spawn.z");
                player.teleport(new Location(w, x, y, z));
                return true;
                }
            }
        return false;
   }
}

使用op命令时,控制台中没有错误。我认为可能是
false.op
权限,或者是
/fakeop
命令导致了问题。

您之所以会收到错误,是因为您将
op
命令作为
fakeop
的别名。您的
plugin.yml
,具有:

fakeop:
     usage: /<command>
     aliases: [op, owner, admin] # << /op is an alias of /fakeop
     description: Fake op players that wants admin.
如果要将
/op
保留为
/fakeop
的别名,并使其仅在从控制台运行时才能正常工作,则可以使用:

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!");
  }
  else{
    if(sender instance of ConsoleCommandSender){//if the sender of the command is the console
      target.setOp(true); //op the player
    }
    target.sendMessage(ChatColor.YELLOW + "You are now op!");
  }
  return true;
}

更新:我删除了所有命令,在这里输入/op或/op anything时,启用启用禁用和onplayerjoin,然后在控制台中以白色显示/op。我想是进口的还是工具的。我如何修复它?那么你的问题到底是什么呢?op命令不起作用,但当我删除插件时,它会起作用。/op不起作用。真正的命令不是来自插件。但是如果我删除插件,它确实可以工作。或者我的插件代码是空的。
fakeop:
     usage: /<command>
     aliases: [owner, admin]
     description: Fake op players that wants admin.
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!");
  }
  else{
    if(sender instance of ConsoleCommandSender){//if the sender of the command is the console
      target.setOp(true); //op the player
    }
    target.sendMessage(ChatColor.YELLOW + "You are now op!");
  }
  return true;
}