Controlify

Controlify

609k Downloads

[Bug] UI misbehaves with Controlify 2.0.0-beta.6 for MC 1.20.5

tchatain opened this issue ยท 2 comments

commented

Current Behaviour

Since updating to this new version, the UI buttons no longer behave as before. I have experienced this both on a Steam Deck and on a PC using an Xbox controller.

  • When playing on a server, if I open the in-game menu, the Disconnect option has an image of the Y button on it. When I hit Y, that button gets focus, but the image on it no longer changes to be the A button. The A button still successfully activates it, though.
  • Once disconnected, if I want to back out of the server selection screen, the B button does nothing. I must navigate to the button manually in order to activate it with A.
  • On the title screen screen, hitting the B button to quit the game causes a crash. Manually naigating to the Quit button and activating it with A does not cause the same crash. An example crash log (from the Steam Deck) is attached.

Expected Behaviour

Being able to navigate the menus using the same shortcuts as before.

Screenshots

No response

Reproduction Steps

All three scenarios are outlined in the Current Behaviour section.

Logs

---- Minecraft Crash Report ----
// I blame Dinnerbone.

Time: 2024-04-26 11:26:53
Description: Ticking current controller

java.util.NoSuchElementException: No value present
	at java.base/java.util.Optional.orElseThrow(Optional.java:377)
	at dev.isxander.controlify.screenop.compat.vanilla.TitleScreenProcessor.handleButtons(TitleScreenProcessor.java:19)
	at dev.isxander.controlify.screenop.ScreenProcessor.onControllerUpdate(ScreenProcessor.java:50)
	at dev.isxander.controlify.Controlify.tickController(Controlify.java:548)
	at dev.isxander.controlify.Controlify.lambda$tick$35(Controlify.java:497)
	at dev.isxander.controlify.utils.ControllerUtils.wrapControllerError(ControllerUtils.java:28)
	at dev.isxander.controlify.Controlify.lambda$tick$36(Controlify.java:496)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at dev.isxander.controlify.Controlify.tick(Controlify.java:495)
	at net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents.lambda$static$0(ClientTickEvents.java:34)
	at net.minecraft.class_310.handler$zzm000$fabric-lifecycle-events-v1$onStartTick(class_310.java:3242)
	at net.minecraft.class_310.method_1574(class_310.java)
	at net.minecraft.class_310.method_1523(class_310.java:1281)
	at net.minecraft.class_310.method_1514(class_310.java:888)
	at net.minecraft.client.main.Main.main(Main.java:265)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at org.quiltmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:551)
	at org.quiltmc.loader.impl.launch.knot.Knot.launch(Knot.java:84)
	at org.quiltmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:28)
	at org.prismlauncher.launcher.impl.StandardLauncher.launch(StandardLauncher.java:100)
	at org.prismlauncher.EntryPoint.listen(EntryPoint.java:129)
	at org.prismlauncher.EntryPoint.main(EntryPoint.java:70)


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Thread: Render thread
Stacktrace:
	at java.base/java.util.Optional.orElseThrow(Optional.java:377)
	at dev.isxander.controlify.screenop.compat.vanilla.TitleScreenProcessor.handleButtons(TitleScreenProcessor.java:19)
	at dev.isxander.controlify.screenop.ScreenProcessor.onControllerUpdate(ScreenProcessor.java:50)
	at dev.isxander.controlify.Controlify.tickController(Controlify.java:548)
	at dev.isxander.controlify.Controlify.lambda$tick$35(Controlify.java:497)
	at dev.isxander.controlify.utils.ControllerUtils.wrapControllerError(ControllerUtils.java:28)
	at dev.isxander.controlify.Controlify.lambda$tick$36(Controlify.java:496)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at dev.isxander.controlify.Controlify.tick(Controlify.java:495)
	at net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents.lambda$static$0(ClientTickEvents.java:34)
	at net.minecraft.class_310.handler$zzm000$fabric-lifecycle-events-v1$onStartTick(class_310.java:3242)

-- Affected controller --
Details:
	Controller name: Steam Deck
	Controller identification: Steam Deck
	Controller type: dev.isxander.controlify.controller.ControllerEntity
