BedrockWaters

BedrockWaters

89.9k Downloads

Prevents a server from loading when used with certain mods?

MechanosG opened this issue ยท 3 comments

commented

Heya. This mod is pretty cool, and worked when I tested it in singleplayer with a pre-existing world. But when I threw it on a dedicated server and generated a fresh world, it prevents the server from loading and outputs this into the console:

[18:35:38] [main/FATAL]: Failed to start the minecraft server
java.lang.RuntimeException: Could not execute entrypoint stage 'main' due to errors, provided by 'woods_and_mires'!
	at Not Enough Crashes deobfuscated stack trace.(1.16.4+build.9) ~[?:?]
	at net.fabricmc.loader.entrypoint.minecraft.hooks.EntrypointUtils.invoke0(EntrypointUtils.java:53) ~[fabric-server-launch.jar:?]
	at net.fabricmc.loader.entrypoint.minecraft.hooks.EntrypointUtils.invoke(EntrypointUtils.java:36) ~[fabric-server-launch.jar:?]
	at net.fabricmc.loader.entrypoint.minecraft.hooks.EntrypointServer.start(EntrypointServer.java:32) ~[fabric-server-launch.jar:?]
	at net.minecraft.server.Main.main(Main:92) [intermediary-server.jar:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_271]
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_271]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_271]
	at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_271]
	at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:224) [fabric-server-launch.jar:?]
	at net.fabricmc.loader.launch.knot.Knot.init(Knot.java:141) [fabric-server-launch.jar:?]
	at net.fabricmc.loader.launch.knot.KnotServer.main(KnotServer.java:27) [fabric-server-launch.jar:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_271]
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_271]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_271]
	at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_271]
	at net.fabricmc.loader.launch.server.FabricServerLauncher.launch(FabricServerLauncher.java:62) [fabric-server-launch.jar:?]
	at net.fabricmc.loader.launch.server.FabricServerLauncher.setup(FabricServerLauncher.java:106) [fabric-server-launch.jar:?]
	at net.fabricmc.loader.launch.server.FabricServerLauncher.main(FabricServerLauncher.java:50) [fabric-server-launch.jar:?]
	Suppressed: java.lang.NoSuchMethodError: net.minecraft.class_1959.method_8687()I
		at retr0.bedrockwaters.WaterPropertiesReplacer.setBiomeWaterProperties(WaterPropertiesReplacer.java:27) ~[bedrockwaters-1.4.3+1.16.4.jar:?]
		at retr0.bedrockwaters.BedrockWaters.lambda$onInitialize$2(BedrockWaters.java:73) ~[bedrockwaters-1.4.3+1.16.4.jar:?]
		at net.minecraft.util.registry.SimpleRegistry.mdda8aef$lambda$new$0$5(SimpleRegistry:586) ~[?:?]
		at net.minecraft.util.registry.SimpleRegistry.handler$zjm000$setPost(SimpleRegistry:664) ~[?:?]
		at net.minecraft.util.registry.SimpleRegistry.set(SimpleRegistry:98) ~[?:?]
		at net.minecraft.util.registry.SimpleRegistry.set(SimpleRegistry:72) ~[?:?]
		at net.minecraft.util.registry.SimpleRegistry.add(SimpleRegistry:103) ~[?:?]
		at net.minecraft.util.registry.Registry.register(Registry:403) ~[?:?]
		at com.terraformersmc.cinderscapes.init.CinderscapesBiomes.add(CinderscapesBiomes.java:56) ~[cinderscapes-1.3.0+build.51.jar:?]
		at com.terraformersmc.cinderscapes.init.CinderscapesBiomes.<clinit>(CinderscapesBiomes.java:25) ~[cinderscapes-1.3.0+build.51.jar:?]
		at com.terraformersmc.cinderscapes.Cinderscapes.onInitialize(Cinderscapes.java:35) ~[cinderscapes-1.3.0+build.51.jar:?]
		at net.fabricmc.loader.entrypoint.minecraft.hooks.EntrypointUtils.invoke0(EntrypointUtils.java:50) ~[fabric-server-launch.jar:?]
		at net.fabricmc.loader.entrypoint.minecraft.hooks.EntrypointUtils.invoke(EntrypointUtils.java:36) ~[fabric-server-launch.jar:?]
		at net.fabricmc.loader.entrypoint.minecraft.hooks.EntrypointServer.start(EntrypointServer.java:32) ~[fabric-server-launch.jar:?]
		at net.minecraft.server.Main.main(Main:92) [intermediary-server.jar:?]
		at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_271]
		at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_271]
		at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_271]
		at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_271]
		at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:224) [fabric-server-launch.jar:?]
		at net.fabricmc.loader.launch.knot.Knot.init(Knot.java:141) [fabric-server-launch.jar:?]
		at net.fabricmc.loader.launch.knot.KnotServer.main(KnotServer.java:27) [fabric-server-launch.jar:?]
		at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_271]
		at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_271]
		at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_271]
		at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_271]
		at net.fabricmc.loader.launch.server.FabricServerLauncher.launch(FabricServerLauncher.java:62) [fabric-server-launch.jar:?]
		at net.fabricmc.loader.launch.server.FabricServerLauncher.setup(FabricServerLauncher.java:106) [fabric-server-launch.jar:?]
		at net.fabricmc.loader.launch.server.FabricServerLauncher.main(FabricServerLauncher.java:50) [fabric-server-launch.jar:?]
	Suppressed: java.lang.NoSuchMethodError: net.minecraft.class_1959.method_8687()I
		at retr0.bedrockwaters.WaterPropertiesReplacer.setBiomeWaterProperties(WaterPropertiesReplacer.java:27) ~[bedrockwaters-1.4.3+1.16.4.jar:?]
		at retr0.bedrockwaters.BedrockWaters.lambda$onInitialize$2(BedrockWaters.java:73) ~[bedrockwaters-1.4.3+1.16.4.jar:?]
		at net.minecraft.util.registry.SimpleRegistry.mdda8aef$lambda$new$0$5(SimpleRegistry:586) ~[?:?]
		at net.minecraft.util.registry.SimpleRegistry.handler$zjm000$setPost(SimpleRegistry:664) ~[?:?]
		at net.minecraft.util.registry.SimpleRegistry.set(SimpleRegistry:98) ~[?:?]
		at net.minecraft.util.registry.SimpleRegistry.set(SimpleRegistry:72) ~[?:?]
		at net.minecraft.util.registry.Registry.register(Registry:407) ~[?:?]
		at ru.betterend.registry.EndBiomes.registerBiomeDirect(EndBiomes.java:333) ~[better-end-0.8.0-beta.jar:?]
		at ru.betterend.registry.EndBiomes.registerBiome(EndBiomes.java:284) ~[better-end-0.8.0-beta.jar:?]
		at ru.betterend.registry.EndBiomes.<clinit>(EndBiomes.java:73) ~[better-end-0.8.0-beta.jar:?]
		at ru.betterend.BetterEnd.onInitialize(BetterEnd.java:41) ~[better-end-0.8.0-beta.jar:?]
		at net.fabricmc.loader.entrypoint.minecraft.hooks.EntrypointUtils.invoke0(EntrypointUtils.java:50) ~[fabric-server-launch.jar:?]
		at net.fabricmc.loader.entrypoint.minecraft.hooks.EntrypointUtils.invoke(EntrypointUtils.java:36) ~[fabric-server-launch.jar:?]
		at net.fabricmc.loader.entrypoint.minecraft.hooks.EntrypointServer.start(EntrypointServer.java:32) ~[fabric-server-launch.jar:?]
		at net.minecraft.server.Main.main(Main:92) [intermediary-server.jar:?]
		at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_271]
		at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_271]
		at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_271]
		at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_271]
		at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:224) [fabric-server-launch.jar:?]
		at net.fabricmc.loader.launch.knot.Knot.init(Knot.java:141) [fabric-server-launch.jar:?]
		at net.fabricmc.loader.launch.knot.KnotServer.main(KnotServer.java:27) [fabric-server-launch.jar:?]
		at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_271]
		at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_271]
		at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_271]
		at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_271]
		at net.fabricmc.loader.launch.server.FabricServerLauncher.launch(FabricServerLauncher.java:62) [fabric-server-launch.jar:?]
		at net.fabricmc.loader.launch.server.FabricServerLauncher.setup(FabricServerLauncher.java:106) [fabric-server-launch.jar:?]
		at net.fabricmc.loader.launch.server.FabricServerLauncher.main(FabricServerLauncher.java:50) [fabric-server-launch.jar:?]
	Suppressed: java.lang.NoSuchMethodError: net.minecraft.class_1959.method_8687()I
		at retr0.bedrockwaters.WaterPropertiesReplacer.setBiomeWaterProperties(WaterPropertiesReplacer.java:27) ~[bedrockwaters-1.4.3+1.16.4.jar:?]
		at retr0.bedrockwaters.BedrockWaters.lambda$onInitialize$2(BedrockWaters.java:73) ~[bedrockwaters-1.4.3+1.16.4.jar:?]
		at net.minecraft.util.registry.SimpleRegistry.mdda8aef$lambda$new$0$5(SimpleRegistry:586) ~[?:?]
		at net.minecraft.util.registry.SimpleRegistry.handler$zjm000$setPost(SimpleRegistry:664) ~[?:?]
		at net.minecraft.util.registry.SimpleRegistry.set(SimpleRegistry:98) ~[?:?]
		at net.minecraft.util.registry.SimpleRegistry.set(SimpleRegistry:72) ~[?:?]
		at net.minecraft.util.registry.SimpleRegistry.add(SimpleRegistry:103) ~[?:?]
		at net.minecraft.util.registry.Registry.register(Registry:403) ~[?:?]
		at com.hugman.dawn.api.creator.BiomeCreator.register(BiomeCreator.java:19) ~[dawn-1.6.jar:?]
		at java.util.ArrayList.forEach(Unknown Source) ~[?:1.8.0_271]
		at com.hugman.dawn.api.util.ModData.registerCreators(ModData.java:31) ~[dawn-1.6.jar:?]
		at com.hugman.wild_explorer.WildExplorer.onInitialize(WildExplorer.java:34) ~[wild_explorer-1.3.jar:?]
		at net.fabricmc.loader.entrypoint.minecraft.hooks.EntrypointUtils.invoke0(EntrypointUtils.java:50) ~[fabric-server-launch.jar:?]
		at net.fabricmc.loader.entrypoint.minecraft.hooks.EntrypointUtils.invoke(EntrypointUtils.java:36) ~[fabric-server-launch.jar:?]
		at net.fabricmc.loader.entrypoint.minecraft.hooks.EntrypointServer.start(EntrypointServer.java:32) ~[fabric-server-launch.jar:?]
		at net.minecraft.server.Main.main(Main:92) [intermediary-server.jar:?]
		at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_271]
		at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_271]
		at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_271]
		at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_271]
		at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:224) [fabric-server-launch.jar:?]
		at net.fabricmc.loader.launch.knot.Knot.init(Knot.java:141) [fabric-server-launch.jar:?]
		at net.fabricmc.loader.launch.knot.KnotServer.main(KnotServer.java:27) [fabric-server-launch.jar:?]
		at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_271]
		at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_271]
		at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_271]
		at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_271]
		at net.fabricmc.loader.launch.server.FabricServerLauncher.launch(FabricServerLauncher.java:62) [fabric-server-launch.jar:?]
		at net.fabricmc.loader.launch.server.FabricServerLauncher.setup(FabricServerLauncher.java:106) [fabric-server-launch.jar:?]
		at net.fabricmc.loader.launch.server.FabricServerLauncher.main(FabricServerLauncher.java:50) [fabric-server-launch.jar:?]
