- Баллы
- 61
Всем привет! Я хочу добавить урон арбалету. Делаю это с помощью двух Event'ов:
По задумке первый ивент должен наносить дополнительный урон, если тот, в кого попали - игрок и если у снаряда есть метадата "plusDamage". Второй же эту самую метадату задает, если снаряд - фейерверк и если он был запущен из конкретного арбалета(мушкета).
Знающие наверно уже поняли в чем проблема, но я совсем новичок и особо не понимаю в этих типах энтити, уверен, что ошибка именно в этом. Помогите пожалуйста разобраться с этими дамагерами и шутерами. Огромное спасибо)
Код:
@EventHandler
public void crossbowEvent(EntityDamageByEntityEvent e) {
if (e.getEntityType() == EntityType.PLAYER && e.getDamager().hasMetadata("plusDamage") ) {
Projectile p = (Projectile) e.getDamager();
Player player = (Player) e.getEntity();
player.damage(10);
}
}
@EventHandler
public void crossbowTag(ProjectileLaunchEvent e) {
if (e.getEntityType() == EntityType.FIREWORK && e.getEntity().getShooter() instanceof Player ) {
Player shooter = (Player) e.getEntity().getShooter();
ItemMeta crossbowMeta = shooter.getInventory().getItemInMainHand().getItemMeta();
if(crossbowMeta.getDisplayName().equals(ChatColor.LIGHT_PURPLE + "Мушкет")) {
e.getEntity().setMetadata("plusDamage", new FixedMetadataValue(plugin, true));
}
}
}
Знающие наверно уже поняли в чем проблема, но я совсем новичок и особо не понимаю в этих типах энтити, уверен, что ошибка именно в этом. Помогите пожалуйста разобраться с этими дамагерами и шутерами. Огромное спасибо)