Plugin Help Why is this event not working

Discussion in 'Plugin Help/Development/Requests' started by ForbiddenGaming, Aug 24, 2016.

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

    ForbiddenGaming

    So I've been trying to get this plugin to work. Its supposed to make your armor unbreakable when attacked and to repair your sword and bow when attacking another player.
    Code:
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entity.EntityDamageByEntityEvent;
    import org.bukkit.event.entity.EntityShootBowEvent;
    import org.bukkit.event.player.PlayerItemBreakEvent;
    import org.bukkit.inventory.ItemStack;
    
    public class AttackBreakEvent implements Listener{
        @EventHandler
        public void antiDamage(EntityDamageByEntityEvent e) {
            if(e.getDamager() instanceof Player) {
                ((Player) e.getDamager()).getInventory().getItemInHand().setDurability((short)1);
            }else if(e.getEntity() instanceof Player) {
                ItemStack[] armor = ((Player) e.getEntity()).getInventory().getArmorContents();
                for(ItemStack a : armor) {
                    a.setDurability((short)0);
                }
            }
           
        }
        @EventHandler
        public void bowFix(EntityShootBowEvent e) {
            if(e.getEntity() instanceof Player) {
                e.getBow().setDurability((short)1);
            }
        }
        @EventHandler
        public void onItemBreakDamage(PlayerItemBreakEvent e) {
            ItemStack item = e.getBrokenItem().clone();
            item.setDurability((short)0);
            e.getPlayer().getInventory().addItem(item);
        }
    
    }
    I registered it in my handler
    Code:
    import java.util.logging.Logger;
    
    import org.bukkit.Bukkit;
    import org.bukkit.plugin.java.JavaPlugin;
    
    import com.mc.antibreak.event.AttackBreakEvent;
    
    public class Main extends JavaPlugin{
        public final Logger logger = Logger.getLogger("Minecraft");
        @Override
        public void onEnable() {
            this.logger.info("AntiBreak has been enabled");
            Bukkit.getServer().getPluginManager().registerEvents(new AttackBreakEvent(), this);
        }
        public void onDisable() {
            this.logger.info("AntiBreak has been disabled");
        }
    
    }
    
     
  2. Get rid of the logger. It sends a message like "[INFO] AntiBreak by ..... has been enabled/disabled", so theres no need for the logger.
    Also you should check if the "player.getItemInHand()" is a weapon or a tool, because you can change the color of e.g. wool too using setDurability((short) *). And check if the ArmorContents and the ItemInHand are not null (check each serperate: helmet, chestplate, leggings and boots). Now it should work ;)
     
Thread Status:
Not open for further replies.

Share This Page