From e231f0ad7b52e1a8cf466957336777cdfb18f8e9 Mon Sep 17 00:00:00 2001 From: alexcrea <42614139+alexcrea@users.noreply.github.com> Date: Sat, 26 Oct 2024 16:24:56 +0200 Subject: [PATCH] Add nms for 1.21.2 & 1.21.3 updated nms for 1.21R1 version up to 1.6.7 --- build.gradle.kts | 3 +- nms/v1_21R1/build.gradle.kts | 2 +- .../gui/version/v1_21R1_ExternGuiTester.kt | 2 +- nms/v1_21R2/build.gradle.kts | 43 +++++++++++++++++++ .../packet/versions/V1_21R2_PacketManager.kt | 33 ++++++++++++++ settings.gradle.kts | 2 + .../packet/PacketManagerSelector.kt | 1 + 7 files changed, 83 insertions(+), 3 deletions(-) create mode 100644 nms/v1_21R2/build.gradle.kts create mode 100644 nms/v1_21R2/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/packet/versions/V1_21R2_PacketManager.kt diff --git a/build.gradle.kts b/build.gradle.kts index dac932e..d5f908e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -15,7 +15,7 @@ plugins { } group = "xyz.alexcrea" -version = "1.6.6" +version = "1.6.7" repositories { // EcoEnchants @@ -57,6 +57,7 @@ dependencies { implementation(project(":nms:v1_20R3", configuration = "reobf")) implementation(project(":nms:v1_20R4", configuration = "reobf")) implementation(project(":nms:v1_21R1", configuration = "reobf")) + implementation(project(":nms:v1_21R2", configuration = "reobf")) // include kotlin for the offline jar implementation(kotlin("stdlib")) diff --git a/nms/v1_21R1/build.gradle.kts b/nms/v1_21R1/build.gradle.kts index 2ac9737..435d09c 100644 --- a/nms/v1_21R1/build.gradle.kts +++ b/nms/v1_21R1/build.gradle.kts @@ -11,7 +11,7 @@ dependencies { implementation(project(":nms:nms-common")) // Used for nms - paperweight.paperDevBundle("1.21-R0.1-SNAPSHOT") // 1.21.1 userdev did not release yet but still use R1 + paperweight.paperDevBundle("1.21.1-R0.1-SNAPSHOT") } repositories { diff --git a/nms/v1_21R1/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/gui/version/v1_21R1_ExternGuiTester.kt b/nms/v1_21R1/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/gui/version/v1_21R1_ExternGuiTester.kt index 9b73bc4..7caa61b 100644 --- a/nms/v1_21R1/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/gui/version/v1_21R1_ExternGuiTester.kt +++ b/nms/v1_21R1/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/gui/version/v1_21R1_ExternGuiTester.kt @@ -8,7 +8,7 @@ class v1_21R1_ExternGuiTester: ExternGuiTester { override val wesjdAnvilGuiName = "Wrapper1_21_R1" override fun getContainerClass(view: InventoryView): Class? { - if(view !is CraftInventoryView<*>) return null + if(view !is CraftInventoryView<*, *>) return null val container = view.handle return container.javaClass diff --git a/nms/v1_21R2/build.gradle.kts b/nms/v1_21R2/build.gradle.kts new file mode 100644 index 0000000..36dc7ac --- /dev/null +++ b/nms/v1_21R2/build.gradle.kts @@ -0,0 +1,43 @@ +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + +group = rootProject.group +version = rootProject.version + +plugins { + id("io.papermc.paperweight.userdev") +} + +dependencies { + implementation(project(":nms:nms-common")) + + // Used for nms + paperweight.paperDevBundle("1.21.3-R0.1-SNAPSHOT") +} + +repositories { + maven("https://repo.papermc.io/repository/maven-public/") + +} + +// minecraft 1.21 java version is 21. + +// Configure used version of kotlin and java +java { + disableAutoTargetJvm() + toolchain.languageVersion.set(JavaLanguageVersion.of(21)) +} + +// Set target version +tasks.withType().configureEach { + sourceCompatibility = "21" + targetCompatibility = "21" + + options.encoding = "UTF-8" +} + +kotlin { + compilerOptions { + apiVersion.set(org.jetbrains.kotlin.gradle.dsl.KotlinVersion.KOTLIN_2_0) + jvmTarget.set(JvmTarget.JVM_21) + } +} diff --git a/nms/v1_21R2/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/packet/versions/V1_21R2_PacketManager.kt b/nms/v1_21R2/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/packet/versions/V1_21R2_PacketManager.kt new file mode 100644 index 0000000..9d88c20 --- /dev/null +++ b/nms/v1_21R2/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/packet/versions/V1_21R2_PacketManager.kt @@ -0,0 +1,33 @@ +package xyz.alexcrea.cuanvil.dependency.packet.versions + +import net.minecraft.network.protocol.game.ClientboundPlayerAbilitiesPacket +import net.minecraft.world.entity.player.Abilities +import org.bukkit.craftbukkit.entity.CraftPlayer +import org.bukkit.entity.Player +import xyz.alexcrea.cuanvil.dependency.packet.PacketManager +import xyz.alexcrea.cuanvil.dependency.packet.PacketManagerBase + +class V1_21R2_PacketManager : PacketManagerBase(), PacketManager { + override val canSetInstantBuild: Boolean + get() = true + + override fun setInstantBuild(player: Player, instantBuild: Boolean) { + val nmsPlayer = (player as CraftPlayer).handle + val playerAbilities = nmsPlayer.abilities + val sendedAbilities: Abilities + if (playerAbilities.instabuild == instantBuild) { + sendedAbilities = playerAbilities + } else { + sendedAbilities = Abilities() + sendedAbilities.invulnerable = playerAbilities.invulnerable + sendedAbilities.flying = playerAbilities.flying + sendedAbilities.mayfly = playerAbilities.mayfly + sendedAbilities.instabuild = instantBuild + sendedAbilities.mayBuild = playerAbilities.mayBuild + sendedAbilities.flyingSpeed = playerAbilities.flyingSpeed + sendedAbilities.walkingSpeed = playerAbilities.walkingSpeed + } + val packet = ClientboundPlayerAbilitiesPacket(sendedAbilities) + nmsPlayer.connection.send(packet) + } +} diff --git a/settings.gradle.kts b/settings.gradle.kts index e661a74..6f7bfc5 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -34,3 +34,5 @@ include("nms:v1_20R4") findProject(":nms:v1_20R4")?.name = "v1_20R4" include("nms:v1_21R1") findProject(":nms:v1_21R1")?.name = "v1_21R1" +include("nms:v1_21R2") +findProject(":nms:v1_21R2")?.name = "v1_21R2" diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/packet/PacketManagerSelector.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/packet/PacketManagerSelector.kt index 8c251dc..69b5710 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/packet/PacketManagerSelector.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/packet/PacketManagerSelector.kt @@ -55,6 +55,7 @@ object PacketManagerSelector { 21 -> when (versionParts[2]) { 0, 1 -> V1_21R1_PacketManager() + 2, 3 -> V1_21R2_PacketManager() else -> null }