Caused by: java.lang.reflect.UndeclaredThrowableException
	at com.sun.proxy.$Proxy48.onInitialize(Unknown Source) ~[?:?]
	at net.fabricmc.loader.entrypoint.minecraft.hooks.EntrypointUtils.invoke0(EntrypointUtils.java:50) ~[fabric-server-launch.jar:?]
	... 17 more
Caused by: java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_271]
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_271]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_271]
	at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_271]
	at kotlin.reflect.jvm.internal.calls.CallerImpl$Method.callMethod(CallerImpl.kt:97) ~[1e509903-a919-465a-9c3d-385f33e76d45.jar:?]
	at kotlin.reflect.jvm.internal.calls.CallerImpl$Method$Instance.call(CallerImpl.kt:113) ~[1e509903-a919-465a-9c3d-385f33e76d45.jar:?]
	at kotlin.reflect.jvm.internal.KCallableImpl.call(KCallableImpl.kt:108) ~[1e509903-a919-465a-9c3d-385f33e76d45.jar:?]
	at net.fabricmc.language.kotlin.KotlinAdapter$create$3.invoke(KotlinAdapter.java:105) ~[fabric-language-kotlin-1.4.0+build.1.jar:?]
	at com.sun.proxy.$Proxy48.onInitialize(Unknown Source) ~[?:?]
	at net.fabricmc.loader.entrypoint.minecraft.hooks.EntrypointUtils.invoke0(EntrypointUtils.java:50) ~[fabric-server-launch.jar:?]
	... 17 more
