PlayerJoinEvent not firing

Discussion in 'Plugin Development' started by Nukreeper64, Jan 1, 2015.

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

    Nukreeper64

    I am new to bukkit development and I created a small plugin for our server. The plugin needs to do some tasks when a player joins. however, when I added a playerJoinEvent to my listeners class, it does not seem to trigger. The player never gets the message. I have set up my plugin correctly and registered my listeners class, and I know this because all the other events in my code work. I really hope to be able to solve this problem so I can put up my server. Thanks!
    Onenable method:
    Code:java
    1.  
    2.  
    3. @Override
    4. public void onEnable() {
    5. getLogger().info("War Plugin Enabled!");
    6. getServer().getPluginManager().registerEvents(new WarListener(this), this);
    7. groups.Groups.england = (List<String>) this.getConfig().getList("england");
    8. groups.Groups.france = (List<String>) this.getConfig().getList("france");
    9. }
    10.  

    entire listener class:
    Code:java
    1.  
    2. package Main;
    3.  
    4. import org.bukkit.Bukkit;
    5. import org.bukkit.ChatColor;
    6. import org.bukkit.entity.Player;
    7. import org.bukkit.event.EventHandler;
    8. import org.bukkit.event.Listener;
    9. import org.bukkit.event.block.BlockBreakEvent;
    10. import org.bukkit.event.entity.EntityDamageByEntityEvent;
    11. import org.bukkit.event.player.PlayerChatEvent;
    12. import org.bukkit.event.player.PlayerInteractEvent;
    13. import org.bukkit.event.player.PlayerJoinEvent;
    14. import org.bukkit.event.player.PlayerLoginEvent;
    15.  
    16. public class WarListener implements Listener {
    17.  
    18. public Main plugin;
    19.  
    20. public WarListener(Main instance){
    21. plugin = instance;
    22. }
    23.  
    24. @EventHandler
    25. public void OnPlayerInteract(PlayerInteractEvent event){
    26. if (event.getClickedBlock().getX() > 499 && event.getClickedBlock().getX() < 1501 &&
    27. event.getClickedBlock().getZ() > -501 && event.getClickedBlock().getZ() < 501){
    28.  
    29. if (groups.Groups.england.contains(event.getPlayer().toString())){
    30. event.setCancelled(true);
    31. event.getPlayer().sendMessage(ChatColor.RED + "Oops! Only the French can place here!");
    32. }
    33. }
    34. if (event.getClickedBlock().getX() < -499 && event.getClickedBlock().getX() > -1501 &&
    35. event.getClickedBlock().getZ() > -501 && event.getClickedBlock().getZ() < 501){
    36.  
    37. if (groups.Groups.france.contains(event.getPlayer().toString())){
    38. event.setCancelled(true);
    39. event.getPlayer().sendMessage(ChatColor.RED + "Oops! Only the English can place here!");
    40. }
    41. }
    42.  
    43. }
    44. @EventHandler
    45. public void OnBlockBreak(BlockBreakEvent event){
    46. if (event.getBlock().getX() > 499 && event.getBlock().getX() < 1501 && event.getBlock().getZ() > -501 &&
    47. event.getBlock().getZ() < 501){
    48. if (groups.Groups.england.contains(event.getPlayer().toString())){
    49. event.setCancelled(true);
    50. event.getPlayer().sendMessage(ChatColor.RED + "Oops! Only the French can break here!");
    51. }
    52. }
    53. if (event.getBlock().getX() < -499 && event.getBlock().getX() > -1501 &&
    54. event.getBlock().getZ() > -501 && event.getBlock().getZ() < 501){
    55.  
    56. if (groups.Groups.france.contains(event.getPlayer().toString())){
    57. event.setCancelled(true);
    58. event.getPlayer().sendMessage(ChatColor.RED + "Oops! Only the English can break here!");
    59. }
    60. }
    61. }
    62. @EventHandler
    63. public void OnPlayerAttack(EntityDamageByEntityEvent event){
    64. if (event.getEntity() instanceof Player && event.getDamager() instanceof Player){
    65. if((groups.Groups.england.contains(event.getEntity().toString()) && groups.Groups.england.contains(event.getDamager().toString()))
    66. || (groups.Groups.france.contains(event.getEntity().toString()) && groups.Groups.france.contains(event.getDamager().toString()))){
    67. event.setCancelled(true);
    68. Player damager = (Player) event.getDamager();
    69. damager.sendMessage(ChatColor.RED + "You can't hurt your fellow Countrymen!");
    70. }
    71.  
    72. }
    73. }
    74. @EventHandler
    75. public void onPlayerJoin(PlayerJoinEvent event){
    76. groups.Groups.chatmode.put(event.getPlayer().toString(), false);
    77. event.setJoinMessage("welcome to the server");
    78. }
    79. @EventHandler
    80. public void onPlayerChat(PlayerChatEvent event){
    81. if (groups.Groups.chatmode.get(event.getPlayer().toString())){
    82. event.setCancelled(true);
    83. if (groups.Groups.england.contains(event.getPlayer().toString())){
    84. for(Player player : Bukkit.getServer().getOnlinePlayers()){
    85. if(groups.Groups.england.contains(player.toString())){
    86. player.sendMessage(ChatColor.GREEN + "[Allied Chat]" + event.getPlayer().getName() + ": " + ChatColor.DARK_GRAY + event.getMessage());
    87. }
    88. }
    89. }
    90. if (groups.Groups.france.contains(event.getPlayer().toString())){
    91. for(Player player : Bukkit.getServer().getOnlinePlayers()){
    92. if(groups.Groups.france.contains(player.toString())){
    93. player.sendMessage(ChatColor.GREEN + "[Allied Chat]" + event.getPlayer().getName() + ": " + ChatColor.DARK_GRAY + event.getMessage());
    94. }
    95. }
    96. }
    97. }
    98. }
    99. }
    100.  
     
    Last edited: Jan 1, 2015
  2. Offline

    SuchSwegMuchWow

    @Nukreeper64

    Im pretty sure its event.getPlayer().getName();
     
  3. Offline

    567legodude

    Have you registered the listener in the main class?
    Get your plugin manager and call registerEvents(yourlistener, this); in the main class.
     
    Cycryl likes this.
  4. Offline

    Nukreeper64

    Yes, I have registered my listener. As I said in my post, all of my other events work.
     
  5. Offline

    Cycryl

    @Nukreeper64
    either use @567legodude's solution or check the console if there is an exception in the line before the message
     
  6. @Nukreeper64 May I ask where you are getting the line groups.Groups.chatmode.put(event.getPlayer().toString, false); from? Also, if you just want to send the player joining a message, use the code below. (Since you're new and all. ;))

    Code:
        @EventHandler
        public void onPlayerJoin(PlayerJoinEvent event) {
            Player player = event.getPlayer();
                   
                    player.sendMessage("This is the message that people see when joining.");
    
    // Also, if you want the message to be colored, use the code below.
    
                    player.sendMessage(ChatColor.RED + "This message is red.");
    Hope that I helped a little. :)
     
  7. Offline

    Nukreeper64

    what do you mean?
    do you mean event.getPlayer().getName().sendMessage()?
     
  8. Offline

    Nukreeper64

    As I said to legodude, my listener class is already registered, and there are no errors in the code or in the server log before or after I log in.

    I edited my post to show onEnable(). hopefully this will provide us with some answers.
     
    Last edited by a moderator: Jan 1, 2015
  9. Offline

    CGA1123

    @Nukreeper64
    instead of event.setJoinMessage("welcome to the server");
    you should probably do event.getPlayer().sendMessage("Message");

    Also, I'm pretty sure, although it has been a while, that using AsyncPlayerChatEvent rather than PlayerChatEvent, is better performance-wise.
     
    Last edited: Jan 1, 2015
  10. Offline

    Nukreeper64

    I changed my code so that it looks exactly like this, but the message never shows up. I have updated my post with more of my code, so maybe that will reveal the problem.
     
  11. @Nukreeper64 Hm... This probably doesn't have to do with anything, but your package looks funny.
    Code:
    package Main;
    
    // Should be...
    
    package me.Username.PluginName;
    
    // According to Bukkit at least.
     
  12. Offline

    SuchSwegMuchWow

    @Nukreeper64

    groups.Groups.chatmode.put(event.getPlayer().getName(), false);
     
  13. Offline

    Nukreeper64

    that is for another part of the plugin. changing that doesn't affect anything.
     
  14. Offline

    ninja2003

    @Nukreeper64 do this:
    Code:
        @EventHandler
        public void onPlayerJoin(PlayerJoinEvent event){
        Player player = event.getPlayer();
            player.sendMessage("welcome to the server");
        }
    Instead of this:
    Code:
     @EventHandler
        public void onPlayerJoin(PlayerJoinEvent event){
            groups.Groups.chatmode.put(event.getPlayer().toString(), false);
            event.setJoinMessage("welcome to the server");
        }
     
Thread Status:
Not open for further replies.

Share This Page