custom entity

This commit is contained in:
zimzaza4
2024-04-15 22:44:03 +08:00
parent 2a263f60d5
commit e722c3b07f
3 changed files with 16 additions and 5 deletions

View File

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

View File

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

View File

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