diff --git a/.github/workflows/gradle-build.yml b/.github/workflows/gradle-build.yml index 3e40fe7be0..2117c7eee2 100644 --- a/.github/workflows/gradle-build.yml +++ b/.github/workflows/gradle-build.yml @@ -18,10 +18,10 @@ jobs: steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93 with: - java-version: '17' + java-version: '21' distribution: 'temurin' server-id: github # Value of the distributionManagement/repository/id field of the pom.xml settings-path: ${{ github.workspace }} # location for the settings.xml file diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 6b56f288f3..3d319e8c73 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -9,7 +9,7 @@ repositories { maven("https://repo.codemc.org/repository/maven-public") { name = "CodeMC" } - maven("https://papermc.io/repo/repository/maven-public/") { + maven("https://repo.papermc.io/repository/maven-public/") { name = "PaperMC" } } @@ -17,7 +17,7 @@ repositories { dependencies { //TODO Allow pulling from Versions.kt implementation("com.github.johnrengelman", "shadow", "8.1.1") - implementation("io.papermc.paperweight.userdev", "io.papermc.paperweight.userdev.gradle.plugin", "1.7.0") + implementation("io.papermc.paperweight.userdev", "io.papermc.paperweight.userdev.gradle.plugin", "1.7.1") implementation("org.ow2.asm", "asm", "9.7") implementation("org.ow2.asm", "asm-tree", "9.7") diff --git a/buildSrc/src/main/kotlin/CompilationConfig.kt b/buildSrc/src/main/kotlin/CompilationConfig.kt index 952b910918..f0d1e78294 100644 --- a/buildSrc/src/main/kotlin/CompilationConfig.kt +++ b/buildSrc/src/main/kotlin/CompilationConfig.kt @@ -22,8 +22,8 @@ fun Project.configureCompilation() { apply() configure { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 + sourceCompatibility = JavaVersion.VERSION_21 + targetCompatibility = JavaVersion.VERSION_21 } tasks.withType { diff --git a/buildSrc/src/main/kotlin/DependencyConfig.kt b/buildSrc/src/main/kotlin/DependencyConfig.kt index 58bde514ce..0778808d84 100644 --- a/buildSrc/src/main/kotlin/DependencyConfig.kt +++ b/buildSrc/src/main/kotlin/DependencyConfig.kt @@ -36,7 +36,7 @@ fun Project.configureDependencies() { maven("https://repo.codemc.org/repository/maven-public") { name = "CodeMC" } - maven("https://papermc.io/repo/repository/maven-public/") { + maven("https://repo.papermc.io/repository/maven-public/") { name = "PaperMC" } maven("https://files.minecraftforge.net/maven/") { diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt index ba9195cc7c..7483995123 100644 --- a/buildSrc/src/main/kotlin/Versions.kt +++ b/buildSrc/src/main/kotlin/Versions.kt @@ -53,13 +53,13 @@ object Versions { object Bukkit { const val minecraft = "1.20.6" - const val paperBuild = "$minecraft-R0.1-20240501.172135-12" + const val paperBuild = "$minecraft-R0.1-20240602.222958-107" const val paper = paperBuild const val paperLib = "1.0.8" const val reflectionRemapper = "0.1.1" - const val paperDevBundle = paperBuild + const val paperDevBundle = "$minecraft-R0.1-20240601.143523-105" const val runPaper = "2.3.0" - const val paperWeight = "1.7.0" + const val paperWeight = "1.7.1" } // diff --git a/platforms/bukkit/build.gradle.kts b/platforms/bukkit/build.gradle.kts index 6f75b01330..a63703c558 100644 --- a/platforms/bukkit/build.gradle.kts +++ b/platforms/bukkit/build.gradle.kts @@ -10,7 +10,7 @@ repositories { dependencies { shaded(project(":platforms:bukkit:common")) - shaded(project(":platforms:bukkit:nms:v1_20_R3", configuration = "reobf")) + shaded(project(":platforms:bukkit:nms:v1_20_R6", configuration = "reobf")) shaded("xyz.jpenilla", "reflection-remapper", Versions.Bukkit.reflectionRemapper) } diff --git a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/handles/BukkitWorldHandle.java b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/handles/BukkitWorldHandle.java index e3b92b069d..c6113bbd7a 100644 --- a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/handles/BukkitWorldHandle.java +++ b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/handles/BukkitWorldHandle.java @@ -72,7 +72,7 @@ public BukkitWorldHandle() { String entityID = id.toUpperCase(Locale.ROOT).substring(10); return new BukkitEntityType(switch(entityID) { - case "END_CRYSTAL" -> org.bukkit.entity.EntityType.ENDER_CRYSTAL; + case "END_CRYSTAL" -> org.bukkit.entity.EntityType.END_CRYSTAL; case "ENDER_CRYSTAL" -> throw new IllegalArgumentException( "Invalid entity identifier " + id); // make sure this issue can't happen the other way around. default -> org.bukkit.entity.EntityType.valueOf(entityID); diff --git a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/nms/Initializer.java b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/nms/Initializer.java index 413250d57b..1ca6f8c3f2 100644 --- a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/nms/Initializer.java +++ b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/nms/Initializer.java @@ -1,6 +1,7 @@ package com.dfsek.terra.bukkit.nms; -import org.bukkit.Bukkit; +import com.dfsek.terra.bukkit.util.VersionUtil; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -8,7 +9,7 @@ public interface Initializer { - String NMS = Bukkit.getServer().getClass().getPackage().getName().split("\\.")[3]; + String NMS = VersionUtil.getMinecraftVersionInfo().toString().replace(".", "_"); String TERRA_PACKAGE = Initializer.class.getPackageName(); static boolean init(PlatformImpl platform) { diff --git a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/util/VersionUtil.java b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/util/VersionUtil.java index 6bc06a4371..97f4b713fc 100644 --- a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/util/VersionUtil.java +++ b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/util/VersionUtil.java @@ -77,13 +77,13 @@ public boolean isSpigot() { public static final class MinecraftVersionInfo { private static final Logger logger = LoggerFactory.getLogger(MinecraftVersionInfo.class); - private static final Pattern VERSION_PATTERN = Pattern.compile("v?(\\d+)_(\\d+)_R(\\d+)"); + private static final Pattern VERSION_PATTERN = Pattern.compile("(\\d+)\\.(\\d+)\\.(\\d+)"); private final int major; private final int minor; private final int patch; private MinecraftVersionInfo() { - this(Bukkit.getServer().getClass().getPackage().getName().split("\\.")[3]); + this(Bukkit.getServer().getBukkitVersion().split("-")[0]); } private MinecraftVersionInfo(int major, int minor, int patch) { diff --git a/platforms/bukkit/nms/v1_20_R3/build.gradle.kts b/platforms/bukkit/nms/v1_20_R6/build.gradle.kts similarity index 100% rename from platforms/bukkit/nms/v1_20_R3/build.gradle.kts rename to platforms/bukkit/nms/v1_20_R6/build.gradle.kts diff --git a/platforms/bukkit/nms/v1_20_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R3/AwfulBukkitHacks.java b/platforms/bukkit/nms/v1_20_R6/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_6/AwfulBukkitHacks.java similarity index 97% rename from platforms/bukkit/nms/v1_20_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R3/AwfulBukkitHacks.java rename to platforms/bukkit/nms/v1_20_R6/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_6/AwfulBukkitHacks.java index fa2cc9907b..d052b81090 100644 --- a/platforms/bukkit/nms/v1_20_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R3/AwfulBukkitHacks.java +++ b/platforms/bukkit/nms/v1_20_R6/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_6/AwfulBukkitHacks.java @@ -1,10 +1,10 @@ -package com.dfsek.terra.bukkit.nms.v1_20_R3; +package com.dfsek.terra.bukkit.nms.v1_20_6; import com.google.common.collect.ImmutableMap; -import com.mojang.serialization.Lifecycle; import net.minecraft.core.Holder; import net.minecraft.core.Holder.Reference; import net.minecraft.core.MappedRegistry; +import net.minecraft.core.RegistrationInfo; import net.minecraft.core.WritableRegistry; import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceKey; @@ -49,7 +49,7 @@ public static void registerBiomes(ConfigRegistry configRegistry) { new ResourceLocation("terra", NMSBiomeInjector.createBiomeID(pack, key)) ); - Reference holder = biomeRegistry.register(delegateKey, platform, Lifecycle.stable()); + Reference holder = biomeRegistry.register(delegateKey, platform, RegistrationInfo.BUILT_IN); Reflection.REFERENCE.invokeBindValue(holder, platform); // IMPORTANT: bind holder. platformBiome.getContext().put(new NMSBiomeInfo(delegateKey)); diff --git a/platforms/bukkit/nms/v1_20_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R3/NMSBiomeInfo.java b/platforms/bukkit/nms/v1_20_R6/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_6/NMSBiomeInfo.java similarity index 83% rename from platforms/bukkit/nms/v1_20_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R3/NMSBiomeInfo.java rename to platforms/bukkit/nms/v1_20_R6/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_6/NMSBiomeInfo.java index f47d21c56e..a62604447f 100644 --- a/platforms/bukkit/nms/v1_20_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R3/NMSBiomeInfo.java +++ b/platforms/bukkit/nms/v1_20_R6/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_6/NMSBiomeInfo.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.bukkit.nms.v1_20_R3; +package com.dfsek.terra.bukkit.nms.v1_20_6; import net.minecraft.resources.ResourceKey; import net.minecraft.world.level.biome.Biome; diff --git a/platforms/bukkit/nms/v1_20_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R3/NMSBiomeInjector.java b/platforms/bukkit/nms/v1_20_R6/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_6/NMSBiomeInjector.java similarity index 98% rename from platforms/bukkit/nms/v1_20_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R3/NMSBiomeInjector.java rename to platforms/bukkit/nms/v1_20_R6/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_6/NMSBiomeInjector.java index e75b6fc0a6..deba15dece 100644 --- a/platforms/bukkit/nms/v1_20_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R3/NMSBiomeInjector.java +++ b/platforms/bukkit/nms/v1_20_R6/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_6/NMSBiomeInjector.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.bukkit.nms.v1_20_R3; +package com.dfsek.terra.bukkit.nms.v1_20_6; import net.minecraft.core.Holder; import net.minecraft.core.Registry; diff --git a/platforms/bukkit/nms/v1_20_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R3/NMSBiomeProvider.java b/platforms/bukkit/nms/v1_20_R6/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_6/NMSBiomeProvider.java similarity index 75% rename from platforms/bukkit/nms/v1_20_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R3/NMSBiomeProvider.java rename to platforms/bukkit/nms/v1_20_R6/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_6/NMSBiomeProvider.java index 875a77fb52..79861c7e44 100644 --- a/platforms/bukkit/nms/v1_20_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R3/NMSBiomeProvider.java +++ b/platforms/bukkit/nms/v1_20_R6/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_6/NMSBiomeProvider.java @@ -1,6 +1,6 @@ -package com.dfsek.terra.bukkit.nms.v1_20_R3; +package com.dfsek.terra.bukkit.nms.v1_20_6; -import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import net.minecraft.core.Holder; import net.minecraft.core.Registry; import net.minecraft.world.level.biome.Biome; @@ -35,8 +35,12 @@ protected Stream> collectPossibleBiomes() { } @Override - protected @NotNull Codec codec() { - return BiomeSource.CODEC; + protected @NotNull MapCodec codec() { + return MapCodec.assumeMapUnsafe(BiomeSource.CODEC); +// return MapCodec.unit(null); +// BuiltInRegistries.BIOME_SOURCE.byNameCodec().dispatchMap(this::codec, Function.identity()); +// BuiltInRegistries.BIOME_SOURCE.byNameCodec().dispatchStable(BiomeSource::codec, Function.identity()); +// return BiomeSource.CODEC; } @Override diff --git a/platforms/bukkit/nms/v1_20_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R3/NMSChunkGeneratorDelegate.java b/platforms/bukkit/nms/v1_20_R6/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_6/NMSChunkGeneratorDelegate.java similarity index 96% rename from platforms/bukkit/nms/v1_20_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R3/NMSChunkGeneratorDelegate.java rename to platforms/bukkit/nms/v1_20_R6/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_6/NMSChunkGeneratorDelegate.java index 4338dc140c..0aadfcb9e7 100644 --- a/platforms/bukkit/nms/v1_20_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R3/NMSChunkGeneratorDelegate.java +++ b/platforms/bukkit/nms/v1_20_R6/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_6/NMSChunkGeneratorDelegate.java @@ -1,6 +1,6 @@ -package com.dfsek.terra.bukkit.nms.v1_20_R3; +package com.dfsek.terra.bukkit.nms.v1_20_6; -import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import net.minecraft.core.BlockPos; import net.minecraft.server.level.WorldGenRegion; import net.minecraft.world.level.LevelAccessor; @@ -19,7 +19,7 @@ import net.minecraft.world.level.levelgen.Heightmap.Types; import net.minecraft.world.level.levelgen.RandomState; import net.minecraft.world.level.levelgen.blending.Blender; -import org.bukkit.craftbukkit.v1_20_R3.block.data.CraftBlockData; +import org.bukkit.craftbukkit.block.data.CraftBlockData; import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -54,8 +54,8 @@ public NMSChunkGeneratorDelegate(ChunkGenerator vanilla, ConfigPack pack, NMSBio } @Override - protected @NotNull Codec codec() { - return ChunkGenerator.CODEC; + protected @NotNull MapCodec codec() { + return MapCodec.assumeMapUnsafe(ChunkGenerator.CODEC); } @Override diff --git a/platforms/bukkit/nms/v1_20_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R3/NMSInitializer.java b/platforms/bukkit/nms/v1_20_R6/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_6/NMSInitializer.java similarity index 90% rename from platforms/bukkit/nms/v1_20_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R3/NMSInitializer.java rename to platforms/bukkit/nms/v1_20_R6/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_6/NMSInitializer.java index 084c5c30a0..8ac1b46c91 100644 --- a/platforms/bukkit/nms/v1_20_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R3/NMSInitializer.java +++ b/platforms/bukkit/nms/v1_20_R6/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_6/NMSInitializer.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.bukkit.nms.v1_20_R3; +package com.dfsek.terra.bukkit.nms.v1_20_6; import org.bukkit.Bukkit; diff --git a/platforms/bukkit/nms/v1_20_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R3/NMSInjectListener.java b/platforms/bukkit/nms/v1_20_R6/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_6/NMSInjectListener.java similarity index 95% rename from platforms/bukkit/nms/v1_20_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R3/NMSInjectListener.java rename to platforms/bukkit/nms/v1_20_R6/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_6/NMSInjectListener.java index a81e93a3f3..22e153139c 100644 --- a/platforms/bukkit/nms/v1_20_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R3/NMSInjectListener.java +++ b/platforms/bukkit/nms/v1_20_R6/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_6/NMSInjectListener.java @@ -1,9 +1,9 @@ -package com.dfsek.terra.bukkit.nms.v1_20_R3; +package com.dfsek.terra.bukkit.nms.v1_20_6; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.level.chunk.ChunkGenerator; import org.bukkit.World; -import org.bukkit.craftbukkit.v1_20_R3.CraftWorld; +import org.bukkit.craftbukkit.CraftWorld; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.world.WorldInitEvent; diff --git a/platforms/bukkit/nms/v1_20_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R3/NMSWorldProperties.java b/platforms/bukkit/nms/v1_20_R6/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_6/NMSWorldProperties.java similarity index 94% rename from platforms/bukkit/nms/v1_20_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R3/NMSWorldProperties.java rename to platforms/bukkit/nms/v1_20_R6/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_6/NMSWorldProperties.java index 60f6cee46c..386192103a 100644 --- a/platforms/bukkit/nms/v1_20_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R3/NMSWorldProperties.java +++ b/platforms/bukkit/nms/v1_20_R6/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_6/NMSWorldProperties.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.bukkit.nms.v1_20_R3; +package com.dfsek.terra.bukkit.nms.v1_20_6; import net.minecraft.world.level.LevelHeightAccessor; diff --git a/platforms/bukkit/nms/v1_20_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R3/Reflection.java b/platforms/bukkit/nms/v1_20_R6/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_6/Reflection.java similarity index 97% rename from platforms/bukkit/nms/v1_20_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R3/Reflection.java rename to platforms/bukkit/nms/v1_20_R6/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_6/Reflection.java index 32243da54d..77652cd6e7 100644 --- a/platforms/bukkit/nms/v1_20_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R3/Reflection.java +++ b/platforms/bukkit/nms/v1_20_R6/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_6/Reflection.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.bukkit.nms.v1_20_R3; +package com.dfsek.terra.bukkit.nms.v1_20_6; import net.minecraft.core.Holder; import net.minecraft.core.Holder.Reference; diff --git a/platforms/bukkit/nms/v1_20_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R3/RegistryFetcher.java b/platforms/bukkit/nms/v1_20_R6/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_6/RegistryFetcher.java similarity index 88% rename from platforms/bukkit/nms/v1_20_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R3/RegistryFetcher.java rename to platforms/bukkit/nms/v1_20_R6/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_6/RegistryFetcher.java index 6dbbecbc77..ca511dffaa 100644 --- a/platforms/bukkit/nms/v1_20_R3/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_R3/RegistryFetcher.java +++ b/platforms/bukkit/nms/v1_20_R6/src/main/java/com/dfsek/terra/bukkit/nms/v1_20_6/RegistryFetcher.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.bukkit.nms.v1_20_R3; +package com.dfsek.terra.bukkit.nms.v1_20_6; import net.minecraft.core.Registry; import net.minecraft.core.registries.Registries; @@ -6,7 +6,7 @@ import net.minecraft.server.dedicated.DedicatedServer; import net.minecraft.world.level.biome.Biome; import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_20_R3.CraftServer; +import org.bukkit.craftbukkit.CraftServer; public class RegistryFetcher {