3 Events working, but not 2 :/

Discussion in 'Plugin Development' started by ZodiacTheories, Jul 12, 2014.

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

    ZodiacTheories

    Hi, so I am updating my plugin Anti-Grief. I am adding some new features, such as disallowing block placing and breaking if they don't have the permission, and disallowing water placement if they don't have the permission. For some reason, the BlockPlaceEvent works, but not the BlockBreakEvent, and my second PlayerBucketEmptyEvent doesn't work.

    Here is my code:

    Code:java
    1. package me.thesamster8.antigrief;
    2.  
    3. import org.bukkit.ChatColor;
    4. import org.bukkit.Material;
    5. import org.bukkit.command.Command;
    6. import org.bukkit.command.CommandSender;
    7. import org.bukkit.entity.Entity;
    8. import org.bukkit.entity.Player;
    9. import org.bukkit.entity.TNTPrimed;
    10. import org.bukkit.event.EventHandler;
    11. import org.bukkit.event.HandlerList;
    12. import org.bukkit.event.Listener;
    13. import org.bukkit.event.block.BlockBreakEvent;
    14. import org.bukkit.event.block.BlockPlaceEvent;
    15. import org.bukkit.event.entity.EntityExplodeEvent;
    16. import org.bukkit.event.player.PlayerBucketEmptyEvent;
    17. import org.bukkit.plugin.java.JavaPlugin;
    18.  
    19. public class Core extends JavaPlugin implements Listener {
    20.  
    21. public void onEnable() {
    22. getServer().getPluginManager().registerEvents(this, this);
    23. }
    24.  
    25. public void onDisable() {
    26. }
    27. @EventHandler
    28. public void onBoom(EntityExplodeEvent e) {
    29. Entity entity = e.getEntity();
    30. if ((entity != null) &&
    31. ((entity instanceof TNTPrimed)))
    32. e.blockList().clear();
    33. }
    34.  
    35. @EventHandler
    36. public void onEmpty(PlayerBucketEmptyEvent e) {
    37. Player p = e.getPlayer();
    38. if (e.getBucket() == Material.LAVA_BUCKET)
    39. if (!(p.hasPermission("antigrief.lava"))) {
    40. e.setCancelled(true);
    41. p.sendMessage(ChatColor.RED + "You are not allowed to place lava!");
    42. }
    43. }
    44.  
    45. @EventHandler
    46. public void onPlace(BlockPlaceEvent e) {
    47. Player p = e.getPlayer();
    48. if(!(p.hasPermission("antigrief.placeblocks"))) {
    49. e.setCancelled(true);
    50. p.sendMessage(ChatColor.RED + "You cannot place blocks!");
    51. }
    52. }
    53.  
    54. @EventHandler
    55. public void onBreak(BlockBreakEvent e) {
    56. Player p = e.getPlayer();
    57. if(!(p.hasPermission("antigrief.breakblocks"))) {
    58. e.setCancelled(true);
    59. p.sendMessage(ChatColor.RED + "You cannot break blocks!");
    60. }
    61. }
    62.  
    63. @EventHandler
    64. public void onEmp(PlayerBucketEmptyEvent e) {
    65. Player p = e.getPlayer();
    66. if(e.getBucket() == Material.WATER_BUCKET) {
    67. if(!(p.hasPermission("antigrief.placeblocks"))) {
    68. e.setCancelled(true);
    69. p.sendMessage(ChatColor.RED + "You cannot allowed to place water!");
    70. }
    71. }
    72. }
    73.  
    74. @Override
    75. public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
    76. if (!(sender instanceof Player)) {
    77. return false;
    78. }
    79. Player player = (Player)sender;
    80.  
    81. if (cmd.getName().equalsIgnoreCase("agoff")) {
    82. if (player.hasPermission("antigrief.off"))
    83. player.sendMessage(ChatColor.RED + "Anti-Grief is now disabled!");
    84. HandlerList.unregisterAll();
    85. return true;
    86. }
    87.  
    88. if (cmd.getName().equalsIgnoreCase("agon")) {
    89. if (player.hasPermission("antigrief.on"))
    90. player.sendMessage(ChatColor.GREEN + "Anti-Grief is now enabled!");
    91. getServer().getPluginManager().registerEvents(this, this);
    92. return true;
    93. }
    94. return true;
    95. }
    96. }
    97.  


    I know that I could have combined the different events to make the code shorter, but I decided not to, just for simplicity :)
     
  2. Offline

    Dealyise

    ZodiacTheories
    So, try adding debug messages, when they show up for the specific event, you know that your event works but your code doesn't.
     
  3. Offline

    maved145

    ZodiacTheories Maybe set the priority of the event to high. Other plugins may be overriding your event.
     
  4. Offline

    ZodiacTheories

    maved145

    That was the only plugin on the server.
     
Thread Status:
Not open for further replies.

Share This Page