Looping Player Names From Array List

Discussion in 'Plugin Development' started by Airbornz, Dec 6, 2014.

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

    Airbornz

    *_________This Thread Has Been SOLVED_________*


    Hello,

    I am trying to hide players from an Array List when a player joins the server. The issue is, is that its not hiding the players for the player who joined. Heres my code for the listener (Yes i registered the events in my core class :))

    Code:java
    1. package me.Airbornz.PrisonExtras;
    2.  
    3. import org.bukkit.entity.Player;
    4. import org.bukkit.event.EventHandler;
    5. import org.bukkit.event.Listener;
    6. import org.bukkit.event.player.PlayerJoinEvent;
    7. import org.bukkit.event.player.PlayerQuitEvent;
    8.  
    9. public class NPListen implements Listener {
    10.  
    11. @EventHandler
    12. public void onJoin(PlayerJoinEvent event){
    13. Player player = event.getPlayer();
    14. if (Core.ninjaplayers.size() > 0){
    15. player.hidePlayer((Player) Core.ninjaplayers);
    16. }
    17. }
    18.  
    19. @EventHandler
    20. public void onQuit(PlayerQuitEvent event){
    21. Player player = event.getPlayer();
    22. String name = player.getName();
    23. Core.ninjaplayers.remove(name);
    24. }
    25.  
    26. }
    27.  


    Thanks in Advance
    Cole
     
  2. Offline

    Skionz

    Airbornz You casting an arraylist to a Player :eek:
     
  3. Offline

    97WaterPolo

    Airbornz
    I am guessing you are saving the player's name to the list. If so, casting to player will not work. To get the player and hide them, you need to loop through all the players within the list and hide the player not the name.

    for (String s : Core.ninjaplayers) //for all the names within the list
    player.hidePlayer(Bukkit.getPlayer(s)); //coverts the string to a player object.
     
  4. Offline

    Airbornz

    So then this would be correct?
    Code:
    package me.Airbornz.PrisonExtras;
     
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.event.player.PlayerQuitEvent;
     
    public class NPListen implements Listener {
       
        @EventHandler
        public void onJoin(PlayerJoinEvent event){
            Player player = event.getPlayer();
            if (Core.ninjaplayers.size() > 0){
                    player.hidePlayer(Core.ninjaplayers);
            }
        }
       
        @EventHandler
        public void onQuit(PlayerQuitEvent event){
            Player player = event.getPlayer();
            String name = player.getName();
            Core.ninjaplayers.remove(name);
        }
     
    }
    
    Because my IDE says thats wrong :/

    Just saw 97WaterPolos post, testing now. :)

    Players are still able to see players from the list after rejoining/joining :/
    Code:java
    1. package me.Airbornz.PrisonExtras;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.entity.Player;
    5. import org.bukkit.event.EventHandler;
    6. import org.bukkit.event.Listener;
    7. import org.bukkit.event.player.PlayerJoinEvent;
    8. import org.bukkit.event.player.PlayerQuitEvent;
    9.  
    10. public class NPListen implements Listener {
    11.  
    12. @SuppressWarnings("deprecation")
    13. @EventHandler
    14. public void onJoin(PlayerJoinEvent event){
    15. Player player = event.getPlayer();
    16. if (Core.ninjaplayers.size() > 0){
    17. for (String s : Core.ninjaplayers) //for all the names within the list
    18. player.hidePlayer(Bukkit.getPlayer(s)); //coverts the string to a player object.
    19. }
    20. }
    21.  
    22. @EventHandler
    23. public void onQuit(PlayerQuitEvent event){
    24. Player player = event.getPlayer();
    25. String name = player.getName();
    26. Core.ninjaplayers.remove(name);
    27. }
    28.  
    29. }
    30.  


    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 29, 2016
  5. Offline

    97WaterPolo

    Airbornz
    What is your list? IAlso, you need to check and see if the player is IN the list before you remove them from it for your quit event. And you would need 2+ people to test this. Also try adding debug messages to see what went wrong, and try not to copy and paste code :L
     
Thread Status:
Not open for further replies.

Share This Page