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

Помогите Обработка исключения команды плагина

Тема в разделе "Помощь", создана пользователем YarosNefrit, 15 янв 2019.

  1. Автор темы
    YarosNefrit

    YarosNefrit Новичок

    Баллы:
    6
    В моем плагине для работы команды нужно чтобы игрок ввёл саму команду и один аргумент. Как сделать так, чтобы когда игрок вводил лишь команду без аргументов у меня не выписывалась вот такая штука в игре:
    Код:
    An internal error occurred while attepmting to perform this command
    И вот такое в консоли:
    [12:31:43 ERROR]: null
    org.bukkit.command.CommandException: Unhandled exception executing command 'v' in plugin Plugins v1.0
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[PluginCommand.class:git-Cauldron-Reloaded-1.7.10-1.1388.1.0]
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:181) ~[SimpleCommandMap.class:git-Cauldron-Reloaded-1.7.10-1.1388.1.0]
    at org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchCommand(CraftServer.java:717) ~[CraftServer.class:git-Cauldron-Reloaded-1.7.10-1.1388.1.0]
    at net.minecraft.network.NetHandlerPlayServer.func_147361_d(NetHandlerPlayServer.java:1317) [nh.class:?]
    at net.minecraft.network.NetHandlerPlayServer.func_147354_a(NetHandlerPlayServer.java:1099) [nh.class:?]
    at net.minecraft.network.play.client.C01PacketChatMessage.func_148833_a(C01PacketChatMessage.java:38) [ir.class:?]
    at net.minecraft.network.play.client.C01PacketChatMessage.func_148833_a(C01PacketChatMessage.java:53) [ir.class:?]
    at net.minecraft.network.NetworkManager.func_74428_b(NetworkManager.java:244) [ej.class:?]
    at net.minecraft.network.NetworkSystem.func_151269_c(NetworkSystem.java:173) [nc.class:?]
    at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:980) [MinecraftServer.class:?]
    at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:430) [lt.class:?]
    at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:798) [MinecraftServer.class:?]
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:658) [MinecraftServer.class:?]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_191]
    Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
    at me.yaros.nefrit.VirtualManager.onCommand(VirtualManager.java:34) ~[?:?]
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[PluginCommand.class:git-Cauldron-Reloaded-1.7.10-1.1388.1.0]
    ... 13 more

    А вместо этого выписывалось исключительно моё сообщение.
    Что нужно дописать до класса, обрабатывающего мою команду или что нужно изменить в классе?


    Код:
        @Override
        public boolean onCommand(CommandSender sender, Command cmd, String str, String[] args) {
            Player player = (Player) sender;
            if(isPlayerOnline(player) && str.equalsIgnoreCase("v")) {
                if(args[0].equalsIgnoreCase("c")) {
                    try {
                        if(isHaveChest(player)) {
                          // Код
                            return true;
                        }
                    } catch (IllegalArgumentException e) {
                        e.printStackTrace();
                        return false;
                    } catch (IOException e) {
                        e.printStackTrace();
                        return false;
                    }
                      catch(CommandException e) {    // Даже это вставил, но, видимо, оно здесь не нужно или неправильно вставлено.
                       e.printStackTrace();
                       player.sendMessage("Добавьте аргумент"); // не выписывается.
                        return false;
                    }
                }else {
                   player.sendMessage("Введите аргумент верно"); // Выписывается, когда аргумент введён неверно, но не когда его вовсе нет.
                   return false;
                }
            }
           
            return false;
        }
     
  2. Хостинг MineCraft
    <

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