explwsive
Участник
- Баллы
- 31
- Имя в Minecraft
- explosive
У меня есть предмет с кастомным зачарованием, который при нахождении в инвентаре должен давать эффект вампиризма, но у меня получается только криво, ибо то он работает только на самом предмете с зачаром, то он работает только, если предмет лежит в определенном слоте.
Код:
@EventHandler
public void onPlayerDamage(EntityDamageByEntityEvent event) {
if (event.getDamager() instanceof Player) {
Player p = (Player) event.getDamager();
if (p.getInventory().isEmpty() == true) return;
for (ItemStack item : p.getInventory().getContents()) {
if (item != null && item.getType() == Material.DIAMOND_SWORD) {
if (item.hasItemMeta() == false) return;
if (item.getItemMeta().hasEnchants() == false) return;
if (item.getItemMeta().hasEnchant(CustomEnchants.LIFESTEAL) == true) {
if (p.getGameMode() == GameMode.CREATIVE || p.getGameMode() == GameMode.SPECTATOR)
return;
int health = (int) (p.getHealth() + event.getDamage() / 4);
if (health > p.getMaxHealth()) health = (int) p.getMaxHealth();
p.setHealth(health);
}
}
}
}
}