Skip to content

Conversation

@ninjaguardian
Copy link
Contributor

Some neoforge mods choose to subscribe to InputEvent.Key to handle input detection, which the current system does not support. I added a keybind for the radial menu so that, when pressed, it will close the screen (some mods check if the screen is null) and send the click input.

The code in this pr supports all Neoforge versions in Controlify.

There seems to be no reason to port this to Fabric, as I've yet to see a Fabric mod look for keyboard inputs directly.

@EchoEllet
Copy link
Contributor

Some neoforge mods choose to subscribe to InputEvent.Key to handle input detection

NeoForge doc suggests handling via ClientTickEvent.post, so it's probably better to update these mods to do that instead, like this PR.

Mod loaders sometimes introduce breaking changes across versions, so this could risk breaking Controlify for some versions.

Comment on lines +10 to +15
@Mixin(KeyMapping.class)
public interface KeyMappingAccessor {
//? < 1.21.4 && neoforge {
@Accessor("ALL")
static Map<String, KeyMapping> getAll() {
throw new NotImplementedException("Should be overwritten by Accessor");
Copy link
Contributor

@EchoEllet EchoEllet Nov 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems to be mainly for compatibility with some NeoForge mods, so shouldn't it be part of the platform.neoforge.mixin package and registered using the mixin controlify-platform.neoforge.mixins.json?

@ninjaguardian
Copy link
Contributor Author

NeoForge doc suggests handling via ClientTickEvent.post, so it's probably better to update these mods to do that instead

That is a good point that I didn't see.

Then again, there's possibly a lot of mods that use this bad system.

I'll think about whether to close this.

@EchoEllet
Copy link
Contributor

EchoEllet commented Nov 12, 2025

Then again, there's possibly a lot of mods that use this bad system.

Yeah, I agree, many if not most mods. InputEvents aren't meant for handling in-game input.

I'll think about whether to close this.

I would still provide an addon or config, maybe?
Let's wait for an answer from the author.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants