Most efficent way to store players in a lobby.

Discussion in 'Plugin Development' started by DividedByZero, Jan 28, 2014.

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

    DividedByZero

    I am currently developing a minigame plugin for a server. I am currently using hashmaps to store players in a lobby. Example below.
    Code:java
    1. public HashMap<Player, Integer> hub = new HashMap<Player, Integer>();

    Is theyre a better way of doing this or am I on the right track.
     
  2. Offline

    Gater12

    DividedByZero
    Should store the Player's name instead of the Player object.
     
  3. Offline

    sawaks

    Hi, i have send you a message on skype, can you please answer. I have rtyed to get you in a long time
     
  4. Offline

    RSKeso

    You can use ArrayList, it is better and faster. I donĀ“t think you need to store Integers

    Code:java
    1. ArrayList<Player> hub = new ArrayList<Player>();
     
  5. Offline

    DividedByZero

    Ok i have this error I cannot solve!!! I dont know how to fix this.
    Code:
    [11:56:13 ERROR]: Could not pass event PlayerInteractEvent to QuickRush v1.0
    org.bukkit.event.EventException
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:427) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
    ava:481) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:466) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at org.bukkit.craftbukkit.v1_7_R1.event.CraftEventFactory.callPlayerInte
    ractEvent(CraftEventFactory.java:191) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b29
    74jnks]
            at net.minecraft.server.v1_7_R1.PlayerInteractManager.interact(PlayerInt
    eractManager.java:374) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at net.minecraft.server.v1_7_R1.PlayerConnection.a(PlayerConnection.java
    :628) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at net.minecraft.server.v1_7_R1.PacketPlayInBlockPlace.a(SourceFile:60)
    [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at net.minecraft.server.v1_7_R1.PacketPlayInBlockPlace.handle(SourceFile
    :9) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at net.minecraft.server.v1_7_R1.NetworkManager.a(NetworkManager.java:146
    ) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at net.minecraft.server.v1_7_R1.ServerConnection.c(SourceFile:134) [craf
    tbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:6
    55) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:2
    50) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:5
    45) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java
    :457) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:6
    17) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
    Caused by: java.lang.NullPointerException
            at org.hiros.plugin.QuickRushListener.onPlayerInteract(QuickRushListener
    .java:30) ~[?:?]
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0
    _45]
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0
    _45]
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1
    .7.0_45]
            at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_45]
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:425) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
            ... 15 more
    This is my error


    And this is my listener class.
    Code:java
    1. public class QuickRushListener extends JavaPlugin implements Listener {
    2. private Plugin plugin;
    3. public QuickRushListener(Plugin plugin) {
    4. this.plugin = plugin;
    5. }
    6.  
    7. QuickRushVars vars = new QuickRushVars();
    8.  
    9. @EventHandler
    10. public void onPlayerInteract(PlayerInteractEvent event) {
    11. Player player = event.getPlayer();
    12. boolean tempInHub = false;
    13.  
    14. //Check if InHub
    15. if(vars.inHub.get(player)) {
    16. tempInHub = true;
    17. }
    18.  
    19. //Check NetherStar InHub
    20.  
    21. if(player.getItemInHand().getType() == Material.NETHER_STAR && tempInHub == true) {
    22. player.sendMessage("YES");
    23. }
    24. //End Check NetherStar InHub
    25.  
    26. //Restore all values
    27. tempInHub = false;
    28. }
    29. }
     
  6. Offline

    thepaperboy99

    What's line 30?
     
  7. Offline

    DividedByZero

    there is none. it has something to do with
    vars.inHub.get(player) == true


    btw inHub is a hashmap that store a boolean

    HashMap<Player, Boolean> inHub = new HashMap<Player, Boolean>();

    Problem solved. I did vars.inHub(player) == dklfsdf
    instead of .equals();
    derp.

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

    1Rogue

    Why are you even storing the players?
     
  9. Offline

    DividedByZero

    I am basicly mimicing how bungee cord works
     
Thread Status:
Not open for further replies.

Share This Page