From a11b97bcef05b36f0f3ecae1855695fd2591667b Mon Sep 17 00:00:00 2001 From: Auxilor Date: Fri, 19 May 2023 10:47:34 +0100 Subject: [PATCH] Fixed packet bug for some users --- .../ecoskills/proxy/v1_19_R1/ActionBarCompatibility.kt | 8 +++++++- .../ecoskills/proxy/v1_19_R2/ActionBarCompatibility.kt | 8 +++++++- .../ecoskills/proxy/v1_19_R3/ActionBarCompatibility.kt | 8 +++++++- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/eco-core/core-nms/v1_19_R1/src/main/kotlin/com/willfp/ecoskills/proxy/v1_19_R1/ActionBarCompatibility.kt b/eco-core/core-nms/v1_19_R1/src/main/kotlin/com/willfp/ecoskills/proxy/v1_19_R1/ActionBarCompatibility.kt index a99dbd9..39ef0f6 100644 --- a/eco-core/core-nms/v1_19_R1/src/main/kotlin/com/willfp/ecoskills/proxy/v1_19_R1/ActionBarCompatibility.kt +++ b/eco-core/core-nms/v1_19_R1/src/main/kotlin/com/willfp/ecoskills/proxy/v1_19_R1/ActionBarCompatibility.kt @@ -7,12 +7,18 @@ import net.minecraft.network.protocol.game.ClientboundSetActionBarTextPacket import net.minecraft.network.protocol.game.ClientboundSystemChatPacket class ActionBarCompatibility : ActionBarCompatibilityProxy { + private val ClientboundSystemChatPacket.isActionBar: Boolean + get() = this::class.java.declaredFields + .first { it.type == Boolean::class.java } + .apply { isAccessible = true } + .get(this) as Boolean + override fun onSend(event: PacketEvent) { val player = event.player when (val packet = event.packet.handle) { is ClientboundSetActionBarTextPacket -> player.pausePersistentActionBar() - is ClientboundSystemChatPacket -> if (packet.c()) player.pausePersistentActionBar() + is ClientboundSystemChatPacket -> if (packet.isActionBar) player.pausePersistentActionBar() } } } diff --git a/eco-core/core-nms/v1_19_R2/src/main/kotlin/com/willfp/ecoskills/proxy/v1_19_R2/ActionBarCompatibility.kt b/eco-core/core-nms/v1_19_R2/src/main/kotlin/com/willfp/ecoskills/proxy/v1_19_R2/ActionBarCompatibility.kt index 126b5f9..33d0642 100644 --- a/eco-core/core-nms/v1_19_R2/src/main/kotlin/com/willfp/ecoskills/proxy/v1_19_R2/ActionBarCompatibility.kt +++ b/eco-core/core-nms/v1_19_R2/src/main/kotlin/com/willfp/ecoskills/proxy/v1_19_R2/ActionBarCompatibility.kt @@ -7,12 +7,18 @@ import com.willfp.ecoskills.actionbar.pausePersistentActionBar import net.minecraft.network.protocol.game.ClientboundSystemChatPacket class ActionBarCompatibility : ActionBarCompatibilityProxy { + private val ClientboundSystemChatPacket.isActionBar: Boolean + get() = this::class.java.declaredFields + .first { it.type == Boolean::class.java } + .apply { isAccessible = true } + .get(this) as Boolean + override fun onSend(event: PacketEvent) { val player = event.player when (val packet = event.packet.handle) { is ClientboundSetActionBarTextPacket -> player.pausePersistentActionBar() - is ClientboundSystemChatPacket -> if (packet.c()) player.pausePersistentActionBar() + is ClientboundSystemChatPacket -> if (packet.isActionBar) player.pausePersistentActionBar() } } } diff --git a/eco-core/core-nms/v1_19_R3/src/main/kotlin/com/willfp/ecoskills/proxy/v1_19_R3/ActionBarCompatibility.kt b/eco-core/core-nms/v1_19_R3/src/main/kotlin/com/willfp/ecoskills/proxy/v1_19_R3/ActionBarCompatibility.kt index b3aa194..f92dd54 100644 --- a/eco-core/core-nms/v1_19_R3/src/main/kotlin/com/willfp/ecoskills/proxy/v1_19_R3/ActionBarCompatibility.kt +++ b/eco-core/core-nms/v1_19_R3/src/main/kotlin/com/willfp/ecoskills/proxy/v1_19_R3/ActionBarCompatibility.kt @@ -7,12 +7,18 @@ import com.willfp.ecoskills.actionbar.pausePersistentActionBar import net.minecraft.network.protocol.game.ClientboundSystemChatPacket class ActionBarCompatibility : ActionBarCompatibilityProxy { + private val ClientboundSystemChatPacket.isActionBar: Boolean + get() = this::class.java.declaredFields + .first { it.type == Boolean::class.java } + .apply { isAccessible = true } + .get(this) as Boolean + override fun onSend(event: PacketEvent) { val player = event.player when (val packet = event.packet.handle) { is ClientboundSetActionBarTextPacket -> player.pausePersistentActionBar() - is ClientboundSystemChatPacket -> if (packet.c()) player.pausePersistentActionBar() + is ClientboundSystemChatPacket -> if (packet.isActionBar) player.pausePersistentActionBar() } } }