-
Notifications
You must be signed in to change notification settings - Fork 69
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
Lookup skins by player name on "offline" servers #256
Comments
Check SkinsRestorer, You can correct the system for issuing a response to players with data of player's skins by replacing the skin url to own in the returned array |
Yes, thanks, there are workarounds available. CustomSkinLoader should also be mentioned since it's clientside and thus can be used on a vanilla server. FabricTailor is also promising as a solution for Fabric servers, but currently does not support configuring a custom skin server, just Ely.by. Still, I am curious about a fix in authlib-injector itself. A user might reasonably assume that clientside authlib-injector with Ely.by or Blessing Skin is sufficient to see player skins on vanilla authlib-injector already modifies the client to make skin requests even in [1] Though this seems to not work in 1.21, I will investigate some more and file an issue. |
but this feature realizable by own auth api (backend side), you can handle requests by server with "nickname regex" in url routing like you handle requests with uuid at this time |
The vanilla online client will not load any skin(including the player's own) when joining into an offline server. It might be a mistake of authlib-injector that making skin requests in offline servers, I think? |
server core also can patched by authlib and return player skins data to client is issue of server, when offline mode is enabled server also can send skins to client but need to use not usual methods like skinsrestorer plugin i dont understand why you need to load skins on servers with offline mode enabled on the client, if this, in turn, does not guarantee that the player will not joined from any other client (vanilla or injected by another project) anyway its not trouble of injector |
I can't get your point. What you said is, you have an authlib injected server, you have an authlib injected client, but you still set So why not just set That's doesn't make sense that adding authlib-injector just for skins. Adding a client-side mod like CustomSkinLoader or adding a server-side plugin like SkinsRestorer is much easier than patch both server and client with authlib-injector. If your server provider doesn't provide custom server kernel, I don't believe they will let you set JVM arguments so you can add authlib-injector, and if your launcher doesn't support Forge or Fabric client, I don't believe it supports authenticate with custom Yggdrasil server. |
Yes. Authlib-injector don't need to concern about how to load skin in offline servers, which should be resolved by other mods like custonSkinLoader. |
Moving this from elyby/accounts#32.
We've had a number of PollyMC and Fjord Launcher users complain that skins are not visible when using an authlib-injector client with an
online-mode=false
server: fn2006/PollyMC#107, fn2006/PollyMC#58. The authlib-injector client does attempt to load player skins from the API server even ononline-mode=false
servers, but it requests them via the player's "offline UUID" (derived from the player's username), and authentication servers typically respond with a204 No Content
.When on
online-mode=false
servers, could authlib-injector lookup player skins by player name, querying https://github.com/yushijinhun/authlib-injector/wiki/Yggdrasil-%E6%9C%8D%E5%8A%A1%E7%AB%AF%E6%8A%80%E6%9C%AF%E8%A7%84%E8%8C%83#%E6%8C%89%E5%90%8D%E7%A7%B0%E6%89%B9%E9%87%8F%E6%9F%A5%E8%AF%A2%E8%A7%92%E8%89%B2 to find the correct, online UUID and then fetching skins by that UUID?This behavior could be gated behind a Java argument in case the user/launcher wants to turn it on or off.
I am happy to prepare a PR if desired.
Another approach to solve the problem is to modify each authentication server implementation to resolve offline UUIDs to the correct accounts. I have done this in Drasl: unmojang/drasl@e8537ea. But this would mean every implementation has to do it themselves, and Ely.by has already said they'd rather the problem be solved in authlib-injector.
The text was updated successfully, but these errors were encountered: