mirror of
https://github.com/GeyserExtensionists/GeyserModelEngine.git
synced 2025-12-19 15:09:18 +00:00
clean up
This commit is contained in:
@@ -45,16 +45,6 @@ public final class GeyserModelEngine extends JavaPlugin {
|
||||
@Getter
|
||||
private Cache<Player, Boolean> joinedPlayer;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
private boolean spawningModelEntity = false;
|
||||
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
private ModelEntity currentModel = null;
|
||||
|
||||
|
||||
@Getter
|
||||
private int joinSendDelay;
|
||||
|
||||
|
||||
@@ -1,72 +0,0 @@
|
||||
package re.imc.geysermodelengine.listener;
|
||||
|
||||
import com.comphenix.protocol.PacketType;
|
||||
import com.comphenix.protocol.ProtocolLibrary;
|
||||
import com.comphenix.protocol.events.*;
|
||||
import com.comphenix.protocol.reflect.StructureModifier;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.geysermc.floodgate.api.FloodgateApi;
|
||||
import re.imc.geysermodelengine.GeyserModelEngine;
|
||||
import re.imc.geysermodelengine.model.EntityTask;
|
||||
import re.imc.geysermodelengine.model.ModelEntity;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
@Deprecated
|
||||
public class AddEntityPacketListener extends PacketAdapter {
|
||||
public AddEntityPacketListener() {
|
||||
super(GeyserModelEngine.getInstance(), ListenerPriority.HIGHEST, Set.of(PacketType.Play.Server.SPAWN_ENTITY), ListenerOptions.SYNC);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPacketSending(PacketEvent event) {
|
||||
|
||||
PacketContainer packet = event.getPacket();
|
||||
StructureModifier<Entity> modifier = packet.getEntityModifier(event);
|
||||
Entity entity = modifier.readSafely(0);
|
||||
|
||||
if (entity == null) {
|
||||
return;
|
||||
}
|
||||
boolean isBedrock = FloodgateApi.getInstance().isFloodgatePlayer(event.getPlayer().getUniqueId());
|
||||
ModelEntity model = ModelEntity.MODEL_ENTITIES.get(entity.getEntityId());
|
||||
|
||||
|
||||
if (model != null) {
|
||||
if (isBedrock) {
|
||||
if (packet.getMeta("delayed").isPresent()) {
|
||||
if (model.getTask().isLooping()) {
|
||||
|
||||
String lastAnimation = model.getTask().getLastAnimation();
|
||||
model.getTask().playBedrockAnimation(lastAnimation, Set.of(event.getPlayer()), true, 0f);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
EntityTask task = model.getTask();
|
||||
int delay = 1;
|
||||
boolean firstJoined = GeyserModelEngine.getInstance().getJoinedPlayer().getIfPresent(event.getPlayer()) != null;
|
||||
if (firstJoined) {
|
||||
delay = GeyserModelEngine.getInstance().getJoinSendDelay();
|
||||
}
|
||||
if (task == null || firstJoined) {
|
||||
Bukkit.getScheduler().runTaskLater(GeyserModelEngine.getInstance(), () -> {
|
||||
model.getTask().sendEntityData(event.getPlayer(), GeyserModelEngine.getInstance().getSendDelay());
|
||||
}, delay);
|
||||
} else {
|
||||
task.sendEntityData(event.getPlayer(), GeyserModelEngine.getInstance().getSendDelay());
|
||||
}
|
||||
|
||||
event.setCancelled(true);
|
||||
|
||||
Bukkit.getScheduler().runTaskLater(GeyserModelEngine.getInstance(), () -> {
|
||||
packet.setMeta("delayed", 1);
|
||||
ProtocolLibrary.getProtocolManager().sendServerPacket(event.getPlayer(), packet);
|
||||
}, delay + 2);
|
||||
} else {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -99,28 +99,6 @@ public class ModelListener implements Listener {
|
||||
|
||||
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
public void onModelEntitySpawn(EntitySpawnEvent event) {
|
||||
if (GeyserModelEngine.getInstance().isSpawningModelEntity() && event.getEntity() instanceof LivingEntity entity) {
|
||||
if (event.isCancelled()) {
|
||||
event.setCancelled(false);
|
||||
}
|
||||
ModelEntity model = GeyserModelEngine.getInstance().getCurrentModel();
|
||||
int id = entity.getEntityId();
|
||||
ActiveModel activeModel = model.getActiveModel();
|
||||
ModelEntity.MODEL_ENTITIES.put(id, model);
|
||||
model.applyFeatures(entity, "model." + activeModel.getBlueprint().getName());
|
||||
GeyserModelEngine.getInstance().setCurrentModel(null);
|
||||
GeyserModelEngine.getInstance().setSpawningModelEntity(false);
|
||||
|
||||
for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
|
||||
if (FloodgateApi.getInstance().isFloodgatePlayer(onlinePlayer.getUniqueId())) {
|
||||
PlayerUtils.setCustomEntity(onlinePlayer, entity.getEntityId(), "modelengine:" + model.getActiveModel().getBlueprint().getName().toLowerCase());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onModelEntityHurt(EntityDamageEvent event) {
|
||||
Map<ActiveModel, ModelEntity> model = ModelEntity.ENTITIES.get(event.getEntity().getEntityId());
|
||||
|
||||
@@ -69,30 +69,4 @@ public class ModelEntity {
|
||||
}
|
||||
|
||||
|
||||
public void applyFeatures(LivingEntity display, String name) {
|
||||
display.setGravity(false);
|
||||
display.setMaxHealth(2048);
|
||||
display.setHealth(2048);
|
||||
display.setMetadata("model_entity", new FixedMetadataValue(GeyserModelEngine.getInstance(), true));
|
||||
|
||||
//display.setInvulnerable(true);
|
||||
|
||||
display.setAI(false);
|
||||
display.setSilent(true);
|
||||
display.setPersistent(false);
|
||||
|
||||
// armorStand.setVisible(false);
|
||||
|
||||
/*
|
||||
String uuid = UUID.randomUUID().toString();
|
||||
MobDisguise disguise = new MobDisguise(DisguiseType.getType(entity.getType()));
|
||||
disguise.setDisguiseName(uuid);
|
||||
|
||||
DisguiseAPI.disguiseEntity(display, disguise);
|
||||
|
||||
*/
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user