WildfireRomeo / WildfireFemaleGenderMod

A Fabric Minecraft Mod - Minecraft's Most Popular Female Gender Mod!
https://modrinth.com/mod/female-gender
GNU Lesser General Public License v3.0
106 stars 62 forks source link

Cloud syncing #226

Closed celestialfault closed 6 days ago

celestialfault commented 1 week ago

This re-implements the long removed cloud syncing feature; this differs from the previous implementation by instead using Minecraft's multiplayer authentication system, instead of attempting to roll the authentication ourselves, which should hopefully make the kind of abuse that lead to this being removed in the past much harder.

This is being opened as a draft despite being largely ready for review on account of the server-side component required, in case it'd be preferred to host this elsewhere, potentially also using a different language to what I chose.

The reference Python server implementation for this is provided in my wfgm-sync-server repository, which I have an instance of hosted at wfgm.celestialfault.dev (which this PR currently defaults to pointing at).

The UI is still something I'm not entirely happy with, especially with the sync server URL (which could probably be just in the config files?), but it works well enough for an initial pass.

WildfireRomeo commented 1 week ago

This is cool (if it works, hard to test with it being a PR lol)

Couple questions: 1) Would the server be able to handle having the setting enabled by default? I feel like a lot of people aren't going to enable it. 2) I would probably prefer to have the sync URL setting be in a config file somewhere.

I would love for people in the future to be able to logon to Hypixel or another high population server and see a few WFGM users playing around, that would be cool as hell. That was my vision for the original server server. I don't know the limitations of this implementation though (if any).

celestialfault commented 1 week ago

Would the server be able to handle having the setting enabled by default? I feel like a lot of people aren't going to enable it.

Probably? /shrug I haven't done any stress testing on it, but it should hopefully be able to manage it.

I don't know the limitations of this implementation though (if any).

The main limitation is mostly that I'm not entirely sure what the Minecraft session server rate limits are, and I don't exactly want to accidentally find out, which is why this requires manually syncing settings (with an enforced 15s cooldown); I'd like it to be automatic, but I'm not sure if I'd want that on by default (both for rate limit and privacy concerns).

In-game account switcher mods (e.g Essential, In Game Account Switcher, etc) would probably break syncing after switching accounts unless they also modify the session, but I'm not sure if I'm entirely concerned about that, given that it's already a somewhat niche feature.

(if it works, hard to test with it being a PR lol)

If you're comfortable enough with the command line, GitHub's gh CLI tool can help - gh pr checkout 226; their desktop app might also be able to do this, but I'm not sure as I haven't used that in a long time.

WildfireRomeo commented 1 week ago

I know how to checkout a PR, I was mostly saying that because there isn't many people to test it with haha

As for the session rate limits, not entirely sure... I'm sure 15 seconds is VERY generous in regards to that. You could even change it to 1 minute.

WildfireRomeo commented 1 week ago

Maybe we can have a "banner" pointing to the cloud button to incentivize someone to use it.

celestialfault commented 1 week ago

I know how to checkout a PR, I was mostly saying that because there isn't many people to test it with haha

Ah, fair enough - could maybe post a beta for this in the Discord at some point to solve that problem though

Maybe we can have a "banner" pointing to the cloud button to incentivize someone to use it.

That would be nice, but I definitely don't feel like I'm qualified enough to try to do that with how bad I am with designing these screens (especially given the cloud icon is just a low resolution font awesome icon)

WildfireRomeo commented 1 week ago

Hey, Font Awesome has some sick icons lol

I might be able to cook something up for a banner.

A beta might not be a bad idea, I'll see about posting it on Discord before the main sources (CF, Modrinth). When it's closer to ready.

PinguinLars commented 1 week ago

nl_nl.json I already made a dutch translation for the new features, because they look promising.