Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Добавление игрока в группу permissions

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

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

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

    Баллы:
    66
    Имя в Minecraft:
    dnebik
    Возникла такая проблема - когда я создаю комманду на смену группы с Re на Ya и наоборот, то если это происходит в отношении sender'a то все идет гладко, но если я хочу сменить группу другого игрока, то выдает гигантский лог.

    Код:
    @Override
       public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
       
        ...
    
            if (cmd.getName().equalsIgnoreCase("y") && sender.isOp()) {
                if(args.length == 0){
                    Player p = (Player) sender;
                    PermissionUser user = PermissionsEx.getUser(p);
                    if(user.inGroup("Re")){
                        user.removeGroup("Re");
                        user.addGroup("Ya");
                    }else{
                        user.addGroup("Ya");
                    }
                    sender.sendMessage("Команда изменена на" + ChatColor.YELLOW + " YELLOW");
                    return true;
                    }else{
                        if(args.length == 1){
                            Player p = Bukkit.getPlayer(args[1]);
                            PermissionUser user = PermissionsEx.getUser(p);
                            if(user.inGroup("Re")){
                                user.removeGroup("Re");
                                user.addGroup("Ya");
                            }else{
                                user.addGroup("Ya");
                            }
                            sender.sendMessage("Команда игрока" + ChatColor.BLUE + args[1] + "изменена на" + ChatColor.YELLOW + " YELLOW");
                            return true;
                    }else{
                        sender.sendMessage("Слишком много аргументов");
                        return true;
                    }
                }
            }
    в чем моя ошибка?
     
  2. Хостинг MineCraft
    <
  3. Studenikin

    Studenikin Старожил Пользователь

    Баллы:
    123
    Skype:
    vanya.studenikin
    Имя в Minecraft:
    stuvanya
    Что пишет в лог?
     
  4. Автор темы
    dnebik

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

    Баллы:
    66
    Имя в Minecraft:
    dnebik
    Код:
    20.04 01:28:13 [Server] INFO ... 13 more
    20.04 01:28:13 [Server] INFO at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[craftbukkit-1.7.2-R0.3.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    20.04 01:28:13 [Server] INFO at RPG.MainClass.onCommand(MainClass.java:86) ~[?:?]
    20.04 01:28:13 [Server] INFO Caused by: java.lang.ArrayIndexOutOfBoundsException: 1
    20.04 01:28:13 [Server] INFO at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [craftbukkit-1.7.2-R0.3.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    20.04 01:28:13 [Server] INFO at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:457) [craftbukkit-1.7.2-R0.3.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    20.04 01:28:13 [Server] INFO at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:545) [craftbukkit-1.7.2-R0.3.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    20.04 01:28:13 [Server] INFO at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:250) [craftbukkit-1.7.2-R0.3.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    20.04 01:28:13 [Server] INFO at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:655) [craftbukkit-1.7.2-R0.3.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    20.04 01:28:13 [Server] INFO at net.minecraft.server.v1_7_R1.ServerConnection.c(SourceFile:134) [craftbukkit-1.7.2-R0.3.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    20.04 01:28:13 [Server] INFO at net.minecraft.server.v1_7_R1.NetworkManager.a(NetworkManager.java:146) [craftbukkit-1.7.2-R0.3.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    20.04 01:28:13 [Server] INFO at net.minecraft.server.v1_7_R1.PacketPlayInChat.handle(PacketPlayInChat.java:47) [craftbukkit-1.7.2-R0.3.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    20.04 01:28:13 [Server] INFO at net.minecraft.server.v1_7_R1.PacketPlayInChat.a(PacketPlayInChat.java:28) [craftbukkit-1.7.2-R0.3.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    20.04 01:28:13 [Server] INFO at net.minecraft.server.v1_7_R1.PlayerConnection.a(PlayerConnection.java:814) [craftbukkit-1.7.2-R0.3.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    20.04 01:28:13 [Server] INFO at net.minecraft.server.v1_7_R1.PlayerConnection.handleCommand(PlayerConnection.java:952) [craftbukkit-1.7.2-R0.3.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    20.04 01:28:13 [Server] INFO at org.bukkit.craftbukkit.v1_7_R1.CraftServer.dispatchCommand(CraftServer.java:683) ~[craftbukkit-1.7.2-R0.3.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    20.04 01:28:13 [Server] INFO at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:175) ~[craftbukkit-1.7.2-R0.3.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    20.04 01:28:13 [Server] INFO at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[craftbukkit-1.7.2-R0.3.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    20.04 01:28:13 [Server] INFO org.bukkit.command.CommandException: Unhandled exception executing command 'y' in plugin RPGCommands v1
    20.04 01:28:13 [Server] ERROR null
     
  5. saharin94

    saharin94 Старожил Пользователь Заблокирован

    Баллы:
    173
    Skype:
    RikkiLooh
    Имя в Minecraft:
    RubukkitDniwe
    Первый Ваш косяк:
    Код:
    Player p = (Player) sender;
    Если выполните команду из консоли или ещё чего-нибудь - получите ClassCastException. По крайней мере, поддержка вызова из консоли быть должна.

    Код:
                if(args.length == 1){
                            Player p = Bukkit.getPlayer(args[1]);
    
    
    С какого индекса начинается нумерация в массиве? :)
     
  6. Автор темы
    dnebik

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

    Баллы:
    66
    Имя в Minecraft:
    dnebik
    с нуля, но когда ноль то группа меняется у отправителя[DOUBLEPOST=1429483564,1429483446][/DOUBLEPOST]
    Этот момент я позже исправлю ))
     
  7. saharin94

    saharin94 Старожил Пользователь Заблокирован

    Баллы:
    173
    Skype:
    RikkiLooh
    Имя в Minecraft:
    RubukkitDniwe
    Тогда отправляйся учить основы Java.
     
  8. Автор темы
    dnebik

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

    Баллы:
    66
    Имя в Minecraft:
    dnebik
    хотя бы пояснили ошибку, что ли[DOUBLEPOST=1429484947,1429484505][/DOUBLEPOST][​IMG]

    гхм... если не с нуля то с чего
     
  9. Ission

    Ission Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    lokivava
    С нуля. length -- количество элементов. Почему при длине в 1 значение Вы берёте в торой элемент с индексом 1, а не первый элемент с индексом 0?
    args[args.length>1?1:0]
     
  10. Автор темы
    dnebik

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

    Баллы:
    66
    Имя в Minecraft:
    dnebik
    то есть что то типо этого
    Код:
                if(args.length == 1){
                            Player p = Bukkit.getPlayer(args[0]);
    
    [DOUBLEPOST=1429488292,1429487791][/DOUBLEPOST]Все работает! спасибо за помощь
     
Статус темы:
Закрыта.

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