ServerPlugin Internal Error ohne Fehler in Eclipse

Dieses Thema im Forum "Programmierung" wurde erstellt von MrPyro13, 27. August 2014.

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

    MrPyro13

    Registriert seit:
    29. April 2013
    Beiträge:
    829
    Minecraft:
    MrPyro13
    Hallo,

    ich bin es mal wieder. Ich habe einen InGame-Fehler ohne Fehler in Eclipse. Nun Frage ich euch: Was ist mein/der Denkfehler... :confused:
    /spawn set geht und wird auch in der system.yml eingetragen, nur der /spawn Befehl geht nicht.
    Hier mal alle Dateien:

    Code (Text):
    1.  
    2. package de.mrpyro13.ImpComs;
    3.  
    4. import java.io.File;
    5. import java.io.IOException;
    6.  
    7. import org.bukkit.Bukkit;
    8. import org.bukkit.Location;
    9. import org.bukkit.command.Command;
    10. import org.bukkit.command.CommandExecutor;
    11. import org.bukkit.command.CommandSender;
    12. import org.bukkit.configuration.file.FileConfiguration;
    13. import org.bukkit.configuration.file.YamlConfiguration;
    14. import org.bukkit.entity.Player;
    15.  
    16. public class iSpawn_Command implements CommandExecutor {
    17.    
    18.     //MAIN IMPORT - CommandExecutor
    19.     @SuppressWarnings("unused")
    20.     private Main inst;
    21.     public iSpawn_Command(Main plugin){
    22.         this.inst = plugin;
    23.     }
    24.    
    25.     //FILE IMPORT
    26.     File file = new File("plugins/ImpComs", "system.yml");
    27.     FileConfiguration cfg = YamlConfiguration.loadConfiguration(file);
    28.  
    29.     @Override
    30.     public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    31.         //SCRIPT ANFANG
    32.        
    33.         if (sender instanceof Player) {
    34.             Player p = (Player) sender;
    35.            
    36.             if(args[0].equalsIgnoreCase("set")) {
    37.                
    38.                 String world = p.getWorld().getName();
    39.                 double x = p.getLocation().getX();
    40.                 double y = p.getLocation().getY();
    41.                 double z = p.getLocation().getZ();
    42.                 double yaw = p.getLocation().getYaw();
    43.                 double pitch = p.getLocation().getPitch();
    44.                
    45.                 cfg.set("spawn" + "." + "world", world);
    46.                 cfg.set("spawn" + "." + "x", x);
    47.                 cfg.set("spawn" + "." + "y", y);
    48.                 cfg.set("spawn" + "." + "z", z);
    49.                 cfg.set("spawn" + "." + "yaw", yaw);
    50.                 cfg.set("spawn" + "." + "pitch", pitch);
    51.                 try {
    52.                     cfg.save(file);
    53.                 } catch (IOException e) {
    54.                     e.printStackTrace();
    55.                 }
    56.                
    57.                 p.sendMessage("§6[ImpComs] §aSpawn erfolgreich gesetzt!");
    58.                
    59.             }  else {
    60.                 if (args.length == 0) {
    61.                    
    62.                     String world = cfg.getString("spawn" + "." + "world");
    63.                     double x = cfg.getDouble("spawn" + "." + "x");
    64.                     double y = cfg.getDouble("spawn" + "." + "y");
    65.                     double z = cfg.getDouble("spawn" + "." + "z");
    66.                     double yaw = cfg.getDouble("spawn" + "." + "yaw");
    67.                     double pitch = cfg.getDouble("spawn" + "." + "pitch");
    68.                    
    69.                     Location loc = new Location(Bukkit.getWorld(world), x, y, z);
    70.                     loc.setPitch((float) pitch);
    71.                     loc.setYaw((float) yaw);
    72.                     p.teleport(loc);
    73.                    
    74.                     p.sendMessage("§6[ImpComs] §aDu wurdest zum Spawn teleportiert!");                  
    75.                    
    76.                 } else {
    77.                     p.sendMessage("§6[ImpComs] §cNutze /spawn [set]");
    78.                 }
    79.             }
    80.         } else {
    81.             sender.sendMessage("§6[ImpComs] §cDieser Befehl ist nur fuer Spieler gedacht!");
    82.         }
    83.        
    84.         //SCRIPT ENDE
    85.         return true;
    86.     }
    87.  
    88. }
    89.  

    Code (Text):
    1.  
    2. [17:37:46] [Server thread/INFO]: MrPyro13 issued server command: /spawn set
    3. [17:37:51] [Server thread/INFO]: MrPyro13 issued server command: /spawn
    4. [17:37:51] [Server thread/ERROR]: null
    5. org.bukkit.command.CommandException: Unhandled exception executing command 'spawn' in plugin ImpComs v0.1
    6.     at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    7.     at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:175) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    8.     at org.bukkit.craftbukkit.v1_7_R1.CraftServer.dispatchCommand(CraftServer.java:683) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    9.     at net.minecraft.server.v1_7_R1.PlayerConnection.handleCommand(PlayerConnection.java:952) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    10.     at net.minecraft.server.v1_7_R1.PlayerConnection.a(PlayerConnection.java:814) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    11.     at net.minecraft.server.v1_7_R1.PacketPlayInChat.a(PacketPlayInChat.java:28) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    12.     at net.minecraft.server.v1_7_R1.PacketPlayInChat.handle(PacketPlayInChat.java:47) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    13.     at net.minecraft.server.v1_7_R1.NetworkManager.a(NetworkManager.java:146) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    14.     at net.minecraft.server.v1_7_R1.ServerConnection.c(SourceFile:134) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    15.     at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:655) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    16.     at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:250) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    17.     at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:545) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    18.     at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:457) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    19.     at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    20. Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
    21.     at de.mrpyro13.ImpComs.iSpawn_Command.onCommand(iSpawn_Command.java:35) ~[?:?]
    22.     at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    23.     ... 13 more
    24.  

    Code (Text):
    1.  
    2. spawn:
    3.   world: world
    4.   x: -1271.5495737916647
    5.   y: 4.0
    6.   z: -131.46951023602082
    7.   yaw: -356.390869140625
    8.   pitch: 87.7499771118164
    9.  


    ;) Ich hoffe ihr könnt mir weiterhelfen :D
     
    #1
  2. Caused by: java.lang.ArrayIndexOutOfBoundsException: 0

    Bevor man Arrays liest musst man überprüfen, ob die gegebene Position überhaupt da ist.

    OT: Wüsstest du, wenn du dich erst Java Syntax und Grammatik lernen würdest, anstatt Plugins schreiben zu wollen.
     
    #2
    games6471 gefällt das.
  3. MrPyro13
    Offline

    MrPyro13

    Registriert seit:
    29. April 2013
    Beiträge:
    829
    Minecraft:
    MrPyro13
    Schön formuliert. Ich sehe, dass du siehst, dass ich ein Anfänger bin.
    Leider finde ich in meinem Code kein Array, das diesen Fehler hervorrufen könnte, bin ja noch Anfänger...
    Also entschuldige ich mich hiermit bei manf, dass ich als Anfänger nicht gleich alles weiß/gewusst habe.
     
    #3
  4. if(args[0].equalsIgnoreCase("set"))

    Was ist dann args? Das ganze Problem hat rein garnichts mit Anfänger/Profi oder was auch immer zu tun. Es ist auch nur sehr schwer ein Denkfehler - Es fehlt einfach die benötigte Kenntnis der Syntax.
     
    #4
  5. MrPyro13
    Offline

    MrPyro13

    Registriert seit:
    29. April 2013
    Beiträge:
    829
    Minecraft:
    MrPyro13
    Wenn das 0. Argument set ist (/ispawn set) dann wird der folgende Code ausgeführt.
     
    #5
  6. Dann wunder dich nicht über einen ArrayIndexOutOfBounds Fehler, wenn kein Argument vorhanden ist.
     
    #6
  7. MrPyro13
    Offline

    MrPyro13

    Registriert seit:
    29. April 2013
    Beiträge:
    829
    Minecraft:
    MrPyro13
    Hat sich geklärt! Danke an concon
    //CLOSED
     
    #7
Status des Themas:
Es sind keine weiteren Antworten möglich.