mirror of
https://github.com/GeyserExtensionists/GeyserModelEngine.git
synced 2025-12-19 15:09:18 +00:00
custom entity
This commit is contained in:
@@ -33,21 +33,30 @@ public class AddEntityPacketListener extends PacketAdapter {
|
||||
if (model != null) {
|
||||
if (FloodgateApi.getInstance().isFloodgatePlayer(event.getPlayer().getUniqueId())) {
|
||||
if (packet.getMeta("delayed").isPresent()) {
|
||||
System.out.println("SENT");
|
||||
return;
|
||||
}
|
||||
|
||||
EntityTask task = model.getTask();
|
||||
if (task == null) {
|
||||
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().getSkinSendDelay());
|
||||
}, 1);
|
||||
}, delay);
|
||||
} else {
|
||||
task.sendEntityData(event.getPlayer(), GeyserModelEngine.getInstance().getSkinSendDelay());
|
||||
}
|
||||
|
||||
event.setCancelled(true);
|
||||
|
||||
Bukkit.getScheduler().runTaskLater(GeyserModelEngine.getInstance(), () -> {
|
||||
packet.setMeta("delayed", 1);
|
||||
ProtocolLibrary.getProtocolManager().sendServerPacket(event.getPlayer(), packet);
|
||||
}, 2);
|
||||
}, delay + 2);
|
||||
} else {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
@@ -62,6 +62,9 @@ public class ModelListener implements Listener {
|
||||
|
||||
@EventHandler
|
||||
public void onAnimationPlay(AnimationPlayEvent event) {
|
||||
if (event.getModel().getModeledEntity() == null) {
|
||||
return;
|
||||
}
|
||||
Map<ActiveModel, ModelEntity> map = ModelEntity.ENTITIES.get(event.getModel().getModeledEntity().getBase().getEntityId());
|
||||
if (map == null) {
|
||||
return;
|
||||
|
||||
@@ -199,8 +199,7 @@ public class EntityTask {
|
||||
}
|
||||
|
||||
public void sendEntityData(Player player, int delay) {
|
||||
GeyserModelEngine.getInstance().getLogger()
|
||||
.info("SEND ENTITY");
|
||||
System.out.println("SEND CUSTOM ENTITY");
|
||||
PlayerUtils.setCustomEntity(player, model.getEntity().getEntityId(), "modelengine:" + model.getActiveModel().getBlueprint().getName());
|
||||
Bukkit.getScheduler().runTaskLaterAsynchronously(GeyserModelEngine.getInstance(), () -> {
|
||||
// PlayerUtils.sendCustomSkin(player, model.getEntity(), model.getActiveModel().getBlueprint().getName());
|
||||
|
||||
Reference in New Issue
Block a user