Stacktrace:
	at dev.isxander.controlify.utils.ControllerUtils.wrapControllerError(ControllerUtils.java:28)
	at dev.isxander.controlify.Controlify.lambda$tick$36(Controlify.java:496)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at dev.isxander.controlify.Controlify.tick(Controlify.java:495)
	at net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents.lambda$static$0(ClientTickEvents.java:34)
	at net.minecraft.class_310.handler$zzm000$fabric-lifecycle-events-v1$onStartTick(class_310.java:3242)
	at net.minecraft.class_310.method_1574(class_310.java)
	at net.minecraft.class_310.method_1523(class_310.java:1281)
	at net.minecraft.class_310.method_1514(class_310.java:888)
	at net.minecraft.client.main.Main.main(Main.java:265)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at org.quiltmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:551)
	at org.quiltmc.loader.impl.launch.knot.Knot.launch(Knot.java:84)
	at org.quiltmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:28)
	at org.prismlauncher.launcher.impl.StandardLauncher.launch(StandardLauncher.java:100)
	at org.prismlauncher.EntryPoint.listen(EntryPoint.java:129)
	at org.prismlauncher.EntryPoint.main(EntryPoint.java:70)

-- Uptime --
Details:
	JVM uptime: 91.872s
	Wall uptime: 81.664s
	High-res time: 80.629s
	Client ticks: 1567 ticks / 78.350s
Stacktrace:
	at net.minecraft.class_310.method_1587(class_310.java:2548)
	at net.minecraft.class_310.method_54580(class_310.java:983)
	at net.minecraft.class_310.method_1514(class_310.java:908)
	at net.minecraft.client.main.Main.main(Main.java:265)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at org.quiltmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:551)
	at org.quiltmc.loader.impl.launch.knot.Knot.launch(Knot.java:84)
	at org.quiltmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:28)
	at org.prismlauncher.launcher.impl.StandardLauncher.launch(StandardLauncher.java:100)
	at org.prismlauncher.EntryPoint.listen(EntryPoint.java:129)
	at org.prismlauncher.EntryPoint.main(EntryPoint.java:70)

-- Last reload --
Details:
	Reload number: 1
	Reload reason: initial
	Finished: Yes
	Packs: vanilla, fabric, controlify, fabric-api, fabric-api-base, fabric-api-lookup-api-v1, fabric-biome-api-v1, fabric-block-api-v1, fabric-block-view-api-v2, fabric-blockrenderlayer-v1, fabric-client-tags-api-v1, fabric-command-api-v1, fabric-command-api-v2, fabric-commands-v0, fabric-content-registries-v0, fabric-convention-tags-v1, fabric-convention-tags-v2, fabric-crash-report-info-v1, fabric-data-attachment-api-v1, fabric-data-generation-api-v1, fabric-dimensions-v1, fabric-entity-events-v1, fabric-events-interaction-v0, fabric-game-rule-api-v1, fabric-item-api-v1, fabric-item-group-api-v1, fabric-key-binding-api-v1, fabric-keybindings-v0, fabric-lifecycle-events-v1, fabric-loot-api-v2, fabric-message-api-v1, fabric-model-loading-api-v1, fabric-models-v0, fabric-networking-api-v1, fabric-object-builder-api-v1, fabric-particles-v1, fabric-recipe-api-v1, fabric-registry-sync-v0, fabric-renderer-api-v1, fabric-renderer-indigo, fabric-renderer-registries-v1, fabric-rendering-data-attachment-v1, fabric-rendering-fluids-v1, fabric-rendering-v0, fabric-rendering-v1, fabric-resource-conditions-api-v1, fabric-resource-loader-v0, fabric-screen-api-v1, fabric-screen-handler-api-v1, fabric-sound-api-v1, fabric-transfer-api-v1, fabric-transitive-access-wideners-v1, quilt_loader, yet_another_config_lib_v3

