PlayerDeathEvent and PlayerJoinEvent not firing?

Discussion in 'Plugin Development' started by dingus007, Oct 4, 2013.

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

    dingus007

    So I am developing a plugin for my hardcore pvp server. Whenever you die, you get kicked and whenever you join, you get a custom MoTD depending on whether or not you've joined before. Neither of these events seem to be working, even though I have an @EventHandler.

    Code:java
    1. @EventHandler
    2. public void onPlayerDeath(PlayerDeathEvent event){
    3. Player player = event.getEntity();
    4. if (!(player.isOp())) {
    5. broadcast(_format(player.getName() + " has lost all their life!"));
    6. player.kickPlayer(_format("You lost all your life! You may come back!"));
    7. }
    8. }
    9. @EventHandler
    10. public void onPlayerJoin(PlayerJoinEvent event){
    11. Player player = event.getPlayer();
    12. if (player.hasPlayedBefore()) {
    13. player.sendMessage(ChatColor.GOLD + "Welcome to Minedcore, " + player.getName());
    14. player.sendMessage(ChatColor.GOLD + "Please read the rules! /rules");
    15. player.sendMessage(ChatColor.GOLD + "To see all custom plugins this server runs, type /plugins or /pl");
    16. player.sendMessage(ChatColor.GOLD + "Make sure not to die! You only have one life!");
    17. } else {
    18. player.sendMessage(ChatColor.GOLD + "Welcome to Minedcore, a very hardcore survival pvp server!");
    19. player.sendMessage(ChatColor.GOLD + "Once you die, you get kicked. Don't worry, you can always come back!");
    20. player.sendMessage(ChatColor.GOLD + "Your health doesn't regen, so make sure you always have Golden Apples or potions on you!");
    21. player.sendMessage(ChatColor.GOLD + "Please read the rules! /rules");
    22. }
    23. }
     
  2. Offline

    Gater12

    dingus007 Are you registering the events in the onEnable()?
     
  3. Offline

    dingus007

    No, how do I do that? :O
     
  4. Offline

    Gater12

    dingus007 If you have your Listener in a different class, in your onEnable() put:
    Code:java
    1. PluginManager pm = getServer().getPluginManager();
    2. pm.registerEvents(new ListenerClassName(this), this);

    Where ListenerClassName is the name of your Listener class.
    If you have it in your main file:
    Code:java
    1. PluginManager pm = getServer().getPluginManager();
    2. pm.registerEvents(this, this);
     
  5. Offline

    dingus007

    What do you mean by
    What do you mean by ListenerClass?

    What do you mean by ListenerClass?

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

    Gater12

    dingus007 For example, I put all my Events and Listeners in a class called PlayerListener, so I would put:
    Code:
    PluginManager pm = getServer().getPluginManager();
    pm.registerEvents(new PlayerListener(this), this);
     
  7. Offline

    peteyandpika


    BTW, the code pm.registerEvents(new ListenerClassName(this), this); will only work if the constructor of the listener class includes this extra argument like so:
    ListenerClassName(MainClassName plugin) { this.plugin = plugin }

    of course for this to work, you would need a field in your listener class called plugin.

    So if you don't have a constructor like this in your listener class, you would probably register the events like this:

    Code:java
    1. PluginManager pm = getServer().getPluginManager();
    2. pm.registerEvents(new ListenerClassName(), this);
     
    Gater12 likes this.
  8. Offline

    dingus007

    So would I have to do this?

    Code:java
    1. public class MCCore extends JavaPlugin implements Listener {
    2.  
     
  9. Offline

    Gater12

    peteyandpika Oh yeah thanks :p
    dingus007 Yes but in your onEnable() you will only put:
    Code:java
    1. PluginManager pm = getServer().getPluginManager();
    2. pm.registerEvents(this, this);
     
  10. Offline

    dingus007

    Ok the implements thing works and the registering events works. Thanks!
     
  11. Offline

    peteyandpika

    you are quite welcome my friend
     
    dingus007 likes this.
  12. Offline

    Gater12

    dingus007 likes this.
Thread Status:
Not open for further replies.

Share This Page