mirror of
https://github.com/xSquishyLiam/mc-GeyserModelEngine-plugin.git
synced 2025-12-20 07:19:20 +00:00
clean up
This commit is contained in:
@@ -45,16 +45,6 @@ public final class GeyserModelEngine extends JavaPlugin {
|
|||||||
@Getter
|
@Getter
|
||||||
private Cache<Player, Boolean> joinedPlayer;
|
private Cache<Player, Boolean> joinedPlayer;
|
||||||
|
|
||||||
@Getter
|
|
||||||
@Setter
|
|
||||||
private boolean spawningModelEntity = false;
|
|
||||||
|
|
||||||
|
|
||||||
@Getter
|
|
||||||
@Setter
|
|
||||||
private ModelEntity currentModel = null;
|
|
||||||
|
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
private int joinSendDelay;
|
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
|
@EventHandler
|
||||||
public void onModelEntityHurt(EntityDamageEvent event) {
|
public void onModelEntityHurt(EntityDamageEvent event) {
|
||||||
Map<ActiveModel, ModelEntity> model = ModelEntity.ENTITIES.get(event.getEntity().getEntityId());
|
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