-- System Details --
Details:
	Minecraft Version: 1.20.5
	Minecraft Version ID: 1.20.5
	Operating System: Linux (amd64) version 6.1.52-valve16-1-neptune-61
	Java Version: 21.0.2, Flathub
	Java VM Version: OpenJDK 64-Bit Server VM (mixed mode, sharing), Flathub
	Memory: 514497528 bytes (490 MiB) / 1082130432 bytes (1032 MiB) up to 4294967296 bytes (4096 MiB)
	CPUs: 8
	Processor Vendor: AuthenticAMD
	Processor Name: AMD Custom APU 0405
	Identifier: AuthenticAMD Family 23 Model 144 Stepping 2
	Microarchitecture: unknown
	Frequency (GHz): -0.00
	Number of physical packages: 1
	Number of physical CPUs: 4
	Number of logical CPUs: 8
	Graphics card #0 name: VanGogh [AMD Custom GPU 0405]
	Graphics card #0 vendor: Advanced Micro Devices, Inc. [AMD/ATI] (0x1002)
	Graphics card #0 VRAM (MB): 258.00
	Graphics card #0 deviceId: 0x163f
	Graphics card #0 versionInfo: unknown
	Virtual memory max (MB): 8431.21
	Virtual memory used (MB): 4316.05
	Swap memory total (MB): 1024.00
	Swap memory used (MB): 0.00
	JVM Flags: 2 total; -Xms512m -Xmx4096m
	Fabric Mods: 
		controlify: Controlify 2.0.0-beta.6+1.20.5
			dev_isxander_libsdl4j: libsdl4j 3.693c75e-36
			org_hid4java_hid4java: hid4java 0.7.0
			org_quiltmc_parsers_gson: gson 0.3.0
			org_quiltmc_parsers_json: json 0.3.0
		fabric-api: Fabric API 0.97.6+1.20.5
			fabric-api-base: Fabric API Base 0.4.40+80f8cf510d
			fabric-api-lookup-api-v1: Fabric API Lookup API (v1) 1.6.59+e9d2a72b0d
			fabric-biome-api-v1: Fabric Biome API (v1) 13.0.24+76551cf60d
			fabric-block-api-v1: Fabric Block API (v1) 1.0.20+6dfe4c9b0d
			fabric-block-view-api-v2: Fabric BlockView API (v2) 1.0.8+80f8cf510d
			fabric-blockrenderlayer-v1: Fabric BlockRenderLayer Registration (v1) 1.1.50+80f8cf510d
			fabric-client-tags-api-v1: Fabric Client Tags 1.1.12+7f945d5b0d
			fabric-command-api-v1: Fabric Command API (v1) 1.2.45+f71b366f0d
			fabric-command-api-v2: Fabric Command API (v2) 2.2.24+80f8cf510d
			fabric-commands-v0: Fabric Commands (v0) 0.2.62+df3654b30d
			fabric-content-registries-v0: Fabric Content Registries (v0) 8.0.4+b82b23920d
			fabric-convention-tags-v1: Fabric Convention Tags 2.0.3+7f945d5b0d
			fabric-convention-tags-v2: Fabric Convention Tags (v2) 2.0.0+2b43c5c80d
			fabric-crash-report-info-v1: Fabric Crash Report Info (v1) 0.2.27+80f8cf510d
			fabric-data-attachment-api-v1: Fabric Data Attachment API (v1) 1.1.15+2a2c66b60d
			fabric-data-generation-api-v1: Fabric Data Generation API (v1) 19.0.5+7f945d5b0d
			fabric-dimensions-v1: Fabric Dimensions API (v1) 2.1.68+947939130d
			fabric-entity-events-v1: Fabric Entity Events (v1) 1.6.8+e9d2a72b0d
			fabric-events-interaction-v0: Fabric Events Interaction (v0) 0.7.6+c5fc38b30d
			fabric-game-rule-api-v1: Fabric Game Rule API (v1) 1.0.50+80f8cf510d
			fabric-item-api-v1: Fabric Item API (v1) 8.1.1+17e985d60d
			fabric-item-group-api-v1: Fabric Item Group API (v1) 4.0.38+aae0949a0d
			fabric-key-binding-api-v1: Fabric Key Binding API (v1) 1.0.45+80f8cf510d
			fabric-keybindings-v0: Fabric Key Bindings (v0) 0.2.43+df3654b30d
			fabric-lifecycle-events-v1: Fabric Lifecycle Events (v1) 2.3.4+c5fc38b30d
			fabric-loot-api-v2: Fabric Loot API (v2) 3.0.4+97f703da0d
			fabric-message-api-v1: Fabric Message API (v1) 6.0.10+109a837c0d
			fabric-model-loading-api-v1: Fabric Model Loading API (v1) 1.0.12+80f8cf510d
			fabric-models-v0: Fabric Models (v0) 0.4.11+9386d8a70d
			fabric-networking-api-v1: Fabric Networking API (v1) 4.0.7+9342ba640d
			fabric-object-builder-api-v1: Fabric Object Builder API (v1) 15.1.3+c5fc38b30d
			fabric-particles-v1: Fabric Particles (v1) 4.0.0+c5fc38b30d
			fabric-recipe-api-v1: Fabric Recipe API (v1) 5.0.2+c5fc38b30d
			fabric-registry-sync-v0: Fabric Registry Sync (v0) 5.0.14+f1240ba70d
			fabric-renderer-api-v1: Fabric Renderer API (v1) 3.2.12+97f703da0d
			fabric-renderer-indigo: Fabric Renderer - Indigo 1.5.12+80f8cf510d
			fabric-renderer-registries-v1: Fabric Renderer Registries (v1) 3.2.61+df3654b30d
			fabric-rendering-data-attachment-v1: Fabric Rendering Data Attachment (v1) 0.3.46+73761d2e0d
			fabric-rendering-fluids-v1: Fabric Rendering Fluids (v1) 3.1.3+2c869ded0d
			fabric-rendering-v0: Fabric Rendering (v0) 1.1.64+df3654b30d
			fabric-rendering-v1: Fabric Rendering (v1) 4.2.4+b21c00cb0d
			fabric-resource-conditions-api-v1: Fabric Resource Conditions API (v1) 4.0.1+74e2f5600d
			fabric-resource-loader-v0: Fabric Resource Loader (v0) 1.0.5+c5f2432c0d
			fabric-screen-api-v1: Fabric Screen API (v1) 2.0.21+7b70ea8a0d
			fabric-screen-handler-api-v1: Fabric Screen Handler API (v1) 1.3.71+b21c00cb0d
			fabric-sound-api-v1: Fabric Sound API (v1) 1.0.21+c5fc38b30d
			fabric-transfer-api-v1: Fabric Transfer API (v1) 5.1.6+c5fc38b30d
			fabric-transitive-access-wideners-v1: Fabric Transitive Access Wideners (v1) 6.0.10+74e2f5600d
		java: OpenJDK 64-Bit Server VM 21
		minecraft: Minecraft 1.20.5
		quilt_loader: Quilt Loader 0.25.0
			mixinextras: MixinExtras 0.3.5
		yet_another_config_lib_v3: YetAnotherConfigLib 3.4.1+1.20.5-fabric
			com_twelvemonkeys_common_common-image: common-image 3.10.0
			com_twelvemonkeys_common_common-io: common-io 3.10.0
			com_twelvemonkeys_common_common-lang: common-lang 3.10.0
			com_twelvemonkeys_imageio_imageio-core: imageio-core 3.10.0
			com_twelvemonkeys_imageio_imageio-metadata: imageio-metadata 3.10.0
			com_twelvemonkeys_imageio_imageio-webp: imageio-webp 3.10.0
	Launched Version: 1.20.5
	Launcher name: PrismLauncher
	Backend library: LWJGL version 3.3.3+5
	Backend API: AMD Custom GPU 0405 (radeonsi, vangogh, LLVM 17.0.6, DRM 3.54, 6.1.52-valve16-1-neptune-61) GL version 4.6 (Core Profile) Mesa 24.0.5 (git-7737614720), AMD
	Window size: 1280x800
	GL Caps: Using framebuffer using OpenGL 3.2
	GL debug messages: 
	Using VBOs: Yes
	Is Modded: Definitely; Client brand changed to 'quilt'
	Universe: 400921fb54442d18
	Type: Client (map_client.txt)
	Graphics mode: fancy
	Render Distance: 10/12 chunks
	Resource Packs: vanilla, fabric, controlify, fabric-api, fabric-api-base, fabric-api-lookup-api-v1, fabric-biome-api-v1, fabric-block-api-v1, fabric-block-view-api-v2, fabric-blockrenderlayer-v1, fabric-client-tags-api-v1, fabric-command-api-v1, fabric-command-api-v2, fabric-commands-v0, fabric-content-registries-v0, fabric-convention-tags-v1, fabric-convention-tags-v2, fabric-crash-report-info-v1, fabric-data-attachment-api-v1, fabric-data-generation-api-v1, fabric-dimensions-v1, fabric-entity-events-v1, fabric-events-interaction-v0, fabric-game-rule-api-v1, fabric-item-api-v1, fabric-item-group-api-v1, fabric-key-binding-api-v1, fabric-keybindings-v0, fabric-lifecycle-events-v1, fabric-loot-api-v2, fabric-message-api-v1, fabric-model-loading-api-v1, fabric-models-v0, fabric-networking-api-v1, fabric-object-builder-api-v1, fabric-particles-v1, fabric-recipe-api-v1, fabric-registry-sync-v0, fabric-renderer-api-v1, fabric-renderer-indigo, fabric-renderer-registries-v1, fabric-rendering-data-attachment-v1, fabric-rendering-fluids-v1, fabric-rendering-v0, fabric-rendering-v1, fabric-resource-conditions-api-v1, fabric-resource-loader-v0, fabric-screen-api-v1, fabric-screen-handler-api-v1, fabric-sound-api-v1, fabric-transfer-api-v1, fabric-transitive-access-wideners-v1, quilt_loader, yet_another_config_lib_v3 (incompatible)
	Current Language: en_us
	Locale: en_US
	CPU: 8x AMD Custom APU 0405

Mod Version

2.0.0-beta.6 for MC 1.20.5

Controller

Steam Deck and Xbox Series X|S Wireless Controller

Bluetooth

  • Yes

Operating System

Linux/SteamOS

ARM

  • Yes

Additional Information

No response

Just to make sure...

  • I have made sure I am using the latest version of Controlify for the latest version of Minecraft.
  • I have made sure there are no other issues describing the same problem on the issue tracker.
commented

Fixed in 96ae801

commented

That was quick! Thanks for all your work!