Cross-mod issue with Mekanism pipes
Belgabor opened this issue ยท 8 comments
As reported here: thephoenixlodge/Regrowth-Stuff#18
Do you think you could take a screenshot of a basic mek pipes setup that's showing the issue? I've never used mek or its pipes before, so it would be helpful for me to test accurately.
I will check it tonight. It may be a sync issue on my side, or it may be that they just need explicit compatibility (as is the case with BC-compat Logistics Pipes). Either way, it is unlikely to be exclusively on their side.
I believe now this is on Mekanisms side. I was able to reproduce it in SSP, but not reliably.
When I set this up first, the logistical sorter above the chest vanished. It was set to filter iron ingots and cobble. The workbench makes furnaces, the sorter is set to auto mode (aka it extracts anything). The curious part was that when I reloaded the world (maybe before, I may have overlooked it), the pipe next to the storage controller was not visibly connected.
When I redid everything that broke (sorter and connection), it suddenly worked.
In the logs I found this:
[21:25:20] [Server thread/ERROR] [FML/]: ---- Minecraft Crash Report ----
// Hey, that tickles! Hehehe!
Time: 3/18/15 9:25 PM
Description: Ticking block entity
java.lang.ArrayIndexOutOfBoundsException: 15
at mekanism.common.transporter.TransporterManager.copyInvFromSide(TransporterManager.java:83)
at mekanism.common.transporter.TransporterManager.getPredictedInsert(TransporterManager.java:253)
at mekanism.common.transporter.TransporterPathfinder$InventoryFinder.loop(TransporterPathfinder.java:260)
at mekanism.common.transporter.TransporterPathfinder$InventoryFinder.loop(TransporterPathfinder.java:270)
at mekanism.common.transporter.TransporterPathfinder$InventoryFinder.loop(TransporterPathfinder.java:270)
at mekanism.common.transporter.TransporterPathfinder$InventoryFinder.loop(TransporterPathfinder.java:270)
at mekanism.common.transporter.TransporterPathfinder$InventoryFinder.loop(TransporterPathfinder.java:270)
at mekanism.common.transporter.TransporterPathfinder$InventoryFinder.find(TransporterPathfinder.java:278)
at mekanism.common.transporter.TransporterPathfinder.getPaths(TransporterPathfinder.java:296)
at mekanism.common.transporter.TransporterPathfinder.getNewBasePath(TransporterPathfinder.java:319)
at mekanism.common.transporter.TransporterStack.recalculatePath(TransporterStack.java:160)
at mekanism.common.multipart.PartLogisticalTransporter.insert_do(PartLogisticalTransporter.java:444)
at mekanism.common.multipart.PartLogisticalTransporter.insert(PartLogisticalTransporter.java:426)
at TLogisticalTransporter$$6$class.insert(Unknown Source)
at TileMultipart_cmp$$17.insert(Unknown Source)
at mekanism.common.util.TransporterUtils.insert(TransporterUtils.java:161)
at mekanism.common.tile.TileEntityLogisticalSorter.emitItemToTransporter(TileEntityLogisticalSorter.java:173)
at mekanism.common.tile.TileEntityLogisticalSorter.onUpdate(TileEntityLogisticalSorter.java:114)
at mekanism.common.tile.TileEntityBasicBlock.func_145845_h(TileEntityBasicBlock.java:59)
at net.minecraft.world.World.func_72939_s(World.java:1939)
at net.minecraft.world.WorldServer.func_72939_s(WorldServer.java:489)
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:636)
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:547)
at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:111)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:427)
at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:685)
One more comment, it may be related to adding new items to the source inventory. The sorter vanished when I tried to insert cobble into the chest via a hopper.
Did you add or remove any drawers from the bank while there were items in the mekanism system?
I was able to repro your crash when I added a new drawer. That's not super surprising, because the controller needs to rebuild its slot profile, which is a whole lot of voodoo really. It's probably my fault, and I will poke the Mekanism guys if I really can't understand what their mod is trying to do.
The connection is also a bit unreliable, though for some mods it just seems to be a client side rendering issue.
Oh yeah, thought I'd mention, the reason why those blocks simply disappear is because your server is configured to delete TileEntities that throw a fatal exception while ticking. The alternative is that it would take down your server.
While I cannot be 100% sure, I don't think I added drawers at that time. It could be if the update is one or two seconds delayed.
I believe this is fixed now. Please grab 1.3.2 from the releases section and do some testing.
While Mekanism makes some "assumptions", I don't think any change is needed on their part. There is still a weird issue where an existing transport pipe won't connect to a controller placed next to it. Replacing the pipe will fix it. This might be an FML issue. Pipe connection problems on world load should largely be solved as well.