Caused by: java.lang.NoSuchMethodError: net.minecraft.class_1959.method_8687()I
	at retr0.bedrockwaters.WaterPropertiesReplacer.setBiomeWaterProperties(WaterPropertiesReplacer.java:27) ~[bedrockwaters-1.4.3+1.16.4.jar:?]
	at retr0.bedrockwaters.BedrockWaters.lambda$onInitialize$2(BedrockWaters.java:73) ~[bedrockwaters-1.4.3+1.16.4.jar:?]
	at net.minecraft.util.registry.SimpleRegistry.mdda8aef$lambda$new$0$5(SimpleRegistry:586) ~[?:?]
	at net.minecraft.util.registry.SimpleRegistry.handler$zjm000$setPost(SimpleRegistry:664) ~[?:?]
	at net.minecraft.util.registry.SimpleRegistry.set(SimpleRegistry:98) ~[?:?]
	at net.minecraft.util.registry.SimpleRegistry.set(SimpleRegistry:72) ~[?:?]
	at net.minecraft.util.registry.SimpleRegistry.add(SimpleRegistry:103) ~[?:?]
	at juuxel.woodsandmires.biome.WamBiomes.register(WamBiomes.java:51) ~[WoodsAndMires-1.0.4+1.16.3.jar:?]
	at juuxel.woodsandmires.biome.WamBiomes.init(WamBiomes.java:36) ~[WoodsAndMires-1.0.4+1.16.3.jar:?]
	at juuxel.woodsandmires.WoodsAndMires.init(WoodsAndMires.java:20) ~[WoodsAndMires-1.0.4+1.16.3.jar:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_271]
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_271]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_271]
	at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_271]
	at kotlin.reflect.jvm.internal.calls.CallerImpl$Method.callMethod(CallerImpl.kt:97) ~[1e509903-a919-465a-9c3d-385f33e76d45.jar:?]
	at kotlin.reflect.jvm.internal.calls.CallerImpl$Method$Instance.call(CallerImpl.kt:113) ~[1e509903-a919-465a-9c3d-385f33e76d45.jar:?]
	at kotlin.reflect.jvm.internal.KCallableImpl.call(KCallableImpl.kt:108) ~[1e509903-a919-465a-9c3d-385f33e76d45.jar:?]
	at net.fabricmc.language.kotlin.KotlinAdapter$create$3.invoke(KotlinAdapter.java:105) ~[fabric-language-kotlin-1.4.0+build.1.jar:?]
	at com.sun.proxy.$Proxy48.onInitialize(Unknown Source) ~[?:?]
	at net.fabricmc.loader.entrypoint.minecraft.hooks.EntrypointUtils.invoke0(EntrypointUtils.java:50) ~[fabric-server-launch.jar:?]
	... 17 more

