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

Статус
Закрыто для дальнейших ответов.

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]
 
Вот мой код
Код:
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;
    }
}
 
String Size = args[1];
Аргументы это всё что идёт после команды. Допустим ты вписал /size 1 2 3 , всего 3 аргумента(args[0] args[1] args[2]), начинаются они с нулевого, если ты запросишь args[3] не существующий аргумент, то выдаст эту ошибку
 
String Size = args[1];
Аргументы это всё что идёт после команды. Допустим ты вписал /size 1 2 3 , всего 3 аргумента(args[0] args[1] args[2]), начинаются они с нулевого, если ты запросишь args[3] не существующий аргумент, то выдаст эту ошибку
Проще говоря - вышел за пределы массива.
 
Проще говоря - вышел за пределы массива.
Единствие слова в коде про масив это
Код:
        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("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;
        }
Как по моему сдесь я не выхожу за пределы массива
args[1] - второй аргумент. Тоесть /command 1 2, перед этим проверяй,
if(args.length() == 0) {
return false
}
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх