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

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

Discussion in 'Помощь' started by YarosNefrit, Jan 15, 2019.

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

    YarosNefrit Новичок

    Trophy Points:
    6
    В моем плагине для работы команды нужно чтобы игрок ввёл саму команду и один аргумент. Как сделать так, чтобы когда игрок вводил лишь команду без аргументов у меня не выписывалась вот такая штука в игре:
    Code:
    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

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


    Code:
        @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
    <

Share This Page