-
-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add basic optifine support #240
base: main
Are you sure you want to change the base?
Conversation
Wow 😳 Insane work, yes there is some huge refactor to do for the events system but all this patch reimplementation is insane, great work! |
Worked a bit on that today, but it's a bit hard to figure in which order to install the thing... looking in the code of forgeversion helped me. |
Side note, with the upcoming Rust rewrite, would you be interested in adapting this code directly into it ? I think the first releases will not includes optifine support, if you don't want to do it I'll do it but you'll definitely be credited for that module. PS: Happy new year :) |
As I never written anything in Rust, I'll need some adaptation time, but first, I prefer do the whole algorithm in python, an then copy the code to another language. In fact, my event handling is not far from being ready, but I think that marking this python PR as draft is needed, as it is still in progress, and will probably not be merged. |
Yes doing the whole algorithm un python is the right way to go for now! Also, would you be able to provide a list of new dependencies that would be needed for that module to work? I've tried to use no dependencies until now so maybe as a very last step in this PR we could try to reduce them, but I don't want to bother you with that now. |
The only python deps were beautifulsoup4 and requests, requests is on the way to be deleted, and beautifulsoup4 is only used to list available versions, so realy no problem on that side, removing them will be easy. |
Thank you for putting so much attention into this PR! EDIT: Would you be able to also provide a backend for the |
Add the possibility to download using query
Remove debug, improve install process, remove dependencies and add events.
The event system is there, and the install process is much cleaner and understandable. On top of that, I removed the two dependencies (requests and beautifulsoup4). Next to do for me: handling the new api in the CLI launcher... Search method should be simple to integrate (have a look at optifine.get_compatible_versions). Loader version are currently names like this: "preview_OptiFine_1.21.4_HD_U_J3_pre6" I should shorten them to things like "HD_U_J3_pre6" |
Perfect! Do you want a pre-review on the API code, I don't want to spam you with change requests if the code is not yet 90% ready. |
Just a question, what should be the default version name for an optifine version ? Is it better to keep official optifine installation format ("<mc_ver>-Optifine_") or use "-<mc_ver>-" like in forgeversion and fabricversion ? |
Just for information, the forge version specifier will be modified with the upcoming Rust rewrite. Here's the help message:
Anyway, for OptiFine, I would like to use another format, like Tell we what do you think. |
many fixes, bring support for optifine search and installation in the CLI, use regex for version resolve
I mean, the directory name used to store the version in the version directory. To start Optifine, I already support this format, but also several others thanks to regex (I saw that regex are well-supported by rust). I currently have both, the name used by sp614x, and the prefix system that is used in ForgeVersion and FabricVersion. I don't really know which one I have to keep. |
This file add a complete optifine support, but you should improve it for events support. Please notify me if you get any errors. And happy christmas for everyone !