• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Command funktioniert nicht

Status
Für weitere Antworten geschlossen.

xXGamer_StyleXx

Minecrafter
Registriert
4 Mai 2015
Beiträge
11
Alter
27
Diamanten
0
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:
package eu.mclt.bedwars.commands;

import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

import eu.mclt.bedwars.Game.GameManager;

public class SetMaxPlayers implements CommandExecutor {

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label,
            String[] args) {
      
        Player p = (Player) sender;
      
        if(cmd.getName().equalsIgnoreCase("setmaxplayers")){
          
            if(!(args.length == 1)){
                p.sendMessage("Bitte nutze /setmaxplayers <maximaleSpielerProTeam>");
            } else {
              
                GameManager.cfg.set("Configuration.Players.MaxPlayers", args[1]);
            }
          
          
            System.out.println("Erfolgreich");
        }
      
      
      
        return false;
    }

}

Code:
org.bukkit.command.CommandException: Unhandled exception executing command 'setmaxplayers' in plugin Bedwars v1.0.0
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[craftbukkit.jar:git-Spigot-1642]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:181) ~[craftbukkit.jar:git-Spigot-1642]
        at org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchCommand(CraftServer.java:767) ~[craftbukkit.jar:git-Spigot-1642]
        at net.minecraft.server.v1_7_R4.PlayerConnection.handleCommand(PlayerConnection.java:1043) [craftbukkit.jar:git-Spigot-1642]
        at net.minecraft.server.v1_7_R4.PlayerConnection.a(PlayerConnection.java:880) [craftbukkit.jar:git-Spigot-1642]
        at net.minecraft.server.v1_7_R4.PacketPlayInChat.a(PacketPlayInChat.java:28) [craftbukkit.jar:git-Spigot-1642]
        at net.minecraft.server.v1_7_R4.PacketPlayInChat.handle(PacketPlayInChat.java:65) [craftbukkit.jar:git-Spigot-1642]
        at net.minecraft.server.v1_7_R4.NetworkManager.a(NetworkManager.java:186) [craftbukkit.jar:git-Spigot-1642]
        at net.minecraft.server.v1_7_R4.ServerConnection.c(ServerConnection.java:81) [craftbukkit.jar:git-Spigot-1642]
        at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:734) [craftbukkit.jar:git-Spigot-1642]
        at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:289) [craftbukkit.jar:git-Spigot-1642]
        at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:584) [craftbukkit.jar:git-Spigot-1642]
        at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:490) [craftbukkit.jar:git-Spigot-1642]
        at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [craftbukkit.jar:git-Spigot-1642]
Caused by: java.lang.ArrayIndexOutOfBound***ception: 1
        at eu.mclt.bedwars.commands.SetMaxPlayers.onCommand(SetMaxPlayers.java:24) ~[?:?]
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[craftbukkit.jar:git-Spigot-1642]
        ... 13 more
 

Sabbertran

Kuhfänger
Registriert
24 April 2012
Beiträge
75
Diamanten
0
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.
 
Status
Für weitere Antworten geschlossen.
Oben