Alchemistry

Alchemistry

19M Downloads

Combiner crashing 1.20.1

aAndrew3030 opened this issue · 11 comments

commented

Clicked the plus button in JEI to add the recipe to the combiner and it crashes the game.

crash-2023-07-10_21.13.08-client.txt

commented

The Combiner Crash is fixed - Thanks a lot! ATM 0.0.41 with alchemistry-1.20.1-2.3.1 & alchemylib-1.20.1-1.0.29.jar runs without clientside crashes - i have tried some recepies.

Another issue still persists though, whenever something is automatically inserted to the input slots of the combiner , it is not proceeding (but drawing Power) until the GUI gets opened manually by a Player - even when it is the same recepie it has proceeded before. Mentioned it in #314

commented

Ok just as a quick update, I've added Rubidium to my development environment to replicate. I was able to replicate the issue and track it down to the exact cause. Rubidium is attempting to cast the VertexConsumer to it's own custom interface . . which is only in Rubidium. So it accounts for its own mixin'd versions of things in the base game but doesn't allow for other implementations.

image
image

Rubidium is overwriting the renderModelLists method used in the ItemRenderer class. On the first line, it's casting the VertexConsumer to its own interface. Since my code doesn't depend on or use this interface and has no implementation for their push method, it will not be able to cast and will cause a crash.

There are a few optional fixes:

  • Rubidium can fix itself for any other mod that has a custom VertexConsumer when rendering an item.
  • I can attempt to rewrite the VertexConsumer for rendering a fake item in such a way that it doesn't have an issue with Rubidium, though I have no idea how best to do this as I don't know the internals of that mod and what it's attempting to accomplish with that interface.
  • ATM9 can remove Rubidium --- lol I know this isn't a real option as large modpacks need mods like Rubidium to make them playable.
  • I can use the new GuiGraphics#renderFakeItem method. It doesn't have optional opacity, so the item will look as those it's actually in the slot and might be confusing.

Realistically, the last option might be the only option for right now to prevent this crash. I can revisit other options later.

commented

OK SCRATCH EVERYTHING ABOVE. I figured out how to get around this by setting the shader color!

commented

Just Tried Running ATM 9 0.0.39 with AlchemyLib - 1.20.1-1.0.26 - This is what i get https://mclo.gs/IXFlT2t

java.lang.NoSuchMethodError: 'void com.smashingmods.alchemylib.api.blockentity.container.FakeItemRenderer.renderFakeItem(net.minecraft.world.item.ItemStack, int, int, float)'

commented

Just Tried Running ATM 9 0.0.39 with AlchemyLib - 1.20.1-1.0.26 - This is what i get https://mclo.gs/IXFlT2t

java.lang.NoSuchMethodError: 'void com.smashingmods.alchemylib.api.blockentity.container.FakeItemRenderer.renderFakeItem(net.minecraft.world.item.ItemStack, int, int, float)'

When i open the empty Combiner GUI

commented

Because it's not done yet. I haven't fixed it in Alchemistry. I just pushed some changed to AlchemyLib to be able to test in Alchemistry. Please wait.

commented

Just as an FYI, I pushed an update for AlchemyLib and Alchemistry that should fix that problem and improve some other stuff. Please report back testing with ATM9. If there are no more issues with crashing related to Rubidium, we can close this.

commented

I can't replicate your issue. I've used the same version of Forge, but I'm not using any of the mods you've added. The issue you are having is most likely caused by another mod you have loaded creating an incompatibility. Given that Alchemistry works on its own, it's not really something I can fix.

If you can narrow down the mod causing the issue, it's possible I could find a way to fix it on my end (if it's indeed an issue in my code). To do that, you will want to follow these instructions:

  1. Create a backup of your world.
  2. Load your backed up world and confirm that the issue does happen again every time you try the same thing with the combiner.
  3. If it does, remove half of your mods and try again with a fresh copy of your backed up world.
    3a) If you don't get the same issue, you know it was caused by a mod in the half you pulled out, so add half of them back in again.
    3b) If you do, the issue is with a mod you left in, remove another half of the mods and load with a fresh copy again.
  4. Repeat step 3 until you narrow it down to a single mod or set of mods that always cause a crash.

I need this info from you as I may not be able to replicate it even if I load all the same stuff. If you can get that info to me, I will see what I can do to help. Thanks.

commented

It is Rubidium trying to render the combiner screen

crash-2023-07-14_21.25.31-client.txt

commented

It's because of my custom fake item renderer. I think Minecraft added a new way to render a fake item to the screen, so I'll look into that. With any luck, it not only exists but rubidium supports that method.

commented

I'm working through the issues as time permits.