ServerPlugin Command funktioniert nicht

Dieses Thema im Forum "Programmierung" wurde erstellt von xXGamer_StyleXx, 7. Juni 2015.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. xXGamer_StyleXx
    Offline

    xXGamer_StyleXx

    Registriert seit:
    4. Mai 2015
    Beiträge:
    11
    Hallo Community,

    ich bin zurzeit dabei ein Bedwars Plugin zu coden (wie ihr im folgenden Code sehen könnt) und würde sehr gerne mit dem Kommando /setmaxplayers <zahl> die maximalen Spieler pro Team festlegen. Das Problem bei der ganzen Sache ist das ich eine Fehlermeldung bekomme bei der ich leider nicht durchblicke. Hoffentlich könnt ihr mir helfen.

    Vielen Dank im Vorraus,
    Gamer_Style

    Code (Text):
    1. package eu.mclt.bedwars.commands;
    2.  
    3. import org.bukkit.command.Command;
    4. import org.bukkit.command.CommandExecutor;
    5. import org.bukkit.command.CommandSender;
    6. import org.bukkit.entity.Player;
    7.  
    8. import eu.mclt.bedwars.Game.GameManager;
    9.  
    10. public class SetMaxPlayers implements CommandExecutor {
    11.  
    12.     @Override
    13.     public boolean onCommand(CommandSender sender, Command cmd, String label,
    14.             String[] args) {
    15.      
    16.         Player p = (Player) sender;
    17.      
    18.         if(cmd.getName().equalsIgnoreCase("setmaxplayers")){
    19.          
    20.             if(!(args.length == 1)){
    21.                 p.sendMessage("Bitte nutze /setmaxplayers <maximaleSpielerProTeam>");
    22.             } else {
    23.              
    24.                 GameManager.cfg.set("Configuration.Players.MaxPlayers", args[1]);
    25.             }
    26.          
    27.          
    28.             System.out.println("Erfolgreich");
    29.         }
    30.      
    31.      
    32.      
    33.         return false;
    34.     }
    35.  
    36. }
    37.  

    Code (Text):
    1. org.bukkit.command.CommandException: Unhandled exception executing command 'setmaxplayers' in plugin Bedwars v1.0.0
    2.         at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[craftbukkit.jar:git-Spigot-1642]
    3.         at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:181) ~[craftbukkit.jar:git-Spigot-1642]
    4.         at org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchCommand(CraftServer.java:767) ~[craftbukkit.jar:git-Spigot-1642]
    5.         at net.minecraft.server.v1_7_R4.PlayerConnection.handleCommand(PlayerConnection.java:1043) [craftbukkit.jar:git-Spigot-1642]
    6.         at net.minecraft.server.v1_7_R4.PlayerConnection.a(PlayerConnection.java:880) [craftbukkit.jar:git-Spigot-1642]
    7.         at net.minecraft.server.v1_7_R4.PacketPlayInChat.a(PacketPlayInChat.java:28) [craftbukkit.jar:git-Spigot-1642]
    8.         at net.minecraft.server.v1_7_R4.PacketPlayInChat.handle(PacketPlayInChat.java:65) [craftbukkit.jar:git-Spigot-1642]
    9.         at net.minecraft.server.v1_7_R4.NetworkManager.a(NetworkManager.java:186) [craftbukkit.jar:git-Spigot-1642]
    10.         at net.minecraft.server.v1_7_R4.ServerConnection.c(ServerConnection.java:81) [craftbukkit.jar:git-Spigot-1642]
    11.         at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:734) [craftbukkit.jar:git-Spigot-1642]
    12.         at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:289) [craftbukkit.jar:git-Spigot-1642]
    13.         at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:584) [craftbukkit.jar:git-Spigot-1642]
    14.         at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:490) [craftbukkit.jar:git-Spigot-1642]
    15.         at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [craftbukkit.jar:git-Spigot-1642]
    16. Caused by: java.lang.ArrayIndexOutOfBoundsException: 1
    17.         at eu.mclt.bedwars.commands.SetMaxPlayers.onCommand(SetMaxPlayers.java:24) ~[?:?]
    18.         at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[craftbukkit.jar:git-Spigot-1642]
    19.         ... 13 more
     
    #1
  2. Sabbertran
    Offline

    Sabbertran

    Registriert seit:
    24. April 2012
    Beiträge:
    75
    Minecraft:
    Sabbertran
    Du versuchst aus dem args[]-Array den 2. Wert (args[1]; Zeile 24) auszulesen.
    Da du aber wahrscheinlich nur ein Argument (/setmaxplaxers X; X ist das Argument) übergeben hast schlägt das fehl.
    Um das erste Argument des Commands zu erhalten musst du args[0] verwenden.

    Des Weiteren ist es in Zeile 20 sinnvoller den != Operator zu verwenden, anstatt das ganze mit ! zu negieren.
    Außerdem solltest du bevor du den CommandSender zu Player castest überprüfen ob nicht der Command von der Konsole aus gesendet wurde, da dort sonst auch ein Fehler auftreten wird.
     
    #2
  3. xXGamer_StyleXx
    Offline

    xXGamer_StyleXx

    Registriert seit:
    4. Mai 2015
    Beiträge:
    11
    @Sabbertran Vielen Dank :) werde es gleich mal versuchen und bescheid geben ob es funktioniert

    //EDIT: Das ganze funktioniert jetzt Vielen Dank nochmal an dich @Sabbertran :)

    PS: Kann geclosed werden
     
    #3
Status des Themas:
Es sind keine weiteren Antworten möglich.