Roughly Enough Resources

Roughly Enough Resources

12M Downloads

RER Causes Invalid Player Data When Generating a New World With Wilder Wild Installed in 1.20.1

GamingWithDudeAlt opened this issue ยท 2 comments

commented

The title. These are with the most recent versions of both mods installed for Fabric 1.20.1.

latest.log: https://mclo.gs/Za59sK4

commented

Also happens with Fabric Bumblezone on 1.20.1. Cannot join any single player world due to:
at uk.me.desert_island.rer.RoughlyEnoughResources.sendLootToPlayers(RoughlyEnoughResources.java:53) ~[rer-2.9.0.jar:?]
latest.log

I do not know what in my mod would even trigger this issue with RER.

remapped stacktrace:

java.lang.NullPointerException: Cannot invoke "net.minecraft.state.property.Property.getName()" because "$$1" is null
	at net.minecraft.CopyStateFunction$Builderclass_4490.method_21899(CopyStateFunction.java:108) ~[client-intermediary.jar:?]
	at java.lang.Iterable.forEach(Iterable.java:75) ~[?:?]
	at net.minecraft.CopyStateFunction$Builderclass_4490.toJson(CopyStateFunction.java:108) ~[client-intermediary.jar:?]
	at net.minecraft.CopyStateFunction$Builderclass_4490.toJson(CopyStateFunction.java:102) ~[client-intermediary.jar:?]
	at net.minecraft.JsonSerializing$SerializerBuilderclass_5333.serialize(JsonSerializing.java:125) ~[client-intermediary.jar:?]
	at com.google.gson.internal.bind.TreeTypeAdapter.write(TreeTypeAdapter.java:88) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:70) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.ArrayTypeAdapter.write(ArrayTypeAdapter.java:104) ~[gson-2.10.jar:?]
	at com.google.gson.Gson.toJson(Gson.java:825) ~[gson-2.10.jar:?]
	at com.google.gson.Gson.toJsonTree(Gson.java:695) ~[gson-2.10.jar:?]
	at com.google.gson.Gson.toJsonTree(Gson.java:672) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.TreeTypeAdapter$GsonContextImpl.serialize(TreeTypeAdapter.java:172) ~[gson-2.10.jar:?]
	at net.minecraft.LeafEntry$Serializerclass_90.addEntryFields(LeafEntry.java:141) ~[client-intermediary.jar:?]
	at net.minecraft.ItemEntry$Serializerclass_78.addEntryFields(ItemEntry.java:43) ~[client-intermediary.jar:?]
	at net.minecraft.ItemEntry$Serializerclass_78.addEntryFields(ItemEntry.java:40) ~[client-intermediary.jar:?]
	at net.minecraft.LootPoolEntry$Serializerclass_5337.toJson(LootPoolEntry.java:80) ~[client-intermediary.jar:?]
	at net.minecraft.LootPoolEntry$Serializerclass_5337.toJson(LootPoolEntry.java:74) ~[client-intermediary.jar:?]
	at net.minecraft.JsonSerializing$SerializerBuilderclass_5333.serialize(JsonSerializing.java:125) ~[client-intermediary.jar:?]
	at com.google.gson.internal.bind.TreeTypeAdapter.write(TreeTypeAdapter.java:88) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:70) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.ArrayTypeAdapter.write(ArrayTypeAdapter.java:104) ~[gson-2.10.jar:?]
	at com.google.gson.Gson.toJson(Gson.java:825) ~[gson-2.10.jar:?]
	at com.google.gson.Gson.toJsonTree(Gson.java:695) ~[gson-2.10.jar:?]
	at com.google.gson.Gson.toJsonTree(Gson.java:672) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.TreeTypeAdapter$GsonContextImpl.serialize(TreeTypeAdapter.java:172) ~[gson-2.10.jar:?]
	at net.minecraft.loot.entry.CombinedEntry$1.addEntryFields(CombinedEntry.java:56) ~[client-intermediary.jar:?]
	at net.minecraft.loot.entry.CombinedEntry$1.addEntryFields(CombinedEntry.java:53) ~[client-intermediary.jar:?]
	at net.minecraft.LootPoolEntry$Serializerclass_5337.toJson(LootPoolEntry.java:80) ~[client-intermediary.jar:?]
	at net.minecraft.LootPoolEntry$Serializerclass_5337.toJson(LootPoolEntry.java:74) ~[client-intermediary.jar:?]
	at net.minecraft.JsonSerializing$SerializerBuilderclass_5333.serialize(JsonSerializing.java:125) ~[client-intermediary.jar:?]
	at com.google.gson.internal.bind.TreeTypeAdapter.write(TreeTypeAdapter.java:88) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:70) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.ArrayTypeAdapter.write(ArrayTypeAdapter.java:104) ~[gson-2.10.jar:?]
	at com.google.gson.Gson.toJson(Gson.java:825) ~[gson-2.10.jar:?]
	at com.google.gson.Gson.toJsonTree(Gson.java:695) ~[gson-2.10.jar:?]
	at com.google.gson.Gson.toJsonTree(Gson.java:672) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.TreeTypeAdapter$GsonContextImpl.serialize(TreeTypeAdapter.java:172) ~[gson-2.10.jar:?]
	at net.minecraft.LootPool$Builderclass_57.serialize(LootPool.java:186) ~[client-intermediary.jar:?]
	at net.minecraft.LootPool$Builderclass_57.serialize(LootPool.java:169) ~[client-intermediary.jar:?]
	at com.google.gson.internal.bind.TreeTypeAdapter.write(TreeTypeAdapter.java:88) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:70) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.ArrayTypeAdapter.write(ArrayTypeAdapter.java:104) ~[gson-2.10.jar:?]
	at com.google.gson.Gson.toJson(Gson.java:825) ~[gson-2.10.jar:?]
	at com.google.gson.Gson.toJsonTree(Gson.java:695) ~[gson-2.10.jar:?]
	at com.google.gson.Gson.toJsonTree(Gson.java:672) ~[gson-2.10.jar:?]
	at com.google.gson.internal.bind.TreeTypeAdapter$GsonContextImpl.serialize(TreeTypeAdapter.java:172) ~[gson-2.10.jar:?]
	at net.minecraft.LootTable$Serializerclass_54.serialize(LootTable.java:288) ~[client-intermediary.jar:?]
	at net.minecraft.LootTable$Serializerclass_54.serialize(LootTable.java:246) ~[client-intermediary.jar:?]
	at com.google.gson.internal.bind.TreeTypeAdapter.write(TreeTypeAdapter.java:88) ~[gson-2.10.jar:?]
	at com.google.gson.Gson.toJson(Gson.java:825) ~[gson-2.10.jar:?]
	at com.google.gson.Gson.toJsonTree(Gson.java:695) ~[gson-2.10.jar:?]
	at com.google.gson.Gson.toJsonTree(Gson.java:672) ~[gson-2.10.jar:?]
	at uk.me.desert_island.rer.RoughlyEnoughResources.sendLootToPlayers(RoughlyEnoughResources.java:53) ~[rer-2.9.0.jar:?]
	at net.minecraft.server.PlayerManager.handler$bgb000$roughlyenoughresources$onPlayerConnect(PlayerManager.java:6011) ~[client-intermediary.jar:?]
	at net.minecraft.server.PlayerManager.onPlayerConnect(PlayerManager.java:307) ~[client-intermediary.jar:?]
	at net.minecraft.server.network.ServerLoginNetworkHandler.addToServer(ServerLoginNetworkHandler.java:131) ~[client-intermediary.jar:?]
	at net.minecraft.server.network.ServerLoginNetworkHandler.acceptPlayer(ServerLoginNetworkHandler.java:118) ~[client-intermediary.jar:?]
	at net.minecraft.server.network.ServerLoginNetworkHandler.redirect$zkm000$fabric-networking-api-v1$handlePlayerJoin(ServerLoginNetworkHandler.java:563) ~[client-intermediary.jar:?]
	at net.minecraft.server.network.ServerLoginNetworkHandler.tick(ServerLoginNetworkHandler.java:68) ~[client-intermediary.jar:?]
	at net.minecraft.network.ClientConnection.tick(ClientConnection.java:259) ~[client-intermediary.jar:?]
	at net.minecraft.server.ServerNetworkIo.tick(ServerNetworkIo.java:172) ~[client-intermediary.jar:?]
	at net.minecraft.server.MinecraftServer.tickWorlds(MinecraftServer.java:908) ~[client-intermediary.jar:?]
	at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:824) ~[client-intermediary.jar:?]
	at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:105) ~[client-intermediary.jar:?]
	at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:671) ~[client-intermediary.jar:?]
	at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:265) ~[client-intermediary.jar:?]
commented

My testing was flawed. Bumblezone runs fine with RER.

Anyway for Wilder Wilds, the issue is one of their copy_state usage is pointing to a blockstate that doesn't exist or isn't setup correctly. So when RER tries to serialize it, it explodes. Wilder Wilds should review their copy_state usage and verify they are all setup correctly. (Friend narrowed it down to this as the issue)
https://github.com/search?q=repo%3AFrozenBlock%2FWilderWild%20copy_state&type=code