[Bug] Crash: YACL OptionListWidget cannot be cast to Minecraft EntryListWidget.Entry
JetbladeDevsStuff opened this issue ยท 1 comments
Current Behaviour
NOT reproducible on Minecraft 1.20.6, Controlify 2.0.0-beta.12+1.20.6-fabric, YACL 3.5.0+1.20.6-fabric. IS reproducibile on Minecraft 1.21, Controlify 2.0.0-beta.12+1.21-fabric, YACL 3.5.0+1.21-fabric.
Environment (shouldn't matter): macOS aarch64, OpenJDK 21.0.3, Prism Launcher 8.3, DualSense Controller.
Expected Behaviour
The game correctly selects the next tab. Note that the game works as expected if clicking on the tab. This crash also occurs with any YACL EntryListWidgetExt(?), such as the Controlify Global Settings, even though it does not have any tabs. The crash does NOT occur with Vanilla EntryListWidgets, such as the world generation menu.
Screenshots
No response
Reproduction Steps
Steps to reproduce from fresh install (Prism Launcher instance):
- Download libSDL
- Complete calibration
- Done
- Continue at Narrator prompt
- With mouse or controller: Options > Controls... > Controller Settings... > (any controller) Settings
- With controller: press either bumper to select next / prev tab
- Crash
Logs
---- Minecraft Crash Report ----
// I let you down. Sorry :(
Time: 2024-06-14 17:56:35
Description: Ticking current controller
java.lang.ClassCastException: class dev.isxander.yacl3.gui.OptionListWidget cannot be cast to class net.minecraft.client.gui.widget.EntryListWidget$Entry (dev.isxander.yacl3.gui.OptionListWidget and net.minecraft.client.gui.widget.EntryListWidget$Entry are in unnamed module of loader net.fabricmc.loader.impl.launch.knot.KnotClassLoader @2096442d)
at MC//net.minecraft.client.gui.widget.EntryListWidget.getFocused(EntryListWidget.java:86)
at MC//net.minecraft.client.gui.widget.ElementListWidget.setFocused(ElementListWidget.java:78)
at dev.isxander.controlify.compatibility.yacl.screenop.YACLScreenProcessor.onTabChanged(YACLScreenProcessor.java:44)
at dev.isxander.controlify.screenop.ScreenProcessor.lambda$handleTabNavigation$3(ScreenProcessor.java:229)
at [email protected]/java.util.Optional.ifPresent(Optional.java:178)
at dev.isxander.controlify.screenop.ScreenProcessor.handleTabNavigation(ScreenProcessor.java:219)
at dev.isxander.controlify.screenop.ScreenProcessor.onControllerUpdate(ScreenProcessor.java:57)
at dev.isxander.controlify.Controlify.tickController(Controlify.java:564)
at dev.isxander.controlify.Controlify.lambda$tick$41(Controlify.java:513)
at dev.isxander.controlify.utils.ControllerUtils.wrapControllerError(ControllerUtils.java:28)
at dev.isxander.controlify.Controlify.lambda$tick$42(Controlify.java:512)
at [email protected]/java.util.Optional.ifPresent(Optional.java:178)
at dev.isxander.controlify.Controlify.tick(Controlify.java:511)
at net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents.lambda$static$0(ClientTickEvents.java:34)
at MC//net.minecraft.client.MinecraftClient.handler$zik000$fabric-lifecycle-events-v1$onStartTick(MinecraftClient.java:7178)
at MC//net.minecraft.client.MinecraftClient.tick(MinecraftClient.java)
at MC//net.minecraft.client.MinecraftClient.render(MinecraftClient.java:1246)
at MC//net.minecraft.client.MinecraftClient.run(MinecraftClient.java:882)
at net.minecraft.client.main.Main.main(Main.java:256)
at app//net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:470)
at app//net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74)
at app//net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)
at app//org.prismlauncher.launcher.impl.StandardLauncher.launch(StandardLauncher.java:100)
at app//org.prismlauncher.EntryPoint.listen(EntryPoint.java:129)
at app//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 MC//net.minecraft.client.gui.widget.EntryListWidget.getFocused(EntryListWidget.java:86)
at MC//net.minecraft.client.gui.widget.ElementListWidget.setFocused(ElementListWidget.java:78)
at dev.isxander.controlify.compatibility.yacl.screenop.YACLScreenProcessor.onTabChanged(YACLScreenProcessor.java:44)
at dev.isxander.controlify.screenop.ScreenProcessor.lambda$handleTabNavigation$3(ScreenProcessor.java:229)
at [email protected]/java.util.Optional.ifPresent(Optional.java:178)
at dev.isxander.controlify.screenop.ScreenProcessor.handleTabNavigation(ScreenProcessor.java:219)
at dev.isxander.controlify.screenop.ScreenProcessor.onControllerUpdate(ScreenProcessor.java:57)
at dev.isxander.controlify.Controlify.tickController(Controlify.java:564)
at dev.isxander.controlify.Controlify.lambda$tick$41(Controlify.java:513)
at dev.isxander.controlify.utils.ControllerUtils.wrapControllerError(ControllerUtils.java:28)
at dev.isxander.controlify.Controlify.lambda$tick$42(Controlify.java:512)
at [email protected]/java.util.Optional.ifPresent(Optional.java:178)
at dev.isxander.controlify.Controlify.tick(Controlify.java:511)
at net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents.lambda$static$0(ClientTickEvents.java:34)
at MC//net.minecraft.client.MinecraftClient.handler$zik000$fabric-lifecycle-events-v1$onStartTick(MinecraftClient.java:7178)
-- Affected controller --
Details:
Controller name: DualSense Controller
Controller identification: DualSense Controller
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$42(Controlify.java:512)
at [email protected]/java.util.Optional.ifPresent(Optional.java:178)
at dev.isxander.controlify.Controlify.tick(Controlify.java:511)
at net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents.lambda$static$0(ClientTickEvents.java:34)
at MC//net.minecraft.client.MinecraftClient.handler$zik000$fabric-lifecycle-events-v1$onStartTick(MinecraftClient.java:7178)
at MC//net.minecraft.client.MinecraftClient.tick(MinecraftClient.java)
at MC//net.minecraft.client.MinecraftClient.render(MinecraftClient.java:1246)
at MC//net.minecraft.client.MinecraftClient.run(MinecraftClient.java:882)
at net.minecraft.client.main.Main.main(Main.java:256)
at app//net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:470)
at app//net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74)
at app//net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)
at app//org.prismlauncher.launcher.impl.StandardLauncher.launch(StandardLauncher.java:100)
at app//org.prismlauncher.EntryPoint.listen(EntryPoint.java:129)
at app//org.prismlauncher.EntryPoint.main(EntryPoint.java:70)
-- Uptime --
Details:
JVM uptime: 44.172s
Wall uptime: 38.204s
High-res time: 37.581s
Client ticks: 720 ticks / 36.000s
Stacktrace:
at MC//net.minecraft.client.MinecraftClient.addDetailsToCrashReport(MinecraftClient.java:2501)
at MC//net.minecraft.client.MinecraftClient.printCrashReport(MinecraftClient.java:949)
at MC//net.minecraft.client.MinecraftClient.run(MinecraftClient.java:902)
at net.minecraft.client.main.Main.main(Main.java:256)
at app//net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:470)
at app//net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74)
at app//net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)
at app//org.prismlauncher.launcher.impl.StandardLauncher.launch(StandardLauncher.java:100)
at app//org.prismlauncher.EntryPoint.listen(EntryPoint.java:129)
at app//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-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, fabricloader, stackdeobfuscator, yet_another_config_lib_v3
-- System Details --
Details:
Minecraft Version: 1.21
Minecraft Version ID: 1.21
Operating System: Mac OS X (aarch64) version 14.0
Java Version: 21.0.3, Homebrew
Java VM Version: OpenJDK 64-Bit Server VM (mixed mode, sharing), Homebrew
Memory: 277590576 bytes (264 MiB) / 922746880 bytes (880 MiB) up to 4294967296 bytes (4096 MiB)
CPUs: 8
Processor Vendor: Apple Inc.
Processor Name: Apple M2
Identifier: Apple Inc. Family 0xda33d83d Model 0 Stepping 0
Microarchitecture: ARM64 SoC: Avalanche + Blizzard
Frequency (GHz): 3.50
Number of physical packages: 1
Number of physical CPUs: 8
Number of logical CPUs: 8
Graphics card #0 name: Apple M2
Graphics card #0 vendor: Apple (0x106b)
Graphics card #0 VRAM (MiB): 0.00
Graphics card #0 deviceId: unknown
Graphics card #0 versionInfo: unknown
Memory slot #0 capacity (MiB): 0.00
Memory slot #0 clockSpeed (GHz): 0.00
Memory slot #0 type: unknown
Virtual memory max (MiB): 20480.00
Virtual memory used (MiB): 16267.47
Swap memory total (MiB): 4096.00
Swap memory used (MiB): 3601.13
Space in storage for jna.tmpdir (MiB): <path not set>
Space in storage for org.lwjgl.system.SharedLibraryExtractPath (MiB): <path not set>
Space in storage for io.netty.native.workdir (MiB): <path not set>
Space in storage for java.io.tmpdir (MiB): available: 19539.98, total: 471482.09
Space in storage for workdir (MiB): available: 19539.98, total: 471482.09
JVM Flags: 2 total; -Xms512m -Xmx4096m
Fabric Mods:
controlify: Controlify 2.0.0-beta.12+1.21-fabric
dev_isxander_libsdl4j: libsdl4j 3.6896c4c-37
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.100.1+1.21
fabric-api-base: Fabric API Base 0.4.42+6573ed8c90
fabric-api-lookup-api-v1: Fabric API Lookup API (v1) 1.6.65+b559734490
fabric-biome-api-v1: Fabric Biome API (v1) 13.0.28+6fc22b9990
fabric-block-api-v1: Fabric Block API (v1) 1.0.22+0af3f5a790
fabric-block-view-api-v2: Fabric BlockView API (v2) 1.0.10+6573ed8c90
fabric-blockrenderlayer-v1: Fabric BlockRenderLayer Registration (v1) 1.1.52+0af3f5a790
fabric-client-tags-api-v1: Fabric Client Tags 1.1.15+6573ed8c90
fabric-command-api-v1: Fabric Command API (v1) 1.2.48+f71b366f90
fabric-command-api-v2: Fabric Command API (v2) 2.2.27+6a6dfa1990
fabric-commands-v0: Fabric Commands (v0) 0.2.65+df3654b390
fabric-content-registries-v0: Fabric Content Registries (v0) 8.0.11+b559734490
fabric-convention-tags-v1: Fabric Convention Tags 2.0.12+7f945d5b90
fabric-convention-tags-v2: Fabric Convention Tags (v2) 2.2.1+d153f34490
fabric-crash-report-info-v1: Fabric Crash Report Info (v1) 0.2.29+0af3f5a790
fabric-data-attachment-api-v1: Fabric Data Attachment API (v1) 1.1.22+6a6dfa1990
fabric-data-generation-api-v1: Fabric Data Generation API (v1) 20.2.6+16c4ae2590
fabric-dimensions-v1: Fabric Dimensions API (v1) 4.0.0+6fc22b9990
fabric-entity-events-v1: Fabric Entity Events (v1) 1.6.12+6fc22b9990
fabric-events-interaction-v0: Fabric Events Interaction (v0) 0.7.10+e633f88390
fabric-game-rule-api-v1: Fabric Game Rule API (v1) 1.0.52+6573ed8c90
fabric-item-api-v1: Fabric Item API (v1) 11.0.0+afdfc92190
fabric-item-group-api-v1: Fabric Item Group API (v1) 4.1.0+00ab0a6390
fabric-key-binding-api-v1: Fabric Key Binding API (v1) 1.0.47+0af3f5a790
fabric-keybindings-v0: Fabric Key Bindings (v0) 0.2.45+df3654b390
fabric-lifecycle-events-v1: Fabric Lifecycle Events (v1) 2.3.9+98a7dbbb90
fabric-loot-api-v2: Fabric Loot API (v2) 3.0.9+6573ed8c90
fabric-message-api-v1: Fabric Message API (v1) 6.0.13+6573ed8c90
fabric-model-loading-api-v1: Fabric Model Loading API (v1) 2.0.0+fe474d6b90
fabric-networking-api-v1: Fabric Networking API (v1) 4.1.0+686dcdce90
fabric-object-builder-api-v1: Fabric Object Builder API (v1) 15.1.10+d132107690
fabric-particles-v1: Fabric Particles (v1) 4.0.2+6573ed8c90
fabric-recipe-api-v1: Fabric Recipe API (v1) 5.0.8+6573ed8c90
fabric-registry-sync-v0: Fabric Registry Sync (v0) 5.0.21+b9828ba390
fabric-renderer-api-v1: Fabric Renderer API (v1) 3.2.16+fe474d6b90
fabric-renderer-indigo: Fabric Renderer - Indigo 1.6.3+cc9f121a90
fabric-renderer-registries-v1: Fabric Renderer Registries (v1) 3.2.66+df3654b390
fabric-rendering-data-attachment-v1: Fabric Rendering Data Attachment (v1) 0.3.48+73761d2e90
fabric-rendering-fluids-v1: Fabric Rendering Fluids (v1) 3.1.6+b559734490
fabric-rendering-v0: Fabric Rendering (v0) 1.1.69+df3654b390
fabric-rendering-v1: Fabric Rendering (v1) 5.0.3+d132107690
fabric-resource-conditions-api-v1: Fabric Resource Conditions API (v1) 4.2.1+d153f34490
fabric-resource-loader-v0: Fabric Resource Loader (v0) 1.1.3+b559734490
fabric-screen-api-v1: Fabric Screen API (v1) 2.0.24+b559734490
fabric-screen-handler-api-v1: Fabric Screen Handler API (v1) 1.3.78+b559734490
fabric-sound-api-v1: Fabric Sound API (v1) 1.0.23+6573ed8c90
fabric-transfer-api-v1: Fabric Transfer API (v1) 5.1.12+b559734490
fabric-transitive-access-wideners-v1: Fabric Transitive Access Wideners (v1) 6.0.12+6573ed8c90
fabricloader: Fabric Loader 0.15.11
mixinextras: MixinExtras 0.3.5
java: OpenJDK 64-Bit Server VM 21
minecraft: Minecraft 1.21
stackdeobfuscator: StackDeobfuscator 1.4.2+bf1fc22
dev_booky_common_: common 1.4.2+bf1fc22
net_fabricmc_mapping-io: mapping-io 0.3.0
yet_another_config_lib_v3: YetAnotherConfigLib 3.5.0+1.21-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.21
Launcher name: PrismLauncher
Backend library: LWJGL version 3.3.3-snapshot
Backend API: Apple M2 GL version 4.1 Metal - 86, Apple
Window size: 1708x960
GFLW Platform: cocoa
GL Caps: Using framebuffer using OpenGL 3.2
GL debug messages: <disabled>
Is Modded: Definitely; Client brand changed to 'fabric'
Universe: 400921fb54442d18
Type: Client (map_client.txt)
GPU Warnings: version: Metal
Graphics mode: fancy
Render Distance: 12/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-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, fabricloader, stackdeobfuscator, yet_another_config_lib_v3 (incompatible)
Current Language: en_us
Locale: en_US
System encoding: UTF-8
File encoding: UTF-8
CPU: 8x Apple M2
Mod Version
2.0.0-beta.12+1.21-fabric
Controller
DualSense Wireless Controller
Bluetooth
- Yes
Operating System
macOS
ARM
- Yes
Additional Information
I will attempt to reproduce later on Linux later. While the crash occurs due to a YACL class, I suspect the crash is ultimately the result of how Controlify changes tabs here.
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.
I will attempt to reproduce later on Linux later. While the crash occurs due to a YACL class, I suspect the crash is ultimately the result of how Controlify changes tabs here.
I've faced the same issue as well on Linux and Windows, it seems that this issue has been reproduced a number of times in the issue tracker but you've likely found the exact culprit. This would explain why the issue extends to other modded menus and not just the controlify one in my experience