From 2eaaca878e7dc0e741307a9bc5291e224e427e82 Mon Sep 17 00:00:00 2001 From: Tofaa <82680183+Tofaa2@users.noreply.github.com> Date: Thu, 8 Feb 2024 14:02:18 +0400 Subject: [PATCH] fix bug + add notification system to equipment too --- .idea/workspace.xml | 15 ++++----------- .../java/me/tofaa/entitylib/meta/Metadata.java | 2 +- .../tofaa/entitylib/wrapper/WrapperEntity.java | 10 +++++++++- .../wrapper/WrapperEntityEquipment.java | 16 ++++++++++++++-- 4 files changed, 28 insertions(+), 15 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 3f14df4..57f7120 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -6,18 +6,9 @@ - - - - - - - - - - + diff --git a/api/src/main/java/me/tofaa/entitylib/meta/Metadata.java b/api/src/main/java/me/tofaa/entitylib/meta/Metadata.java index da5adbf..971e2c8 100644 --- a/api/src/main/java/me/tofaa/entitylib/meta/Metadata.java +++ b/api/src/main/java/me/tofaa/entitylib/meta/Metadata.java @@ -83,7 +83,7 @@ public class Metadata { public boolean isNotifyingChanges() { - return notifyChanges; + return notifyChanges; } @NotNull List getEntries() { 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 d1078fc..4472f04 100644 --- a/api/src/main/java/me/tofaa/entitylib/wrapper/WrapperEntity.java +++ b/api/src/main/java/me/tofaa/entitylib/wrapper/WrapperEntity.java @@ -327,7 +327,15 @@ public class WrapperEntity implements Tickable { } private static void sendPacket(UUID user, PacketWrapper wrapper) { - EntityLib.getApi().getPacketEvents().getProtocolManager().sendPacket(EntityLib.getApi().getPacketEvents().getProtocolManager().getChannel(user), wrapper); + + Object channel = EntityLib.getApi().getPacketEvents().getProtocolManager().getChannel(user); + if (channel == null) { + if (EntityLib.getApi().getSettings().isDebugMode()) { + EntityLib.getPlatform().getLogger().warning("Failed to send packet to " + user + " because the channel was null. They may be disconnected/not online."); + } + return; + } + EntityLib.getApi().getPacketEvents().getProtocolManager().sendPacket(channel, wrapper); } public boolean hasNoGravity() { diff --git a/api/src/main/java/me/tofaa/entitylib/wrapper/WrapperEntityEquipment.java b/api/src/main/java/me/tofaa/entitylib/wrapper/WrapperEntityEquipment.java index 99b9a67..9b2aa8f 100644 --- a/api/src/main/java/me/tofaa/entitylib/wrapper/WrapperEntityEquipment.java +++ b/api/src/main/java/me/tofaa/entitylib/wrapper/WrapperEntityEquipment.java @@ -19,7 +19,7 @@ public class WrapperEntityEquipment { private static final EquipmentSlot[] EQUIPMENT_SLOTS = EquipmentSlot.values(); private final WrapperLivingEntity entity; - + private boolean notifyChanges = true; // 0 = main hand, 1 = offhand, 2 = boots, 3 = leggings, 4 = chestplate, 5 = helmet private final ItemStack[] equipment = new ItemStack[6]; @@ -113,7 +113,19 @@ public class WrapperEntityEquipment { public void refresh() { - this.entity.sendPacketToViewers(createPacket()); + if (notifyChanges) { + this.entity.sendPacketToViewers(createPacket()); + } } + public boolean isNotifyingChanges() { + return notifyChanges; + } + + public void setNotifyChanges(boolean notifyChanges) { + this.notifyChanges = notifyChanges; + if (notifyChanges) { + refresh(); + } + } }