fn2006 / PollyMC

DRM-free Prism Launcher fork with support for custom auth servers.
GNU General Public License v3.0
827 stars 51 forks source link

How to use skins on offline account? #107

Open ISE9218 opened 11 months ago

ISE9218 commented 11 months ago

The upload skin option is greyed out and i can't click it either. Do i need to use an ely.by account?

fn2006 commented 11 months ago

There's no skin support for offline accounts built into the launcher currently, either use an Ely.by account or use a skin mod.

ISE9218 commented 11 months ago

There's no skin support for offline accounts built into the launcher currently, either use an Ely.by account or use a skin mod.

Are there any skin mod you would reccomend for 1.20.2?

fn2006 commented 11 months ago

I personally use Ely.by so I can't really recommend any since I've not used them. That being said I did a quick search on Modrinth and saw a few decent looking ones.

ISE9218 commented 11 months ago

I personally use Ely.by so I can't really recommend any since I've not used them. That being said I did a quick search on Modrinth and saw a few decent looking ones.

I saw those but i think they don't make the skin visible to other players. I tried the skin swapper mod and got a error. Can the ely.by patch be downloaded on a singleplayer world since i mostly play lan so that not everyone has to download it?

ghost commented 11 months ago

I don't remember what it was called, but there was a plugin for Aternos (https://aternos.org/:en/) that would show your skin to everyone on the server. Otherwise, just use Ely.by (https://ely.by/) or a mod. I still recommend just buying Minecraft (https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc); it's not that expensive and it's definitely worth it. With it you can use any launcher or client you want, including Prism Launcher (https://prismlauncher.org/) or alternatively ATLauncher (https://atlauncher.com/). And, of course, you can add your own skin and play on many servers. (I just found this mod (https://modrinth.com/mod/skinrestorer), it seems promising...)

ISE9218 commented 11 months ago

I would use ely.by but doesn't it need other players or the server to install something so they can see my skin?

On Wed, 25 Oct 2023, 4:21 pm MarcOsiris, @.***> wrote:

I don't remember what it was called, but there was a plugin for Aternos ( https://aternos.org/:en/) that would show your skin to everyone on the server. Otherwise, just use Ely.by (https://ely.by/) or a mod. I still recommend just buying Minecraft ( https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc); it's not that expensive and it's definitely worth it. With it you can use any launcher or client you want, including Prism Launcher ( https://prismlauncher.org/) or alternatively ATLauncher ( https://atlauncher.com/). And, of course, you can add your own skin and play on many servers. (I just found this mod (https://modrinth.com/mod/skinrestorer), it seems promising...)

— Reply to this email directly, view it on GitHub https://github.com/fn2006/PollyMC/issues/107#issuecomment-1779393588, or unsubscribe https://github.com/notifications/unsubscribe-auth/AYAEDDAVFJTNI3P3DCNJASDYBEN63AVCNFSM6AAAAAA57QVOKWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONZZGM4TGNJYHA . You are receiving this because you authored the thread.Message ID: @.***>

evan-goode commented 10 months ago

Copying part of my comment on #66 here since it is relevant:

PollyMC uses authlib-injector to support third-party authentication servers. authlib-injector forces the client to try to load skins even in offline mode, but loading another player's skin will usually fail since the lookup is done by the player's UUID. In most cases, a player's "online" UUID (which comes from an authentication server such as Mojang or Ely.by and is probably randomly generated), is different from that player's "offline" UUID (which is deterministically generated from the player name). The authlib-injector client requests the skin for the "offline UUID" of the player, but the authentication server only knows the "online UUID".

Ely.by distributes a patched authlib.jar that solves this problem by detecting whether the game is in offline mode, and if it is, requesting skins by the player's name rather than their offline UUID. (I would link the source code to their authlib.jar but I can't find it... maybe it's nonfree?). Their authlib.jar uses Ely.by-specific routes, but the same thing could be done using the vanilla API protocol. I don't know for sure, but I'm guessing TL Legacy used this Ely.by authlib.jar, and that's why offline skins worked.

IMO this is worthwhile to fix, but not by PollyMC. I think the problem is best solved either (1) in authlib-injector, by making it behave like Ely.by's authlib.jar and request skins by player name in offline mode, and/or (2) in the authentication server, by resolving offline UUIDs to the correct skins. I've modified my authentication server to support skins in offline mode with authlib-injector: https://github.com/unmojang/drasl/commit/e8537ea54c1068ae10cef0aaf1ce821698c5d648, I can possibly file a PR making the same changes for Ely.by.

I think the better of those two solutions is to make the change in authlib-injector, since you would only have to change one piece of software rather than many authentication servers.

failingapbio commented 5 months ago

Multiple mods work - skinswapper, for fabric, reskin for forge, and skinchanger plugin for hosted offline servers (falix)