Skip to content
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

Patch and use the Machina library bundled in FFXIV_ACT_Plugin #77

Closed
wants to merge 9 commits into from

Conversation

Menci
Copy link
Contributor

@Menci Menci commented Mar 9, 2024

Currently IINACT use an owned fork of the Machina library. While Machina.FFXIV contains the game client's opcode, the fork needs to be updated for each game version. If we want to also support the Chinese client, things become harder since the open-source repo of Machina doesn't even contain the latest opcodes for Chinese client.

Since we're only replacing the DeucalionClient with DalamudClient in the Machina library, we can do it dynamically for the Machina library bundled in FFXIV_ACT_Plugin, then we won't need to maintain the opcodes manually anymore.

@marzent
Copy link
Owner

marzent commented Mar 9, 2024

Sorry for not coming back to you earlier!

Indeed the only real problem with #76 is that it does not point to the custom Machina submodule anymore.

In the past IINACT used to actually just use the bundled Machina, the two main reasons why I moved away from doing this was to easily implemented the Dalamud client (which you have already taken efforts to not be needed anymore) and to update the opcodes myself on patchday (ideally before the servers are already up), since I do not like to wait for the full release of the FFXIV_ACT_Plugin and then people want to use the beta, which is only available on Discord etc and it is just a headache and for me worth manually updating for.

I also wouldn't mind keeping the Chinese opcodes of the Machina fork updated in a timely manner, or maybe even some sort of CI propagation from an opcode repo.

@Menci
Copy link
Contributor Author

Menci commented Mar 9, 2024

Oh I even didn't know there's a Discord community! For the Chinese our maintainers usually just update the plugin on patch day since the parsing code is just from an older version of the global one and they only need the opcodes on the patch day...

How about dynamically update opcodes with an URL, just like updating the plugin zip?

@marzent
Copy link
Owner

marzent commented Mar 11, 2024

How about dynamically update opcodes with an URL, just like updating the plugin zip?

That would probably be ideal, but would require a bit of new infrastructure and then patch machina as well with the new opcodes...

There is also the risk of some random network issues, which especially when connecting to GitHub happens a lot, so these would have to be cached + versioned most likely as well.

@marzent
Copy link
Owner

marzent commented Mar 11, 2024

This is also compounded by OverlayPlugin having its own list of opcodes that also need updating anyways on patch day

@DieMoe233
Copy link

This is also compounded by OverlayPlugin having its own list of opcodes that also need updating anyways on patch day

https://github.com/moewcorp/FFXIVNetworkOpcodes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants