2 plugins listening to the same event

Discussion in 'Plugin Development' started by vYN, Apr 5, 2014.

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

    vYN

    Hi.. I'm having a issue here.. I'm developing 2 plugins. But if I have both of them on the server. And those two plugins is listening to the same event. One of them is getting: "Could not pass event PlayerQuitEvent to PluginName"

    I don't know how to fix it??
     
  2. Offline

    AmShaegar

    How does thewhole stack trace look like?
     
  3. Offline

    St3venAU

    It will be hard to help without more information. Please post the PlayerQuitEvent from both plugins and the full console error.
     
  4. Offline

    vYN

    AmShaegar

    Code:
    [19:14:15] [Server thread/ERROR]: Could not pass event PlayerQuitEvent to ExplodingEggs v2.3
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:294) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-10-gcf5a547-b3035jnks]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-10-gcf5a547-b3035jnks]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:501) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-10-gcf5a547-b3035jnks]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:486) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-10-gcf5a547-b3035jnks]
        at net.minecraft.server.v1_7_R2.PlayerList.disconnect(PlayerList.java:285) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-10-gcf5a547-b3035jnks]
        at net.minecraft.server.v1_7_R2.PlayerConnection.a(PlayerConnection.java:702) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-10-gcf5a547-b3035jnks]
        at net.minecraft.server.v1_7_R2.ServerConnection.c(SourceFile:130) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-10-gcf5a547-b3035jnks]
        at net.minecraft.server.v1_7_R2.MinecraftServer.v(MinecraftServer.java:657) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-10-gcf5a547-b3035jnks]
        at net.minecraft.server.v1_7_R2.DedicatedServer.v(DedicatedServer.java:250) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-10-gcf5a547-b3035jnks]
        at net.minecraft.server.v1_7_R2.MinecraftServer.u(MinecraftServer.java:548) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-10-gcf5a547-b3035jnks]
        at net.minecraft.server.v1_7_R2.MinecraftServer.run(MinecraftServer.java:459) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-10-gcf5a547-b3035jnks]
        at net.minecraft.server.v1_7_R2.ThreadServerApplication.run(SourceFile:618) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-10-gcf5a547-b3035jnks]
    Caused by: java.lang.NullPointerException
        at pro.homiecraft.PlayerLeave.OnPlayerLeave(PlayerLeave.java:47) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?
    First Plugin:

    Code:
    public class EEPlayerLeave implements Listener {
        @EventHandler
        public void EEonPlayerLeave(PlayerQuitEvent event){
            try{
                toggleMap.ee.remove(event.getPlayer().getName());
            }catch(Exception e){
               
            }
        }
    }
    Second:

    Code:
    @EventHandler
        public void OnPlayerLeave(PlayerQuitEvent event){
            //long CurrentSysTime = System.currentTimeMillis();
            Player player = event.getPlayer();
           
            String cworld = player.getWorld().getName();
            playerConfig.reloadPlayerConfig(player.getName());
            long lastseen = player.getLastPlayed();
                   
           
           
            double x = player.getLocation().getX();
            double y = player.getLocation().getY();
            double z = player.getLocation().getZ();
           
            long timeAlreadyPlayed = playerConfig.getPlayerConfig(player.getName()).getLong("TimePlayed", 0);
            long conTime = timePlayedMap.tpl.get(player.getName());
            long leaveTime = System.currentTimeMillis();
           
            long timePlayed = leaveTime - conTime;
            long timeToConfig = timePlayed + timeAlreadyPlayed;
           
            playerConfig.getPlayerConfig(player.getName()).set("LastLocation.World", cworld);
            playerConfig.getPlayerConfig(player.getName()).set("LastLocation.X", x);
            playerConfig.getPlayerConfig(player.getName()).set("LastLocation.Y", y);
            playerConfig.getPlayerConfig(player.getName()).set("LastLocation.Z", z);
            playerConfig.getPlayerConfig(player.getName()).set("Lastseen", lastseen);
            playerConfig.getPlayerConfig(player.getName()).set("TimePlayed", timeToConfig);
            playerConfig.savePlayerConfig(player.getName());
            playerConfig.reloadPlayerConfig(player.getName());
           
            damageMap.dmg.remove(player);
            muteMap.mu.remove(player);
            timePlayedMap.tpl.remove(player.getName());
        }
     
  5. Offline

    AmShaegar

    This is the important part:
    Code:
    Caused by: java.lang.NullPointerException
    at pro.homiecraft.PlayerLeave.OnPlayerLeave(PlayerLeave.java:47)
    How do line 47 and the above lines look like?
     
  6. Offline

    St3venAU

    ok, so whats on line 47 of PlayerLeave.java ?

    lol, ninja'd again :)

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

    vYN

    There is no line 47 in the plugin that fails.. But in the other one there is..

    "long conTime = timePlayedMap.tpl.get(player.getName());"
     
  8. Offline

    AmShaegar

    So either
    timePlayedMap
    or
    timePlayedMap.tpl

    is null.
     
  9. Offline

    vYN

    OKay.. I fixed. It was that null issue. Just added a null check on it. So it works now. Thank you.
     
Thread Status:
Not open for further replies.

Share This Page