diff --git a/eco-core/core-nms/v1_20_6/build.gradle.kts b/eco-core/core-nms/v1_20_6/build.gradle.kts new file mode 100644 index 0000000..38fb2b7 --- /dev/null +++ b/eco-core/core-nms/v1_20_6/build.gradle.kts @@ -0,0 +1,14 @@ +group = "com.willfp" +version = rootProject.version + +val spigotVersion = "1.20.6-R0.1-SNAPSHOT" + +dependencies { + compileOnly("org.spigotmc:spigot:$spigotVersion") +} + +configurations.compileOnly { + resolutionStrategy { + force("org.spigotmc:spigot:$spigotVersion") + } +} \ No newline at end of file diff --git a/eco-core/core-nms/v1_20_6/src/main/kotlin/com/willfp/ecoskills/proxy/v1_20_6/ActionBarCompatibility.kt b/eco-core/core-nms/v1_20_6/src/main/kotlin/com/willfp/ecoskills/proxy/v1_20_6/ActionBarCompatibility.kt new file mode 100644 index 0000000..6b5daf1 --- /dev/null +++ b/eco-core/core-nms/v1_20_6/src/main/kotlin/com/willfp/ecoskills/proxy/v1_20_6/ActionBarCompatibility.kt @@ -0,0 +1,24 @@ +package com.willfp.ecoskills.proxy.v1_20_6 + +import com.willfp.eco.core.packet.PacketEvent +import com.willfp.ecoskills.actionbar.ActionBarCompatibilityProxy +import com.willfp.ecoskills.actionbar.pausePersistentActionBar +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.isActionBar) player.pausePersistentActionBar() + } + } +} diff --git a/settings.gradle.kts b/settings.gradle.kts index 19b9929..43cc6ea 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -22,3 +22,4 @@ include(":eco-core:core-nms:v1_19_R3") include(":eco-core:core-nms:v1_20_R1") include(":eco-core:core-nms:v1_20_R2") include(":eco-core:core-nms:v1_20_R3") +include(":eco-core:core-nms:v1_20_6")