BlackJar72 / DoomlikeDungeons

A procedural multi-room dungeon generator for Minecraft
https://www.minecraftforum.net/forums/mapping-and-modding-java-edition/minecraft-mods/1293843-doomlike-dungeons
MIT License
23 stars 12 forks source link

Curseforge Hexxit Advanced Modpack crash on DoomlikeDungeons #40

Closed BBxBBoes closed 1 year ago

BBxBBoes commented 1 year ago

Description: Exception in server tick loop

net.minecraftforge.fml.common.LoaderExceptionModCrash: Caught exception from Doomlike Dungeons (dldungeonsjbg) Caused by: java.lang.IllegalArgumentException: No enum constant jaredbgreat.dldungeons.nbt.NBTType.STRİNG at java.lang.Enum.valueOf(Enum.java:238) at jaredbgreat.dldungeons.nbt.NBTType.valueOf(NBTType.java:14) at jaredbgreat.dldungeons.nbt.tags.Tags.makeITag(Tags.java:20) at jaredbgreat.dldungeons.nbt.NBTHelper.parseNBTLine(NBTHelper.java:83) at jaredbgreat.dldungeons.themes.ThemeReader.readNBT(ThemeReader.java:306) at jaredbgreat.dldungeons.themes.ThemeReader.openNBTConfig(ThemeReader.java:282) at jaredbgreat.dldungeons.themes.ThemeReader.readThemes(ThemeReader.java:215) at jaredbgreat.dldungeons.DoomlikeDungeons.postInit(DoomlikeDungeons.java:63) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at net.minecraftforge.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:637) at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91) at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150) at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76) at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399) at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71) at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116) at com.google.common.eventbus.EventBus.post(EventBus.java:217) at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:219) at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:197) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91) at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150) at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76) at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399) at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71) at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116) at com.google.common.eventbus.EventBus.post(EventBus.java:217) at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:136) at net.minecraftforge.fml.common.Loader.initializeMods(Loader.java:754) at net.minecraftforge.fml.server.FMLServerHandler.finishServerLoading(FMLServerHandler.java:108) at net.minecraftforge.fml.common.FMLCommonHandler.onServerStarted(FMLCommonHandler.java:338) at net.minecraft.server.dedicated.DedicatedServer.init(DedicatedServer.java:219) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:486) at java.lang.Thread.run(Thread.java:750)

BlackJar72 commented 1 year ago

Thanks, I'll need to look into it -- see if its a mod conflict, a forge update I didn't get the memo on, or what.

It's very strange, though, since it looks like it can't find part of this enum class ("STING" on line 25) that is clearly there: https://github.com/BlackJar72/DoomlikeDungeons/blob/MC1.12.2/main/java/jaredbgreat/dldungeons/nbt/NBTType.java ...so why it doesn't find that is beyond me, its all internal to the mod, which worked fine last time I played with it.

xyroc commented 1 year ago

Oh, this is a classic issue. It was looking for "STRİNG", not "STRING", the upper case i being a different letter. This is happening because you did not specify a locale when calling toUpperCase, in which case it uses the default locale which is derived from the host system's properties. Simply changing it to toUpperCase(Locale.ROOT) prevents this from happening.

BlackJar72 commented 1 year ago

Oh, this is a classic issue. It was looking for "STRİNG", not "STRING", the upper case i being a different letter. This is happening because you did not specify a locale when calling toUpperCase, in which case it uses the default locale which is derived from the host system's properties. Simply changing it to toUpperCase(Locale.ROOT) prevents this from happening.

Thanks, that is VERY helpful. I had no idea, but assumed it would just use basic ASCII conversions everywhere, except perhaps if the characters being converted were not original ASCII. This should actually be a fairly easy fix, just need to take some time to do it.

Things like this remind me that I'm not really as advanced at programming as I started to think during the mods original development. It is nice that I can probably fix this issue though.

EDIT: I Basically assumed a very simple, literal operation, like setting the 64 bit.

BlackJar72 commented 1 year ago

Try the new 1.14.12 version when if becomes available -- it should fix the problem and is under review by Curse right now. It should be available in a few minutes.

BBxBBoes commented 1 year ago

Try the new 1.14.12 version when if becomes available -- it should fix the problem and is under review by Curse right now. It should be available in a few minutes.

Thanks. New version solved my problem.