From dce84f285d9bf855e6215694efcc6dd47cd15355 Mon Sep 17 00:00:00 2001 From: William278 Date: Thu, 3 Jul 2025 20:17:53 +0100 Subject: [PATCH] feat: support Minecraft 1.21.7 --- .github/workflows/ci.yml | 12 ++++++------ .github/workflows/release.yml | 12 ++++++------ README.md | 3 ++- bukkit/1.21.6/gradle.properties | 3 --- bukkit/1.21.7/gradle.properties | 3 +++ bukkit/build.gradle | 8 ++++---- common/build.gradle | 4 ++-- docs/Compatibility.md | 3 ++- fabric/1.21.6/gradle.properties | 7 ------- fabric/1.21.7/gradle.properties | 7 +++++++ fabric/build.gradle | 4 ++-- fabric/mainProject | 2 +- fabric/root.gradle | 10 +++++----- .../java/net/william278/husksync/FabricHuskSync.java | 6 ++++-- .../william278/husksync/data/FabricSerializer.java | 4 ++-- gradle.properties | 2 +- 16 files changed, 47 insertions(+), 43 deletions(-) delete mode 100644 bukkit/1.21.6/gradle.properties create mode 100644 bukkit/1.21.7/gradle.properties delete mode 100644 fabric/1.21.6/gradle.properties create mode 100644 fabric/1.21.7/gradle.properties diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bc1e10bf..6af1f985 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -55,12 +55,12 @@ jobs: paper-1.21.1 paper-1.21.4 paper-1.21.5 - paper-1.21.6 + paper-1.21.7 fabric-1.20.1 fabric-1.21.1 fabric-1.21.4 fabric-1.21.5 - fabric-1.21.6 + fabric-1.21.7 distro-groups: | paper paper @@ -77,20 +77,20 @@ jobs: Paper 1.21.1 Paper 1.21.4 Paper 1.21.5 - Paper 1.21.6 + Paper 1.21.7 Fabric 1.20.1 Fabric 1.21.1 Fabric 1.21.4 Fabric 1.21.5 - Fabric 1.21.6 + Fabric 1.21.7 files: | target/HuskSync-Bukkit-${{ env.version_name }}+mc.1.20.1.jar target/HuskSync-Bukkit-${{ env.version_name }}+mc.1.21.1.jar target/HuskSync-Bukkit-${{ env.version_name }}+mc.1.21.4.jar target/HuskSync-Bukkit-${{ env.version_name }}+mc.1.21.5.jar - target/HuskSync-Bukkit-${{ env.version_name }}+mc.1.21.6.jar + target/HuskSync-Bukkit-${{ env.version_name }}+mc.1.21.7.jar target/HuskSync-Fabric-${{ env.version_name }}+mc.1.20.1.jar target/HuskSync-Fabric-${{ env.version_name }}+mc.1.21.1.jar target/HuskSync-Fabric-${{ env.version_name }}+mc.1.21.4.jar target/HuskSync-Fabric-${{ env.version_name }}+mc.1.21.5.jar - target/HuskSync-Fabric-${{ env.version_name }}+mc.1.21.6.jar \ No newline at end of file + target/HuskSync-Fabric-${{ env.version_name }}+mc.1.21.7.jar \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6c4637d6..65ca938a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -44,12 +44,12 @@ jobs: paper-1.21.1 paper-1.21.4 paper-1.21.5 - paper-1.21.6 + paper-1.21.7 fabric-1.20.1 fabric-1.21.1 fabric-1.21.4 fabric-1.21.5 - fabric-1.21.6 + fabric-1.21.7 distro-groups: | paper paper @@ -66,20 +66,20 @@ jobs: Paper 1.21.1 Paper 1.21.4 Paper 1.21.5 - Paper 1.21.6 + Paper 1.21.7 Fabric 1.20.1 Fabric 1.21.1 Fabric 1.21.4 Fabric 1.21.5 - Fabric 1.21.6 + Fabric 1.21.7 files: | target/HuskSync-Bukkit-${{ github.event.release.tag_name }}+mc.1.20.1.jar target/HuskSync-Bukkit-${{ github.event.release.tag_name }}+mc.1.21.1.jar target/HuskSync-Bukkit-${{ github.event.release.tag_name }}+mc.1.21.4.jar target/HuskSync-Bukkit-${{ github.event.release.tag_name }}+mc.1.21.5.jar - target/HuskSync-Bukkit-${{ github.event.release.tag_name }}+mc.1.21.6.jar + target/HuskSync-Bukkit-${{ github.event.release.tag_name }}+mc.1.21.7.jar target/HuskSync-Fabric-${{ github.event.release.tag_name }}+mc.1.20.1.jar target/HuskSync-Fabric-${{ github.event.release.tag_name }}+mc.1.21.1.jar target/HuskSync-Fabric-${{ github.event.release.tag_name }}+mc.1.21.4.jar target/HuskSync-Fabric-${{ github.event.release.tag_name }}+mc.1.21.5.jar - target/HuskSync-Fabric-${{ github.event.release.tag_name }}+mc.1.21.6.jar \ No newline at end of file + target/HuskSync-Fabric-${{ github.event.release.tag_name }}+mc.1.21.7.jar \ No newline at end of file diff --git a/README.md b/README.md index 320233a2..e8068a36 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,8 @@ HuskSync supports the following [compatible versions](https://william278.net/doc | Minecraft | Latest HuskSync | Java Version | Platforms | Support Status | |:---------------:|:---------------:|:------------:|:--------------|:------------------------------| -| 1.21.6 | _latest_ | 21 | Paper | ✅ **Active Release** | +| 1.21.7 | _latest_ | 21 | Paper | ✅ **Active Release** | +| 1.21.6 | 3.8.5 | 21 | Paper | 🗃️ Archived (July 2025) | | 1.21.5 | _latest_ | 21 | Paper | ✅ **January 2026** (Non-LTS) | | 1.21.4 | _latest_ | 21 | Paper, Fabric | ✅ **November 2025** (Non-LTS) | | 1.21.3 | 3.7.1 | 21 | Paper, Fabric | 🗃️ Archived (December 2024) | diff --git a/bukkit/1.21.6/gradle.properties b/bukkit/1.21.6/gradle.properties deleted file mode 100644 index 0ff60e36..00000000 --- a/bukkit/1.21.6/gradle.properties +++ /dev/null @@ -1,3 +0,0 @@ -minecraft_version_numeric=12106 -minecraft_api_version=1.21 -paper_api_version=1.21.6-R0.1-SNAPSHOT \ No newline at end of file diff --git a/bukkit/1.21.7/gradle.properties b/bukkit/1.21.7/gradle.properties new file mode 100644 index 00000000..214c00c6 --- /dev/null +++ b/bukkit/1.21.7/gradle.properties @@ -0,0 +1,3 @@ +minecraft_version_numeric=12107 +minecraft_api_version=1.21 +paper_api_version=1.21.7-R0.1-SNAPSHOT \ No newline at end of file diff --git a/bukkit/build.gradle b/bukkit/build.gradle index 44df4dd0..716c7f9a 100644 --- a/bukkit/build.gradle +++ b/bukkit/build.gradle @@ -8,9 +8,9 @@ plugins { dependencies { implementation project(path: ':common') - implementation 'net.william278.uniform:uniform-bukkit:1.3.5' - implementation 'net.william278.uniform:uniform-paper:1.3.5' - implementation 'net.william278.toilet:toilet-bukkit:1.0.14' + implementation 'net.william278.uniform:uniform-bukkit:1.3.6' + implementation 'net.william278.uniform:uniform-paper:1.3.6' + implementation 'net.william278.toilet:toilet-bukkit:1.0.15' implementation 'net.william278:mpdbdataconverter:1.0.1' implementation 'net.william278:hsldataconverter:1.0' implementation 'net.william278:mapdataapi:2.0' @@ -18,7 +18,7 @@ dependencies { implementation 'net.kyori:adventure-platform-bukkit:4.4.0' implementation 'dev.triumphteam:triumph-gui:3.1.12' implementation 'space.arim.morepaperlib:morepaperlib:0.4.4' - implementation 'de.tr7zw:item-nbt-api:2.15.1-SNAPSHOT' + implementation 'de.tr7zw:item-nbt-api:2.15.1' compileOnly "io.papermc.paper:paper-api:${paper_api_version}" compileOnly 'com.github.retrooper:packetevents-spigot:2.8.0' diff --git a/common/build.gradle b/common/build.gradle index a6dd3fe0..d1a2c7ac 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -17,9 +17,9 @@ dependencies { exclude module: 'slf4j-api' } - compileOnlyApi 'net.william278.toilet:toilet-common:1.0.14' + compileOnlyApi 'net.william278.toilet:toilet-common:1.0.15' - compileOnly 'net.william278.uniform:uniform-common:1.3.5' + compileOnly 'net.william278.uniform:uniform-common:1.3.6' compileOnly 'com.mojang:brigadier:1.1.8' compileOnly 'org.projectlombok:lombok:1.18.38' compileOnly 'org.jetbrains:annotations:26.0.2' diff --git a/docs/Compatibility.md b/docs/Compatibility.md index da2ad75e..53c262ca 100644 --- a/docs/Compatibility.md +++ b/docs/Compatibility.md @@ -2,7 +2,8 @@ HuskSync supports the following versions of Minecraft. Since v3.7, you must down | Minecraft | Latest HuskSync | Java Version | Platforms | Support Status | |:---------------:|:---------------:|:------------:|:--------------|:------------------------------| -| 1.21.6 | _latest_ | 21 | Paper | ✅ **Active Release** | +| 1.21.7 | _latest_ | 21 | Paper | ✅ **Active Release** | +| 1.21.6 | 3.8.5 | 21 | Paper | 🗃️ Archived (July 2025) | | 1.21.5 | _latest_ | 21 | Paper | ✅ **January 2026** (Non-LTS) | | 1.21.4 | _latest_ | 21 | Paper, Fabric | ✅ **November 2025** (Non-LTS) | | 1.21.3 | 3.7.1 | 21 | Paper, Fabric | 🗃️ Archived (December 2024) | diff --git a/fabric/1.21.6/gradle.properties b/fabric/1.21.6/gradle.properties deleted file mode 100644 index d7e7c4a5..00000000 --- a/fabric/1.21.6/gradle.properties +++ /dev/null @@ -1,7 +0,0 @@ -essential.defaults.loom.mappings=net.fabricmc:yarn:1.21.6+build.1:v2 - -fabric_loader_version=0.16.14 -fabric_api_version=0.127.1+1.21.6 -fabric_permissions_api_version=0.4.0 -fabric_adventure_platform_version=6.5.0-SNAPSHOT -fabric_sgui_version=1.10.0+1.21.6 \ No newline at end of file diff --git a/fabric/1.21.7/gradle.properties b/fabric/1.21.7/gradle.properties new file mode 100644 index 00000000..ca57daa1 --- /dev/null +++ b/fabric/1.21.7/gradle.properties @@ -0,0 +1,7 @@ +essential.defaults.loom.mappings=net.fabricmc:yarn:1.21.7+build.2:v2 + +fabric_loader_version=0.16.14 +fabric_api_version=0.128.1+1.21.7 +fabric_permissions_api_version=0.4.1 +fabric_adventure_platform_version=6.5.0-SNAPSHOT +fabric_sgui_version=1.10.0+1.21.6 \ No newline at end of file diff --git a/fabric/build.gradle b/fabric/build.gradle index c59a2c42..b0a9c8f8 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -14,8 +14,8 @@ dependencies { modImplementation include("net.kyori:adventure-platform-fabric:${fabric_adventure_platform_version}") modImplementation include("me.lucko:fabric-permissions-api:${fabric_permissions_api_version}") modImplementation include("eu.pb4:sgui:${fabric_sgui_version}") - modImplementation include("net.william278.uniform:uniform-fabric:1.3.5+${project.name}") - modImplementation include("net.william278.toilet:toilet-fabric:1.0.14+${project.name}") + modImplementation include("net.william278.uniform:uniform-fabric:1.3.6+${project.name}") + modImplementation include("net.william278.toilet:toilet-fabric:1.0.15+${project.name}") modImplementation "net.fabricmc.fabric-api:fabric-api:${fabric_api_version}" // Manually include config deps due to the way including api deps works diff --git a/fabric/mainProject b/fabric/mainProject index 6e83421e..915ddf30 100644 --- a/fabric/mainProject +++ b/fabric/mainProject @@ -1 +1 @@ -1.21.6 \ No newline at end of file +1.21.7 \ No newline at end of file diff --git a/fabric/root.gradle b/fabric/root.gradle index 1e8b0503..9eafd9a2 100644 --- a/fabric/root.gradle +++ b/fabric/root.gradle @@ -3,15 +3,15 @@ plugins { } preprocess { - def fabric12106 = createNode("1.21.6", 12106, "yarn") + def fabric12107 = createNode("1.21.7", 12107, "yarn") def fabric12105 = createNode("1.21.5", 12105, "yarn") def fabric12104 = createNode("1.21.4", 12104, "yarn") def fabric12101 = createNode("1.21.1", 12101, "yarn") def fabric12001 = createNode("1.20.1", 12001, "yarn") strictExtraMappings.set(true) - fabric12105.link(fabric12106, null) - fabric12104.link(fabric12106, null) - fabric12101.link(fabric12106, null) - fabric12001.link(fabric12106, null) + fabric12105.link(fabric12107, null) + fabric12104.link(fabric12107, null) + fabric12101.link(fabric12107, null) + fabric12001.link(fabric12107, null) } \ No newline at end of file diff --git a/fabric/src/main/java/net/william278/husksync/FabricHuskSync.java b/fabric/src/main/java/net/william278/husksync/FabricHuskSync.java index 1fc97588..bb475679 100644 --- a/fabric/src/main/java/net/william278/husksync/FabricHuskSync.java +++ b/fabric/src/main/java/net/william278/husksync/FabricHuskSync.java @@ -102,6 +102,7 @@ public class FabricHuskSync implements DedicatedServerModInitializer, HuskSync, private static final int VERSION1_21_4 = 4189; private static final int VERSION1_21_5 = 4323; private static final int VERSION1_21_6 = 4435; + private static final int VERSION1_21_7 = 4438; private final HashMap> serializers = Maps.newHashMap(); private final Map> playerCustomDataStore = Maps.newConcurrentMap(); @@ -389,8 +390,9 @@ public class FabricHuskSync implements DedicatedServerModInitializer, HuskSync, case "1.21.4" -> VERSION1_21_4; case "1.21.5" -> VERSION1_21_5; case "1.21.6" -> VERSION1_21_6; - //#if MC==12106 - default -> VERSION1_21_6; + case "1.21.7" -> VERSION1_21_7; + //#if MC==12107 + default -> VERSION1_21_7; //#elseif MC==12105 //$$ default -> VERSION1_21_5; //#elseif MC==12104 diff --git a/fabric/src/main/java/net/william278/husksync/data/FabricSerializer.java b/fabric/src/main/java/net/william278/husksync/data/FabricSerializer.java index e2a0db6c..539744f7 100644 --- a/fabric/src/main/java/net/william278/husksync/data/FabricSerializer.java +++ b/fabric/src/main/java/net/william278/husksync/data/FabricSerializer.java @@ -274,7 +274,7 @@ public abstract class FabricSerializer { @Nullable private NbtCompound encodeNbt(@NotNull ItemStack item, @NotNull DynamicRegistryManager reg) { try { - //#if MC>=12106 + //#if MC>=12107 return (NbtCompound) ItemStack.CODEC.encodeStart(reg.getOps(NbtOps.INSTANCE), item).getOrThrow(); //#elseif MC>=12104 //$$ return (NbtCompound) item.toNbt(reg); @@ -292,7 +292,7 @@ public abstract class FabricSerializer { @NotNull private ItemStack decodeNbt(@NotNull NbtElement item, @NotNull DynamicRegistryManager reg) { - //#if MC>=12106 + //#if MC>=12107 final @Nullable ItemStack stack = ItemStack.CODEC.decode(reg.getOps(NbtOps.INSTANCE), item).getOrThrow().getFirst(); //#elseif MC>12001 //$$ final @Nullable ItemStack stack = ItemStack.fromNbt(reg, item).orElse(null); diff --git a/gradle.properties b/gradle.properties index f007f804..9daad570 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,7 +4,7 @@ org.gradle.daemon=true javaVersion=21 # Plugin metadata -plugin_version=3.8.5 +plugin_version=3.8.6 plugin_archive=husksync plugin_description=A modern, cross-server player data synchronization system