BuiltBrokenModding / MFFS_Classic

Classic version of Claclavia's MMFS mod
MIT License
19 stars 11 forks source link

[Bug] Game Crash while saving custom structures #68

Closed TheonlyTazz closed 5 months ago

TheonlyTazz commented 5 months ago

Minecraft Version

1.20.4

Modloader Version

Neoforge 20.4.234

Mod Version

mffs-5.2.5.jar

Bug Report:

While messing around with Modular Storage, we suddenly get crashes regarding saving data to the world:

java.nio.file.InvalidPathException: Illegal char <:> at index 91: C:\Users\<USER>\AppData\Local\.ftba\instances\ftb neotech\saves\Neotech Test World\data\mffs:custom_structures.dat
    at sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:204) ~[?:?] {}
    at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:175) ~[?:?] {}
    at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77) ~[?:?] {}
    at sun.nio.fs.WindowsPath.parse(WindowsPath.java:92) ~[?:?] {}
    at sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:231) ~[?:?] {}
    at java.io.File.toPath(File.java:2401) ~[?:?] {re:mixin}
    at net.minecraft.world.level.saveddata.SavedData.save(SavedData.java:39) ~[client-1.20.4-20231207.154220-srg.jar%23701!/:?] {re:mixin,re:classloading}
    at net.minecraft.world.level.storage.DimensionDataStorage.lambda$save$0(DimensionDataStorage.java:132) ~[client-1.20.4-20231207.154220-srg.jar%23701!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:immersiveengineering.mixins.json:accessors.DataStorageAccess from mod immersiveengineering,pl:mixin:APP:structure_gel.mixins.json:common.DimensionDataStorageAccessor from mod structure_gel,pl:mixin:A}
    at java.util.HashMap.forEach(HashMap.java:1429) ~[?:?] {re:mixin}
    at net.minecraft.world.level.storage.DimensionDataStorage.save(DimensionDataStorage.java:130) ~[client-1.20.4-20231207.154220-srg.jar%23701!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:immersiveengineering.mixins.json:accessors.DataStorageAccess from mod immersiveengineering,pl:mixin:APP:structure_gel.mixins.json:common.DimensionDataStorageAccessor from mod structure_gel,pl:mixin:A}
    at net.minecraft.server.level.ServerLevel.saveLevelData(ServerLevel.java:814) ~[client-1.20.4-20231207.154220-srg.jar%23701!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:servercore.common.mixins.json:optimizations.ticking.chunk.random.ServerLevelMixin from mod servercore,pl:mixin:APP:modernfix-common.mixins.json:perf.cache_strongholds.ServerLevelMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:bugfix.chunk_deadlock.ServerLevelMixin from mod modernfix,pl:mixin:APP:servercore.common.mixins.json:features.activation_range.ServerLevelMixin from mod servercore,pl:mixin:APP:servercore.common.mixins.json:features.spawn_chunks.ServerLevelMixin from mod servercore,pl:mixin:APP:servercore.common.mixins.json:optimizations.sync_loads.ServerLevelMixin from mod servercore,pl:mixin:APP:immersiveengineering.mixins.json:coremods.ServerWorldMixin from mod immersiveengineering,pl:mixin:APP:hyperbox.mixins.json:ServerLevelMixin from mod hyperbox,pl:mixin:APP:kubejs-common.mixins.json:ServerLevelMixin from mod kubejs,pl:mixin:APP:betterdeserttemples.mixins.json:ServerLevelMixin from mod betterdeserttemples,pl:mixin:A}
    at net.minecraft.server.level.ServerLevel.save(ServerLevel.java:794) ~[client-1.20.4-20231207.154220-srg.jar%23701!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:servercore.common.mixins.json:optimizations.ticking.chunk.random.ServerLevelMixin from mod servercore,pl:mixin:APP:modernfix-common.mixins.json:perf.cache_strongholds.ServerLevelMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:bugfix.chunk_deadlock.ServerLevelMixin from mod modernfix,pl:mixin:APP:servercore.common.mixins.json:features.activation_range.ServerLevelMixin from mod servercore,pl:mixin:APP:servercore.common.mixins.json:features.spawn_chunks.ServerLevelMixin from mod servercore,pl:mixin:APP:servercore.common.mixins.json:optimizations.sync_loads.ServerLevelMixin from mod servercore,pl:mixin:APP:immersiveengineering.mixins.json:coremods.ServerWorldMixin from mod immersiveengineering,pl:mixin:APP:hyperbox.mixins.json:ServerLevelMixin from mod hyperbox,pl:mixin:APP:kubejs-common.mixins.json:ServerLevelMixin from mod kubejs,pl:mixin:APP:betterdeserttemples.mixins.json:ServerLevelMixin from mod betterdeserttemples,pl:mixin:A}
    at net.minecraft.server.MinecraftServer.saveAllChunks(MinecraftServer.java:544) ~[client-1.20.4-20231207.154220-srg.jar%23701!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A}
    at net.minecraft.server.MinecraftServer.saveEverything(MinecraftServer.java:569) ~[client-1.20.4-20231207.154220-srg.jar%23701!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A}
    at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:867) ~[client-1.20.4-20231207.154220-srg.jar%23701!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A}
    at net.minecraft.client.server.IntegratedServer.tickServer(IntegratedServer.java:106) ~[client-1.20.4-20231207.154220-srg.jar%23701!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}
    at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:700) ~[client-1.20.4-20231207.154220-srg.jar%23701!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A}
    at net.minecraft.server.MinecraftServer.lambda$spin$2(MinecraftServer.java:255) ~[client-1.20.4-20231207.154220-srg.jar%23701!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A}
    at java.lang.Thread.run(Thread.java:1583) ~[?:?] {re:mixin}

This is very likely caused because the filepath its trying to save to is invalid (mffs:custom_structures.dat) bcause : is an invalid character for saving files

Su5eD commented 5 months ago

Fixed in 5.2.7