1
0
mirror of https://github.com/Suiranoil/SkinRestorer.git synced 2026-01-16 04:42:12 +00:00

allow to configure skin provider for first join skin fetching

This commit is contained in:
2024-08-20 12:41:44 +03:00
parent 5a02ab83e8
commit 251fdce7ff
3 changed files with 32 additions and 2 deletions

View File

@@ -15,6 +15,8 @@ public final class Config {
private boolean fetchSkinOnFirstJoin = true;
private FirstJoinSkinProvider firstJoinSkinProvider = FirstJoinSkinProvider.MOJANG;
private String proxy = "";
private long requestTimeout = 10;
@@ -27,6 +29,10 @@ public final class Config {
return this.fetchSkinOnFirstJoin;
}
public FirstJoinSkinProvider getFirstJoinSkinProvider() {
return this.firstJoinSkinProvider;
}
public String getProxy() {
return this.proxy;
}

View File

@@ -0,0 +1,21 @@
package net.lionarius.skinrestorer.config;
import com.google.gson.annotations.SerializedName;
import net.lionarius.skinrestorer.skin.provider.ElyBySkinProvider;
import net.lionarius.skinrestorer.skin.provider.MojangSkinProvider;
public enum FirstJoinSkinProvider {
MOJANG(MojangSkinProvider.PROVIDER_NAME),
@SerializedName("ELY.BY")
ELY_BY(ElyBySkinProvider.PROVIDER_NAME);
private final String name;
FirstJoinSkinProvider(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
}

View File

@@ -3,7 +3,6 @@ package net.lionarius.skinrestorer.mixin;
import com.mojang.authlib.GameProfile;
import net.lionarius.skinrestorer.SkinRestorer;
import net.lionarius.skinrestorer.skin.SkinValue;
import net.lionarius.skinrestorer.skin.provider.MojangSkinProvider;
import net.lionarius.skinrestorer.skin.provider.SkinProviderContext;
import net.lionarius.skinrestorer.util.PlayerUtils;
import net.lionarius.skinrestorer.util.Result;
@@ -48,7 +47,11 @@ public abstract class ServerLoginPacketListenerImplMixin {
if (originalSkin == null && SkinRestorer.getConfig().fetchSkinOnFirstJoin()) {
SkinRestorer.LOGGER.debug("Fetching {}'s skin", authenticatedProfile.getName());
var context = new SkinProviderContext(MojangSkinProvider.PROVIDER_NAME, authenticatedProfile.getName(), null);
var context = new SkinProviderContext(
SkinRestorer.getConfig().getFirstJoinSkinProvider().getName(),
authenticatedProfile.getName(),
null
);
var result = SkinRestorer.getProvider(context.name()).map(
provider -> provider.getSkin(context.argument(), context.variant())
).orElse(Result.ofNullable(null));