make bleeze immute to water damage

This commit is contained in:
okx-code
2026-06-20 03:17:25 +01:00
parent cd1bed6412
commit 195b5f7426
2 changed files with 41 additions and 0 deletions

View File

@@ -29,6 +29,7 @@ import com.github.maxopoly.finale.listeners.VelocityFixListener;
import com.github.maxopoly.finale.listeners.WarpFruitListener;
import com.github.maxopoly.finale.listeners.WeaponModificationListener;
import com.github.maxopoly.finale.mob.BleezeAI;
import com.github.maxopoly.finale.mob.BleezeDamageListener;
import com.github.maxopoly.finale.overlay.ScoreboardHUD;
import org.bukkit.Bukkit;
import org.bukkit.event.HandlerList;
@@ -136,6 +137,7 @@ public class Finale extends ACivMod {
getServer().getPluginManager().registerEvents(new MaceListener(config.getMaceCooldown(), config.getMaceMaxDamage(), config.getWindCooldown()), this);
if (getServer().getPluginManager().isPluginEnabled("MythicMobs")) {
Bukkit.getPluginManager().registerEvents(new BleezeDamageListener(), this);
new BleezeAI().start();
}
}

View File

@@ -0,0 +1,39 @@
package com.github.maxopoly.finale.mob;
import io.lumine.mythic.bukkit.MythicBukkit;
import io.lumine.mythic.core.mobs.ActiveMob;
import org.bukkit.damage.DamageType;
import org.bukkit.entity.Entity;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageEvent;
public class BleezeDamageListener implements Listener {
private static final String BLEEZE = "Bleeze";
private static final String BLEEZE_MINION = "BleezeMinion";
@SuppressWarnings("UnstableApiUsage")
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onDamage(final EntityDamageEvent event) {
if (!isBleeze(event.getEntity())) {
return;
}
if (event.getDamageSource().getDamageType() == DamageType.DROWN) {
event.setCancelled(true);
}
}
private boolean isBleeze(final Entity entity) {
for (final ActiveMob mob : MythicBukkit.inst().getMobManager().getActiveMobs()) {
if (!mob.getEntity().getBukkitEntity().getUniqueId().equals(entity.getUniqueId())) {
continue;
}
final String internalName = mob.getType().getInternalName();
return BLEEZE.equals(internalName) || BLEEZE_MINION.equals(internalName);
}
return false;
}
}