diff --git a/connector/src/main/java/org/geysermc/connector/skin/SkinManager.java b/connector/src/main/java/org/geysermc/connector/skin/SkinManager.java index 04c3778b6..70f9f8ff5 100644 --- a/connector/src/main/java/org/geysermc/connector/skin/SkinManager.java +++ b/connector/src/main/java/org/geysermc/connector/skin/SkinManager.java @@ -30,8 +30,6 @@ import com.github.steveice10.mc.auth.data.GameProfile; import com.nukkitx.protocol.bedrock.data.skin.ImageData; import com.nukkitx.protocol.bedrock.data.skin.SerializedSkin; import com.nukkitx.protocol.bedrock.packet.PlayerListPacket; -import lombok.AllArgsConstructor; -import lombok.Getter; import org.geysermc.connector.GeyserConnector; import org.geysermc.connector.common.AuthType; import org.geysermc.connector.entity.player.PlayerEntity; @@ -52,10 +50,10 @@ public class SkinManager { */ public static PlayerListPacket.Entry buildCachedEntry(GeyserSession session, PlayerEntity playerEntity) { GameProfileData data = GameProfileData.from(playerEntity.getProfile()); - SkinProvider.Cape cape = SkinProvider.getCachedCape(data.getCapeUrl()); + SkinProvider.Cape cape = SkinProvider.getCachedCape(data.capeUrl()); SkinProvider.SkinGeometry geometry = SkinProvider.SkinGeometry.getLegacy(data.isAlex()); - SkinProvider.Skin skin = SkinProvider.getCachedSkin(data.getSkinUrl()); + SkinProvider.Skin skin = SkinProvider.getCachedSkin(data.skinUrl()); if (skin == null) { skin = SkinProvider.EMPTY_SKIN; } @@ -118,7 +116,7 @@ public class SkinManager { Consumer skinAndCapeConsumer) { GameProfileData data = GameProfileData.from(entity.getProfile()); - SkinProvider.requestSkinAndCape(entity.getUuid(), data.getSkinUrl(), data.getCapeUrl()) + SkinProvider.requestSkinAndCape(entity.getUuid(), data.skinUrl(), data.capeUrl()) .whenCompleteAsync((skinAndCape, throwable) -> { try { SkinProvider.Skin skin = skinAndCape.getSkin(); @@ -206,7 +204,10 @@ public class SkinManager { } public static void handleBedrockSkin(PlayerEntity playerEntity, BedrockClientData clientData) { - GeyserConnector.getInstance().getLogger().info(LanguageUtils.getLocaleStringLog("geyser.skin.bedrock.register", playerEntity.getUsername(), playerEntity.getUuid())); + GeyserConnector connector = GeyserConnector.getInstance(); + if (connector.getConfig().isDebugMode()) { + connector.getLogger().info(LanguageUtils.getLocaleStringLog("geyser.skin.bedrock.register", playerEntity.getUsername(), playerEntity.getUuid())); + } try { byte[] skinBytes = Base64.getDecoder().decode(clientData.getSkinData().getBytes(StandardCharsets.UTF_8)); @@ -218,9 +219,9 @@ public class SkinManager { if (skinBytes.length <= (128 * 128 * 4) && !clientData.isPersonaSkin()) { SkinProvider.storeBedrockSkin(playerEntity.getUuid(), clientData.getSkinId(), skinBytes); SkinProvider.storeBedrockGeometry(playerEntity.getUuid(), geometryNameBytes, geometryBytes); - } else { - GeyserConnector.getInstance().getLogger().info(LanguageUtils.getLocaleStringLog("geyser.skin.bedrock.fail", playerEntity.getUsername())); - GeyserConnector.getInstance().getLogger().debug("The size of '" + playerEntity.getUsername() + "' skin is: " + clientData.getSkinImageWidth() + "x" + clientData.getSkinImageHeight()); + } else if (connector.getConfig().isDebugMode()) { + connector.getLogger().info(LanguageUtils.getLocaleStringLog("geyser.skin.bedrock.fail", playerEntity.getUsername())); + connector.getLogger().debug("The size of '" + playerEntity.getUsername() + "' skin is: " + clientData.getSkinImageWidth() + "x" + clientData.getSkinImageHeight()); } if (!clientData.getCapeId().equals("")) { @@ -231,13 +232,7 @@ public class SkinManager { } } - @AllArgsConstructor - @Getter - public static class GameProfileData { - private final String skinUrl; - private final String capeUrl; - private final boolean alex; - + public record GameProfileData(String skinUrl, String capeUrl, boolean isAlex) { /** * Generate the GameProfileData from the given GameProfile * diff --git a/connector/src/main/java/org/geysermc/connector/skin/SkinProvider.java b/connector/src/main/java/org/geysermc/connector/skin/SkinProvider.java index ed18f2c22..567e52ace 100644 --- a/connector/src/main/java/org/geysermc/connector/skin/SkinProvider.java +++ b/connector/src/main/java/org/geysermc/connector/skin/SkinProvider.java @@ -63,7 +63,7 @@ public class SkinProvider { public static final Skin EMPTY_SKIN = new Skin(-1, "steve", STEVE_SKIN); public static final byte[] ALEX_SKIN = new ProvidedSkin("bedrock/skin/skin_alex.png").getSkin(); public static final Skin EMPTY_SKIN_ALEX = new Skin(-1, "alex", ALEX_SKIN); - private static final Map permanentSkins = new HashMap() {{ + private static final Map permanentSkins = new HashMap<>() {{ put("steve", EMPTY_SKIN); put("alex", EMPTY_SKIN_ALEX); }}; diff --git a/connector/src/main/java/org/geysermc/connector/skin/SkullSkinManager.java b/connector/src/main/java/org/geysermc/connector/skin/SkullSkinManager.java index 7481b70bc..40ef47f99 100644 --- a/connector/src/main/java/org/geysermc/connector/skin/SkullSkinManager.java +++ b/connector/src/main/java/org/geysermc/connector/skin/SkullSkinManager.java @@ -52,7 +52,7 @@ public class SkullSkinManager extends SkinManager { Consumer skinConsumer) { GameProfileData data = GameProfileData.from(entity.getProfile()); - SkinProvider.requestSkin(entity.getUuid(), data.getSkinUrl(), true) + SkinProvider.requestSkin(entity.getUuid(), data.skinUrl(), true) .whenCompleteAsync((skin, throwable) -> { try { if (session.getUpstream().isInitialized()) {