From 7238b37b9eacc6be013974288a5221fa7cfd0cf6 Mon Sep 17 00:00:00 2001 From: alexcrea <42614139+alexcrea@users.noreply.github.com> Date: Tue, 25 Mar 2025 17:54:30 +0100 Subject: [PATCH] 1.21.5 nms (#55) --- build.gradle.kts | 3 +- nms/v1_21R4/.gitignore | 1 + nms/v1_21R4/build.gradle.kts | 47 +++++++++++++++++++ .../packet/versions/V1_21R4_PacketManager.kt | 34 ++++++++++++++ settings.gradle.kts | 2 + .../packet/PacketManagerSelector.kt | 1 + 6 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 nms/v1_21R4/.gitignore create mode 100644 nms/v1_21R4/build.gradle.kts create mode 100644 nms/v1_21R4/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/packet/versions/V1_21R4_PacketManager.kt diff --git a/build.gradle.kts b/build.gradle.kts index cd131bd..ea4a622 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -16,7 +16,7 @@ plugins { } group = "xyz.alexcrea" -version = "1.9.1" +version = "1.10.0" repositories { // EcoEnchants @@ -67,6 +67,7 @@ dependencies { implementation(project(":nms:v1_21R1", configuration = "reobf")) implementation(project(":nms:v1_21R2", configuration = "reobf")) implementation(project(":nms:v1_21R3", configuration = "reobf")) + implementation(project(":nms:v1_21R4"))//, configuration = "reobf")) // TODO add again when paperweigh 1.21.5 update // include kotlin for the offline jar implementation(kotlin("stdlib")) diff --git a/nms/v1_21R4/.gitignore b/nms/v1_21R4/.gitignore new file mode 100644 index 0000000..47374f1 --- /dev/null +++ b/nms/v1_21R4/.gitignore @@ -0,0 +1 @@ +.lastDeploymentsId \ No newline at end of file diff --git a/nms/v1_21R4/build.gradle.kts b/nms/v1_21R4/build.gradle.kts new file mode 100644 index 0000000..03a57d5 --- /dev/null +++ b/nms/v1_21R4/build.gradle.kts @@ -0,0 +1,47 @@ +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + +group = rootProject.group +version = rootProject.version + +//TODO uncomment when paperDevBundle 1.21.4 release +/*plugins { + id("io.papermc.paperweight.userdev") +}*/ + +dependencies { + implementation(project(":nms:nms-common")) + + // Used for nms + compileOnly("org.spigotmc:spigot-api:1.20.5-R0.1-SNAPSHOT") //TODO remove when paperDevBundle 1.21.5 release + compileOnly("org.spigotmc:spigot:1.21.5-R0.1-SNAPSHOT") //TODO remove when paperDevBundle 1.21.5 release + //paperweight.paperDevBundle("1.21.5-R0.1-SNAPSHOT") //TODO uncomment when paperDevBundle 1.21.5 release +} + +repositories { + maven("https://repo.papermc.io/repository/maven-public/") + + mavenLocal()//TODO remove when paperDevBundle 1.21.5 release +} + +// 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_21R4/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/packet/versions/V1_21R4_PacketManager.kt b/nms/v1_21R4/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/packet/versions/V1_21R4_PacketManager.kt new file mode 100644 index 0000000..cab0852 --- /dev/null +++ b/nms/v1_21R4/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/packet/versions/V1_21R4_PacketManager.kt @@ -0,0 +1,34 @@ +package xyz.alexcrea.cuanvil.dependency.packet.versions + +import net.minecraft.network.protocol.game.PacketPlayOutAbilities +import net.minecraft.world.entity.player.PlayerAbilities +import org.bukkit.craftbukkit.v1_21_R4.entity.CraftPlayer +import org.bukkit.entity.Player +import xyz.alexcrea.cuanvil.dependency.packet.PacketManager +import xyz.alexcrea.cuanvil.dependency.packet.PacketManagerBase + +class V1_21R4_PacketManager : PacketManagerBase(), PacketManager { + override val canSetInstantBuild: Boolean + get() = true + + override fun setInstantBuild(player: Player, instantBuild: Boolean) { + val nmsPlayer = (player as CraftPlayer).handle + val playerAbilities: PlayerAbilities = nmsPlayer.gk() + val sendedAbilities: PlayerAbilities + + if (playerAbilities.d == instantBuild) { + sendedAbilities = playerAbilities + } else { + sendedAbilities = PlayerAbilities() + sendedAbilities.a = playerAbilities.a + sendedAbilities.b = playerAbilities.b + sendedAbilities.c = playerAbilities.c + sendedAbilities.d = instantBuild + sendedAbilities.e = playerAbilities.e + sendedAbilities.m = playerAbilities.m + sendedAbilities.n = playerAbilities.n + } + val packet = PacketPlayOutAbilities(sendedAbilities) + nmsPlayer.f.sendPacket(packet) + } +} diff --git a/settings.gradle.kts b/settings.gradle.kts index bd7b34a..b77c2f3 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -29,6 +29,8 @@ include("nms:v1_21R2") findProject(":nms:v1_21R2")?.name = "v1_21R2" include("nms:v1_21R3") findProject(":nms:v1_21R3")?.name = "v1_21R3" +include("nms:v1_21R4") +findProject(":nms:v1_21R4")?.name = "v1_21R4" include(":impl:LegacyEcoEnchant") findProject(":impl:LegacyEcoEnchant")?.name = "LegacyEcoEnchant" \ No newline at end of file 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 71f4875..fc14921 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/packet/PacketManagerSelector.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/packet/PacketManagerSelector.kt @@ -57,6 +57,7 @@ object PacketManagerSelector { 0, 1 -> V1_21R1_PacketManager() 2, 3 -> V1_21R2_PacketManager() 4 -> V1_21R3_PacketManager() + 5 -> V1_21R4_PacketManager() else -> null }