首页 > 解决方案 > 我需要什么事件才能对某些带有附魔的小怪造成更多伤害?

问题描述

    @EventHandler
public void onAttack(EntityDamageByEntityEvent event, ItemStack inHand) {       
    if (!(event.getDamager() instanceof Player && !(event.getEntity() instanceof Player))) {
        return;
    }
    else {
        Player player = (Player) event.getDamager();
        if(player.getInventory().getItemInMainHand().getItemMeta().getLore().contains("Orphan Obliterator")) {
            ((Damageable) event).setHealth(0);
    }
    
}

攻击

基本上,我需要制作一个对某些生物造成更多伤害的附魔,比如惩戒附魔。我想检查攻击者(玩家)的武器上是否有我需要的附魔,如果有,我需要它来造成更多伤害吗?(我做了 EnchantmentWrapper 和一切)我在这里做错了什么?

标签: javaeventspluginsminecraftbukkit

解决方案


你的事件应该只接受一个参数,改变

@EventHandler
public void onAttack(EntityDamageByEntityEvent event, ItemStack inHand) {}

@EventHandler
public void onAttack(EntityDamageByEntityEvent event) {}

另外,请确保您正在注册您的活动:

Bukkit.getPluginManager().registerEvents(Listener, JavaPlugin);

whereListener是包含您的onAttack方法的类JavaPlugin的实例,并且是您的类的实例 which extends JavaPlugin.


推荐阅读