1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Не работают приоритеты по группам Pex.

Тема в разделе "Разработка плагинов для новичков", создана пользователем bristol, 13 янв 2018.

Статус темы:
Закрыта.
  1. Автор темы
    bristol

    bristol Активный участник Пользователь

    Баллы:
    46
    Qq all!
    Писал свои баны, столкнулся с проблемкой, а вернее проблема с приоритетами по группа Pex.
    Вот код команды кика:
    Код:
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
            if(sender instanceof Player) {
                if(sender.hasPermission("bristbans.kick")) {
                    if(args.length == 0 || args.length == 1) {
                        sender.sendMessage("§7[§4§l!§7] §cВведите никнейм и причину! \n§7[§4§l!§7] §c/kick [Никнейм] [Причина] \n§7[§4§l!§7] §c/kick NaryIIIitel 1.1");
                        return true;
                    } else if(args.length >= 2) {
                        if(Bukkit.getPlayer(args[0]) != null) {
                            if(Bukkit.getPlayer(args[0]).isOnline()) {
                                Player p = Bukkit.getPlayer(sender.getName());
                                Player p2 = Bukkit.getPlayer(args[0]);
                                if(Main.getPriority().get(Main.getGroup(p)) >= Main.getPriority().get(p2)) {
                                    StringBuilder sb = new StringBuilder();
                                    for (int i = 1; i < args.length; i++) {
                                        sb.append(args[i]);
                                        sb.append(" ");
                                    }
                                    String reason = sb.toString();
                                    Kick kick = new Kick(System.currentTimeMillis(), args[0], sender.getName(), reason);
                                    kickPlayer(kick);
                                    sendKick(kick);
                                    return true;
                                }
                            } else {
                                sender.sendMessage("§7[§4§l!§7] §cТакого игрока не существует или нет на сервере!");
                                return true;
                            }
                        } else {
                            sender.sendMessage("§7[§4§l!§7] §cТакого игрока не существует или нет на сервере!");
                            return true;
                        }
                    }
                } else {
                    sender.sendMessage("§7[§4§l!§7] §cУ вас нету прав на выполнение данной команды!");
                    return true;
                }
            } else {
                //TODO
                return true;
            }
            return true;
        }
    Вот код главного класса:
    Код:
        public static HashMap<PermissionGroup, Integer> priorities = new HashMap<PermissionGroup, Integer>();
        
        public static HashMap<PermissionGroup, Integer> getPriority() {
            return priorities;
        }
        
        @SuppressWarnings("deprecation")
        public static PermissionGroup getGroup(Player sender) {
            PermissionGroup[] group = PermissionsEx.getUser(sender.getName()).getGroups();
            return group[0];
        }
    
        public void onEnable() {
            getCommand("kick").setExecutor(new KickCommand());
            int i = 0;
            for(PermissionGroup pg : PermissionsEx.getPermissionManager().getGroupList()) {
                i++;
                priorities.put(pg, i);
                Bukkit.getLogger().info("Идет сортировка групп!");
            }
        }
        
        public void onDisable() {
            
        }
    Выдает ошибку в 37 строке класса с командой Kick.
    Вот сама ошибка:
    Код:
    null
    org.bukkit.command.CommandException: Unhandled exception executing command 'kick' in plugin BristBans v1.0
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[Spigot.jar:git-Spigot-72c2605-251a5b6]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) ~[Spigot.jar:git-Spigot-72c2605-251a5b6]
        at org.bukkit.craftbukkit.v1_10_R1.CraftServer.dispatchCommand(CraftServer.java:647) ~[Spigot.jar:git-Spigot-72c2605-251a5b6]
        at net.minecraft.server.v1_10_R1.PlayerConnection.handleCommand(PlayerConnection.java:1358) [Spigot.jar:git-Spigot-72c2605-251a5b6]
        at net.minecraft.server.v1_10_R1.PlayerConnection.a(PlayerConnection.java:1193) [Spigot.jar:git-Spigot-72c2605-251a5b6]
        at net.minecraft.server.v1_10_R1.PacketPlayInChat.a(PacketPlayInChat.java:45) [Spigot.jar:git-Spigot-72c2605-251a5b6]
        at net.minecraft.server.v1_10_R1.PacketPlayInChat.a(PacketPlayInChat.java:1) [Spigot.jar:git-Spigot-72c2605-251a5b6]
        at net.minecraft.server.v1_10_R1.PlayerConnectionUtils$1.run(SourceFile:13) [Spigot.jar:git-Spigot-72c2605-251a5b6]
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_151]
        at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_151]
        at net.minecraft.server.v1_10_R1.SystemUtils.a(SourceFile:45) [Spigot.jar:git-Spigot-72c2605-251a5b6]
        at net.minecraft.server.v1_10_R1.MinecraftServer.D(MinecraftServer.java:732) [Spigot.jar:git-Spigot-72c2605-251a5b6]
        at net.minecraft.server.v1_10_R1.DedicatedServer.D(DedicatedServer.java:400) [Spigot.jar:git-Spigot-72c2605-251a5b6]
        at net.minecraft.server.v1_10_R1.MinecraftServer.C(MinecraftServer.java:668) [Spigot.jar:git-Spigot-72c2605-251a5b6]
        at net.minecraft.server.v1_10_R1.MinecraftServer.run(MinecraftServer.java:567) [Spigot.jar:git-Spigot-72c2605-251a5b6]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_151]
    Caused by: java.lang.NullPointerException
        at ru.bristol.bristbans.commands.KickCommand.onCommand(KickCommand.java:37) ~[?:?]
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[Spigot.jar:git-Spigot-72c2605-251a5b6]
        ... 15 more
    
    Всем спасибо за помощь заранее!
     
  2. hyndorik

    hyndorik Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    Код говяный, не любят тебя
     
  3. Автор темы
    bristol

    bristol Активный участник Пользователь

    Баллы:
    46
    Если ты увидел говяный код, лучше не просто написать про то что он говяный, а указать в каком месте он говяный.
     
  4. hyndorik

    hyndorik Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    Весь
     
  5. Nikolai_Faint

    Nikolai_Faint Активный участник Пользователь

    Баллы:
    96
    В таком случае надо объяснить что не так, а для команд могу посоветовать switch
     
  6. hyndorik

    hyndorik Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    Твой совет очень полезен, switch ничем не поможет и в основном дело вкуса
     
  7. Автор темы
    bristol

    bristol Активный участник Пользователь

    Баллы:
    46
    Проблема решена, решил использовать weight в pex.
     
Статус темы:
Закрыта.

Поделиться этой страницей