diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index a0f8703aa..43a36f224 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -6,6 +6,12 @@ plugins { repositories { mavenCentral() gradlePluginPortal() + maven("https://maven.solo-studios.ca/releases") { + name = "Solo Studios" + } + maven("https://maven.solo-studios.ca/snapshots") { + name = "Solo Studios" + } maven("https://repo.codemc.org/repository/maven-public") { name = "CodeMC" } diff --git a/buildSrc/src/main/kotlin/DependencyConfig.kt b/buildSrc/src/main/kotlin/DependencyConfig.kt index 80dd7730d..123ef5bd0 100644 --- a/buildSrc/src/main/kotlin/DependencyConfig.kt +++ b/buildSrc/src/main/kotlin/DependencyConfig.kt @@ -30,6 +30,12 @@ fun Project.configureDependencies() { repositories { mavenCentral() gradlePluginPortal() + maven("https://maven.solo-studios.ca/releases") { + name = "Solo Studios" + } + maven("https://maven.solo-studios.ca/snapshots") { + name = "Solo Studios" + } maven("https://maven.fabricmc.net/") { name = "FabricMC" } diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt index 102a2295d..3b1e3b6cc 100644 --- a/buildSrc/src/main/kotlin/Versions.kt +++ b/buildSrc/src/main/kotlin/Versions.kt @@ -10,7 +10,7 @@ object Versions { const val cloud = "2.0.0" - const val caffeine = "3.2.0" + const val caffeine = "3.2.1" const val slf4j = "2.0.17" @@ -22,13 +22,13 @@ object Versions { const val asm = "9.8" const val snakeYml = "2.4" const val jetBrainsAnnotations = "26.0.2" - const val junit = "5.13.0" + const val junit = "5.13.1" const val nbt = "6.1" } } object Fabric { - const val fabricAPI = "0.125.3+${Mod.minecraft}" + const val fabricAPI = "0.127.0+${Mod.minecraft}" const val cloud = "2.0.0-beta.10" } // @@ -39,8 +39,9 @@ object Versions { object Mod { const val mixin = "0.15.5+mixin.0.8.7" + const val mixinExtras = "0.4.1" - const val minecraft = "1.21.5" + const val minecraft = "1.21.6" const val yarn = "$minecraft+build.1" const val fabricLoader = "0.16.14" @@ -55,18 +56,18 @@ object Versions { // } object Bukkit { - const val minecraft = "1.21.5-R0.1" - const val paperBuild = "$minecraft-20250529.121722-14" + const val minecraft = "1.21.6-R0.1" + const val paperBuild = "$minecraft-20250617.170821-8" const val paper = paperBuild const val paperLib = "1.0.8" const val reflectionRemapper = "0.1.2" - const val paperDevBundle = "$minecraft-20250529.121722-99" + const val paperDevBundle = paperBuild const val runPaper = "2.3.1" const val paperWeight = "2.0.0-beta.17" const val cloud = "2.0.0-beta.10" } - // +// // object Sponge { // const val sponge = "9.0.0-SNAPSHOT" // const val mixin = "0.8.2" diff --git a/platforms/bukkit/build.gradle.kts b/platforms/bukkit/build.gradle.kts index cfcde1cb1..26fb7b033 100644 --- a/platforms/bukkit/build.gradle.kts +++ b/platforms/bukkit/build.gradle.kts @@ -1,10 +1,14 @@ plugins { + id("io.papermc.paperweight.userdev") id("xyz.jpenilla.run-paper") version Versions.Bukkit.runPaper } dependencies { + // Required for :platforms:bukkit:runDevBundleServer task + paperweight.paperDevBundle(Versions.Bukkit.paperDevBundle) + shaded(project(":platforms:bukkit:common")) - shaded(project(":platforms:bukkit:nms:v1_21_5", configuration = "reobf")) + shaded(project(":platforms:bukkit:nms:v1_21_6")) shaded("xyz.jpenilla", "reflection-remapper", Versions.Bukkit.reflectionRemapper) } 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 9e0d5dce1..923c73df0 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 @@ -54,6 +54,10 @@ public interface Initializer { private static Initializer constructInitializer() { try { String packageVersion = NMS; + if (NMS.equals("v1_21_5")) { + packageVersion = "v1_21_6"; + } + Class initializerClass = Class.forName(TERRA_PACKAGE + "." + packageVersion + ".NMSInitializer"); try { return (Initializer) initializerClass.getConstructor().newInstance(); diff --git a/platforms/bukkit/nms/v1_21_5/build.gradle.kts b/platforms/bukkit/nms/v1_21_6/build.gradle.kts similarity index 81% rename from platforms/bukkit/nms/v1_21_5/build.gradle.kts rename to platforms/bukkit/nms/v1_21_6/build.gradle.kts index 31cad053a..b521d372a 100644 --- a/platforms/bukkit/nms/v1_21_5/build.gradle.kts +++ b/platforms/bukkit/nms/v1_21_6/build.gradle.kts @@ -6,10 +6,4 @@ dependencies { api(project(":platforms:bukkit:common")) paperweight.paperDevBundle(Versions.Bukkit.paperDevBundle) implementation("xyz.jpenilla", "reflection-remapper", Versions.Bukkit.reflectionRemapper) -} - -tasks { - assemble { - dependsOn("reobfJar") - } } \ No newline at end of file diff --git a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/AwfulBukkitHacks.java b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/AwfulBukkitHacks.java similarity index 98% rename from platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/AwfulBukkitHacks.java rename to platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/AwfulBukkitHacks.java index 433aece51..980194f92 100644 --- a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/AwfulBukkitHacks.java +++ b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/AwfulBukkitHacks.java @@ -1,6 +1,6 @@ -package com.dfsek.terra.bukkit.nms.v1_21_5; +package com.dfsek.terra.bukkit.nms.v1_21_6; -import com.dfsek.terra.bukkit.nms.v1_21_5.config.VanillaBiomeProperties; +import com.dfsek.terra.bukkit.nms.v1_21_6.config.VanillaBiomeProperties; import net.minecraft.core.Holder; import net.minecraft.core.Holder.Reference; diff --git a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/NMSAddon.java b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/NMSAddon.java similarity index 89% rename from platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/NMSAddon.java rename to platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/NMSAddon.java index b6f4104fd..7093d0afe 100644 --- a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/NMSAddon.java +++ b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/NMSAddon.java @@ -1,11 +1,11 @@ -package com.dfsek.terra.bukkit.nms.v1_21_5; +package com.dfsek.terra.bukkit.nms.v1_21_6; import com.dfsek.terra.api.event.events.config.ConfigurationLoadEvent; import com.dfsek.terra.api.event.functional.FunctionalEventHandler; import com.dfsek.terra.api.world.biome.Biome; import com.dfsek.terra.bukkit.BukkitAddon; import com.dfsek.terra.bukkit.PlatformImpl; -import com.dfsek.terra.bukkit.nms.v1_21_5.config.VanillaBiomeProperties; +import com.dfsek.terra.bukkit.nms.v1_21_6.config.VanillaBiomeProperties; public class NMSAddon extends BukkitAddon { diff --git a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/NMSBiomeInfo.java b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/NMSBiomeInfo.java similarity index 83% rename from platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/NMSBiomeInfo.java rename to platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/NMSBiomeInfo.java index 745aebbd5..5eb28c122 100644 --- a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/NMSBiomeInfo.java +++ b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/NMSBiomeInfo.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.bukkit.nms.v1_21_5; +package com.dfsek.terra.bukkit.nms.v1_21_6; import net.minecraft.resources.ResourceKey; import net.minecraft.world.level.biome.Biome; diff --git a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/NMSBiomeInjector.java b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/NMSBiomeInjector.java similarity index 90% rename from platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/NMSBiomeInjector.java rename to platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/NMSBiomeInjector.java index 077b3953b..dd2f2790b 100644 --- a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/NMSBiomeInjector.java +++ b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/NMSBiomeInjector.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.bukkit.nms.v1_21_5; +package com.dfsek.terra.bukkit.nms.v1_21_6; import net.minecraft.core.Holder; import net.minecraft.core.Registry; @@ -12,7 +12,7 @@ import java.util.Objects; import java.util.Optional; import com.dfsek.terra.api.config.ConfigPack; -import com.dfsek.terra.bukkit.nms.v1_21_5.config.VanillaBiomeProperties; +import com.dfsek.terra.bukkit.nms.v1_21_6.config.VanillaBiomeProperties; public class NMSBiomeInjector { @@ -33,9 +33,8 @@ public class NMSBiomeInjector { .waterColor(Objects.requireNonNullElse(vanillaBiomeProperties.getWaterColor(), vanilla.getWaterColor())) .waterFogColor(Objects.requireNonNullElse(vanillaBiomeProperties.getWaterFogColor(), vanilla.getWaterFogColor())) .skyColor(Objects.requireNonNullElse(vanillaBiomeProperties.getSkyColor(), vanilla.getSkyColor())) - .grassColorModifier(Objects.requireNonNullElse(vanillaBiomeProperties.getGrassColorModifier(), vanilla.getSpecialEffects().getGrassColorModifier())); -// .grassColorOverride(Objects.requireNonNullElse(vanillaBiomeProperties.getGrassColor(), vanilla.getSpecialEffects().getGrassColorOverride().orElseGet(() -> Reflection.BIOME.invokeGrassColorFromTexture(vanilla)))) -// .foliageColorOverride(Objects.requireNonNullElse(vanillaBiomeProperties.getFoliageColor(), vanilla.getFoliageColor())); + .grassColorModifier(Objects.requireNonNullElse(vanillaBiomeProperties.getGrassColorModifier(), vanilla.getSpecialEffects().getGrassColorModifier())) + .backgroundMusicVolume(Objects.requireNonNullElse(vanillaBiomeProperties.getMusicVolume(), vanilla.getBackgroundMusicVolume())); if(vanillaBiomeProperties.getGrassColor() == null) { vanilla.getSpecialEffects().getGrassColorOverride().ifPresent(effects::grassColorOverride); diff --git a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/NMSBiomeProvider.java b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/NMSBiomeProvider.java similarity index 97% rename from platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/NMSBiomeProvider.java rename to platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/NMSBiomeProvider.java index 816655acc..f9aaaf73d 100644 --- a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/NMSBiomeProvider.java +++ b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/NMSBiomeProvider.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.bukkit.nms.v1_21_5; +package com.dfsek.terra.bukkit.nms.v1_21_6; import com.mojang.serialization.MapCodec; import net.minecraft.core.Holder; diff --git a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/NMSChunkGeneratorDelegate.java b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/NMSChunkGeneratorDelegate.java similarity index 99% rename from platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/NMSChunkGeneratorDelegate.java rename to platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/NMSChunkGeneratorDelegate.java index ba60ac296..6779e31eb 100644 --- a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/NMSChunkGeneratorDelegate.java +++ b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/NMSChunkGeneratorDelegate.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.bukkit.nms.v1_21_5; +package com.dfsek.terra.bukkit.nms.v1_21_6; import com.mojang.serialization.MapCodec; import net.minecraft.core.BlockPos; diff --git a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/NMSInitializer.java b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/NMSInitializer.java similarity index 92% rename from platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/NMSInitializer.java rename to platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/NMSInitializer.java index 6a6890933..cdf8a0902 100644 --- a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/NMSInitializer.java +++ b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/NMSInitializer.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.bukkit.nms.v1_21_5; +package com.dfsek.terra.bukkit.nms.v1_21_6; import com.dfsek.terra.bukkit.BukkitAddon; diff --git a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/NMSInjectListener.java b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/NMSInjectListener.java similarity index 98% rename from platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/NMSInjectListener.java rename to platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/NMSInjectListener.java index dc496f92d..de651582e 100644 --- a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/NMSInjectListener.java +++ b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/NMSInjectListener.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.bukkit.nms.v1_21_5; +package com.dfsek.terra.bukkit.nms.v1_21_6; import net.minecraft.server.level.ChunkMap; import net.minecraft.server.level.ServerLevel; diff --git a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/NMSWorldProperties.java b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/NMSWorldProperties.java similarity index 94% rename from platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/NMSWorldProperties.java rename to platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/NMSWorldProperties.java index 5eba63e95..f60ace995 100644 --- a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/NMSWorldProperties.java +++ b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/NMSWorldProperties.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.bukkit.nms.v1_21_5; +package com.dfsek.terra.bukkit.nms.v1_21_6; import net.minecraft.world.level.LevelHeightAccessor; diff --git a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/Reflection.java b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/Reflection.java similarity index 99% rename from platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/Reflection.java rename to platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/Reflection.java index cbc92e436..e7a93da04 100644 --- a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/Reflection.java +++ b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/Reflection.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.bukkit.nms.v1_21_5; +package com.dfsek.terra.bukkit.nms.v1_21_6; import net.minecraft.core.Holder; import net.minecraft.core.Holder.Reference; diff --git a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/RegistryFetcher.java b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/RegistryFetcher.java similarity index 94% rename from platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/RegistryFetcher.java rename to platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/RegistryFetcher.java index d0bcb5704..6b231a458 100644 --- a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/RegistryFetcher.java +++ b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/RegistryFetcher.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.bukkit.nms.v1_21_5; +package com.dfsek.terra.bukkit.nms.v1_21_6; import net.minecraft.core.Registry; import net.minecraft.core.registries.Registries; diff --git a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/config/BiomeAdditionsSoundTemplate.java b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/BiomeAdditionsSoundTemplate.java similarity index 94% rename from platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/config/BiomeAdditionsSoundTemplate.java rename to platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/BiomeAdditionsSoundTemplate.java index 3637b8a3c..e328bf9b0 100644 --- a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/config/BiomeAdditionsSoundTemplate.java +++ b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/BiomeAdditionsSoundTemplate.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.bukkit.nms.v1_21_5.config; +package com.dfsek.terra.bukkit.nms.v1_21_6.config; import com.dfsek.tectonic.api.config.template.annotations.Default; import com.dfsek.tectonic.api.config.template.annotations.Value; diff --git a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/config/BiomeMoodSoundTemplate.java b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/BiomeMoodSoundTemplate.java similarity index 95% rename from platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/config/BiomeMoodSoundTemplate.java rename to platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/BiomeMoodSoundTemplate.java index 8120ce38d..5b872b9f1 100644 --- a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/config/BiomeMoodSoundTemplate.java +++ b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/BiomeMoodSoundTemplate.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.bukkit.nms.v1_21_5.config; +package com.dfsek.terra.bukkit.nms.v1_21_6.config; import com.dfsek.tectonic.api.config.template.annotations.Default; import com.dfsek.tectonic.api.config.template.annotations.Value; diff --git a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/config/BiomeParticleConfigTemplate.java b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/BiomeParticleConfigTemplate.java similarity index 96% rename from platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/config/BiomeParticleConfigTemplate.java rename to platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/BiomeParticleConfigTemplate.java index 3f2e2322c..ab8facd81 100644 --- a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/config/BiomeParticleConfigTemplate.java +++ b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/BiomeParticleConfigTemplate.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.bukkit.nms.v1_21_5.config; +package com.dfsek.terra.bukkit.nms.v1_21_6.config; import com.dfsek.tectonic.api.config.template.annotations.Default; import com.dfsek.tectonic.api.config.template.annotations.Value; diff --git a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/config/EntityTypeTemplate.java b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/EntityTypeTemplate.java similarity index 92% rename from platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/config/EntityTypeTemplate.java rename to platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/EntityTypeTemplate.java index d1139bc3b..8f6b3d2d4 100644 --- a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/config/EntityTypeTemplate.java +++ b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/EntityTypeTemplate.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.bukkit.nms.v1_21_5.config; +package com.dfsek.terra.bukkit.nms.v1_21_6.config; import com.dfsek.tectonic.api.config.template.annotations.Default; import com.dfsek.tectonic.api.config.template.annotations.Value; diff --git a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/config/MusicSoundTemplate.java b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/MusicSoundTemplate.java similarity index 95% rename from platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/config/MusicSoundTemplate.java rename to platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/MusicSoundTemplate.java index efa055bf5..e55b47783 100644 --- a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/config/MusicSoundTemplate.java +++ b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/MusicSoundTemplate.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.bukkit.nms.v1_21_5.config; +package com.dfsek.terra.bukkit.nms.v1_21_6.config; import com.dfsek.tectonic.api.config.template.annotations.Default; import com.dfsek.tectonic.api.config.template.annotations.Value; diff --git a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/config/SoundEventTemplate.java b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/SoundEventTemplate.java similarity index 94% rename from platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/config/SoundEventTemplate.java rename to platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/SoundEventTemplate.java index a20113bf3..9598d5913 100644 --- a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/config/SoundEventTemplate.java +++ b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/SoundEventTemplate.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.bukkit.nms.v1_21_5.config; +package com.dfsek.terra.bukkit.nms.v1_21_6.config; import com.dfsek.tectonic.api.config.template.annotations.Default; import com.dfsek.tectonic.api.config.template.annotations.Value; diff --git a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/config/SpawnCostConfig.java b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/SpawnCostConfig.java similarity index 94% rename from platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/config/SpawnCostConfig.java rename to platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/SpawnCostConfig.java index 17244f8b4..0f98b1529 100644 --- a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/config/SpawnCostConfig.java +++ b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/SpawnCostConfig.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.bukkit.nms.v1_21_5.config; +package com.dfsek.terra.bukkit.nms.v1_21_6.config; import com.dfsek.tectonic.api.config.template.annotations.Default; import com.dfsek.tectonic.api.config.template.annotations.Value; diff --git a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/config/SpawnEntryConfig.java b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/SpawnEntryConfig.java similarity index 95% rename from platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/config/SpawnEntryConfig.java rename to platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/SpawnEntryConfig.java index 382c462d8..a78b809d2 100644 --- a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/config/SpawnEntryConfig.java +++ b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/SpawnEntryConfig.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.bukkit.nms.v1_21_5.config; +package com.dfsek.terra.bukkit.nms.v1_21_6.config; import com.dfsek.tectonic.api.config.template.annotations.Default; import com.dfsek.tectonic.api.config.template.annotations.Value; diff --git a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/config/SpawnSettingsTemplate.java b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/SpawnSettingsTemplate.java similarity index 96% rename from platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/config/SpawnSettingsTemplate.java rename to platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/SpawnSettingsTemplate.java index f1087a1ca..850f80075 100644 --- a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/config/SpawnSettingsTemplate.java +++ b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/SpawnSettingsTemplate.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.bukkit.nms.v1_21_5.config; +package com.dfsek.terra.bukkit.nms.v1_21_6.config; import com.dfsek.tectonic.api.config.template.annotations.Default; import com.dfsek.tectonic.api.config.template.annotations.Value; diff --git a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/config/SpawnTypeConfig.java b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/SpawnTypeConfig.java similarity index 93% rename from platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/config/SpawnTypeConfig.java rename to platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/SpawnTypeConfig.java index 7c8aef664..ce865d1d6 100644 --- a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/config/SpawnTypeConfig.java +++ b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/SpawnTypeConfig.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.bukkit.nms.v1_21_5.config; +package com.dfsek.terra.bukkit.nms.v1_21_6.config; import com.dfsek.tectonic.api.config.template.annotations.Default; import com.dfsek.tectonic.api.config.template.annotations.Value; diff --git a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/config/VanillaBiomeProperties.java b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/VanillaBiomeProperties.java similarity index 91% rename from platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/config/VanillaBiomeProperties.java rename to platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/VanillaBiomeProperties.java index 0a8e33e0b..8eec35bf1 100644 --- a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/config/VanillaBiomeProperties.java +++ b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/VanillaBiomeProperties.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.bukkit.nms.v1_21_5.config; +package com.dfsek.terra.bukkit.nms.v1_21_6.config; import com.dfsek.tectonic.api.config.template.ConfigTemplate; import com.dfsek.tectonic.api.config.template.annotations.Default; @@ -38,6 +38,10 @@ public class VanillaBiomeProperties implements ConfigTemplate, Properties { @Default private Integer foliageColor = null; + @Value("colors.dry-foliage") + @Default + private Integer dryFoliageColor = null; + @Value("colors.sky") @Default private Integer skyColor = null; @@ -82,6 +86,10 @@ public class VanillaBiomeProperties implements ConfigTemplate, Properties { @Default private Music music = null; + @Value("sound.music-volume") + @Default + private Float musicVolume = null; + @Value("spawning") @Default private MobSpawnSettings spawnSettings = null; @@ -98,6 +106,10 @@ public class VanillaBiomeProperties implements ConfigTemplate, Properties { return foliageColor; } + public Integer getDryFoliageColor() { + return dryFoliageColor; + } + public Integer getGrassColor() { return grassColor; } @@ -154,6 +166,10 @@ public class VanillaBiomeProperties implements ConfigTemplate, Properties { return music; } + public Float getMusicVolume() { + return musicVolume; + } + public MobSpawnSettings getSpawnSettings() { return spawnSettings; } diff --git a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/config/VillagerTypeTemplate.java b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/VillagerTypeTemplate.java similarity index 92% rename from platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/config/VillagerTypeTemplate.java rename to platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/VillagerTypeTemplate.java index eb84775d0..e38aebb5c 100644 --- a/platforms/bukkit/nms/v1_21_5/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_5/config/VillagerTypeTemplate.java +++ b/platforms/bukkit/nms/v1_21_6/src/main/java/com/dfsek/terra/bukkit/nms/v1_21_6/config/VillagerTypeTemplate.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.bukkit.nms.v1_21_5.config; +package com.dfsek.terra.bukkit.nms.v1_21_6.config; import com.dfsek.tectonic.api.config.template.annotations.Default; import com.dfsek.tectonic.api.config.template.annotations.Value; diff --git a/platforms/fabric/build.gradle.kts b/platforms/fabric/build.gradle.kts index ce627df4f..7e301083a 100644 --- a/platforms/fabric/build.gradle.kts +++ b/platforms/fabric/build.gradle.kts @@ -26,7 +26,9 @@ dependencies { modImplementation("net.fabricmc:fabric-loader:${Versions.Mod.fabricLoader}") - modImplementation("org.incendo", "cloud-fabric", Versions.Fabric.cloud) + modImplementation("org.incendo", "cloud-fabric", Versions.Fabric.cloud) { + exclude("me.lucko", "fabric-permissions-api") + } include("org.incendo", "cloud-fabric", Versions.Fabric.cloud) modRuntimeOnly("net.fabricmc.fabric-api", "fabric-api", Versions.Fabric.fabricAPI) diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/VanillaBiomeProperties.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/VanillaBiomeProperties.java index db0d1139a..154d72867 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/VanillaBiomeProperties.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/VanillaBiomeProperties.java @@ -38,6 +38,10 @@ public class VanillaBiomeProperties implements ConfigTemplate, Properties { @Default private Integer foliageColor = null; + @Value("colors.dry-foliage") + @Default + private Integer dryFoliageColor = null; + @Value("colors.sky") @Default private Integer skyColor = null; @@ -82,6 +86,10 @@ public class VanillaBiomeProperties implements ConfigTemplate, Properties { @Default private MusicSound music = null; + @Value("sound.music-volume") + @Default + private Float musicVolume = null; + @Value("spawning") @Default private SpawnSettings spawnSettings = null; @@ -111,6 +119,10 @@ public class VanillaBiomeProperties implements ConfigTemplate, Properties { return foliageColor; } + public Integer getDryFoliageColor() { + return dryFoliageColor; + } + public Integer getSkyColor() { return skyColor; } @@ -155,6 +167,10 @@ public class VanillaBiomeProperties implements ConfigTemplate, Properties { return music; } + public Float getMusicVolume() { + return musicVolume; + } + public SpawnSettings getSpawnSettings() { return spawnSettings; } diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/fix/BeeMoveGoalsUnsynchronizedRandomAccessFix.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/fix/BeeMoveGoalsUnsynchronizedRandomAccessFix.java deleted file mode 100644 index 188e5b22c..000000000 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/fix/BeeMoveGoalsUnsynchronizedRandomAccessFix.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.dfsek.terra.mod.mixin.fix; - -import net.minecraft.entity.passive.BeeEntity.MoveToFlowerGoal; -import net.minecraft.entity.passive.BeeEntity.MoveToHiveGoal; -import net.minecraft.util.math.random.CheckedRandom; -import net.minecraft.util.math.random.Random; -import net.minecraft.world.World; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Redirect; - -import com.dfsek.terra.mod.CommonPlatform; - - -/** - * Bees spawning uses world.random without synchronization. This causes issues when spawning bees during world generation. - */ -@Mixin({ - MoveToHiveGoal.class, - MoveToFlowerGoal.class -}) -public class BeeMoveGoalsUnsynchronizedRandomAccessFix { - @Redirect(method = "", - at = @At(value = "FIELD", target = "Lnet/minecraft/world/World;random:Lnet/minecraft/util/math/random/Random;")) - public Random redirectRandomAccess(World instance) { - return new CheckedRandom(CommonPlatform.get().getServer().getTicks()); // replace with new random seeded by tick time. - } -} diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/BiomeUtil.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/BiomeUtil.java index a5b406bf7..b3ee4c774 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/BiomeUtil.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/BiomeUtil.java @@ -35,9 +35,25 @@ public class BiomeUtil { .skyColor(Objects.requireNonNullElse(vanillaBiomeProperties.getSkyColor(), vanilla.getSkyColor())) .grassColorModifier( Objects.requireNonNullElse(vanillaBiomeProperties.getGrassColorModifier(), vanilla.getEffects().getGrassColorModifier())) - .grassColor(Objects.requireNonNullElse(vanillaBiomeProperties.getGrassColor(), - vanilla.getEffects().getGrassColor().orElseGet(() -> ((BiomeInvoker) ((Object) vanilla)).invokeGetDefaultGrassColor()))) - .foliageColor(Objects.requireNonNullElse(vanillaBiomeProperties.getFoliageColor(), vanilla.getFoliageColor())); + .musicVolume(Objects.requireNonNullElse(vanillaBiomeProperties.getMusicVolume(), vanilla.getMusicVolume())); + + if(vanillaBiomeProperties.getGrassColor() == null) { + vanilla.getEffects().getGrassColor().ifPresent(effects::grassColor); + } else { + effects.grassColor(vanillaBiomeProperties.getGrassColor()); + } + + if(vanillaBiomeProperties.getFoliageColor() == null) { + vanilla.getEffects().getFoliageColor().ifPresent(effects::foliageColor); + } else { + effects.foliageColor(vanillaBiomeProperties.getFoliageColor()); + } + + if(vanillaBiomeProperties.getDryFoliageColor() == null) { + vanilla.getEffects().getDryFoliageColor().ifPresent(effects::dryFoliageColor); + } else { + effects.dryFoliageColor(vanillaBiomeProperties.getDryFoliageColor()); + } if(vanillaBiomeProperties.getParticleConfig() == null) { vanilla.getEffects().getParticleConfig().ifPresent(effects::particleConfig); diff --git a/platforms/mixin-common/src/main/resources/terra.common.mixins.json b/platforms/mixin-common/src/main/resources/terra.common.mixins.json index 6cfe1161c..7ea2642ac 100644 --- a/platforms/mixin-common/src/main/resources/terra.common.mixins.json +++ b/platforms/mixin-common/src/main/resources/terra.common.mixins.json @@ -9,7 +9,6 @@ "access.StateAccessor", "access.StructureAccessorAccessor", "access.VillagerTypeAccessor", - "fix.BeeMoveGoalsUnsynchronizedRandomAccessFix", "fix.NetherFossilOptimization", "implementations.compat.GenerationSettingsFloraFeaturesMixin", "implementations.terra.BiomeMixin", diff --git a/platforms/mixin-lifecycle/build.gradle.kts b/platforms/mixin-lifecycle/build.gradle.kts index 35461fc0a..f93b86cbe 100644 --- a/platforms/mixin-lifecycle/build.gradle.kts +++ b/platforms/mixin-lifecycle/build.gradle.kts @@ -7,6 +7,7 @@ dependencies { shadedApi(project(":common:implementation:base")) compileOnly("net.fabricmc:sponge-mixin:${Versions.Mod.mixin}") + compileOnly("io.github.llamalad7:mixinextras-common:${Versions.Mod.mixinExtras}") annotationProcessor("net.fabricmc:sponge-mixin:${Versions.Mod.mixin}") annotationProcessor("dev.architectury:architectury-loom:${Versions.Mod.architecuryLoom}") @@ -18,6 +19,7 @@ dependencies { modImplementation("org.incendo", "cloud-fabric", Versions.Fabric.cloud) { exclude("net.fabricmc") exclude("net.fabricmc.fabric-api") + exclude("me.lucko", "fabric-permissions-api") } } diff --git a/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/LifecyclePlatform.java b/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/LifecyclePlatform.java index 0a658700f..d696ce180 100644 --- a/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/LifecyclePlatform.java +++ b/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/LifecyclePlatform.java @@ -107,7 +107,7 @@ public abstract class LifecyclePlatform extends ModPlatform { super.platformAddon().forEach(addons::add); - String mcVersion = MinecraftVersion.CURRENT.getName(); + String mcVersion = MinecraftVersion.CURRENT.name(); try { addons.add(new EphemeralAddon(Versions.parseVersion(mcVersion), "minecraft")); } catch(ParseException e) { diff --git a/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/mixin/lifecycle/CreateWorldScreenMixin.java b/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/mixin/lifecycle/CreateWorldScreenMixin.java deleted file mode 100644 index 61f385939..000000000 --- a/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/mixin/lifecycle/CreateWorldScreenMixin.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.dfsek.terra.lifecycle.mixin.lifecycle; - - -import com.dfsek.terra.api.Platform; - -import com.dfsek.terra.mod.CommonPlatform; - -import com.dfsek.terra.mod.ModPlatform; - -import net.minecraft.client.gui.screen.world.CreateWorldScreen; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -import static com.dfsek.terra.lifecycle.util.LifecycleUtil.initialized; - - -@Mixin(CreateWorldScreen.class) -public class CreateWorldScreenMixin { - @Inject(method = "onCloseScreen()V", at = @At("HEAD")) - public void onClose(CallbackInfo ci) { - ModPlatform platform = CommonPlatform.get(); - platform.getRawConfigRegistry().clear(); - initialized = false; - } -} diff --git a/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/mixin/lifecycle/MinecraftServerMixin.java b/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/mixin/lifecycle/MinecraftServerMixin.java index 2526079ed..e59eacd2f 100644 --- a/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/mixin/lifecycle/MinecraftServerMixin.java +++ b/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/mixin/lifecycle/MinecraftServerMixin.java @@ -34,11 +34,4 @@ public class MinecraftServerMixin { WorldGenerationProgressListenerFactory worldGenerationProgressListenerFactory, CallbackInfo ci) { LifecyclePlatform.setServer((MinecraftServer) (Object) this); } - - @Inject(method = "shutdown()V", at = @At("RETURN")) - private void injectShutdown(CallbackInfo ci) { - ModPlatform platform = CommonPlatform.get(); - platform.getRawConfigRegistry().clear(); - initialized = false; - } } diff --git a/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/mixin/lifecycle/RegistryLoaderMixin.java b/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/mixin/lifecycle/RegistryLoaderMixin.java index c04e0fad7..10b840aae 100644 --- a/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/mixin/lifecycle/RegistryLoaderMixin.java +++ b/platforms/mixin-lifecycle/src/main/java/com/dfsek/terra/lifecycle/mixin/lifecycle/RegistryLoaderMixin.java @@ -1,5 +1,8 @@ package com.dfsek.terra.lifecycle.mixin.lifecycle; +import com.dfsek.terra.mod.CommonPlatform; +import com.dfsek.terra.mod.ModPlatform; + import net.minecraft.enchantment.Enchantment; import net.minecraft.registry.MutableRegistry; import net.minecraft.registry.Registry; @@ -7,6 +10,7 @@ import net.minecraft.registry.RegistryKey; import net.minecraft.registry.RegistryKeys; import net.minecraft.registry.RegistryLoader; import net.minecraft.registry.RegistryLoader.Loader; +import net.minecraft.registry.RegistryWrapper; import net.minecraft.world.biome.Biome; import net.minecraft.world.biome.source.MultiNoiseBiomeSourceParameterList; import net.minecraft.world.dimension.DimensionType; @@ -18,10 +22,27 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Coerce; +import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Redirect; +import com.llamalad7.mixinextras.sugar.Local; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Unique; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Coerce; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +import net.minecraft.registry.DynamicRegistryManager; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.registry.RegistryLoader; +import net.minecraft.registry.RegistryWrapper; +import net.minecraft.resource.ResourceManager; + import java.util.List; import java.util.Optional; +import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.Consumer; import com.dfsek.terra.lifecycle.LifecyclePlatform; @@ -38,31 +59,39 @@ public class RegistryLoaderMixin { @Final private static Logger LOGGER; - @Redirect( + @Unique + private static final AtomicBoolean LOADING_DYNAMIC_REGISTRIES = new AtomicBoolean(false); + + @Inject(method = "loadFromResource(Lnet/minecraft/resource/ResourceManager;Ljava/util/List;Ljava/util/List;)Lnet/minecraft/registry/DynamicRegistryManager$Immutable;", at = @At("HEAD")) + private static void loadFromResources(ResourceManager resourceManager, List> registries, List> entries, CallbackInfoReturnable cir) { + LOADING_DYNAMIC_REGISTRIES.set(entries.stream().anyMatch(entry -> entry.key() == RegistryKeys.BIOME)); + } + + @Inject( method = "load(Lnet/minecraft/registry/RegistryLoader$RegistryLoadable;Ljava/util/List;Ljava/util/List;)Lnet/minecraft/registry/DynamicRegistryManager$Immutable;", at = @At( value = "INVOKE", target = "Ljava/util/List;forEach(Ljava/util/function/Consumer;)V", - ordinal = 1 // we want right after the first forEach - ) + ordinal = 1 + ) ) - private static void grabManager(List> instance, Consumer> consumer) { - if(!initialized) { - MutableRegistry biomes = extractRegistry(instance, RegistryKeys.BIOME).orElseThrow(); - MutableRegistry dimensionTypes = extractRegistry(instance, RegistryKeys.DIMENSION_TYPE).orElseThrow(); - MutableRegistry worldPresets = extractRegistry(instance, RegistryKeys.WORLD_PRESET).orElseThrow(); - MutableRegistry chunkGeneratorSettings = extractRegistry(instance, + private static void beforeFreeze(@Coerce Object loadable, List> wrappers, List> entries, CallbackInfoReturnable cir, @Local(ordinal = 2) List> registriesList) { + if (LOADING_DYNAMIC_REGISTRIES.getAndSet(false)) { + ModPlatform platform = CommonPlatform.get(); + platform.getRawConfigRegistry().clear(); + MutableRegistry biomes = extractRegistry(registriesList, RegistryKeys.BIOME).orElseThrow(); + MutableRegistry dimensionTypes = extractRegistry(registriesList, RegistryKeys.DIMENSION_TYPE).orElseThrow(); + MutableRegistry worldPresets = extractRegistry(registriesList, RegistryKeys.WORLD_PRESET).orElseThrow(); + MutableRegistry chunkGeneratorSettings = extractRegistry(registriesList, RegistryKeys.CHUNK_GENERATOR_SETTINGS).orElseThrow(); - MutableRegistry multiNoiseBiomeSourceParameterLists = extractRegistry(instance, + MutableRegistry multiNoiseBiomeSourceParameterLists = extractRegistry(registriesList, RegistryKeys.MULTI_NOISE_BIOME_SOURCE_PARAMETER_LIST).orElseThrow(); - MutableRegistry enchantments = extractRegistry(instance, RegistryKeys.ENCHANTMENT).orElseThrow(); + MutableRegistry enchantments = extractRegistry(registriesList, RegistryKeys.ENCHANTMENT).orElseThrow(); LifecyclePlatform.setRegistries(biomes, dimensionTypes, chunkGeneratorSettings, multiNoiseBiomeSourceParameterLists, enchantments); LifecycleUtil.initialize(biomes, worldPresets); - initialized = true; } - instance.forEach(consumer); } @Unique diff --git a/platforms/mixin-lifecycle/src/main/resources/terra.lifecycle.mixins.json b/platforms/mixin-lifecycle/src/main/resources/terra.lifecycle.mixins.json index 0646899cf..26e9f9006 100644 --- a/platforms/mixin-lifecycle/src/main/resources/terra.lifecycle.mixins.json +++ b/platforms/mixin-lifecycle/src/main/resources/terra.lifecycle.mixins.json @@ -12,9 +12,6 @@ "lifecycle.RegistryLoaderMixin", "lifecycle.SaveLoadingMixin" ], - "client": [ - "lifecycle.CreateWorldScreenMixin" - ], "server": [ ], "injectors": { diff --git a/settings.gradle.kts b/settings.gradle.kts index 86bb41bfb..213ede72c 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -26,6 +26,12 @@ include(":platforms:minestom:example") pluginManagement { repositories { gradlePluginPortal() + maven("https://maven.solo-studios.ca/releases") { + name = "Solo Studios" + } + maven("https://maven.solo-studios.ca/snapshots") { + name = "Solo Studios" + } maven("https://maven.fabricmc.net") { name = "Fabric Maven" }