There is no crashlog, so that's the best information I can provide. I'm guessing it's conflicting with WoodsAndMires, but it also mentions BetterEnd and Cinderscapes in there. The modpack is MC 1.16.4 Fabric, and the mod versions are in the log. Removing bedrockwaters allows the server to load.

Lemme know if you need any additional information. :)

commented

@TelepathicGrunt Incorporated your mixin plus some others, and the mod is now fully client side! Thanks!

commented

The issue is Bedrock Waters is not suppose to be ran on the server anyway as water colors does not exist on serverside. Only clientside. It's not a mod conflict. It's that the water color methods literally doesn't exist on the server lol.

The dev just needs to mark their mod clientside only to prevent it from loading on servers

commented

and nvm I see the curseforge page says it has to be on server in order to modify biome water color. But this is extremely concerning as the client receives the water color from the server. So the code for water color changing really doesn't need to be on the server. Well, I guess it is so that vanilla clients connecting to a bedrock waters server can see the color change so that is a use case.

image

Edit: I got bored and went ahead and made a mixin as to where I would go to make clientsided biome color water. Hope this helps if you want to make this mod fully clientsided! Could even make it an option where the mod on serverside can tell clients with the mod to not override colors as a way for servers to enforce a color

@Mixin(BiomeColors.class)
public class BiomeColorsMixin {

    @Redirect(method = "getWaterColor",
            at = @At(value = "INVOKE", target = "Lnet/minecraft/client/color/world/BiomeColors;getColor(Lnet/minecraft/world/BlockRenderView;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/world/level/ColorResolver;)I"))
    private static int getWaterColor(BlockRenderView view, BlockPos pos, ColorResolver colorResolver) {
        if(view instanceof ChunkRendererRegion){
            World world = ((ChunkRendererRegionAccessor)view).getWorld();
            Biome biome = world.getBiome(pos);
            Identifier biomeID = world.getRegistryManager().get(Registry.BIOME_KEY).getId(biome);
            int waterColor = 0; // Use a map of biome identifier to water colors here.
            return waterColor;
        }
        return BiomeColorsInvoker.invokeGetColor(view, pos, BiomeColors.WATER_COLOR);
    }
}

image