This commit is contained in:
zimzaza4
2024-04-13 14:31:25 +08:00
parent 26ff044a59
commit f40e08fdab
2 changed files with 17 additions and 15 deletions

View File

@@ -14,6 +14,8 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageEvent; 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.entity.ProjectileHitEvent;
import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.world.EntitiesLoadEvent; import org.bukkit.event.world.EntitiesLoadEvent;
@@ -80,9 +82,9 @@ public class ModelListener implements Listener {
} }
event.getEntity().removeMetadata("show_damage", GeyserModelEngine.getInstance()); event.getEntity().removeMetadata("show_damage", GeyserModelEngine.getInstance());
if (model.getEntity() instanceof Damageable damageable) { if (!model.getEntity().isDead()) {
event.setDamage(0); event.setDamage(0);
damageable.setHealth(damageable.getMaxHealth()); model.getEntity().setHealth(model.getEntity().getMaxHealth());
} }
} }
} }
@@ -92,9 +94,9 @@ public class ModelListener implements Listener {
Map<ActiveModel, ModelEntity> model = ModelEntity.ENTITIES.get(event.getEntity().getEntityId()); Map<ActiveModel, ModelEntity> model = ModelEntity.ENTITIES.get(event.getEntity().getEntityId());
if (model != null) { if (model != null) {
for (Map.Entry<ActiveModel, ModelEntity> entry : model.entrySet()) { for (Map.Entry<ActiveModel, ModelEntity> entry : model.entrySet()) {
if (entry.getValue().getEntity() instanceof Damageable damageable) { if (!entry.getValue().getEntity().isDead()) {
damageable.setMetadata("show_damage", new FixedMetadataValue(GeyserModelEngine.getInstance(), true)); entry.getValue().getEntity().setMetadata("show_damage", new FixedMetadataValue(GeyserModelEngine.getInstance(), true));
damageable.damage(0); entry.getValue().getEntity().damage(0);
} }
} }
@@ -124,12 +126,12 @@ public class ModelListener implements Listener {
if (model != null) { if (model != null) {
event.setCancelled(true); event.setCancelled(true);
if (model.getEntity() instanceof Damageable damageable) { model.getEntity().setHealth(model.getEntity().getMaxHealth());
damageable.setHealth(damageable.getMaxHealth());
}
} }
} }
@EventHandler @EventHandler
public void onAnimationEnd(AnimationEndEvent event) { public void onAnimationEnd(AnimationEndEvent event) {

View File

@@ -1,19 +1,19 @@
package re.imc.geysermodelengine.model; package re.imc.geysermodelengine.model;
import com.comphenix.protocol.wrappers.WrappedGameProfile;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import com.ticxo.modelengine.api.model.ActiveModel; import com.ticxo.modelengine.api.model.ActiveModel;
import com.ticxo.modelengine.api.model.ModeledEntity; import com.ticxo.modelengine.api.model.ModeledEntity;
import lombok.Getter; import lombok.Getter;
import me.libraryaddict.disguise.DisguiseAPI; import me.libraryaddict.disguise.DisguiseAPI;
import me.libraryaddict.disguise.disguisetypes.PlayerDisguise; 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.LivingEntity;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import re.imc.geysermodelengine.GeyserModelEngine; 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; import java.util.concurrent.ConcurrentHashMap;
@Getter @Getter
@@ -25,11 +25,11 @@ public class ModelEntity {
private LivingEntity entity; private LivingEntity entity;
private Set<Player> viewers = Sets.newConcurrentHashSet(); private final Set<Player> viewers = Sets.newConcurrentHashSet();
private ModeledEntity modeledEntity; private final ModeledEntity modeledEntity;
private ActiveModel activeModel; private final ActiveModel activeModel;
private EntityTask task; private EntityTask task;