Refined Storage

Refined Storage

115M Downloads

EnderIO/RS Compatability issue

Moobien opened this issue ยท 7 comments

commented

Describe the bug

Whenever a pattern encoded with any EnderIO conduit is placed into an autocrafter Grids no longer are accessible. (in milestone 4.14)

How can we reproduce this bug or crash?

1: encode a pattern with an EnderIO conduit
2: place the pattern in an autocrafter
3: try to access any grid

What Minecraft version is this happening on?

Minecraft 1.21.1

What NeoForge or Fabric version is this happening on?

21.1.123

What Refined Storage version is this happening on?

v2.0.0-milestone-4.14

Relevant log output

commented

Thanks Raoul. how do I download the build with this fix in it?

commented

This issue is present in refinedstorage-neoforge-2.0.0-beta.1
the second you place any patten coded for an Ender IO conduit you become unable to to open the ui for any grid

commented

Did a test of this in a clean instance in case you wanted me to and can confirm the issue happens in my test instance

commented

I found out why this happens. The instance of the Conduit registry item was different. The reason for this: on single player, the pattern output cache was reused for the server and the client level. The server and client level have different Conduit instances and registries. When syncing on the server, it was reusing the Conduit instance cached by the client and that is not found in the server registry.

commented

Fix: make the pattern cache dependant on Level instance

commented

This happens after inserting a pattern for the first time:

[03:22:37] [Server thread/ERROR] [minecraft/ServerPacketListener]: Failed to handle packet net.minecraft.network.protocol.game.ServerboundUseItemOnPacket@4664e192, suppressing error
java.lang.IllegalArgumentException: Can't find id for 'Reference{ResourceKey[enderio:conduit / enderio:enhanced_energy]=EnergyConduit[texture=enderio:block/conduit/enhanced_energy, description=translation{key='item.enderio.conduit.enhanced_energy', args=[]}, transferRatePerTick=12000]}' in map net.minecraft.core.Registry$1@7c7cf1b2
	at TRANSFORMER/[email protected]/net.minecraft.core.IdMap.getIdOrThrow(IdMap.java:28) ~[neoforge-21.1.115.jar%23180!/:?] {re:classloading}
	at TRANSFORMER/[email protected]/net.minecraft.network.codec.ByteBufCodecs$25.encode(ByteBufCodecs.java:479) ~[neoforge-21.1.115.jar%23180!/:?] {re:classloading}
	at TRANSFORMER/[email protected]/net.minecraft.network.codec.ByteBufCodecs$25.encode(ByteBufCodecs.java:464) ~[neoforge-21.1.115.jar%23180!/:?] {re:classloading}
	at TRANSFORMER/[email protected]/net.minecraft.core.component.DataComponentPatch$1.encodeComponent(DataComponentPatch.java:127) ~[neoforge-21.1.115.jar%23180!/:?] {re:classloading}
	at TRANSFORMER/[email protected]/net.minecraft.core.component.DataComponentPatch$1.encode(DataComponentPatch.java:111) ~[neoforge-21.1.115.jar%23180!/:?] {re:classloading}
	at TRANSFORMER/[email protected]/net.minecraft.core.component.DataComponentPatch$1.encode(DataComponentPatch.java:58) ~[neoforge-21.1.115.jar%23180!/:?] {re:classloading}
	at TRANSFORMER/[email protected]/net.minecraft.network.codec.StreamCodec$8.encode(StreamCodec.java:145) ~[neoforge-21.1.115.jar%23180!/:?] {re:classloading}
	at TRANSFORMER/[email protected]/com.refinedmods.refinedstorage.common.support.resource.ResourceCodecs$1.encode(ResourceCodecs.java:62) ~[%23184!/:?] {re:classloading}

Even after reloading the world, it still happens.
Yet, after restarting minecraft completely it works again.
This happens for each conduit type.

It does not happen for regular grid resources, only when they are autocraftable it becomes an issue.

I cannot figure out why this is happening.

commented

Nice! Thanks Raoul