Вопрос как сделать /ban, /unban

sleinexxx

Пользователь
Сообщения
63
ban я вроде сделал, но когда нету игрока, то выдает NullPointerException хотя вроде я проверяю, если игрок == null или если он не в бане то return false;
и unban точно также.
Вот код ban
Java:
    Main main;
    
    public CmdBan(Main main)
    {
        this.main = main;
        main.getCommand("ban").setExecutor(this);
    }
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if(!(sender instanceof Player))
        {
            return false;
        }
        if(!sender.hasPermission("ZendeX.Bans"))
        {
            sender.sendMessage("§cУ вас нет прав!");
            return false;
        }
        if(args.length != 2)
        {
            sender.sendMessage("§cИспользуйте: /ban (Nickname) (Reason)");
            return false;
        }
        Player p = (Player) sender;
        Player target = Bukkit.getPlayer(args[0]);
        String reason = args[1];
        if(target.hasPermission("ZendeX.Mod") &&  p.hasPermission("ZendeX.Helper"))
        {
            p.sendMessage("§cУ вас нет прав!");
            return false;
        }
        if(target.hasPermission("ZendeX.Owner") &&  p.hasPermission("ZendeX.Helper"))
        {
            p.sendMessage("§cУ вас нет прав!");
            return false;
        }
        if(target.hasPermission("ZendeX.Admin") &&  p.hasPermission("ZendeX.Helper"))
        {
            p.sendMessage("§cУ вас нет прав!");
            return false;
        }
        if(target.hasPermission("ZendeX.Owner") &&  p.hasPermission("ZendeX.Mod"))
        {
            p.sendMessage("§cУ вас нет прав!");
            return false;
        }
        if(target.hasPermission("ZendeX.Admin") &&  p.hasPermission("ZendeX.Mod"))
        {
            p.sendMessage("§cУ вас нет прав!");
            return false;
        }
        if(target.hasPermission("ZendeX.Admin") &&  p.hasPermission("ZendeX.Owner"))
        {
            p.sendMessage("§cУ вас нет прав!");
            return false;
        }
        if(target.toString() == p.toString())
        {
            p.sendMessage("§cВы не можете забанить самого себя!");
            return false;
        }
        if(target == null || !target.isOnline())
        {
            sender.sendMessage("§cИгрок не найден!");
            return false;
        }
        if(reason.contains("1.4"))
        {
            p.sendMessage("§7Игрок §8" + target + "§7 успешно забанен.");
            for(Player players : Bukkit.getOnlinePlayers())
            {
                if(players.hasPermission("ZendeX.Admin") || players.hasPermission("ZendeX.Owner") || players.hasPermission("ZendeX.Mod") || players.hasPermission("ZendeX.Helper") || players.hasPermission("ZendeX.JrHelper"))
                {
                    players.sendMessage("§9МОДЕРАЦИЯ §8| §fПерсонал §b" + p + "§f заблокировал нарушителя §c" + target + "§f за §c" + reason);
                }
            }
            target.kickPlayer("§7Вы были забанены игроком §8" + p + "§7 §8НАВСЕГДА §7за §81.4(Реклама серверов)\n\n§fПокупка разбана: §9zendex.su");
            Bukkit.getBanList(BanList.Type.NAME).addBan(target.getName(), null, null, null);
            return true;
        } else if(reason.contains("1.9"))
        {
            p.sendMessage("§7Игрок §8" + target + "§7 успешно забанен.");
            for(Player players : Bukkit.getOnlinePlayers())
            {
                if(players.hasPermission("ZendeX.Admin") || players.hasPermission("ZendeX.Owner") || players.hasPermission("ZendeX.Mod") || players.hasPermission("ZendeX.Helper") || players.hasPermission("ZendeX.JrHelper"))
                {
                    players.sendMessage("§9МОДЕРАЦИЯ §8| §fПерсонал §b" + p + "§f заблокировал нарушителя §c" + target + "§f за §c" + reason);
                }
            }
            Bukkit.getBanList(BanList.Type.NAME).addBan(target.getName(), null, null, null);
            target.kickPlayer("§7Вы были забанены игроком §8" + p + "§7 §8НАВСЕГДА §7за §81.9(Передача аккаунта)\n\n§fПокупка разбана: §9zendex.su");
            return true;
            }else if(reason.contains("2.0"))
            {
            p.sendMessage("§7Игрок §8" + target + "§7 успешно забанен.");
            for(Player players : Bukkit.getOnlinePlayers())
            {
                if(players.hasPermission("ZendeX.Admin") || players.hasPermission("ZendeX.Owner") || players.hasPermission("ZendeX.Mod") || players.hasPermission("ZendeX.Helper") || players.hasPermission("ZendeX.JrHelper"))
                {
                    players.sendMessage("§9МОДЕРАЦИЯ §8| §fПерсонал §b" + p + "§f заблокировал нарушителя §c" + target + "§f за §c" + reason);
                }
            }
            Bukkit.getBanList(BanList.Type.NAME).addBan(target.getName(), null, null, null);
            target.kickPlayer("§7Вы были забанены игроком §8" + p + "§7 §8НАВСЕГДА §7за §82.0(Продажа аккаунта)\n\n§fПокупка разбана: §9zendex.su");
            return true;
        }else if(reason.contains("2.1"))
        {
            p.sendMessage("§7Игрок §8" + target + "§7 успешно забанен.");
            for(Player players : Bukkit.getOnlinePlayers())
            {
                if(players.hasPermission("ZendeX.Admin") || players.hasPermission("ZendeX.Owner") || players.hasPermission("ZendeX.Mod") || players.hasPermission("ZendeX.Helper") || players.hasPermission("ZendeX.JrHelper"))
                {
                    players.sendMessage("§9МОДЕРАЦИЯ §8| §fПерсонал §b" + p + "§f заблокировал нарушителя §c" + target + "§f за §c" + reason);
                }
            }
            Bukkit.getBanList(BanList.Type.NAME).addBan(target.getName(), null, null, null);
            target.kickPlayer("§7Вы были забанены игроком §8" + p + "§7 §8НАВСЕГДА §7за §82.1(Читы)\n\n§fПокупка разбана: §9zendex.su");
            return true;
        }else if(reason.contains("2.2"))
        {
            p.sendMessage("§7Игрок §8" + target + "§7 успешно забанен.");
            for(Player players : Bukkit.getOnlinePlayers())
            {
                if(players.hasPermission("ZendeX.Admin") || players.hasPermission("ZendeX.Owner") || players.hasPermission("ZendeX.Mod") || players.hasPermission("ZendeX.Helper") || players.hasPermission("ZendeX.JrHelper"))
                {
                    players.sendMessage("§9МОДЕРАЦИЯ §8| §fПерсонал §b" + p + "§f заблокировал нарушителя §c" + target + "§f за §c" + reason);
                }
            }
            Bukkit.getBanList(BanList.Type.NAME).addBan(target.getName(), null, null, null);
            target.kickPlayer("§7Вы были забанены игроком §8" + p + "§7 §8НАВСЕГДА §7за §82.2(Багоюз)\n\n§fПокупка разбана: §9zendex.su");
            return true;
        }else if(reason.contains("2.3"))
        {
            p.sendMessage("§7Игрок §8" + target + "§7 успешно забанен.");
            for(Player players : Bukkit.getOnlinePlayers())
            {
                if(players.hasPermission("ZendeX.Admin") || players.hasPermission("ZendeX.Owner") || players.hasPermission("ZendeX.Mod") || players.hasPermission("ZendeX.Helper") || players.hasPermission("ZendeX.JrHelper"))
                {
                    players.sendMessage("§9МОДЕРАЦИЯ §8| §fПерсонал §b" + p + "§f заблокировал нарушителя §c" + target + "§f за §c" + reason);
                }
            }
             Bukkit.getBanList(BanList.Type.NAME).addBan(target.getName(), null, null, null);
            target.kickPlayer("§7Вы были забанены игроком §8" + p + "§7 §8НАВСЕГДА §7за §82.3(Тим на solo режимах)\n\n§fПокупка разбана: §9zendex.su");
            return true;
        }else if(reason.contains("2.4"))
        {
            p.sendMessage("§7Игрок §8" + target + "§7 успешно забанен.");
            for(Player players : Bukkit.getOnlinePlayers())
            {
                if(players.hasPermission("ZendeX.Admin") || players.hasPermission("ZendeX.Owner") || players.hasPermission("ZendeX.Mod") || players.hasPermission("ZendeX.Helper") || players.hasPermission("ZendeX.JrHelper"))
                {
                    players.sendMessage("§9МОДЕРАЦИЯ §8| §fПерсонал §b" + p + "§f заблокировал нарушителя §c" + target + "§f за §c" + reason);
                }
            }
            Bukkit.getBanList(BanList.Type.NAME).addBan(target.getName(), null, null, null);
            target.kickPlayer("§7Вы были забанены игроком §8" + p + "§7 §8НАВСЕГДА §7за §82.4(ОбЪединение в тиму из нескольких комманд)\n\n§fПокупка разбана: §9zendex.su");
            return true;
        }else if(reason.contains("2.5"))
        {
            p.sendMessage("§7Игрок §8" + target + "§7 успешно забанен.");
            for(Player players : Bukkit.getOnlinePlayers())
            {
                if(players.hasPermission("ZendeX.Admin") || players.hasPermission("ZendeX.Owner") || players.hasPermission("ZendeX.Mod") || players.hasPermission("ZendeX.Helper") || players.hasPermission("ZendeX.JrHelper"))
                {
                    players.sendMessage("§9МОДЕРАЦИЯ §8| §fПерсонал §b" + p + "§f заблокировал нарушителя §c" + target + "§f за §c" + reason);
                }
            }
            Bukkit.getBanList(BanList.Type.NAME).addBan(target.getName(), null, null, null);
            target.kickPlayer("§7Вы были забанены игроком §8" + p + "§7 §8НАВСЕГДА §7за §82.5(Умалчивание о нарушениях в команде)\n\n§fПокупка разбана: §9zendex.su");
            return true;
        }else if(reason.contains("2.6"))
        {
            p.sendMessage("§7Игрок §8" + target + "§7 успешно забанен.");
            for(Player players : Bukkit.getOnlinePlayers())
            {
                if(players.hasPermission("ZendeX.Admin") || players.hasPermission("ZendeX.Owner") || players.hasPermission("ZendeX.Mod") || players.hasPermission("ZendeX.Helper") || players.hasPermission("ZendeX.JrHelper"))
                {
                    players.sendMessage("§9МОДЕРАЦИЯ §8| §fПерсонал §b" + p + "§f заблокировал нарушителя §c" + target + "§f за §c" + reason);
                }
            }
            Bukkit.getBanList(BanList.Type.NAME).addBan(target.getName(), null, null, null);
            target.kickPlayer("§7Вы были забанены игроком §8" + p + "§7 §8НАВСЕГДА §7за §82.6(Обман персонала)\n\n§fПокупка разбана: §9zendex.su");
            return true;
А вот unban
Java:
if(!sender.hasPermission("ZendeX.Bans"))
        {
            sender.sendMessage("§cУ вас нет прав!");
            return false;
        }
        if(args.length != 1)
        {
            sender.sendMessage("§cИспользуйте: /unban (Nickname)");
            return false;
        }
        Player target = Bukkit.getPlayer(args[0]);
        if(!Bukkit.getBanList(BanList.Type.NAME).isBanned(target.getName().toString()) || target == null)
        {
            System.out.println("Игрок не в бане или его не существует!");
        }
        sender.sendMessage("§7Игрок §8" + target + "§7 был разбанен.");
        for(Player players : Bukkit.getOnlinePlayers())
        {
            if(players.hasPermission("ZendeX.Admin") || players.hasPermission("ZendeX.Owner") || players.hasPermission("ZendeX.Mod") || players.hasPermission("ZendeX.Helper") || players.hasPermission("ZendeX.JrHelper"))
            {
                players.sendMessage("§9МОДЕРАЦИЯ §8| §fПерсонал §b" + sender + "§f разблокировал нарушителя §c" + target);
            }
        }
        Bukkit.getBanList(BanList.Type.NAME).pardon(target.getName().toString());
        return true;
 
Решение
советую перестать ставить первую скобку на отдельной строчку
В таком случае советую научиться пользоваться запросами sql.
Потому что, насколько мне известно, код стайл человека - его личное дело. Пока он пишет для себя любимого - всё нормально.

ban я вроде сделал, но когда нету игрока, то выдает NullPointerException хотя вроде я проверяю, если игрок == null или если он не в бане то return false;
и unban точно также.
Вот код ban
Java:
    Main main;

    public CmdBan(Main main)
    {
        this.main = main;
        main.getCommand("ban").setExecutor(this);
    }
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if(!(sender instanceof Player))
        {...
1. нет логов об ошибке, ты не указал конкретную строчку, где выпадает исключение
2. советую перестать ставить первую скобку на отдельной строчку, а также научиться использовать switch. казалось бы простая обработка занимает ужасно большое количество строк
 
советую перестать ставить первую скобку на отдельной строчку
В таком случае советую научиться пользоваться запросами sql.
Потому что, насколько мне известно, код стайл человека - его личное дело. Пока он пишет для себя любимого - всё нормально.

ban я вроде сделал, но когда нету игрока, то выдает NullPointerException хотя вроде я проверяю, если игрок == null или если он не в бане то return false;
и unban точно также.
Вот код ban
Java:
    Main main;

    public CmdBan(Main main)
    {
        this.main = main;
        main.getCommand("ban").setExecutor(this);
    }
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if(!(sender instanceof Player))
        {
            return false;
        }
        if(!sender.hasPermission("ZendeX.Bans"))
        {
            sender.sendMessage("§cУ вас нет прав!");
            return false;
        }
        if(args.length != 2)
        {
            sender.sendMessage("§cИспользуйте: /ban (Nickname) (Reason)");
            return false;
        }
        Player p = (Player) sender;
        Player target = Bukkit.getPlayer(args[0]);
        String reason = args[1];
        if(target.hasPermission("ZendeX.Mod") &&  p.hasPermission("ZendeX.Helper"))
        {
            p.sendMessage("§cУ вас нет прав!");
            return false;
        }
        if(target.hasPermission("ZendeX.Owner") &&  p.hasPermission("ZendeX.Helper"))
        {
            p.sendMessage("§cУ вас нет прав!");
            return false;
        }
        if(target.hasPermission("ZendeX.Admin") &&  p.hasPermission("ZendeX.Helper"))
        {
            p.sendMessage("§cУ вас нет прав!");
            return false;
        }
        if(target.hasPermission("ZendeX.Owner") &&  p.hasPermission("ZendeX.Mod"))
        {
            p.sendMessage("§cУ вас нет прав!");
            return false;
        }
        if(target.hasPermission("ZendeX.Admin") &&  p.hasPermission("ZendeX.Mod"))
        {
            p.sendMessage("§cУ вас нет прав!");
            return false;
        }
        if(target.hasPermission("ZendeX.Admin") &&  p.hasPermission("ZendeX.Owner"))
        {
            p.sendMessage("§cУ вас нет прав!");
            return false;
        }
        if(target.toString() == p.toString())
        {
            p.sendMessage("§cВы не можете забанить самого себя!");
            return false;
        }
        if(target == null || !target.isOnline())
        {
            sender.sendMessage("§cИгрок не найден!");
            return false;
        }
        if(reason.contains("1.4"))
        {
            p.sendMessage("§7Игрок §8" + target + "§7 успешно забанен.");
            for(Player players : Bukkit.getOnlinePlayers())
            {
                if(players.hasPermission("ZendeX.Admin") || players.hasPermission("ZendeX.Owner") || players.hasPermission("ZendeX.Mod") || players.hasPermission("ZendeX.Helper") || players.hasPermission("ZendeX.JrHelper"))
                {
                    players.sendMessage("§9МОДЕРАЦИЯ §8| §fПерсонал §b" + p + "§f заблокировал нарушителя §c" + target + "§f за §c" + reason);
                }
            }
            target.kickPlayer("§7Вы были забанены игроком §8" + p + "§7 §8НАВСЕГДА §7за §81.4(Реклама серверов)\n\n§fПокупка разбана: §9zendex.su");
            Bukkit.getBanList(BanList.Type.NAME).addBan(target.getName(), null, null, null);
            return true;
        } else if(reason.contains("1.9"))
        {
            p.sendMessage("§7Игрок §8" + target + "§7 успешно забанен.");
            for(Player players : Bukkit.getOnlinePlayers())
            {
                if(players.hasPermission("ZendeX.Admin") || players.hasPermission("ZendeX.Owner") || players.hasPermission("ZendeX.Mod") || players.hasPermission("ZendeX.Helper") || players.hasPermission("ZendeX.JrHelper"))
                {
                    players.sendMessage("§9МОДЕРАЦИЯ §8| §fПерсонал §b" + p + "§f заблокировал нарушителя §c" + target + "§f за §c" + reason);
                }
            }
            Bukkit.getBanList(BanList.Type.NAME).addBan(target.getName(), null, null, null);
            target.kickPlayer("§7Вы были забанены игроком §8" + p + "§7 §8НАВСЕГДА §7за §81.9(Передача аккаунта)\n\n§fПокупка разбана: §9zendex.su");
            return true;
            }else if(reason.contains("2.0"))
            {
            p.sendMessage("§7Игрок §8" + target + "§7 успешно забанен.");
            for(Player players : Bukkit.getOnlinePlayers())
            {
                if(players.hasPermission("ZendeX.Admin") || players.hasPermission("ZendeX.Owner") || players.hasPermission("ZendeX.Mod") || players.hasPermission("ZendeX.Helper") || players.hasPermission("ZendeX.JrHelper"))
                {
                    players.sendMessage("§9МОДЕРАЦИЯ §8| §fПерсонал §b" + p + "§f заблокировал нарушителя §c" + target + "§f за §c" + reason);
                }
            }
            Bukkit.getBanList(BanList.Type.NAME).addBan(target.getName(), null, null, null);
            target.kickPlayer("§7Вы были забанены игроком §8" + p + "§7 §8НАВСЕГДА §7за §82.0(Продажа аккаунта)\n\n§fПокупка разбана: §9zendex.su");
            return true;
        }else if(reason.contains("2.1"))
        {
            p.sendMessage("§7Игрок §8" + target + "§7 успешно забанен.");
            for(Player players : Bukkit.getOnlinePlayers())
            {
                if(players.hasPermission("ZendeX.Admin") || players.hasPermission("ZendeX.Owner") || players.hasPermission("ZendeX.Mod") || players.hasPermission("ZendeX.Helper") || players.hasPermission("ZendeX.JrHelper"))
                {
                    players.sendMessage("§9МОДЕРАЦИЯ §8| §fПерсонал §b" + p + "§f заблокировал нарушителя §c" + target + "§f за §c" + reason);
                }
            }
            Bukkit.getBanList(BanList.Type.NAME).addBan(target.getName(), null, null, null);
            target.kickPlayer("§7Вы были забанены игроком §8" + p + "§7 §8НАВСЕГДА §7за §82.1(Читы)\n\n§fПокупка разбана: §9zendex.su");
            return true;
        }else if(reason.contains("2.2"))
        {
            p.sendMessage("§7Игрок §8" + target + "§7 успешно забанен.");
            for(Player players : Bukkit.getOnlinePlayers())
            {
                if(players.hasPermission("ZendeX.Admin") || players.hasPermission("ZendeX.Owner") || players.hasPermission("ZendeX.Mod") || players.hasPermission("ZendeX.Helper") || players.hasPermission("ZendeX.JrHelper"))
                {
                    players.sendMessage("§9МОДЕРАЦИЯ §8| §fПерсонал §b" + p + "§f заблокировал нарушителя §c" + target + "§f за §c" + reason);
                }
            }
            Bukkit.getBanList(BanList.Type.NAME).addBan(target.getName(), null, null, null);
            target.kickPlayer("§7Вы были забанены игроком §8" + p + "§7 §8НАВСЕГДА §7за §82.2(Багоюз)\n\n§fПокупка разбана: §9zendex.su");
            return true;
        }else if(reason.contains("2.3"))
        {
            p.sendMessage("§7Игрок §8" + target + "§7 успешно забанен.");
            for(Player players : Bukkit.getOnlinePlayers())
            {
                if(players.hasPermission("ZendeX.Admin") || players.hasPermission("ZendeX.Owner") || players.hasPermission("ZendeX.Mod") || players.hasPermission("ZendeX.Helper") || players.hasPermission("ZendeX.JrHelper"))
                {
                    players.sendMessage("§9МОДЕРАЦИЯ §8| §fПерсонал §b" + p + "§f заблокировал нарушителя §c" + target + "§f за §c" + reason);
                }
            }
             Bukkit.getBanList(BanList.Type.NAME).addBan(target.getName(), null, null, null);
            target.kickPlayer("§7Вы были забанены игроком §8" + p + "§7 §8НАВСЕГДА §7за §82.3(Тим на solo режимах)\n\n§fПокупка разбана: §9zendex.su");
            return true;
        }else if(reason.contains("2.4"))
        {
            p.sendMessage("§7Игрок §8" + target + "§7 успешно забанен.");
            for(Player players : Bukkit.getOnlinePlayers())
            {
                if(players.hasPermission("ZendeX.Admin") || players.hasPermission("ZendeX.Owner") || players.hasPermission("ZendeX.Mod") || players.hasPermission("ZendeX.Helper") || players.hasPermission("ZendeX.JrHelper"))
                {
                    players.sendMessage("§9МОДЕРАЦИЯ §8| §fПерсонал §b" + p + "§f заблокировал нарушителя §c" + target + "§f за §c" + reason);
                }
            }
            Bukkit.getBanList(BanList.Type.NAME).addBan(target.getName(), null, null, null);
            target.kickPlayer("§7Вы были забанены игроком §8" + p + "§7 §8НАВСЕГДА §7за §82.4(ОбЪединение в тиму из нескольких комманд)\n\n§fПокупка разбана: §9zendex.su");
            return true;
        }else if(reason.contains("2.5"))
        {
            p.sendMessage("§7Игрок §8" + target + "§7 успешно забанен.");
            for(Player players : Bukkit.getOnlinePlayers())
            {
                if(players.hasPermission("ZendeX.Admin") || players.hasPermission("ZendeX.Owner") || players.hasPermission("ZendeX.Mod") || players.hasPermission("ZendeX.Helper") || players.hasPermission("ZendeX.JrHelper"))
                {
                    players.sendMessage("§9МОДЕРАЦИЯ §8| §fПерсонал §b" + p + "§f заблокировал нарушителя §c" + target + "§f за §c" + reason);
                }
            }
            Bukkit.getBanList(BanList.Type.NAME).addBan(target.getName(), null, null, null);
            target.kickPlayer("§7Вы были забанены игроком §8" + p + "§7 §8НАВСЕГДА §7за §82.5(Умалчивание о нарушениях в команде)\n\n§fПокупка разбана: §9zendex.su");
            return true;
        }else if(reason.contains("2.6"))
        {
            p.sendMessage("§7Игрок §8" + target + "§7 успешно забанен.");
            for(Player players : Bukkit.getOnlinePlayers())
            {
                if(players.hasPermission("ZendeX.Admin") || players.hasPermission("ZendeX.Owner") || players.hasPermission("ZendeX.Mod") || players.hasPermission("ZendeX.Helper") || players.hasPermission("ZendeX.JrHelper"))
                {
                    players.sendMessage("§9МОДЕРАЦИЯ §8| §fПерсонал §b" + p + "§f заблокировал нарушителя §c" + target + "§f за §c" + reason);
                }
            }
            Bukkit.getBanList(BanList.Type.NAME).addBan(target.getName(), null, null, null);
            target.kickPlayer("§7Вы были забанены игроком §8" + p + "§7 §8НАВСЕГДА §7за §82.6(Обман персонала)\n\n§fПокупка разбана: §9zendex.su");
            return true;
А вот unban
Java:
if(!sender.hasPermission("ZendeX.Bans"))
        {
            sender.sendMessage("§cУ вас нет прав!");
            return false;
        }
        if(args.length != 1)
        {
            sender.sendMessage("§cИспользуйте: /unban (Nickname)");
            return false;
        }
        Player target = Bukkit.getPlayer(args[0]);
        if(!Bukkit.getBanList(BanList.Type.NAME).isBanned(target.getName().toString()) || target == null)
        {
            System.out.println("Игрок не в бане или его не существует!");
        }
        sender.sendMessage("§7Игрок §8" + target + "§7 был разбанен.");
        for(Player players : Bukkit.getOnlinePlayers())
        {
            if(players.hasPermission("ZendeX.Admin") || players.hasPermission("ZendeX.Owner") || players.hasPermission("ZendeX.Mod") || players.hasPermission("ZendeX.Helper") || players.hasPermission("ZendeX.JrHelper"))
            {
                players.sendMessage("§9МОДЕРАЦИЯ §8| §fПерсонал §b" + sender + "§f разблокировал нарушителя §c" + target);
            }
        }
        Bukkit.getBanList(BanList.Type.NAME).pardon(target.getName().toString());
        return true;
Если ты видишь в своём коде повторяющиеся строки раз за разом с совсем небольшими различиями - значит с кодом что-то не так. Конкретно в твоём случае огромная беда как с проверками на разрешения, так и с исполнением наказаний по правилам. А ещё ты там в некоторых местах восклицательные знаки перед условиями потерял.
Все твои else if, где меняются, по сути, только номер правила и сообщения можно реализовать в один метод с переменными.

Если ловишь NPE при '/ban', то, скорее всего, причина в этом:
Код:
if(target.toString() == p.toString())
{
    p.sendMessage("§cВы не можете забанить самого себя!");
    return false;
}
        
if(target == null || !target.isOnline())
{
    sender.sendMessage("§cИгрок не найден!");
    return false;
}
Ты сначала делаешь кучу проверок на разрешения используя при этом объект 'target' так, будто там не может быть null, а потом, под конец, решаешь проверить, а не нулл ли он в самом деле?

Если дело касается '/unban', то, скорее всего, причина здесь:
Код:
if(!Bukkit.getBanList(BanList.Type.NAME).isBanned(target.getName().toString()) || target == null)
Тут ты сначала берёшь имя у 'target' чтобы проверить есть ли он в списке забаненных, а только потом, вдруг, решаешь проверить, а не нулл ли твой 'target'.
 
Последнее редактирование:
В таком случае советую научиться пользоваться запросами sql.
Потому что, насколько мне известно, код стайл человека - его личное дело. Пока он пишет для себя любимого - всё нормально.


Если ты видишь в своём коде повторяющиеся строки раз за разом с совсем небольшими различиями - значит с кодом что-то не так. Конкретно в твоём случае огромная беда как с проверками на разрешения, так и с исполнением наказаний по правилам. А ещё ты там в некоторых местах восклицательные знаки перед условиями потерял.
Все твои else if, где меняются, по сути, только номер правила и сообщения можно реализовать в один метод с переменными.

Если ловишь NPE при '/ban', то, скорее всего, причина в этом:
Код:
if(target.toString() == p.toString())
{
    p.sendMessage("§cВы не можете забанить самого себя!");
    return false;
}
       
if(target == null || !target.isOnline())
{
    sender.sendMessage("§cИгрок не найден!");
    return false;
}
Ты сначала делаешь кучу проверок на разрешения используя при этом объект 'target' так, будто там не может быть null, а потом, под конец, решаешь проверить, а не нулл ли он в самом деле?

Если дело касается '/unban', то, скорее всего, причина здесь:
Код:
if(!Bukkit.getBanList(BanList.Type.NAME).isBanned(target.getName().toString()) || target == null)
Тут ты сначала берёшь имя у 'target' чтобы проверить есть ли он в списке забаненных, а только потом, вдруг, решаешь проверить, а не нулл ли твой 'target'.
Все заработало, только с просто Player не работало, а с OfflinePlayer заработало
 
Назад
Сверху Снизу