MrCrayfish / Controllable

Adds in the ability to use a controller to play Minecraft Java Edition
https://mrcrayfish.com/mods?id=controllable
GNU General Public License v3.0
266 stars 76 forks source link

Update to 1.20.4 #500

Open JulianVennen opened 4 months ago

JulianVennen commented 4 months ago

This PR updates Controllable to Minecraft 1.20.4

Both Fabric and Forge have been tested and work correctly. Please note that the ForgeGradle runs appear to be broken, causing a crash in the development environment. Compiling a jar and running it in a normal Minecraft instance is unaffected.

If supporting NeoForge as well is desired, please let me know and I will implement that too.

JulianVennen commented 4 months ago

It appears that there are still some issues with FabricClientHelper/ForgeClientHelper, I'll probably take a closer look at those tomorrow

MaxedOut655 commented 4 months ago

I'd just like to let you know about a crash this causes when opening the bindings in the menu, here's the crash report:

The game crashed whilst rendering screen Error: java.lang.ExceptionInInitializerError

The full crash report is here: https://pastebin.com/JqHv936F

Thanks for all your work updating it!

JulianVennen commented 4 months ago

This crash (and various similar ones) should be fixed now. I replaced the usages of reflection that were causing this with access transformer entries, so this will be noticeable during compile time if it breaks again in a future update.

MaxedOut655 commented 4 months ago

The menu to rebind keys on fabric at least is very dark, and it doesn't even allow you the option to add external bindings but it lets you see them, unlike before where you could add them.

JulianVennen commented 4 months ago

The dark menu should be fixed now, it appears that the background gradient was already being drawn by the parent class.

MaxedOut655 commented 4 months ago

There is just that one final thing, adding external mods' bindings.

Here is what it currently looks like, there is supposed to be a plus to add in the bindings indvidually. The menu gradients look perfect now though! Thanks again for the hard work.

image

JulianVennen commented 4 months ago

I'm not sure how that broke, but I also didn't take a closer look at that yet.

Here are the jar files for anyone who wants to use the mod in the current state: Fabric Forge

terickson001 commented 3 months ago

I'm interested in adding NeoForge support to this PR, but I cannot get the maven repository for Framework to behave. Is there some important setup I'm missing?

SilentException commented 3 months ago

I'm interested in adding NeoForge support to this PR, but I cannot get the maven repository for Framework to behave. Is there some important setup I'm missing?

You need to add personal access token with read:packages scope and then set GPR_USER=your@email and GPR_KEY=token environment variables or gpr.user=your@email and gpr.key=token in gradle.properties...

terickson001 commented 3 months ago

Ah my mistake, I was using my github username not e-mail, in combination with, I assume, regenerating the token but not saving it. Thanks

terickson001 commented 3 months ago

@JulianVennen How did you solve the issue with AbstractContainerScreen.slotClicked being changed from protected to public through the Access Transformers? I'm getting errors about it's subclasses having weaker access privileges.

JulianVennen commented 3 months ago

You need to reload the Gradle project in your IDE every time you modify the access transformer.

You probably also need to tell neogradle the path to your access transformer if you are talking about your neoforge project.