From 58be864942e6e5ba3d38c23b787be922a76c6996 Mon Sep 17 00:00:00 2001 From: Alex 'mcmonkey' Goodwin Date: Mon, 11 Jan 2021 18:02:36 -0800 Subject: [PATCH] more unnecessary-packet-intercept-reduction --- .../denizen/utilities/entity/DenizenEntityType.java | 5 +++++ .../utilities/packets/DenizenPacketHandler.java | 8 ++++++++ .../network/handlers/DenizenNetworkManagerImpl.java | 11 +++++++---- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/plugin/src/main/java/com/denizenscript/denizen/utilities/entity/DenizenEntityType.java b/plugin/src/main/java/com/denizenscript/denizen/utilities/entity/DenizenEntityType.java index f8dd6695a1..2551359fea 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/utilities/entity/DenizenEntityType.java +++ b/plugin/src/main/java/com/denizenscript/denizen/utilities/entity/DenizenEntityType.java @@ -175,4 +175,9 @@ public static DenizenEntityType getByEntity(Entity entity) { public boolean isCustom() { return customEntityType != null; } + + @Override + public String toString() { + return getName(); + } } diff --git a/plugin/src/main/java/com/denizenscript/denizen/utilities/packets/DenizenPacketHandler.java b/plugin/src/main/java/com/denizenscript/denizen/utilities/packets/DenizenPacketHandler.java index c3dcf249cd..7937467dfe 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/utilities/packets/DenizenPacketHandler.java +++ b/plugin/src/main/java/com/denizenscript/denizen/utilities/packets/DenizenPacketHandler.java @@ -90,6 +90,10 @@ public void receiveDigPacket(final Player player) { } } + public boolean shouldInterceptChatPacket() { + return !ExecuteCommand.silencedPlayers.isEmpty() || PlayerReceivesMessageScriptEvent.instance.loaded; + } + public boolean sendPacket(final Player player, final PacketOutChat chat) { if (ExecuteCommand.silencedPlayers.contains(player.getUniqueId())) { return true; @@ -136,6 +140,10 @@ public Boolean call() throws Exception { return false; } + public boolean shouldInterceptMetadata() { + return !GlowCommand.glowViewers.isEmpty(); + } + public boolean sendPacket(Player player, PacketOutEntityMetadata entityMetadata) { HashSet players = GlowCommand.glowViewers.get(entityMetadata.getEntityId()); return players != null && entityMetadata.checkForGlow() && !players.contains(player.getUniqueId()); diff --git a/v1_16/src/main/java/com/denizenscript/denizen/nms/v1_16/impl/network/handlers/DenizenNetworkManagerImpl.java b/v1_16/src/main/java/com/denizenscript/denizen/nms/v1_16/impl/network/handlers/DenizenNetworkManagerImpl.java index e3a7fd7855..c9a6a4294a 100644 --- a/v1_16/src/main/java/com/denizenscript/denizen/nms/v1_16/impl/network/handlers/DenizenNetworkManagerImpl.java +++ b/v1_16/src/main/java/com/denizenscript/denizen/nms/v1_16/impl/network/handlers/DenizenNetworkManagerImpl.java @@ -301,11 +301,11 @@ public PacketPlayOutEntityMetadata getModifiedMetadataFor(PacketPlayOutEntityMet int watcherId = watcherObject.a(); if (watcherId == 2) { // 2: Custom name metadata Optional name = Optional.of(Handler.componentToNMS(FormattedTextHelper.parse(nameToApply, ChatColor.WHITE))); - data.set(i, new DataWatcher.Item(item.a(), name)); + data.set(i, new DataWatcher.Item(watcherObject, name)); any = true; } else if (watcherId == 3) { // 3: custom name visible metadata - data.set(i, new DataWatcher.Item(item.a(), true)); + data.set(i, new DataWatcher.Item(watcherObject, true)); any = true; } } @@ -590,16 +590,19 @@ public boolean processMirrorForPacket(Packet packet) { } public boolean processPacketHandlerForPacket(Packet packet) { - if (packet instanceof PacketPlayOutChat) { + if (packet instanceof PacketPlayOutChat && packetHandler.shouldInterceptChatPacket()) { return packetHandler.sendPacket(player.getBukkitEntity(), new PacketOutChatImpl((PacketPlayOutChat) packet)); } - else if (packet instanceof PacketPlayOutEntityMetadata) { + else if (packet instanceof PacketPlayOutEntityMetadata && packetHandler.shouldInterceptMetadata()) { return packetHandler.sendPacket(player.getBukkitEntity(), new PacketOutEntityMetadataImpl((PacketPlayOutEntityMetadata) packet)); } return false; } public boolean processShowFakeForPacket(Packet packet, GenericFutureListener> genericfuturelistener) { + if (FakeBlock.blocks.isEmpty()) { + return false; + } try { if (packet instanceof PacketPlayOutMapChunk) { FakeBlock.FakeBlockMap map = FakeBlock.blocks.get(player.getUniqueID());