CommandExecutor hat Unhandled exception executing command

Dieses Thema im Forum "Server Plugins" wurde erstellt von Keksi1996, 9. September 2015.

  1. Keksi1996
    Offline

    Keksi1996

    Registriert seit:
    25. März 2012
    Beiträge:
    11
    Ort:
    Herdecke
    Minecraft:
    Derakar
    Heyho, wie der Titel schon sagt habe ich einen CommandExecutor gemacht dieser wird aber nicht ausgeführt und gibt mir einen Error...

    Kann mir eventuell jemand Rat geben?

    [20:40:24 INFO]: Derakar issued server command: /fly
    [20:40:24 ERROR]: null
    org.bukkit.command.CommandException: Unhandled exception executing command 'fly' in plugin Lobby v1.0
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[spigot.jar:git-Spigot-d97e08b-880a532]
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) ~[spigot.jar:git-Spigot-d97e08b-880a532]
    at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:641) ~[spigot.jar:git-Spigot-d97e08b-880a532]
    at net.minecraft.server.v1_8_R3.PlayerConnection.handleCommand(PlayerConnection.java:1162) [spigot.jar:git-Spigot-d97e08b-880a532]
    at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:997) [spigot.jar:git-Spigot-d97e08b-880a532]
    at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:45) [spigot.jar:git-Spigot-d97e08b-880a532]
    at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:1) [spigot.jar:git-Spigot-d97e08b-880a532]
    at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [spigot.jar:git-Spigot-d97e08b-880a532]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_25]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_25]
    at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [spigot.jar:git-Spigot-d97e08b-880a532]
    at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:714) [spigot.jar:git-Spigot-d97e08b-880a532]
    at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [spigot.jar:git-Spigot-d97e08b-880a532]
    at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:653) [spigot.jar:git-Spigot-d97e08b-880a532]
    at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:556) [spigot.jar:git-Spigot-d97e08b-880a532]
    at java.lang.Thread.run(Thread.java:745) [?:1.8.0_25]
    Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
    at de.derakar.tutorial.commands.COMMAND_FLY.onCommand(COMMAND_FLY.java:26) ~[?:?]
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[spigot.jar:git-Spigot-d97e08b-880a532]
    ... 15 more
     
    #1
  2. GPSforLEGENDS
    Offline

    GPSforLEGENDS

    Registriert seit:
    21. März 2014
    Beiträge:
    295
    Ort:
    Bürostuhl
    Minecraft:
    GPSforLEGENDS
    Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
    at de.derakar.tutorial.commands.COMMAND_FLY.onCommand(COMMAND_FLY.java:26) ~[?:?]

    um weiter zu helfen brauchen wir den code...
     
    #2
  3. Keksi1996
    Offline

    Keksi1996

    Registriert seit:
    25. März 2012
    Beiträge:
    11
    Ort:
    Herdecke
    Minecraft:
    Derakar
    Stimmt ^^ ganz vergessen... Hier:

    Code (Text):
    1. @Override
    2.     public boolean onCommand(CommandSender s, Command cmd, String label, String[] args) {
    3.  
    4.         if(cmd.getName().equalsIgnoreCase("fly")){
    5.             Player p = (Player)s;
    6.             Player o = Bukkit.getPlayerExact(args[0]);
    7.          
    8.             if(s instanceof Player){
    9.                 if(args.length == 0){
    10.                     p.sendMessage("§aDein Flugmodus wurde geändert.");
    11.                     p.setAllowFlight(!p.getAllowFlight());
    12.                     p.setFlying(!p.isFlying());
    13.                 } else if(args.length == 1){
    14.                     p.sendMessage("§aDer Flugmodus von §b" + o.getName() + "§a wurde geändert.");
    15.                     o.sendMessage("§aDein Flugmodus wurde von §b" + p.getName() + "§a geändert.");
    16.                     o.setAllowFlight(!o.getAllowFlight());
    17.                     o.setFlying(!o.isFlying());
    18.                 }
    19.             }
    20.         return true;
    21.         }
    22.      
    23.         return false;
    24.     }
     
    #3
  4. GPSforLEGENDS
    Offline

    GPSforLEGENDS

    Registriert seit:
    21. März 2014
    Beiträge:
    295
    Ort:
    Bürostuhl
    Minecraft:
    GPSforLEGENDS
    Ja, das 4. Icon von Rechts oder das 6. kommt drauf an von wo du zählst.
    Es ist eine Klammer

    Markier bitte Zeile 26
    Player o = Bukkit.getPlayerExact(args[0]);
    Solltest du erst machen, wenn du sicher bist das die args länge 1 ist
     
    #4
  5. Keksi1996
    Offline

    Keksi1996

    Registriert seit:
    25. März 2012
    Beiträge:
    11
    Ort:
    Herdecke
    Minecraft:
    Derakar
    Code (Text):
    1. Player o = Bukkit.getPlayerExact(args[0]);
    ist Zeile 26
    Ich werde es mal nach unten verschieben.
     
    #5
  6. Keksi1996
    Offline

    Keksi1996

    Registriert seit:
    25. März 2012
    Beiträge:
    11
    Ort:
    Herdecke
    Minecraft:
    Derakar
    Okay es funktioniert. Danke! Doch warum ist das ein Problem, wenn das da oben steht?
     
    #6
  7. GPSforLEGENDS
    Offline

    GPSforLEGENDS

    Registriert seit:
    21. März 2014
    Beiträge:
    295
    Ort:
    Bürostuhl
    Minecraft:
    GPSforLEGENDS
    Du gibst das Command /fly ein, dann versucht du den Spieler zu finden args[0], aber args0 existiert nicht und deshalb ist 0 außerhalb des arrays (der nicht existiert)
    Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
     
    #7
    Keksi1996 gefällt das.