ServerPlugin Unerklärbarer Fehler

Dieses Thema im Forum "Programmierung" wurde erstellt von xxProgramerx, 17. April 2014.

  1. xxProgramerx
    Offline

    xxProgramerx

    Registriert seit:
    16. März 2014
    Beiträge:
    26
    Hey Leute,

    Ich bekomme immer einen Fehler, den ich nicht verstehe, ehergesagt nicht weiß wie ich ihn lösen kann! Hier der Fehler:
    Code (Text):
    1. java.lang.IllegalArgumentException: Name cannot be null
    2.         at org.apache.commons.lang.Validate.notNull(Validate.java:203) ~[craftbu
    3. kkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    4.         at org.bukkit.craftbukkit.v1_7_R1.CraftServer.getWorld(CraftServer.java:
    5. 998) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    6.         at org.bukkit.Bukkit.getWorld(Bukkit.java:249) ~[craftbukkit.jar:git-Buk
    7. kit-1.7.2-R0.3-b3020jnks]
    8.         at Listener.JoineEvent$1.run(JoineEvent.java:87) ~[?:?]
    9.         at org.bukkit.craftbukkit.v1_7_R1.scheduler.CraftTask.run(CraftTask.java
    10. :53) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    11.         at org.bukkit.craftbukkit.v1_7_R1.scheduler.CraftScheduler.mainThreadHea
    12. rtbeat(CraftScheduler.java:345) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks
    13. ]
    14.         at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:5
    15. 87) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    16.         at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:2
    17. 50) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    18.         at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:5
    19. 45) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    20.         at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java
    21. :457) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    22.         at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:6
    23. 17) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    24. [17:28:21 WARN]: [ShuffelPVP] Task #2 for ShuffelPVP v1.0 generated an exception
    Hier ist die Klasse in der der Fehler sein soll:
    Code (Text):
    1. package Listener;
    2.  
    3. import java.io.ByteArrayOutputStream;
    4. import java.io.DataOutputStream;
    5. import java.io.File;
    6. import java.io.IOException;
    7. import java.util.HashMap;
    8.  
    9.  
    10.  
    11.  
    12.  
    13. import me.xxPluginerxx.ShufflePVP.Main;
    14.  
    15. import org.bukkit.Bukkit;
    16. import org.bukkit.Location;
    17. import org.bukkit.Material;
    18. import org.bukkit.World;
    19. import org.bukkit.command.Command;
    20. import org.bukkit.command.CommandExecutor;
    21. import org.bukkit.command.CommandSender;
    22. import org.bukkit.configuration.file.FileConfiguration;
    23. import org.bukkit.configuration.file.YamlConfiguration;
    24. import org.bukkit.entity.Player;
    25. import org.bukkit.event.EventHandler;
    26. import org.bukkit.event.Listener;
    27. import org.bukkit.event.player.PlayerJoinEvent;
    28. import org.bukkit.inventory.ItemStack;
    29.  
    30.  
    31.  
    32.  
    33.  
    34. import ScoreboardPack.ScoreboardAdder;
    35.  
    36. public class JoineEvent implements Listener, CommandExecutor{
    37.    
    38.     public static File arena = new File("plugins/ShufflePVP/ArenaSpawns.yml");
    39.     public static FileConfiguration cfg = YamlConfiguration.loadConfiguration(arena);
    40.  
    41.     public static HashMap<Integer, Location> tele = new HashMap<>();
    42.    
    43.     int countdown;
    44.     int countdown1;
    45.     int countdown2;
    46.     private Main plugin;
    47.    
    48.  
    49.     public JoineEvent(Main main) {
    50.         this.plugin = main;
    51.     }
    52.  
    53.     int spawn = 0;
    54.    
    55.     @EventHandler
    56.     public void onJoin(PlayerJoinEvent e){
    57.        
    58.         final Player p = e.getPlayer();
    59.        
    60.        
    61.        
    62.         Bukkit.broadcastMessage("§6[ShufflePVP] " + p.getName() + " hat das Spiel betreten!");
    63.  
    64.         if(Bukkit.getOnlinePlayers().length >= 1){
    65.            
    66.             for(final Player all : Bukkit.getOnlinePlayers()){
    67.                
    68.                 countdown = Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, new Runnable() {
    69.                    
    70.                     int high = 10;
    71.                     @SuppressWarnings("deprecation")
    72.                     @Override
    73.                     public void run() {
    74.                        
    75.                         if(high != 0){
    76.                             high--;
    77.                        
    78.                             p.setLevel(high);
    79.                         }else{
    80.                             if(Bukkit.getOnlinePlayers().length >= 1){
    81.            
    82.                                
    83.                             for(Player all : Bukkit.getOnlinePlayers()){
    84.                                 all.sendMessage("§6[ShufflePVP] Das Spiel beginnt!");
    85.                                     spawn++;
    86.                                    
    87.                                        [B][COLOR="#FF0000"] World w = Bukkit.getWorld(spawn + ".World");[/COLOR][/B]
    88.                                     double x = cfg.getDouble(spawn + ".PosX");
    89.                                     double y = cfg.getDouble(spawn + ".PosY");
    90.                                     double z = cfg.getDouble(spawn + ".PosZ");
    91.                                    
    92.                                     Location loc = new Location(w, x, y, z);
    93.                                     all.teleport(loc);
    94.                                    
    95.                                
    96.                                 all.getInventory().setHelmet(new ItemStack(306, 1));
    97.                                 all.getInventory().setChestplate(new ItemStack(307, 1));
    98.                                 all.getInventory().setLeggings(new ItemStack(308, 1));
    99.                                 all.getInventory().setBoots(new ItemStack(309, 1));
    100.                                 all.getInventory().addItem(new ItemStack(267, 1));
    101.                                 all.getInventory().addItem(new ItemStack(261, 1));
    102.                                 all.getInventory().addItem(new ItemStack(262, 16));
    103.                                
    104.                                 File kills = new File("plugins/ShufflePVP/", "Scoreboardstats.yml");
    105.                                 FileConfiguration stats = YamlConfiguration.loadConfiguration(kills);
    106.                                 stats.set(all.getName() + ".Kills", 0);
    107.                                
    108.                                 ScoreboardAdder.CreateScoreboard(all);
    109.                            
    110.                                 Zeit();
    111.                            
    112.                             }
    113.                             spawn = 0;
    114.                             }else{
    115.                                 all.sendMessage("§6[ShufflePVP] Es sind zu wenig Spieler auf dem Server!");
    116.                             }
    117.                            
    118.                             Bukkit.getScheduler().cancelTask(countdown);
    119.                         }
    120.                        
    121.                        
    122.                     }
    123.                 }, 0L, 20L);
    124.            
    125.             }
    126.            
    127.         }
    128.     }
    129.    
    130.  
    131. public void Zeit(){
    132.     countdown1 = Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, new Runnable() {
    133.         int time = 300;
    134.         @Override
    135.         public void run() {
    136.             if(time != 0){
    137.                 time--;
    138.             }
    139.             if(time == 280 || time == 260 || time == 240 || time == 220 || time == 200 || time == 180 || time == 160 || time == 140 || time == 120 || time == 100 || time == 80 || time == 60 || time == 40 || time == 20){
    140.    
    141.            
    142.                             for (Player alle : Bukkit.getOnlinePlayers()) {
    143.                                 int i = 0;
    144.                                 tele.put(i, alle.getLocation());
    145.                                 i++;
    146.                             }
    147.                             for (Player telep : Bukkit.getOnlinePlayers()) {
    148.                                 int t = Bukkit.getOnlinePlayers().length - 1;
    149.                                 telep.teleport(tele.get(t));
    150.                             }
    151.             }
    152.             if(time == 240){
    153.                 Bukkit.broadcastMessage("§6Das Spiel dauert noch 4 Minuten!");
    154.                
    155.             }
    156.             if(time == 180){
    157.                 Bukkit.broadcastMessage("§6Das Spiel dauert noch 3 Minuten!");
    158.                
    159.             }
    160.             if(time == 120){
    161.                 Bukkit.broadcastMessage("§6Das Spiel dauert noch 2 Minuten!");
    162.                
    163.             }
    164.             if(time == 60){
    165.                 Bukkit.broadcastMessage("§6Das Spiel dauert noch 1 Minuten!");
    166.                
    167.             }
    168.             if(time == 0){
    169.  
    170.                 Bukkit.broadcastMessage("§6Das Spiel ist vorbei! Der Server restartet in 10 Sekunden!");
    171.                 Bukkit.getScheduler().cancelTask(countdown1);
    172.                 Zeit1();
    173.             }
    174.         }
    175.     }, 0, 20L);
    176.    
    177. }
    178.  
    179. public void Zeit1(){
    180.     countdown2 = Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, new Runnable() {
    181.    
    182.         ByteArrayOutputStream b = new ByteArrayOutputStream();
    183.         DataOutputStream out = new DataOutputStream(b);
    184.        
    185.         int time = 10;
    186.         @Override
    187.         public void run() {
    188.             if(time != 0){
    189.                 time--;
    190.             }
    191.            
    192.             if(time == 0){
    193.                 for(Player all : Bukkit.getOnlinePlayers()){
    194.                    
    195.                     all.getInventory().setHelmet(new ItemStack(Material.AIR, 1));
    196.                     all.getInventory().setChestplate(new ItemStack(Material.AIR, 1));
    197.                     all.getInventory().setLeggings(new ItemStack(Material.AIR, 1));
    198.                     all.getInventory().setBoots(new ItemStack(Material.AIR, 1));
    199.                     all.getInventory().clear();
    200.                     try {
    201.                         out.writeUTF("Connect");
    202.                         out.writeUTF("lobby");
    203.                     } catch (IOException e) {
    204.                         // TODO Auto-generated catch block
    205.                         e.printStackTrace();
    206.                     }
    207.                    
    208.                     all.sendPluginMessage(plugin, "BungeeCord", b.toByteArray());
    209.                    
    210.                     ScoreboardAdder.remove(all);
    211.                 }
    212.                
    213.                 Bukkit.getScheduler().cancelTask(countdown2);
    214.             }
    215.         }
    216.     }, 0, 20L);
    217.    
    218. }
    219.  
    220.  
    221. @Override
    222. public boolean onCommand(CommandSender sender, Command cmd, String label,
    223.         String[] args) {
    224.     Player p = (Player) sender;
    225.     if(cmd.getName().equalsIgnoreCase("cancel")){
    226.        
    227.         Bukkit.getScheduler().cancelTask(countdown);
    228.         return true;
    229.     }
    230.     return false;
    231. }
    232.    
    233.  
    234.    
    235. }
    236.  
    237.  
    Die Zeile 87 habe ich farbig makiert! Braucht ihr noch andere Klassen?
    Weiß jemand wo der Fehler ist?
    Wie kann ich ihn beheben?

    MFG
     
    #1
  2. Benni1000
    Offline

    Benni1000 Ehem. Teammitglied

    Registriert seit:
    4. Mai 2012
    Beiträge:
    1.408
    Steht doch direkt in der ersten zeile was der Fehler ist:
    Du übergibst null und keinen String.

    Und das:
    ist auch eine ganz tolle idee. Es hat einen Grund warum sachen als deprecated markiert werden.
     
    #2
  3. xxProgramerx
    Offline

    xxProgramerx

    Registriert seit:
    16. März 2014
    Beiträge:
    26
    Oke aber wie kann ich das fixen... Nirgendwo übergebe ich null..
    Oder übersehe ich da was?

    MFG
     
    #3
  4. [Dev] iTzSasukeHDxLP
    Offline

    [Dev] iTzSasukeHDxLP Ehem. Teammitglied

    Registriert seit:
    5. Januar 2014
    Beiträge:
    938

    Du hast aber etwas übergeben, was null ist.
     
    #4
  5. Paulomart
    Offline

    Paulomart

    Registriert seit:
    3. November 2013
    Beiträge:
    148
    Ort:
    C:/Eclipse/Workspace/
    Minecraft:
    Paulomart
    Falls du nicht weißt ob ein Object null ist, kannst du einfach das machen:

    Code (Text):
    1.  
    2. if (obj != null){
    3.     //mache was mit obj
    4.    obj.sendMessage("du kannst nicht null sein");
    5. }
    6.  
    Ich würde jetz aber nicht mein gesamten Code damit voll klatschen. Vielleicht hast du ein Object nicht inizalisiert, also mit:

    Code (Text):
    1.  
    2. String text = "hi";
    3.  
    oder

    Code (Text):
    1.  
    2. String text;
    3. text = "hi";
    4.  
    sondern mit:

    Code (Text):
    1.  
    2. String text;
    3.  
    Beim unteren Beispiel wäre der Text null.


    Und du machst Bukkit Tutorials auf Youtube? :(
     
    #5
  6. Blindhero
    Offline

    Blindhero

    Registriert seit:
    23. Januar 2014
    Beiträge:
    24
    Ort:
    Deutschland
    Minecraft:
    BlinderHeld
    Soweit ich weiß, ist getWorld vom server abhängig also:
    World w = Bukkit.getServer().getWorld(String name);
     
    #6