Ctrl Q

Ctrl Q

270k Downloads

Feature - Forge (1.18.2) support

unilock opened this issue · 7 comments

commented

This probably fits a very specific niche, but it would be nice (for me personally) to have Ctrl-Q working on Forge 1.18.2.
(and for the other popular versions of Forge - those being 1.16.5, 1.18.2, and 1.19.2, I think, at least for the time being :) )

EDIT: This is probably the most relevant bit of the 1.12.2 -> 1.13+ "update primer": https://gist.github.com/williewillus/353c872bcf1a6ace9921189f6100d09a#guimousekeyboardinputkeybindings

commented

I will try my best as Forge is a bit slow for me to work on. I definitely will do 1.16.5, but I'll do 1.18/1.19 if I have the time.

commented

There's absolutely no problem!

commented

Wow, this is great! Very cleaver to use the Architectury env to build the mod on multiple loaders (That task was very long to do manually). I get that you can't make a push request and that this is a very drastic overhaul, so I have no problem for you to have and maintain the port! I think you also credited me very well, thank you! (and I LOVE the new logo 🤣 )

Good luck with the mod!

commented

Awesome! Thanks so much for making the mod I never knew I needed, but now can never live without :)

Would you mind if I published "Ctrl-QR" to CurseForge / Modrinth? Still with credits to you, of course.

commented

I've ported Ctrl-Q to Architectury, allowing it to be developed and built for Fabric, Forge, and Quilt simultaneously, using a single, shared codebase.
(note that I'm not actually using Architectury API; just their build environment)

https://github.com/unilock/Ctrl-QR

So far I've only made a version for 1.18.2, but as Ctrl-Q consists only of a few mixins, updating is trivial. (just bump the numbers in gradle.properties lol)

As for actual changes:

  • MixinHandledScreen.java now uses @ModifyArg instead of @ModifyArgs, the latter of which Forge didn't like for some reason
  • MixinMinecraftClient.java now @Redirects the Screen#hasControlDown call in MinecraftClient#handleInputEvents rather than @Injecting prior to the invocation of ClientPlayerEntity #dropSelectedItem - there's no concrete reason behind this; I just think it's "cleaner"
  • Numerical key codes have been replaced with their GLFW key reference equivalents
  • The icon has been noticeably improved

All that being said - I didn't want to make a pull request, since this is a pretty drastic overhaul, but I'm not really sure how else to contribute with this. What do you think?
(I wouldn't mind maintaining this port myself - given permission, of course ;) )

commented

Hi :)

So, I may have gotten a bit distracted, and never got around to putting my fork on CurseForge / Modrinth. It might be best to transfer ownership back to you, haha.

On that note, I added a GitHub Actions workflow to my fork that automatically publishes the mod to CurseForge and Modrinth whenever it's manually triggered, which I think might be helpful. Unfortunately, I haven't been able to test it, since it requires a project ID to publish to, which I do not have :,)

I can clean up my fork and make a PR, if you'd like. Though it might be best to make a new branch for the Architectury port(s) specifically?

Let me know what you think :)

commented

Hi :)

So, I may have gotten a bit distracted, and never got around to putting my fork on CurseForge / Modrinth. It might be best to transfer ownership back to you, haha.

On that note, I added a GitHub Actions workflow to my fork that automatically publishes the mod to CurseForge and Modrinth whenever it's manually triggered, which I think might be helpful. Unfortunately, I haven't been able to test it, since it requires a project ID to publish to, which I do not have :,)

I can clean up my fork and make a PR, if you'd like. Though it might be best to make a new branch for the Architectury port(s) specifically?

Let me know what you think :)

Hey, I'm so sorry for this late response: I never got a notification of any kind about it!! I've been busy with school too lol. Either way, even though it's been a little while, would you be still interested to push your fork? (And a new branch would definitely be necessary lol). And of course you'll have proper credits. (I've recently been trying to build another Forge version and it's the worst thing I've ever done haha)