1. 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!

PlugIn Teamverteilung

Dieses Thema im Forum "Programmierung" wurde erstellt von Yellowphoenix18, 22. März 2015.


  1. Yellowphoenix18
    Offline

    Yellowphoenix18 Vorarbeiter

    Registriert seit:
    26. März 2013
    Beiträge:
    269
    Geschlecht:
    männlich
    Minecraft:
    YellowPhoenix18
    Hey,ich habe für ein neues Plugin eine Teamverteilung geschrieben,doch leider erhalte ich eine NullPointerException beim Random, hier der Code:
    Code (Text):
    1.  
    2. package de.mcDungeon.Pirates.Teams;
    3.  
    4. import java.util.ArrayList;
    5. import java.util.List;
    6. import java.util.Random;
    7.  
    8. import org.bukkit.Bukkit;
    9. import org.bukkit.entity.Player;
    10.  
    11. import de.mcDungeon.Pirates.Main;
    12.  
    13. public class TeamClass {
    14.  
    15.    public static List<Player> pirates = new ArrayList<Player>();
    16.    public static List<Player> english = new ArrayList<Player>();
    17.  
    18.    public static void checkTeams() {
    19.    
    20.      for(Player all : Bukkit.getOnlinePlayers()) {
    21.        if(!pirates.contains(all) && !english.contains(all)) {
    22.          if(pirates.size() > english.size()) {
    23.            english.add(all);
    24.          } else if(pirates.size() < english.size()) {
    25.            pirates.add(all);
    26.          } else {
    27.            Random r = new Random();
    28.            int x = r.nextInt(2) + 1;
    29.            if(x == 1) {
    30.              pirates.add(all);
    31.            } else {
    32.              english.add(all);
    33.            }
    34.          }
    35.        }
    36.      }
    37.    
    38.      if(pirates.size() >= english.size() + 1) {
    39.        int x = pirates.size() - english.size();
    40.        while(x >= 0) {
    41.          x --;
    42.          Random r = new Random();
    43.          int z = r.nextInt(pirates.size());
    44.          Player p = pirates.get(z);
    45.          pirates.remove(z);
    46.          english.add(p);
    47.        }
    48.      
    49.      } else if(english.size() >= pirates.size() + 1) {
    50.        int x = english.size() - pirates.size();
    51.        while(x >= 0) {
    52.          x --;
    53.          Random r = new Random();
    54.          int z = r.nextInt(english.size());
    55.          Player p = english.get(z);
    56.          english.remove(z);
    57.          pirates.add(p);
    58.        }    
    59.      }
    60.    
    61.      for(Player all : Bukkit.getOnlinePlayers()) {
    62.        updateTablist(all);
    63.      }
    64.      System.out.println(Main.name + " Die Teams wurden verteilt!");
    65.    }
    66.  
    67.    public static int getLowerTeam() {
    68.      int piratesint = pirates.size();
    69.      int englishint = english.size();
    70.      if (piratesint >= englishint) {
    71.        return 0;
    72.      } else {
    73.        return 1;
    74.      }
    75.  
    76.    }
    77.  
    78.    public static void updateTablist(Player p) {
    79.      for(Player all : Bukkit.getOnlinePlayers()) {
    80.        if(english.contains(all)) {
    81.          p.setPlayerListName("§9" + p.getName());
    82.        } else {
    83.          p.setPlayerListName("§0" + p.getName());
    84.        }
    85.      }
    86.    
    87.    
    88.    
    89.    }
    90. }
    91.  
    92.  
    Fehlermeldung:

    Code (Text):
    1.  
    2. [12:15:28] [Server thread/WARN]: [TheRunners] Task #3 for TheRunners v1.0 generated an exception
    3. java.lang.IllegalArgumentException: n must be positive
    4.    at java.util.Random.nextInt(Random.java:300) ~[?:1.7.0_03]
    5.    at de.mcDungeon.Pirates.Teams.TeamClass.checkTeams(TeamClass.java:42) ~[?:?]
    6.    at de.mcDungeon.Pirates.Tasks$2.run(Tasks.java:142) ~[?:?]
    7.    at org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftTask.run(CraftTask.java:71) ~[spigot.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    8.    at org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:350) [spigot.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    9.    at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:641) [spigot.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    10.    at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:289) [spigot.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    11.    at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:584) [spigot.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    12.    at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:490) [spigot.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    13.    at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [spigot.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    14.  
    15.  
     
    Zuletzt bearbeitet: 22. März 2015
  2. SasukeKawaii
    Online

    SasukeKawaii Erzengel Ehem. Teammitglied

    Registriert seit:
    5. Januar 2014
    Beiträge:
    1.006
    Geschlecht:
    männlich
    Hey,
    kannst du das Ganze bitte vernünftig formatiert in Codetags packen und den Fehlermeldung auch ?
     
  3. Yellowphoenix18
    Offline

    Yellowphoenix18 Vorarbeiter

    Registriert seit:
    26. März 2013
    Beiträge:
    269
    Geschlecht:
    männlich
    Minecraft:
    YellowPhoenix18
    Bitte :D
     
  4. Wo soll da jetzt die NPE sein? Les dir mal die Dokumentation (oder die Fehlermeldung) von nextInt() durch.