Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Game crashes after removing the button that's binded to "Tabbing Modifier" #5201

Open
SomethingSomethingV2 opened this issue Dec 29, 2023 · 2 comments

Comments

@SomethingSomethingV2
Copy link

SomethingSomethingV2 commented Dec 29, 2023

Here's a link to a video that shows how the crash happens just in case my wording wasn't clear: https://drive.google.com/file/d/1ap5nYbMuf7ehEqr_nRKmfU-uITtknaEV/view?usp=sharing

This is the version I was playing on:
image

11:35:08.262 [main] WARN  o.t.e.rendering.nui.asset.UIFormat - Field 'columnRatios' not recognized for interface org.terasology.nui.UIWidget in {"type":"RowLayout","columnRatios":0.4,"horizontalSpacing":12,"contents":[{"type":"UILabel","text":"NEO"},{"type":"UIButton","text":"${engine:menu#input-settings-apply}","id":"neo"}]}
11:35:35.348 [main] ERROR o.t.engine.core.TerasologyEngine - Uncaught exception, attempting clean game shutdown
java.lang.NullPointerException: null
        at java.base/java.util.Objects.requireNonNull(Objects.java:233)
        at java.base/java.util.Optional.of(Optional.java:113)
        at java.base/java.util.stream.FindOps$FindSink$OfRef.get(FindOps.java:194)
        at java.base/java.util.stream.FindOps$FindSink$OfRef.get(FindOps.java:191)
        at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
        at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:647)
        at org.terasology.engine.rendering.nui.layers.mainMenu.inputSettings.InputSettingsScreen.onClosed(InputSettingsScreen.java:306)
        at org.terasology.engine.rendering.nui.internal.NUIManagerInternal.onCloseScreen(NUIManagerInternal.java:283)
        at org.terasology.engine.rendering.nui.internal.NUIManagerInternal.closeScreen(NUIManagerInternal.java:278)
        at org.terasology.engine.rendering.nui.internal.NUIManagerInternal.popScreen(NUIManagerInternal.java:449)
        at org.terasology.engine.rendering.nui.animation.MenuAnimationSystemStub.triggerToPrev(MenuAnimationSystemStub.java:22)
        at org.terasology.engine.rendering.nui.animation.DeferredMenuAnimationSystem.triggerToPrev(DeferredMenuAnimationSystem.java:28)
        at org.terasology.engine.rendering.nui.CoreScreenLayer.triggerBackAnimation(CoreScreenLayer.java:365)
        at org.terasology.engine.rendering.nui.layers.mainMenu.inputSettings.InputSettingsScreen.lambda$initialise$4(InputSettingsScreen.java:174)
        at org.terasology.nui.ActivatableWidget.activateWidget(ActivatableWidget.java:46)
        at org.terasology.nui.widgets.UIButton.activateWidget(UIButton.java:203)
        at org.terasology.nui.widgets.UIButton$1.onMouseRelease(UIButton.java:94)
        at org.terasology.nui.canvas.CanvasImpl.processMouseRelease(CanvasImpl.java:266)
        at org.terasology.engine.rendering.nui.internal.NUIManagerInternal.mouseButtonEvent(NUIManagerInternal.java:678)
        at org.terasology.engine.rendering.nui.internal.NUIManagerInternalMethodAccess.invoke(Unknown Source)
        at org.terasology.engine.entitySystem.event.internal.EventSystemImpl$ByteCodeEventHandlerInfo.invoke(EventSystemImpl.java:399)
        at org.terasology.engine.entitySystem.event.internal.EventSystemImpl.sendConsumableEvent(EventSystemImpl.java:274)
        at org.terasology.engine.entitySystem.event.internal.EventSystemImpl.send(EventSystemImpl.java:253)
        at org.terasology.engine.core.bootstrap.eventSystem.AbstractEventSystemDecorator.send(AbstractEventSystemDecorator.java:67)
        at org.terasology.engine.network.NetworkEventSystemDecorator.send(NetworkEventSystemDecorator.java:54)
        at org.terasology.engine.core.bootstrap.eventSystem.AbstractEventSystemDecorator.send(AbstractEventSystemDecorator.java:67)
        at org.terasology.engine.recording.RecordingEventSystemDecorator.send(RecordingEventSystemDecorator.java:32)
        at org.terasology.engine.entitySystem.entity.internal.BaseEntityRef.send(BaseEntityRef.java:188)
        at org.terasology.engine.input.InputSystem.send(InputSystem.java:525)
        at org.terasology.engine.input.InputSystem.sendMouseEvent(InputSystem.java:497)
        at org.terasology.engine.input.InputSystem.processMouseButtonInput(InputSystem.java:217)
        at org.terasology.engine.input.InputSystem.processMouseInput(InputSystem.java:196)
        at org.terasology.engine.input.InputSystem.update(InputSystem.java:131)
        at org.terasology.engine.core.modes.StateMainMenu.handleInput(StateMainMenu.java:114)
        at org.terasology.engine.core.subsystem.lwjgl.LwjglInput.postUpdate(LwjglInput.java:39)
        at org.terasology.engine.core.TerasologyEngine.tick(TerasologyEngine.java:521)
        at org.terasology.engine.core.TerasologyEngine.mainLoop(TerasologyEngine.java:472)
        at org.terasology.engine.core.TerasologyEngine.runMain(TerasologyEngine.java:448)
        at org.terasology.engine.core.TerasologyEngine.run(TerasologyEngine.java:414)
        at org.terasology.engine.Terasology.call(Terasology.java:189)
        at org.terasology.engine.Terasology.call(Terasology.java:69)
        at picocli.CommandLine.executeUserObject(CommandLine.java:1933)
        at picocli.CommandLine.access$1200(CommandLine.java:145)
        at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2332)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2326)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2291)
        at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2159)
        at picocli.CommandLine.execute(CommandLine.java:2058)
        at org.terasology.engine.Terasology.main(Terasology.java:138)
11:35:35.349 [main] INFO  o.t.engine.core.TerasologyEngine - Shutting down Terasology...

@soloturn
Copy link
Contributor

added the exception.

@BenjaminAmos
Copy link
Contributor

bindsConf.getBinds(new SimpleUri("engine:tabbingModifier")).stream().findFirst().ifPresent(input -> {
TabbingManager.tabBackInputModifier = input;
});

I'm going to take a guess and say that bindsConf.getBinds(new SimpleUri("engine:tabbingModifier")) returns null?

NUI has some special behaviour for the tab key which allows for tabbing through UIs. Some things may have been slightly broken when we moved the NUI code into https://github.com/MovingBlocks/TeraNUI.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
Status: No status
Development

No branches or pull requests

4 participants