Solved Event isn't being called, while another one in the same class does.

Discussion in 'Plugin Help/Development/Requests' started by MgMaor, Apr 10, 2015.

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

    MgMaor

    Code:
        @EventHandler
        public void drinkSoup(PlayerInteractEvent event) {
            Player player = event.getPlayer();
            if (player.getHealth() != player.getMaxHealth() && player.getItemInHand().getType() == Material.MUSHROOM_SOUP) {
                player.setHealth(player.getMaxHealth() - player.getHealth() > 7 ? player.getHealth() + 7 : player.getMaxHealth() - player.getHealth());
                player.getItemInHand().setType(Material.BOWL);
                player.updateInventory();
            }
        }
       
        @EventHandler
        public void onPlayerDeath(PlayerDeathEvent event) {
            Player died = event.getEntity().getPlayer();
            System.out.println("a");
            if (died.getKiller() instanceof Player) {
                Player killer = died.getKiller();
                System.out.println("s");
                event.setDeathMessage(ChatColor.GRAY + died.getName() + " was killed by " + killer.getName() + "'s " + Helper.getNameForMaterial(killer.getItemInHand().getType()));
            }
        }
    The event drinkSoup is being called, but onPlayerDeath doesn't.
    As you can see, they both registered and have the @EventHandler annotation.
    What is the problem here?
    And btw there's another event that doesn't get called.
    I don't know if that important but these are the latest events that I wrote.
     
  2. Offline

    mine-care

    @MgMaor Can we see the line at whitch you register the listener?
    does aby other event handler do what drinkSoup does (more or less)
    What server version are you running?
     
  3. Offline

    MgMaor

    @mine-care
    Code:
         
    
        public void onEnable() {
            getConfig().options().copyDefaults(true);
            saveConfig();
            config = getConfig();
            for (Listener listener : allListeners) {
                Bukkit.getPluginManager().registerEvents(listener, this);
            }
            getLogger().info("[MgPvP] Has been enabled!");
        }
     
        public void onDisable() {
            getLogger().info("[MgPvP] Has been disabled!");
        }
     
        public Listener[] allListeners = {
                generalListener,
                configHelper,
                killAssistSystem,
                killStreakSystem,
                dueler,
                kitManager
        };
    All the events in that class works except from that, so that's irrelevant.
    I'm running Spigot 1.8
     
  4. Offline

    mine-care

    @MgMaor mhm, Have you tryed to move the event to another listener class?
     
  5. Offline

    mrCookieSlime

    Moved to Alternatives Section.
     
  6. Offline

    nverdier

    @MgMaor Is an error being thrown before you print out the debug message? Because #getEntity() returns a Player... And there is no Player#getPlayer()...
     
  7. Offline

    MgMaor

    Last edited by a moderator: Apr 10, 2015
  8. Offline

    mine-care

    @MgMaor Ahh! those compilation fails xD
     
  9. Offline

    nverdier

Thread Status:
Not open for further replies.

Share This Page