Skocz do zawartości
  • 0

Blad plugin na gamemode


Pytanie

Cześć, ostatnio (3 dni temu) zacząłem pisać plugin (pierwszy) na gamemode i mam taki problem bo wyskakuje mi błąd "An internall error"

Cytat

public class GameModeCMD implements CommandExecutor {
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if(cmd.getName().equalsIgnoreCase("gamemodee")) {
            if (!(sender.hasPermission("cmd.gamemode"))) {
                sender.sendMessage(ChatColor.RED + "Nie masz uprawnien do tej komendy");
                return true;
            }
            if (args.length == 1) {
                if (args[0].equals(0) || args[0].equalsIgnoreCase("s")) {
                    Player p = (Player) sender;
                    p.setGameMode(GameMode.SURVIVAL);
                    sender.sendMessage(ChatColor.GREEN + "Twoj tryb gry zostal zmieniony na survival");
                    return true;
                }
                if(args[0].equals(1) || args[0].equalsIgnoreCase("c")) {
                    Player p = (Player) sender;
                    p.setGameMode(GameMode.CREATIVE);
                    sender.sendMessage(ChatColor.GREEN + "Twoj tryb gry zostal zmieniony na creative");
                    return  true;
                }
                if (args[0].equals(2) || args[0].equalsIgnoreCase("a")) {
                    Player p = (Player) sender;
                    p.setGameMode(GameMode.ADVENTURE);
                    sender.sendMessage( ChatColor.GREEN + "Twoj tryb gry zostal zmieniony na creative");
                    return true;
                }
            }
            if (args.length == 2) {
                Player t = Bukkit.getPlayerExact(args[1]);
                if (t!=null) {
                    if (args[0].equals(0) || args[0].equalsIgnoreCase("s")) {
                        t.setGameMode(GameMode.SURVIVAL);
                        t.sendMessage(ChatColor.GREEN + "Twoj tryb gry zostal zmieniony na survival");
                        sender.sendMessage(ChatColor.GREEN + "Tryb gracza:" +t.getName()+ " zostal zmieniony na survival");
                        return true;
                    }
                    if (args[0].equals(1) || args[0].equalsIgnoreCase("c")) {
                        t.setGameMode(GameMode.CREATIVE);
                        t.sendMessage(ChatColor.GREEN + "Twoj tryb gry zostal zmieniony na creative");
                        sender.sendMessage(ChatColor.GREEN + "Tryb gracza: " +t.getName()+ " zostal zmieniony na creative");
                        return true;
                    }
                    if (args[0].equals(2) || args[0].equalsIgnoreCase("a")) {
                        t.setGameMode(GameMode.ADVENTURE);
                        t.sendMessage(ChatColor.GREEN + "Twoj tryb gry zostal zmieniony na creative");
                        sender.sendMessage(ChatColor.GREEN + "Tryb gracza: " +t.getName()+ " zostal zmieniony na adventure");
                        return true;
                    }
                } else {
                    sender.sendMessage(ChatColor.RED + "Podales zla ilosc argumentow poprawne uzycie: /gamemode <nick> <s,c,a>");
                    return false;
                }
            } else {
                sender.sendMessage(ChatColor.RED + "Gracz o nicku: " +args[2]+ "jest offline");
                return false;
            }
        }
        return false;
    }
}

 

 

[00:15:47 INFO]: bka12323 issued server command: /gamemodee
[00:15:47 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'gamemodee' in plugin simpleplugin v1.0.0
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[server.jar:git-PaperSpigot-"8b18730"]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:143) ~[server.jar:git-PaperSpigot-"8b18730"]
at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:666) ~[server.jar:git-PaperSpigot-"8b18730"]
at net.minecraft.server.v1_8_R3.PlayerConnection.handleCommand(PlayerConnection.java:1189) [server.jar:git-PaperSpigot-"8b18730"]
at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:1001) [server.jar:git-PaperSpigot-"8b18730"]
at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:45) [server.jar:git-PaperSpigot-"8b18730"]
at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:1) [server.jar:git-PaperSpigot-"8b18730"]
at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [server.jar:git-PaperSpigot-"8b18730"]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_141]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_141]
at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [server.jar:git-PaperSpigot-"8b18730"]
at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:774) [server.jar:git-PaperSpigot-"8b18730"]
at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:378) [server.jar:git-PaperSpigot-"8b18730"]
at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:713) [server.jar:git-PaperSpigot-"8b18730"]
at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:616) [server.jar:git-PaperSpigot-"8b18730"]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_141]
Caused by: java.lang.ArrayIndexOutOfBoundsException: 2
at me.meme.simpleplugin.commands.GameModeCMD.onCommand(GameModeCMD.java:63) ~[?:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[server.jar:git-PaperSpigot-"8b18730"]
... 15 more

 

 

Odnośnik do komentarza
https://skript.pl/temat/32129-blad-plugin-na-gamemode/
Udostępnij na innych stronach

4 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
args[0].equals(0)

To ogólnie nie ma sensu bo string nie będzie liczbą.

A co do błędu to tutaj pomyliłeś else 

                } else {
                    sender.sendMessage(ChatColor.RED + "Podales zla ilosc argumentow poprawne uzycie: /gamemode <nick> <s,c,a>");
                    return false;
                }
            } else {
                sender.sendMessage(ChatColor.RED + "Gracz o nicku: " +args[2]+ "jest offline");
                return false;
            }

zamień wiadomości i zmień args[2] na args[1]

Odnośnik do komentarza
https://skript.pl/temat/32129-blad-plugin-na-gamemode/#findComment-209042
Udostępnij na innych stronach

  • 0
17 minut temu, Ixidi napisał:

args[0].equals(0)

To ogólnie nie ma sensu bo string nie będzie liczbą.

A co do błędu to tutaj pomyliłeś else 


                } else {
                    sender.sendMessage(ChatColor.RED + "Podales zla ilosc argumentow poprawne uzycie: /gamemode <nick> <s,c,a>");
                    return false;
                }
            } else {
                sender.sendMessage(ChatColor.RED + "Gracz o nicku: " +args[2]+ "jest offline");
                return false;
            }

zamień wiadomości i zmień args[2] na args[1]

Wielkie dzięki,Temat można oczywiście zamknąć

Odnośnik do komentarza
https://skript.pl/temat/32129-blad-plugin-na-gamemode/#findComment-209043
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...