From f40e08fdab0a620926f01435d2bd6ca70c283bbd Mon Sep 17 00:00:00 2001 From: zimzaza4 <3625282098@qq.com> Date: Sat, 13 Apr 2024 14:31:25 +0800 Subject: [PATCH] uhhh --- .../listener/ModelListener.java | 18 ++++++++++-------- .../geysermodelengine/model/ModelEntity.java | 14 +++++++------- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/src/main/java/re/imc/geysermodelengine/listener/ModelListener.java b/src/main/java/re/imc/geysermodelengine/listener/ModelListener.java index 3c0c9e7..ad61df5 100644 --- a/src/main/java/re/imc/geysermodelengine/listener/ModelListener.java +++ b/src/main/java/re/imc/geysermodelengine/listener/ModelListener.java @@ -14,6 +14,8 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityDamageEvent; +import org.bukkit.event.entity.EntityDeathEvent; +import org.bukkit.event.entity.EntityRemoveEvent; import org.bukkit.event.entity.ProjectileHitEvent; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.world.EntitiesLoadEvent; @@ -80,9 +82,9 @@ public class ModelListener implements Listener { } event.getEntity().removeMetadata("show_damage", GeyserModelEngine.getInstance()); - if (model.getEntity() instanceof Damageable damageable) { + if (!model.getEntity().isDead()) { event.setDamage(0); - damageable.setHealth(damageable.getMaxHealth()); + model.getEntity().setHealth(model.getEntity().getMaxHealth()); } } } @@ -92,9 +94,9 @@ public class ModelListener implements Listener { Map model = ModelEntity.ENTITIES.get(event.getEntity().getEntityId()); if (model != null) { for (Map.Entry entry : model.entrySet()) { - if (entry.getValue().getEntity() instanceof Damageable damageable) { - damageable.setMetadata("show_damage", new FixedMetadataValue(GeyserModelEngine.getInstance(), true)); - damageable.damage(0); + if (!entry.getValue().getEntity().isDead()) { + entry.getValue().getEntity().setMetadata("show_damage", new FixedMetadataValue(GeyserModelEngine.getInstance(), true)); + entry.getValue().getEntity().damage(0); } } @@ -124,12 +126,12 @@ public class ModelListener implements Listener { if (model != null) { event.setCancelled(true); - if (model.getEntity() instanceof Damageable damageable) { - damageable.setHealth(damageable.getMaxHealth()); - } + model.getEntity().setHealth(model.getEntity().getMaxHealth()); + } } + @EventHandler public void onAnimationEnd(AnimationEndEvent event) { diff --git a/src/main/java/re/imc/geysermodelengine/model/ModelEntity.java b/src/main/java/re/imc/geysermodelengine/model/ModelEntity.java index 880542a..a0ca431 100644 --- a/src/main/java/re/imc/geysermodelengine/model/ModelEntity.java +++ b/src/main/java/re/imc/geysermodelengine/model/ModelEntity.java @@ -1,19 +1,19 @@ package re.imc.geysermodelengine.model; -import com.comphenix.protocol.wrappers.WrappedGameProfile; import com.google.common.collect.Sets; import com.ticxo.modelengine.api.model.ActiveModel; import com.ticxo.modelengine.api.model.ModeledEntity; import lombok.Getter; import me.libraryaddict.disguise.DisguiseAPI; import me.libraryaddict.disguise.disguisetypes.PlayerDisguise; -import org.bukkit.entity.Bat; -import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import re.imc.geysermodelengine.GeyserModelEngine; -import java.util.*; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; +import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; @Getter @@ -25,11 +25,11 @@ public class ModelEntity { private LivingEntity entity; - private Set viewers = Sets.newConcurrentHashSet(); + private final Set viewers = Sets.newConcurrentHashSet(); - private ModeledEntity modeledEntity; + private final ModeledEntity modeledEntity; - private ActiveModel activeModel; + private final ActiveModel activeModel; private EntityTask task;