player2 is null?

Discussion in 'Plugin Development' started by CandyCranium, Jul 5, 2014.

Thread Status:
Not open for further replies.
  1. Offline

    CandyCranium

    I'm creating a 1v1 plugin with a GUI feature, but there seems to be a NullPointerException when InventoryClickEvent is called.

    Code:java
    1.  
    2. final Player player1 = Bukkit.getPlayerExact(Arena.arenaList.get(1).getPlayer1());
    3. final Player player2 = Bukkit.getPlayerExact(Arena.arenaList.get(1).getPlayer2());
    4. if(player2 == null) {
    5. if(player1 == null) {
    6. Arena.arenaList.get(1).setPlayer(1, p.getName());
    7. p.sendMessage(Main.pre + ChatColor.AQUA + "You have been added to the " + ChatColor.DARK_GREEN + "Arena One " + ChatColor.AQUA + "queue!");
    8. p.sendMessage(Main.pre + ChatColor.AQUA + "Your 1v1 battle will begin once another player joins.");
    9. } else {
    10. Arena.arenaList.get(1).setPlayer(2, p.getName());
    11. player2.sendMessage(Main.pre + ChatColor.AQUA + "You have been added to the " + ChatColor.DARK_GREEN + "Arena One " + ChatColor.AQUA + "queue!");
    12. player2.sendMessage(Main.pre + ChatColor.AQUA + "Your 1v1 battle against " + ChatColor.DARK_AQUA + player1.getName() + ChatColor.AQUA + " will begin in 5 seconds...");
    13. player1.sendMessage(Main.pre + ChatColor.AQUA + "Another player has joined the queue for " + ChatColor.DARK_GREEN + "Arena One!");
    14. player1.sendMessage(Main.pre + ChatColor.AQUA + "Your 1v1 battle against " + ChatColor.DARK_AQUA + player2.getName() + ChatColor.AQUA + " will begin in 5 seconds...");
    15.  

    The Arena class:
    Code:java
    1.  
    2. public class Arena implements Iterable<String> {
    3.  
    4. public static Map<Integer, Arena> arenaList = new HashMap<Integer, Arena>();
    5. private String player1 = "", player2 = "";
    6. @SuppressWarnings("unused")
    7. private int arenaID;
    8.  
    9. public List<Player> getBukkitPlayers() {
    10. return Arrays.asList(Bukkit.getPlayerExact(this.player1), Bukkit.getPlayerExact(this.player2));
    11. }
    12.  
    13. public String getPlayer1() {
    14. return this.player1;
    15. }
    16.  
    17. public String getPlayer2() {
    18. return this.player2;
    19. }
    20.  
    21. public Arena(int id) {
    22. this.arenaID = id;
    23. }
    24.  
    25. public List<String> getPlayers() {
    26. return Arrays.asList(this.player1, this.player2);
    27. }
    28.  
    29. public void setPlayer(int index, String playerName) {
    30. if(index == 1) this.player1 = playerName;
    31. else if(index == 2) this.player2 = playerName;
    32. else return;
    33. }
    34.  
    35. @Override
    36. public Iterator<String> iterator() {
    37. return this.getPlayers().listIterator();
    38. }
    39.  
    40. }
    41.  
     
  2. Offline

    BungeeTheCookie

    It would help if you posted us the stacktrace.
     
  3. Offline

    CandyCranium

    BungeeTheCookie
    NullPointerException. From player2 in the first set of code I listed.
     
  4. Offline

    Skye

    There isn't enough information here to tell. From what I can see, you should be getting an ArrayIndexOutOfBoundsException before any NPEs. What's the stack trace?
     
  5. Offline

    CandyCranium

  6. Offline

    Skye

  7. Offline

    CandyCranium

    Skye
    Line 2 in the code I showed yall.
     
  8. Offline

    unrealdesign

    Code:java
    1. final Player player1 = Bukkit.getPlayerExact(Arena.arenaList.get(1).getPlayer1());


    1. arenaList is null
    2. index 1 of arenaList is null
    3. getPlayer1 returned null
    4. You somehow messed up the spelling/case of the name
     
Thread Status:
Not open for further replies.

Share This Page