PlayerLoginEvent Exception

Discussion in 'Plugin Development' started by FlawlezZ, Oct 23, 2013.

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

    FlawlezZ

    Hey,

    do you know what the fuck is wrong with my PlayerLoginEvent? At first I was making this at the JoinEvent but chagned then. I know that the code before /* GIBT DEM SPIELER DIE PERMISSION */ did work.

    Everything else is untested because of the exception.

    permissionSave is a HashMap.

    getRank is just this
    Code:java
    1. public String getRank(String name) {
    2. File f = new File(getDataFolder(), playerfolder + name + ".yml");
    3. YamlConfiguration playerData = YamlConfiguration.loadConfiguration(f);
    4. return playerData.getString("Player.Allgemein.Rang");
    5. }


    This is my PlayerLoginEvent:

    Code:java
    1. @EventHandler(priority = EventPriority.NORMAL)
    2. public void onPlayerLogin(PlayerLoginEvent event){
    3. Player p = (Player) event.getPlayer();
    4.  
    5. if(!plugin.existsPlayer(p.getName())) {
    6. plugin.createPlayer(p.getName(), plugin.getConfig().getInt("Flawssentials.Moral.Startmoral"));
    7. plugin.getLogger().info(p.getName() + "Flawssentials " + p.getName() +" Moral-System Konto erstellt");
    8. }
    9.  
    10. /* GIBT DEM SPIELER DIE PERMISSION */
    11. String addedPerm = "coloredtags." + plugin.getRank(p.getName());
    12. if (plugin.permissionSave.containsKey(p.getName())) {
    13. plugin.permission.playerRemoveTransient(p.getName(), plugin.permissionSave.get(p.getName()));
    14. plugin.permissionSave.remove(p.getName());
    15. }
    16. plugin.permissionSave.put(p.getName(), addedPerm);
    17. plugin.permission.playerAddTransient(p.getName(), addedPerm);
    18. }


    This is my exception:

    Code:
    2013-10-23 20:54:02 [SEVERE] Could not pass event PlayerLoginEvent to Sex v1.0
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
        at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:30)
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:478)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:463)
        at net.minecraft.server.v1_6_R3.PlayerList.attemptLogin(PlayerList.java:335)
        at net.minecraft.server.v1_6_R3.PendingConnection.e(PendingConnection.java:128)
        at net.minecraft.server.v1_6_R3.PendingConnection.d(PendingConnection.java:48)
        at org.spigotmc.netty.NettyServerConnection.b(NettyServerConnection.java:139)
        at net.minecraft.server.v1_6_R3.MinecraftServer.t(MinecraftServer.java:594)
        at net.minecraft.server.v1_6_R3.DedicatedServer.t(DedicatedServer.java:240)
        at net.minecraft.server.v1_6_R3.MinecraftServer.s(MinecraftServer.java:483)
        at net.minecraft.server.v1_6_R3.MinecraftServer.run(MinecraftServer.java:415)
        at net.minecraft.server.v1_6_R3.ThreadServerApplication.run(SourceFile:583)
    Caused by: java.lang.NullPointerException
        at java.util.Arrays$ArrayList.<init>(Arrays.java:2842)
        at java.util.Arrays.asList(Arrays.java:2828)
        at com.FlawlezZ.Flawssentials.main.existsPlayer(main.java:184)
        at com.FlawlezZ.Flawssentials.ssentialslistener.onPlayerLogin(ssentialslistener.java:152)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
        ... 13 more
     
  2. Offline

    Goblom

    Can you post the method is involved with this line? Its the reason you are getting a NullPointer
    Code:
    com.FlawlezZ.Flawssentials.main.existsPlayer(main.java:184)
     
  3. Offline

    FlawlezZ

    Shit I didn't see that my fault that's stupid...

    The problem was that the folder wasn't there.

    Do you know how to create a folder on onEnable()?

    Currently i'm using this:
    new File(playerfolder).mkdir();

    But I heard it would be bad?

    (also it seems like the folder wasn't created)

    Now i'm getting this error. I think i'm gonna start with using playerAdd instead of Transient.

    Code:
    2013-10-23 21:05:56 [SEVERE] Could not pass event PlayerLoginEvent to Flawssentials v1.0
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
        at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:30)
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:478)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:463)
        at net.minecraft.server.v1_6_R3.PlayerList.attemptLogin(PlayerList.java:335)
        at net.minecraft.server.v1_6_R3.PendingConnection.e(PendingConnection.java:128)
        at net.minecraft.server.v1_6_R3.PendingConnection.d(PendingConnection.java:48)
        at org.spigotmc.netty.NettyServerConnection.b(NettyServerConnection.java:139)
        at net.minecraft.server.v1_6_R3.MinecraftServer.t(MinecraftServer.java:594)
        at net.minecraft.server.v1_6_R3.DedicatedServer.t(DedicatedServer.java:240)
        at net.minecraft.server.v1_6_R3.MinecraftServer.s(MinecraftServer.java:483)
        at net.minecraft.server.v1_6_R3.MinecraftServer.run(MinecraftServer.java:415)
        at net.minecraft.server.v1_6_R3.ThreadServerApplication.run(SourceFile:583)
    Caused by: java.lang.UnsupportedOperationException: GroupManager does not support offline player transient permissions!
        at net.milkbowl.vault.permission.Permission.playerAddTransient(Permission.java:205)
        at com.FlawlezZ.Flawssentials.ssentialslistener.onPlayerLogin(ssentialslistener.java:164)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
        ... 13 more


    Goblom
     
  4. Offline

    Goblom

    please read where it says "Caused by:" that will answer ur question :p

    GroupManager does not support offline player transient permissions!
     
  5. Offline

    FlawlezZ

    Yeah I know I've already fixed it and I also wrote it in my post.

    Goblom

    Maybe you know why this doesn't work? The permission is being added nicely but not removed

    Code:java
    1. String addedPerm = "coloredtags." + plugin.getRank(p.getName());
    2. if (plugin.permissionSave.containsKey(p.getName())) {
    3. plugin.permission.playerRemove("Weyard", p.getName(), plugin.permissionSave.get(p.getName()));
    4. plugin.permissionSave.remove(p.getName());
    5. }
    6. plugin.permissionSave.put(p.getName(), addedPerm);
    7. plugin.permission.playerAdd("Weyard", p.getName(), addedPerm);
     
  6. Offline

    Goblom

    Code:java
    1. plugin.permissionSave.remove(p.getName(), addedPerm); ?


    I really need more code in order to help you to the best of my knowledge
     
  7. Offline

    FlawlezZ

    There is nothing else. permissionSave is a HashMap

    public HashMap<String, String> permissionSave = new HashMap<String, String>();

    Code:java
    1. /* PLAYER LOGIN EVENT */
    2. @EventHandler(priority = EventPriority.NORMAL)
    3. public void onPlayerLogin(PlayerLoginEvent event){
    4. Player p = (Player) event.getPlayer();
    5.  
    6. if(!plugin.existsPlayer(p.getName())) {
    7. plugin.createPlayer(p.getName(), plugin.getConfig().getInt("Flawssentials.Moral.Startmoral"));
    8. plugin.getLogger().info(p.getName() + "Flawssentials " + p.getName() +" Moral-System Konto erstellt");
    9. }
    10.  
    11. /* GIBT DEM SPIELER DIE PERMISSION */
    12. String addedPerm = "coloredtags." + plugin.getRank(p.getName());
    13. if (plugin.permissionSave.containsKey(p.getName())) {
    14. plugin.permission.playerRemove("Weyard", p.getName(), plugin.permissionSave.get(p.getName()));
    15. plugin.permissionSave.remove(p.getName());
    16. }
    17. plugin.permissionSave.put(p.getName(), addedPerm);
    18. plugin.permission.playerAdd("Weyard", p.getName(), addedPerm);
    19. }
     
Thread Status:
Not open for further replies.

Share This Page