GTNewHorizons / GT-New-Horizons-Modpack

New Modpack with Gregtech, Thaumcraft and Witchery
https://www.gtnewhorizons.com/
Other
887 stars 276 forks source link

Crash caused by ModularUI #16484

Open skyinr opened 4 weeks ago

skyinr commented 4 weeks ago

Your GTNH Discord Username

No response

Your Pack Version

2.6.0

Your Server

private server

Java Version

Java 17

Type of Server

None

Your Actions

  1. Build IAADDS
  2. Add multiple bees
  3. Double click on the bees in the inventory
  4. crash Extreme Industrial Greenhouse also has the same problem

Crash Report

https://mclo.gs/Nmwapqy

Final Checklist

github-actions[bot] commented 4 weeks ago

Found 1 linked crash report(s)

Primitive Automated Analysis of Crash Report

https://mclo.gs/Nmwapqy

Stacktrace
java.util.NoSuchElementException: Can't find id for ISyncedWidget
  at com.gtnewhorizons.modularui.api.screen.ModularWindow.getSyncedWidgetId(ModularWindow.java:441)
  at com.gtnewhorizons.modularui.api.screen.ModularUIContext.sendClientPacket(ModularUIContext.java:417)
  at com.gtnewhorizons.modularui.api.widget.ISyncedWidget.syncToServer(ISyncedWidget.java:60)
  at com.gtnewhorizons.modularui.common.widget.ButtonWidget.onClick(ButtonWidget.java:97)
  at com.gtnewhorizons.modularui.common.internal.wrapper.ModularGui.mouseClicked(ModularGui.java:502)
  at net.minecraft.client.gui.GuiScreen.handleMouseInput(GuiScreen.java:296)
  at net.minecraft.client.gui.inventory.GuiContainer.handleMouseInput(GuiContainer.java)
  at net.minecraft.client.gui.GuiScreen.handleInput(GuiScreen.java:268)
  at net.minecraft.client.Minecraft.runTick(Minecraft.java:1640)
  at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:973)
  at net.minecraft.client.Minecraft.run(Minecraft.java:5110)
  at net.minecraft.client.main.Main.main(SourceFile:148)
  at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
  at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:568)
  at net.minecraft.launchwrapper.Launch.rfb$realLaunch(Launch.java:250)
  at net.minecraft.launchwrapper.Launch.launch(Launch.java:35)
  at net.minecraft.launchwrapper.Launch.main(Launch.java:60)
  at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
  at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:568)
  at com.gtnewhorizons.retrofuturabootstrap.Main.main(Main.java:219)
  at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
  at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:568)
  at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:243)
  at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:278)
  at org.multimc.EntryPoint.listen(EntryPoint.java:143)
  at org.multimc.EntryPoint.main(EntryPoint.java:34)
Missing 1 mods
  • angelica-1.0.0-alpha40.jar
Added 10 mods
  • laggoggles-mc1.7.10-4.14.0.jar (LagGoggles)
  • not_enough_elements-1.7.10-1.0.0-1-g932c88b.dirty.jar (NotEnoughElements)
  • gtnn-v1.4.2.jar (GTNN)
  • JustEnoughCalculation-1.7.10-3.8.6.jar (Just Enough Calculation)
  • angelica-1.0.0-alpha50.jar (Embeddium)
  • falsepatternlib-mc1.7.10-0.11.3.jar (FalsePatternLib)
  • SmoothFont-1.7.10-1.15.3.jar (Smooth Font)
  • FullscreenWindowed-1.7.10-1.3.0b.jar (Fullscreen Windowed)
  • SkinPort-1.7.10-v10d.jar (SkinPort)
  • elytra_mining-1.7.10-1.2.0.1.jar (Elytra Mining)
C0bra5 commented 3 weeks ago

This is caused by the fact the inventory UI for the EIG and MApiary is completely recreated every time it's updated. This means that if you fire events fast enough (eg quickly interacting with some UI element), MUI will attempt to resolve an event to a widget that no longer exists, causing an NPE.

I want to give a shot at fixing this in a future update, but I don't feel confident enough with MUI to say that I know exactly how to address this issue anytime soon.