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

Помогите Ошыбка при вводе команды

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

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

    DimaPoko22 Ньюби Пользователь

    Баллы:
    1
    Имя в Minecraft:
    saintedd
    Когда ввожу команду в консоль пишет следущее
    Код:
    org.bukkit.command.CommandException: Unhandled exception executing command 'size' in plugin TPlugin v1.0
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[server.jar:git-Spigot-2740d5a-890130b]
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:149) ~[server.jar:git-Spigot-2740d5a-890130b]
    at org.bukkit.craftbukkit.v1_16_R2.CraftServer.dispatchCommand(CraftServer.java:758) ~[server.jar:git-Spigot-2740d5a-890130b]
    at net.minecraft.server.v1_16_R2.PlayerConnection.handleCommand(PlayerConnection.java:1697) ~[server.jar:git-Spigot-2740d5a-890130b]
    at net.minecraft.server.v1_16_R2.PlayerConnection.a(PlayerConnection.java:1540) ~[server.jar:git-Spigot-2740d5a-890130b]
    at net.minecraft.server.v1_16_R2.PacketPlayInChat.a(PacketPlayInChat.java:47) ~[server.jar:git-Spigot-2740d5a-890130b]
    at net.minecraft.server.v1_16_R2.PacketPlayInChat.a(PacketPlayInChat.java:1) ~[server.jar:git-Spigot-2740d5a-890130b]
    at net.minecraft.server.v1_16_R2.PlayerConnectionUtils.lambda$0(PlayerConnectionUtils.java:19) ~[server.jar:git-Spigot-2740d5a-890130b]
    at net.minecraft.server.v1_16_R2.TickTask.run(SourceFile:18) ~[server.jar:git-Spigot-2740d5a-890130b]
    at net.minecraft.server.v1_16_R2.IAsyncTaskHandler.executeTask(SourceFile:144) ~[server.jar:git-Spigot-2740d5a-890130b]
    at net.minecraft.server.v1_16_R2.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[server.jar:git-Spigot-2740d5a-890130b]
    at net.minecraft.server.v1_16_R2.IAsyncTaskHandler.executeNext(SourceFile:118) ~[server.jar:git-Spigot-2740d5a-890130b]
    at net.minecraft.server.v1_16_R2.MinecraftServer.ba(MinecraftServer.java:941) ~[server.jar:git-Spigot-2740d5a-890130b]
    at net.minecraft.server.v1_16_R2.MinecraftServer.executeNext(MinecraftServer.java:934) ~[server.jar:git-Spigot-2740d5a-890130b]
    at net.minecraft.server.v1_16_R2.IAsyncTaskHandler.executeAll(SourceFile:103) ~[server.jar:git-Spigot-2740d5a-890130b]
    at net.minecraft.server.v1_16_R2.MinecraftServer.sleepForTick(MinecraftServer.java:917) ~[server.jar:git-Spigot-2740d5a-890130b]
    at net.minecraft.server.v1_16_R2.MinecraftServer.w(MinecraftServer.java:850) ~[server.jar:git-Spigot-2740d5a-890130b]
    at net.minecraft.server.v1_16_R2.MinecraftServer.lambda$0(MinecraftServer.java:164) ~[server.jar:git-Spigot-2740d5a-890130b]
    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_275]
    Caused by: java.lang.ArrayIndexOutOfBoundsException: 1
    at Plugin.main.MainCommand.onCommand(MainCommand.java:79) ~[?:?]
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[server.jar:git-Spigot-2740d5a-890130b]
     
  2. Автор темы
    DimaPoko22

    DimaPoko22 Ньюби Пользователь

    Баллы:
    1
    Имя в Minecraft:
    saintedd
    Вот мой код
    Код:
    package Plugin.main;
    
    import java.util.Random;
    import java.util.logging.Logger;
    
    
    
    import org.bukkit.plugin.java.JavaPlugin;
    
    
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Location;
    import org.bukkit.Material;
    import org.bukkit.World;
    import org.bukkit.WorldBorder;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    
    import org.bukkit.entity.Player;
    
    
    
    
    public class MainCommand extends JavaPlugin implements CommandExecutor {
       
       
        Logger log = Logger.getLogger("Minecraft");
        public String gamersS[];                                 
        public int size = 0;
        public int gamersI = 0;
        World world = Bukkit.getWorld("world");
       
        public void onEnable() {
            log.info("[TPlugin] Enable!");
            getCommand("start").setExecutor(this);
            getCommand("ready").setExecutor(this);
            getCommand("size").setExecutor(this);
            getCommand("startmp").setExecutor(this);
        }
       
        public void onDisable() {
            log.info("[TPlugin] Disable!");
           
        }
       
                                                              //start command
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
            int local = 0;
            if(cmd.getName().equalsIgnoreCase("start")) {     // START
                local++;
                Bukkit.broadcastMessage(ChatColor.BLACK + " " + ChatColor.RED + "/ready");
                int y = world.getHighestBlockYAt(0,0);
                world.setSpawnLocation(0, 0, y+1);
                return true;
            }
           
           
            if(local > 0) {
                if(cmd.getName().equalsIgnoreCase("ready")) { // READY
                    Player p = (Player) sender;
                    String Gamers = p.getName();
                    gamersI++;                                       
                    for(int i = 0; i >gamersI; i++) {
                        if(Gamers == gamersS[i]) {
                            sender.sendMessage(ChatColor.RED + "");                                                       
                        }
                    }
                    Gamers = gamersS[gamersI];
                    sender.sendMessage(ChatColor.RED + "Ты участвуешь!!");
                    return true;
                }
            }else {sender.sendMessage(ChatColor.RED + "");}
               
           
            if(cmd.getName().equalsIgnoreCase("size")) {         // SIZE 
                String Size = args[1];
                int size = Integer.valueOf(Size);
                WorldBorder wb = Bukkit.getWorld("world").getWorldBorder();
                wb.setCenter(0, 0);
                wb.setSize(size);
                return true;
            }
           
           
            if(cmd.getName().equalsIgnoreCase("startmp")) {      // START MP
                for (Player p : Bukkit.getOnlinePlayers()) {
                    Random rd = new Random();
                    int x = rd.nextInt(size - 10);
                    int z = rd.nextInt(size - 10);
                    int y = world.getHighestBlockYAt(x, z);
                     p.teleport(new Location(Bukkit.getWorld("world"), x, y, z));
                     Bukkit.getWorld("world").getBlockAt(x, y-1, z).setType(Material.GLASS);
                     
                     Bukkit.getWorld("world").getBlockAt(x+1, y, z).setType(Material.GLASS);
                     Bukkit.getWorld("world").getBlockAt(x, y, z+1).setType(Material.GLASS);
                     Bukkit.getWorld("world").getBlockAt(x-1, y, z).setType(Material.GLASS);
                     Bukkit.getWorld("world").getBlockAt(x, y, z-1).setType(Material.GLASS);
                     
                     Bukkit.getWorld("world").getBlockAt(x-1, y+1, z).setType(Material.GLASS);
                     Bukkit.getWorld("world").getBlockAt(x+1, y+1, z).setType(Material.GLASS);
                     Bukkit.getWorld("world").getBlockAt(x, y+1, z+1).setType(Material.GLASS);
                     Bukkit.getWorld("world").getBlockAt(x, y+1, z-1).setType(Material.GLASS);       
                    }
                local = 0;
                return true;
            }
            return true;
        }
    }
     
  3. NoooobKa

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

    Баллы:
    76
    Имя в Minecraft:
    NoooobKa
    String Size = args[1];
    Аргументы это всё что идёт после команды. Допустим ты вписал /size 1 2 3 , всего 3 аргумента(args[0] args[1] args[2]), начинаются они с нулевого, если ты запросишь args[3] не существующий аргумент, то выдаст эту ошибку
     
  4. LOVEC3327

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

    Баллы:
    76
    Имя в Minecraft:
    LOVEC3327
  5. LOVEC3327

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

    Баллы:
    76
    Имя в Minecraft:
    LOVEC3327
    Проще говоря - вышел за пределы массива.
     
  6. Автор темы
    DimaPoko22

    DimaPoko22 Ньюби Пользователь

    Баллы:
    1
    Имя в Minecraft:
    saintedd
    Единствие слова в коде про масив это
    Код:
            if(cmd.getName().equalsIgnoreCase("size")) {         // SIZE 
                String Size = args[1];
                int size = Integer.valueOf(Size);
                WorldBorder wb = Bukkit.getWorld("world").getWorldBorder();
                wb.setCenter(0, 0);
                wb.setSize(size);
                return true;
            }
    
    Как по моему сдесь я не выхожу за пределы массива
     
  7. _MRDen3000YT_

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

    Баллы:
    76
    args[1] - второй аргумент. Тоесть /command 1 2, перед этим проверяй,
    if(args.length() == 0) {
    return false
    }
     
  8. Автор темы
    DimaPoko22

    DimaPoko22 Ньюби Пользователь

    Баллы:
    1
    Имя в Minecraft:
    saintedd
    спасибо
     
Статус темы:
Закрыта.

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