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 (model != null) {
|
||||||
if (FloodgateApi.getInstance().isFloodgatePlayer(event.getPlayer().getUniqueId())) {
|
if (FloodgateApi.getInstance().isFloodgatePlayer(event.getPlayer().getUniqueId())) {
|
||||||
if (packet.getMeta("delayed").isPresent()) {
|
if (packet.getMeta("delayed").isPresent()) {
|
||||||
|
System.out.println("SENT");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
EntityTask task = model.getTask();
|
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(), () -> {
|
Bukkit.getScheduler().runTaskLater(GeyserModelEngine.getInstance(), () -> {
|
||||||
model.getTask().sendEntityData(event.getPlayer(), GeyserModelEngine.getInstance().getSkinSendDelay());
|
model.getTask().sendEntityData(event.getPlayer(), GeyserModelEngine.getInstance().getSkinSendDelay());
|
||||||
}, 1);
|
}, delay);
|
||||||
} else {
|
} else {
|
||||||
task.sendEntityData(event.getPlayer(), GeyserModelEngine.getInstance().getSkinSendDelay());
|
task.sendEntityData(event.getPlayer(), GeyserModelEngine.getInstance().getSkinSendDelay());
|
||||||
}
|
}
|
||||||
|
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
|
|
||||||
Bukkit.getScheduler().runTaskLater(GeyserModelEngine.getInstance(), () -> {
|
Bukkit.getScheduler().runTaskLater(GeyserModelEngine.getInstance(), () -> {
|
||||||
packet.setMeta("delayed", 1);
|
packet.setMeta("delayed", 1);
|
||||||
ProtocolLibrary.getProtocolManager().sendServerPacket(event.getPlayer(), packet);
|
ProtocolLibrary.getProtocolManager().sendServerPacket(event.getPlayer(), packet);
|
||||||
}, 2);
|
}, delay + 2);
|
||||||
} else {
|
} else {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,6 +62,9 @@ public class ModelListener implements Listener {
|
|||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onAnimationPlay(AnimationPlayEvent event) {
|
public void onAnimationPlay(AnimationPlayEvent event) {
|
||||||
|
if (event.getModel().getModeledEntity() == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
Map<ActiveModel, ModelEntity> map = ModelEntity.ENTITIES.get(event.getModel().getModeledEntity().getBase().getEntityId());
|
Map<ActiveModel, ModelEntity> map = ModelEntity.ENTITIES.get(event.getModel().getModeledEntity().getBase().getEntityId());
|
||||||
if (map == null) {
|
if (map == null) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -199,8 +199,7 @@ public class EntityTask {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void sendEntityData(Player player, int delay) {
|
public void sendEntityData(Player player, int delay) {
|
||||||
GeyserModelEngine.getInstance().getLogger()
|
System.out.println("SEND CUSTOM ENTITY");
|
||||||
.info("SEND ENTITY");
|
|
||||||
PlayerUtils.setCustomEntity(player, model.getEntity().getEntityId(), "modelengine:" + model.getActiveModel().getBlueprint().getName());
|
PlayerUtils.setCustomEntity(player, model.getEntity().getEntityId(), "modelengine:" + model.getActiveModel().getBlueprint().getName());
|
||||||
Bukkit.getScheduler().runTaskLaterAsynchronously(GeyserModelEngine.getInstance(), () -> {
|
Bukkit.getScheduler().runTaskLaterAsynchronously(GeyserModelEngine.getInstance(), () -> {
|
||||||
// PlayerUtils.sendCustomSkin(player, model.getEntity(), model.getActiveModel().getBlueprint().getName());
|
// PlayerUtils.sendCustomSkin(player, model.getEntity(), model.getActiveModel().getBlueprint().getName());
|
||||||
|
|||||||
Reference in New Issue
Block a user