MineLittlePony / HDSkins

The Minecraft HDSkins mod from the VoxelModPack team brought to you by the Horse team
http://minelittlepony-mod.com
MIT License
33 stars 10 forks source link

Online accounts cannot display (pony) skins properly on an offline server. #49

Closed PoneyClairDeLune closed 2 years ago

PoneyClairDeLune commented 2 years ago

Description

Online accounts (with Mojang or Microsoft account logged in) cannot display (pony) skins properly on an offline server (with Mojang authentication disabled). Don't know if this is an intended behaviour.

Maybe a server-side support for the players to automatically submit their local skin data (sanitized, with rate-limit and size limit) upon join (or with other conditions), and see each other's skin on the same server? This would allow offline accounts to also skin themselves without creating a heavy load on the skin server.

Sollace commented 2 years ago

Offline servers send random uuids for player profiles. Our skin servers rely on the player's uuid being accurate to perform its own authentication against the server you are on.

tl;dr The server needs to be in online mode for skins to work.

PoneyClairDeLune commented 2 years ago

Offline servers send random uuids for player profiles. Our skin servers rely on the player's uuid being accurate to perform its own authentication against the server you are on.

tl;dr The server needs to be in online mode for skins to work.

My point is that whether it is possible to allow offline servers to accept, cache and serve their own players' skin data on-demand, not flooding the main skin server with random UUIDs. I know how skins on offline servers often break.

killjoy1221 commented 2 years ago

You should be able to use a plug-in to fix vanilla skins. The mod should be able to use the texture payload from that to reconstruct the original uuid.

PoneyClairDeLune commented 2 years ago

You should be able to use a plug-in to fix vanilla skins. The mod should be able to use the texture payload from that to reconstruct the original uuid.

I can restore the vanilla skins, yes, but not the pony skins... The server is running Unicopia, and clients are equipped with MineLittlePony and HD Skins for a more immersive experience. The server's both on a meshnet and (layer 4) dark web, and for security concerns it's also isolated from plain Internet. The server is only capable of running in offline mode as such. I can add a mod (like Fabric Tailor) to restore vanilla player skin with help from a whitelisted SNI proxy and /etc/hosts, but it will never display the correct pony skin, and all players are either Daring Do or a Night Guard as such.

If HD Skins won't ever add support for a somewhat decentralized approach (also maybe offloading the main skin server), I understand, but I do wish I would get any help applicable.

(Just in case if you're concerned about gaming latency, its under 400ms in the worst conditions, and around 150ms when optimized enough. And also it is not for criminals, just a small group of brony with anonimity strongly kept in mind.)

killjoy1221 commented 2 years ago

it may be time to resurrect #15 and #18.

Sollace commented 2 years ago

HDSkins has support for using skins provided by the in gameprofiles (same format as vanilla, using the "textures" key, "hd_textures" to provide textures that only appear to users with the mod).

You'd have to implement code on the server to do the necessary lookup for the player's profile data and add it to the profile for this to work, though.

Traditionally, we don't do anything on the server, nor do we usually support use-cases that would allow people to bypass having to purchase a legitimate copy of the game, however.

killjoy1221 commented 2 years ago

More specifically, you'd have to hook into the player auth event (sponge) and add hd_textures to the profile properties. It's the same spec as vanilla.