From b26e405d415fdf26c4b14e852fe57fad26a87d30 Mon Sep 17 00:00:00 2001 From: Tofaa <82680183+Tofaa2@users.noreply.github.com> Date: Fri, 23 Feb 2024 01:48:27 +0400 Subject: [PATCH] add dynamic texture changing --- .../me/tofaa/entitylib/wrapper/WrapperEntity.java | 2 +- .../me/tofaa/entitylib/wrapper/WrapperPlayer.java | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/api/src/main/java/me/tofaa/entitylib/wrapper/WrapperEntity.java b/api/src/main/java/me/tofaa/entitylib/wrapper/WrapperEntity.java index 8714fed..a844400 100644 --- a/api/src/main/java/me/tofaa/entitylib/wrapper/WrapperEntity.java +++ b/api/src/main/java/me/tofaa/entitylib/wrapper/WrapperEntity.java @@ -26,7 +26,7 @@ public class WrapperEntity implements Tickable, TrackedEntity { private boolean ticking; protected Location location; private Location preRidingLocation; - private final Set<UUID> viewers; + protected final Set<UUID> viewers; private boolean onGround; private boolean spawned; private Vector3d velocity; diff --git a/api/src/main/java/me/tofaa/entitylib/wrapper/WrapperPlayer.java b/api/src/main/java/me/tofaa/entitylib/wrapper/WrapperPlayer.java index d48e5a9..28b74f2 100644 --- a/api/src/main/java/me/tofaa/entitylib/wrapper/WrapperPlayer.java +++ b/api/src/main/java/me/tofaa/entitylib/wrapper/WrapperPlayer.java @@ -68,10 +68,19 @@ public class WrapperPlayer extends WrapperLivingEntity { public void setTextureProperties(List<TextureProperty> textureProperties) { profile.setTextureProperties(textureProperties); - despawn(); - System.out.println("Despawning"); - EntityLib.getApi().runLater(() -> spawn(getLocation()), 2L); + WrapperPlayServerDestroyEntities destroyEntities = new WrapperPlayServerDestroyEntities(getEntityId()); + WrapperPlayServerPlayerInfoRemove removePacket = new WrapperPlayServerPlayerInfoRemove(getUuid()); + WrapperPlayServerPlayerInfoUpdate updatePacket = tabListPacket(); + { + sendPacketToViewers(removePacket); + sendPacketToViewers(destroyEntities); + sendPacketToViewers(updatePacket); + for (UUID viewer : viewers) { + removeViewer(viewer); + addViewer(viewer); + } + } } public GameMode getGameMode() {