Solved Listeners Help

Discussion in 'Plugin Development' started by ThatUltraSeal, Jun 15, 2014.

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

    ThatUltraSeal

    So I'm trying to listen to a EntityDamageByEntityEvent, (Specifically when a player wielding a certain weapon is damaging a player or a mob).

    This is my EventListener.java
    Code:java
    1. package com.ozairpatel.toybox;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.event.Listener;
    5. import org.bukkit.plugin.Plugin;
    6.  
    7.  
    8. public class EventListener implements Listener {
    9.  
    10. public Plugin plugin;
    11.  
    12. public EventListener(Plugin instance) {
    13. plugin = instance;
    14. Bukkit.getServer().getPluginManager().registerEvents(this, plugin);
    15. }
    16. }
    17.  


    This is my main class
    Code:java
    1. package com.ozairpatel.toybox;
    2.  
    3. import java.util.logging.Logger;
    4.  
    5. import org.bukkit.ChatColor;
    6. import org.bukkit.Effect;
    7. import org.bukkit.Sound;
    8. import org.bukkit.command.Command;
    9. import org.bukkit.command.CommandSender;
    10. import org.bukkit.entity.Player;
    11. import org.bukkit.event.EventHandler;
    12. import org.bukkit.event.EventPriority;
    13. import org.bukkit.event.entity.EntityDamageByEntityEvent;
    14. import org.bukkit.plugin.Plugin;
    15. import org.bukkit.plugin.PluginDescriptionFile;
    16. import org.bukkit.plugin.java.JavaPlugin;
    17.  
    18. public class ToyBox extends JavaPlugin{
    19.  
    20. public Plugin plugin;
    21. public final Logger logger = Logger.getLogger("Minecraft");
    22. private com.ozairpatel.toybox.Toys Toys;
    23.  
    24. //Plugin Enable
    25. @Override
    26. public void onEnable(){
    27. PluginDescriptionFile pdfFile = this.getDescription();
    28. this.logger.info("[" + pdfFile.getVersion() + "] " + pdfFile.getName() + " has been enabled");
    29. getConfig().options().copyDefaults(true);
    30. saveConfig();
    31. new EventListener(this);
    32. this.Toys = new Toys();
    33. ToyBox();
    34. }
    35.  
    36. //Plugin Disable
    37. @Override
    38. public void onDisable(){
    39. PluginDescriptionFile pdfFile = this.getDescription();
    40. this.logger.info("[" + pdfFile.getVersion() + "] " + pdfFile.getName() + " has been disabled");
    41. }
    42.  
    43. private void ToyBox(){
    44.  
    45. }
    46.  
    47. @Override
    48. public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    49. if (cmd.getName().equalsIgnoreCase("toybox") || cmd.getName().equalsIgnoreCase("tb")) {
    50. if (!(sender instanceof Player)) {
    51. sender.sendMessage("This command can only be run by a player.");
    52. } else {
    53. Player player = (Player) sender;
    54. if(args.length < 1){
    55. if(player.hasPermission("toybox.help")){
    56. player.performCommand("help toybox");
    57. }
    58. }else if(args[0].equalsIgnoreCase("help")){
    59. if(player.hasPermission("toybox.help")){
    60. player.performCommand("help toybox");
    61. }
    62. }else if(args[0].equalsIgnoreCase("new")){
    63. if(!args[2].equals(""))
    64. Toys.summonToy(args[1], player.getPlayer().getInventory(), args[2]);
    65. }else{
    66. player.sendMessage(ChatColor.DARK_RED + "Invalid command, check /help toybox");
    67. }
    68. }
    69. return true;
    70. }
    71. return false;
    72. }
    73.  
    74. @EventHandler(priority = EventPriority.NORMAL)
    75. //Here is my dmg function
    76. public void dmg(final EntityDamageByEntityEvent event, Player player) {
    77. if(!(event.getDamager() instanceof Player))
    78. return;
    79. Player damager = (Player) event.getDamager();
    80. damager.sendMessage("OK");
    81.  
    82. if(!(event.getEntity() instanceof Player)){
    83. if(damager.getItemInHand().getItemMeta().getDisplayName().equalsIgnoreCase("Foam Sword")){
    84. event.setCancelled(true);
    85. return;
    86. }
    87. return;
    88. }
    89.  
    90. Player damaged = (Player) event.getEntity();
    91.  
    92.  
    93. String damagerItemInHand = damager.getItemInHand().getItemMeta().getDisplayName();
    94. if(damagerItemInHand.equalsIgnoreCase("Foam Sword") || damagerItemInHand.equalsIgnoreCase("Toy Bow")){
    95. event.setCancelled(true);
    96.  
    97. damaged.playEffect(damaged.getLocation(), Effect.POTION_BREAK, null);
    98. damaged.playSound(damaged.getLocation(), Sound.ANVIL_LAND, 100, 50);
    99.  
    100. damager.playEffect(damaged.getLocation(), Effect.POTION_BREAK, null);
    101. damager.playSound(damager.getLocation(), Sound.ANVIL_LAND, 100, 50);
    102. }
    103. }
    104.  
    105.  
    106. }
    107.  


    But the function dmg() doesn't run.
     
  2. Offline

    teej107

    1) EventHandlers only have the event passed in the parameters. No extra things like a player.
    2) You are not registering the dmg event. You registered your EventHandler but not the event in your ToyBox.
     
Thread Status:
Not open for further replies.

Share This Page