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.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<ActiveModel, ModelEntity> model = ModelEntity.ENTITIES.get(event.getEntity().getEntityId());
if (model != null) {
for (Map.Entry<ActiveModel, ModelEntity> 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) {

View File

@@ -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<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;