From cb0756902a7763ddbf4c7af57b01132b124a89fb Mon Sep 17 00:00:00 2001 From: lionarius Date: Sun, 27 Apr 2025 12:16:25 +0300 Subject: [PATCH] backport to 1.19.4 --- .../skinrestorer/command/SkinCommand.java | 8 +-- .../skinshuffle/SkinShuffleCompatibility.java | 55 --------------- .../SkinShuffleHandshakePayload.java | 10 --- .../SkinShuffleSkinRefreshPayload.java | 7 -- .../SkinShuffleSkinRefreshV1Payload.java | 23 ------- .../SkinShuffleSkinRefreshV2Payload.java | 31 --------- .../services/CompatibilityHelper.java | 4 -- .../skinrestorer/util/JsonUtils.java | 29 ++++++-- .../skinrestorer/util/PlayerUtils.java | 15 ++--- fabric/build.gradle | 2 - .../fabric/SkinRestorerFabric.java | 9 +-- .../skinshuffle/SkinShuffleCompatibility.java | 46 ------------- .../platform/FabricCompatibilityHelper.java | 8 --- fabric/src/main/resources/fabric.mod.json | 3 - .../skinrestorer/forge/SkinRestorerForge.java | 4 -- .../skinshuffle/SkinShuffleCompatibility.java | 14 ---- .../SkinShuffleGameEventHandler.java | 16 ----- .../skinshuffle/SkinShufflePacketHandler.java | 67 ------------------- .../platform/ForgeCompatibilityHelper.java | 7 -- gradle.properties | 19 +++--- 20 files changed, 45 insertions(+), 332 deletions(-) delete mode 100644 common/src/main/java/net/lionarius/skinrestorer/compat/skinshuffle/SkinShuffleCompatibility.java delete mode 100644 common/src/main/java/net/lionarius/skinrestorer/compat/skinshuffle/SkinShuffleHandshakePayload.java delete mode 100644 common/src/main/java/net/lionarius/skinrestorer/compat/skinshuffle/SkinShuffleSkinRefreshPayload.java delete mode 100644 common/src/main/java/net/lionarius/skinrestorer/compat/skinshuffle/SkinShuffleSkinRefreshV1Payload.java delete mode 100644 common/src/main/java/net/lionarius/skinrestorer/compat/skinshuffle/SkinShuffleSkinRefreshV2Payload.java delete mode 100644 fabric/src/main/java/net/lionarius/skinrestorer/fabric/compat/skinshuffle/SkinShuffleCompatibility.java delete mode 100644 forge/src/main/java/net/lionarius/skinrestorer/forge/compat/skinshuffle/SkinShuffleCompatibility.java delete mode 100644 forge/src/main/java/net/lionarius/skinrestorer/forge/compat/skinshuffle/SkinShuffleGameEventHandler.java delete mode 100644 forge/src/main/java/net/lionarius/skinrestorer/forge/compat/skinshuffle/SkinShufflePacketHandler.java diff --git a/common/src/main/java/net/lionarius/skinrestorer/command/SkinCommand.java b/common/src/main/java/net/lionarius/skinrestorer/command/SkinCommand.java index 8dd93ea..62884d2 100644 --- a/common/src/main/java/net/lionarius/skinrestorer/command/SkinCommand.java +++ b/common/src/main/java/net/lionarius/skinrestorer/command/SkinCommand.java @@ -169,7 +169,7 @@ public final class SkinCommand { private static int configReloadSubcommand(CommandContext context) { SkinRestorer.reloadConfig(); - context.getSource().sendSuccess(() -> Translation.translatableWithFallback( + context.getSource().sendSuccess(Translation.translatableWithFallback( Translation.COMMAND_SKIN_CONFIG_RELOADED_KEY ), true); @@ -178,7 +178,7 @@ public final class SkinCommand { private static void sendResponse(CommandSourceStack src, Collection updatedPlayers, boolean setByOperator) { if (updatedPlayers.isEmpty()) { - src.sendSuccess(() -> Translation.translatableWithFallback( + src.sendSuccess(Translation.translatableWithFallback( Translation.COMMAND_SKIN_NO_CHANGES_KEY ), true); return; @@ -187,12 +187,12 @@ public final class SkinCommand { if (setByOperator) { var playersComponent = PlayerUtils.createPlayerListComponent(updatedPlayers); - src.sendSuccess(() -> Translation.translatableWithFallback( + src.sendSuccess(Translation.translatableWithFallback( Translation.COMMAND_SKIN_AFFECTED_PLAYERS_KEY, playersComponent ), true); } else { - src.sendSuccess(() -> Translation.translatableWithFallback( + src.sendSuccess(Translation.translatableWithFallback( Translation.COMMAND_SKIN_OK_KEY ), true); } diff --git a/common/src/main/java/net/lionarius/skinrestorer/compat/skinshuffle/SkinShuffleCompatibility.java b/common/src/main/java/net/lionarius/skinrestorer/compat/skinshuffle/SkinShuffleCompatibility.java deleted file mode 100644 index 2e296da..0000000 --- a/common/src/main/java/net/lionarius/skinrestorer/compat/skinshuffle/SkinShuffleCompatibility.java +++ /dev/null @@ -1,55 +0,0 @@ -package net.lionarius.skinrestorer.compat.skinshuffle; - -import net.lionarius.skinrestorer.SkinRestorer; -import net.lionarius.skinrestorer.platform.Services; -import net.lionarius.skinrestorer.skin.SkinValue; -import net.lionarius.skinrestorer.skin.provider.SkinShuffleSkinProvider; -import net.lionarius.skinrestorer.util.PlayerUtils; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.server.MinecraftServer; -import net.minecraft.server.level.ServerPlayer; - -import java.util.Collections; - -public class SkinShuffleCompatibility { - - public static final String MOD_ID = "skinshuffle"; - - private static final boolean SHOULD_APPLY = !Services.PLATFORM.isModLoaded(SkinShuffleCompatibility.MOD_ID); - - private SkinShuffleCompatibility() {} - - public static boolean shouldApply() { - return SkinShuffleCompatibility.SHOULD_APPLY; - } - - public static ResourceLocation resourceLocation(String name) { - return new ResourceLocation(SkinShuffleCompatibility.MOD_ID, name); - } - - public static void onPlayerJoin(ServerPlayer player) { - Services.COMPATIBILITY.skinShuffle_sendHandshake(player); - } - - public static void handleSkinRefresh(MinecraftServer server, ServerPlayer player, SkinShuffleSkinRefreshPayload payload) { - var property = payload.textureProperty(); - - if (!property.getName().equals(PlayerUtils.TEXTURES_KEY)) - return; - - if (!property.hasSignature()) - return; - - server.execute(() -> { - SkinRestorer.applySkin( - server, - Collections.singleton(player.getGameProfile()), - new SkinValue(SkinShuffleSkinProvider.PROVIDER_NAME, null, null, property), - !server.usesAuthentication() - ); - - if (server.usesAuthentication() && SkinRestorer.getSkinStorage().hasSavedSkin(player.getUUID())) - SkinRestorer.getSkinStorage().deleteSkin(player.getUUID()); - }); - } -} diff --git a/common/src/main/java/net/lionarius/skinrestorer/compat/skinshuffle/SkinShuffleHandshakePayload.java b/common/src/main/java/net/lionarius/skinrestorer/compat/skinshuffle/SkinShuffleHandshakePayload.java deleted file mode 100644 index 9e93ec3..0000000 --- a/common/src/main/java/net/lionarius/skinrestorer/compat/skinshuffle/SkinShuffleHandshakePayload.java +++ /dev/null @@ -1,10 +0,0 @@ -package net.lionarius.skinrestorer.compat.skinshuffle; - -import net.minecraft.resources.ResourceLocation; - -public record SkinShuffleHandshakePayload() { - - public static final SkinShuffleHandshakePayload INSTANCE = new SkinShuffleHandshakePayload(); - - public static final ResourceLocation PACKET_ID = SkinShuffleCompatibility.resourceLocation("handshake"); -} diff --git a/common/src/main/java/net/lionarius/skinrestorer/compat/skinshuffle/SkinShuffleSkinRefreshPayload.java b/common/src/main/java/net/lionarius/skinrestorer/compat/skinshuffle/SkinShuffleSkinRefreshPayload.java deleted file mode 100644 index f8c6030..0000000 --- a/common/src/main/java/net/lionarius/skinrestorer/compat/skinshuffle/SkinShuffleSkinRefreshPayload.java +++ /dev/null @@ -1,7 +0,0 @@ -package net.lionarius.skinrestorer.compat.skinshuffle; - -import com.mojang.authlib.properties.Property; - -public interface SkinShuffleSkinRefreshPayload { - Property textureProperty(); -} diff --git a/common/src/main/java/net/lionarius/skinrestorer/compat/skinshuffle/SkinShuffleSkinRefreshV1Payload.java b/common/src/main/java/net/lionarius/skinrestorer/compat/skinshuffle/SkinShuffleSkinRefreshV1Payload.java deleted file mode 100644 index 8ccd1a3..0000000 --- a/common/src/main/java/net/lionarius/skinrestorer/compat/skinshuffle/SkinShuffleSkinRefreshV1Payload.java +++ /dev/null @@ -1,23 +0,0 @@ -package net.lionarius.skinrestorer.compat.skinshuffle; - -import com.mojang.authlib.properties.Property; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.resources.ResourceLocation; - -public record SkinShuffleSkinRefreshV1Payload( - Property textureProperty) implements SkinShuffleSkinRefreshPayload { - - public static final ResourceLocation PACKET_ID = SkinShuffleCompatibility.resourceLocation("refresh"); - - public static void encode(FriendlyByteBuf buf, SkinShuffleSkinRefreshV1Payload value) { - var textureProperty = value.textureProperty(); - - buf.writeUtf(textureProperty.getName()); - buf.writeUtf(textureProperty.getValue()); - buf.writeNullable(textureProperty.getSignature(), FriendlyByteBuf::writeUtf); - } - - public static SkinShuffleSkinRefreshV1Payload decode(FriendlyByteBuf buf) { - return new SkinShuffleSkinRefreshV1Payload(new Property(buf.readUtf(), buf.readUtf(), buf.readNullable(FriendlyByteBuf::readUtf))); - } -} diff --git a/common/src/main/java/net/lionarius/skinrestorer/compat/skinshuffle/SkinShuffleSkinRefreshV2Payload.java b/common/src/main/java/net/lionarius/skinrestorer/compat/skinshuffle/SkinShuffleSkinRefreshV2Payload.java deleted file mode 100644 index 86f35d9..0000000 --- a/common/src/main/java/net/lionarius/skinrestorer/compat/skinshuffle/SkinShuffleSkinRefreshV2Payload.java +++ /dev/null @@ -1,31 +0,0 @@ -package net.lionarius.skinrestorer.compat.skinshuffle; - -import com.mojang.authlib.properties.Property; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.resources.ResourceLocation; - -public record SkinShuffleSkinRefreshV2Payload( - Property textureProperty) implements SkinShuffleSkinRefreshPayload { - - public static final ResourceLocation PACKET_ID = SkinShuffleCompatibility.resourceLocation("skin_refresh"); - - public static void encode(FriendlyByteBuf buf, SkinShuffleSkinRefreshV2Payload value) { - var textureProperty = value.textureProperty(); - - buf.writeBoolean(textureProperty.hasSignature()); - buf.writeUtf(textureProperty.getName()); - buf.writeUtf(textureProperty.getValue()); - if (textureProperty.hasSignature()) { - assert textureProperty.getSignature() != null; - - buf.writeUtf(textureProperty.getSignature()); - } - } - - public static SkinShuffleSkinRefreshV2Payload decode(FriendlyByteBuf buf) { - if (buf.readBoolean()) { - return new SkinShuffleSkinRefreshV2Payload(new Property(buf.readUtf(), buf.readUtf(), buf.readUtf())); - } - return new SkinShuffleSkinRefreshV2Payload(new Property(buf.readUtf(), buf.readUtf(), null)); - } -} diff --git a/common/src/main/java/net/lionarius/skinrestorer/platform/services/CompatibilityHelper.java b/common/src/main/java/net/lionarius/skinrestorer/platform/services/CompatibilityHelper.java index a372f49..5660aa6 100644 --- a/common/src/main/java/net/lionarius/skinrestorer/platform/services/CompatibilityHelper.java +++ b/common/src/main/java/net/lionarius/skinrestorer/platform/services/CompatibilityHelper.java @@ -1,8 +1,4 @@ package net.lionarius.skinrestorer.platform.services; -import net.minecraft.server.level.ServerPlayer; - public interface CompatibilityHelper { - - void skinShuffle_sendHandshake(ServerPlayer player); } diff --git a/common/src/main/java/net/lionarius/skinrestorer/util/JsonUtils.java b/common/src/main/java/net/lionarius/skinrestorer/util/JsonUtils.java index e05331c..a046eae 100644 --- a/common/src/main/java/net/lionarius/skinrestorer/util/JsonUtils.java +++ b/common/src/main/java/net/lionarius/skinrestorer/util/JsonUtils.java @@ -1,9 +1,6 @@ package net.lionarius.skinrestorer.util; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; +import com.google.gson.*; import com.mojang.authlib.GameProfile; import com.mojang.authlib.properties.Property; import com.mojang.authlib.properties.PropertyMap; @@ -22,7 +19,7 @@ public final class JsonUtils { .registerTypeAdapterFactory(new PostProcessingEnabler()) .registerTypeAdapter(UUID.class, new UUIDTypeAdapter()) .registerTypeAdapter(PropertyMap.class, new PropertyMap.Serializer()) - .registerTypeAdapter(GameProfile.class, new GameProfile.Serializer()) + .registerTypeAdapter(GameProfile.class, new GameProfileSerializer()) .setPrettyPrinting() .create(); @@ -60,4 +57,26 @@ public final class JsonUtils { return null; } } + + private static class GameProfileSerializer implements JsonSerializer, JsonDeserializer { + @Override + public GameProfile deserialize(final JsonElement json, final Type typeOfT, final JsonDeserializationContext context) throws JsonParseException { + final JsonObject object = (JsonObject) json; + final UUID id = object.has("id") ? context.deserialize(object.get("id"), UUID.class) : null; + final String name = object.has("name") ? object.getAsJsonPrimitive("name").getAsString() : null; + return new GameProfile(id, name); + } + + @Override + public JsonElement serialize(final GameProfile src, final Type typeOfSrc, final JsonSerializationContext context) { + final JsonObject result = new JsonObject(); + if (src.getId() != null) { + result.add("id", context.serialize(src.getId())); + } + if (src.getName() != null) { + result.addProperty("name", src.getName()); + } + return result; + } + } } diff --git a/common/src/main/java/net/lionarius/skinrestorer/util/PlayerUtils.java b/common/src/main/java/net/lionarius/skinrestorer/util/PlayerUtils.java index bd804e5..33e25ec 100644 --- a/common/src/main/java/net/lionarius/skinrestorer/util/PlayerUtils.java +++ b/common/src/main/java/net/lionarius/skinrestorer/util/PlayerUtils.java @@ -40,7 +40,7 @@ public final class PlayerUtils { } public static void refreshPlayer(ServerPlayer player) { - ServerLevel serverLevel = player.serverLevel(); + ServerLevel serverLevel = player.getLevel(); PlayerList playerList = serverLevel.getServer().getPlayerList(); ChunkMap chunkMap = serverLevel.getChunkSource().chunkMap; @@ -70,16 +70,15 @@ public final class PlayerUtils { if (!player.isDeadOrDying()) { player.connection.send( new ClientboundRespawnPacket( - player.level().dimensionTypeId(), - player.level().dimension(), - BiomeManager.obfuscateSeed(player.serverLevel().getSeed()), + player.getLevel().dimensionTypeId(), + player.getLevel().dimension(), + BiomeManager.obfuscateSeed(player.getLevel().getSeed()), player.gameMode.getGameModeForPlayer(), player.gameMode.getPreviousGameModeForPlayer(), - player.level().isDebug(), - player.serverLevel().isFlat(), + player.getLevel().isDebug(), + player.getLevel().isFlat(), (byte) 3, - player.getLastDeathLocation(), - player.getPortalCooldown() + player.getLastDeathLocation() ) ); player.connection.teleport(player.getX(), player.getY(), player.getZ(), player.getYRot(), player.getXRot()); diff --git a/fabric/build.gradle b/fabric/build.gradle index 62adc91..d3bd252 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -14,8 +14,6 @@ dependencies { } modImplementation "net.fabricmc:fabric-loader:${fabric_loader_version}" - modCompileOnly "net.fabricmc.fabric-api:fabric-api:${fabric_api_version}" - include implementation("org.mineskin:java-client:${mineskin_client_version}") } diff --git a/fabric/src/main/java/net/lionarius/skinrestorer/fabric/SkinRestorerFabric.java b/fabric/src/main/java/net/lionarius/skinrestorer/fabric/SkinRestorerFabric.java index ae7a70b..5b0bbaa 100644 --- a/fabric/src/main/java/net/lionarius/skinrestorer/fabric/SkinRestorerFabric.java +++ b/fabric/src/main/java/net/lionarius/skinrestorer/fabric/SkinRestorerFabric.java @@ -2,18 +2,11 @@ package net.lionarius.skinrestorer.fabric; import net.fabricmc.api.ModInitializer; import net.lionarius.skinrestorer.SkinRestorer; -import net.lionarius.skinrestorer.compat.skinshuffle.SkinShuffleCompatibility; -import net.lionarius.skinrestorer.platform.Services; public final class SkinRestorerFabric implements ModInitializer { - - public static final boolean FABRIC_API_LOADED = Services.PLATFORM.isModLoaded("fabric-api"); - + @Override public void onInitialize() { SkinRestorer.onInitialize(); - - if (SkinShuffleCompatibility.shouldApply()) - net.lionarius.skinrestorer.fabric.compat.skinshuffle.SkinShuffleCompatibility.initialize(); } } diff --git a/fabric/src/main/java/net/lionarius/skinrestorer/fabric/compat/skinshuffle/SkinShuffleCompatibility.java b/fabric/src/main/java/net/lionarius/skinrestorer/fabric/compat/skinshuffle/SkinShuffleCompatibility.java deleted file mode 100644 index 5b77b27..0000000 --- a/fabric/src/main/java/net/lionarius/skinrestorer/fabric/compat/skinshuffle/SkinShuffleCompatibility.java +++ /dev/null @@ -1,46 +0,0 @@ -package net.lionarius.skinrestorer.fabric.compat.skinshuffle; - -import net.fabricmc.fabric.api.networking.v1.PacketSender; -import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents; -import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; -import net.lionarius.skinrestorer.SkinRestorer; -import net.lionarius.skinrestorer.compat.skinshuffle.SkinShuffleSkinRefreshPayload; -import net.lionarius.skinrestorer.compat.skinshuffle.SkinShuffleSkinRefreshV1Payload; -import net.lionarius.skinrestorer.compat.skinshuffle.SkinShuffleSkinRefreshV2Payload; -import net.lionarius.skinrestorer.fabric.SkinRestorerFabric; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.server.MinecraftServer; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.server.network.ServerGamePacketListenerImpl; - -public final class SkinShuffleCompatibility { - - private SkinShuffleCompatibility() {} - - public static void initialize() { - if (!SkinRestorerFabric.FABRIC_API_LOADED) { - SkinRestorer.LOGGER.warn("fabric-api is not loaded, SkinShuffle compatibility will not be available"); - return; - } - - ServerPlayConnectionEvents.JOIN.register((handler, sender, server) -> net.lionarius.skinrestorer.compat.skinshuffle.SkinShuffleCompatibility.onPlayerJoin(handler.getPlayer())); - - ServerPlayNetworking.registerGlobalReceiver(SkinShuffleSkinRefreshV1Payload.PACKET_ID, SkinShuffleCompatibility::handleSkinRefreshV1Packet); - - ServerPlayNetworking.registerGlobalReceiver(SkinShuffleSkinRefreshV2Payload.PACKET_ID, SkinShuffleCompatibility::handleSkinRefreshV2Packet); - } - - private static void handleSkinRefreshV1Packet(MinecraftServer server, ServerPlayer player, ServerGamePacketListenerImpl listener, FriendlyByteBuf buf, PacketSender sender) { - var payload = SkinShuffleSkinRefreshV1Payload.decode(buf); - SkinShuffleCompatibility.handleSkinRefreshPacket(payload, server, player); - } - - private static void handleSkinRefreshV2Packet(MinecraftServer server, ServerPlayer player, ServerGamePacketListenerImpl listener, FriendlyByteBuf buf, PacketSender sender) { - var payload = SkinShuffleSkinRefreshV2Payload.decode(buf); - SkinShuffleCompatibility.handleSkinRefreshPacket(payload, server, player); - } - - private static void handleSkinRefreshPacket(SkinShuffleSkinRefreshPayload payload, MinecraftServer server, ServerPlayer player) { - net.lionarius.skinrestorer.compat.skinshuffle.SkinShuffleCompatibility.handleSkinRefresh(server, player, payload); - } -} diff --git a/fabric/src/main/java/net/lionarius/skinrestorer/fabric/platform/FabricCompatibilityHelper.java b/fabric/src/main/java/net/lionarius/skinrestorer/fabric/platform/FabricCompatibilityHelper.java index 38cedc7..1a8584a 100644 --- a/fabric/src/main/java/net/lionarius/skinrestorer/fabric/platform/FabricCompatibilityHelper.java +++ b/fabric/src/main/java/net/lionarius/skinrestorer/fabric/platform/FabricCompatibilityHelper.java @@ -1,14 +1,6 @@ package net.lionarius.skinrestorer.fabric.platform; -import net.fabricmc.fabric.api.networking.v1.PacketByteBufs; -import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; -import net.lionarius.skinrestorer.compat.skinshuffle.SkinShuffleHandshakePayload; import net.lionarius.skinrestorer.platform.services.CompatibilityHelper; -import net.minecraft.server.level.ServerPlayer; public final class FabricCompatibilityHelper implements CompatibilityHelper { - @Override - public void skinShuffle_sendHandshake(ServerPlayer player) { - ServerPlayNetworking.send(player, SkinShuffleHandshakePayload.PACKET_ID, PacketByteBufs.empty()); - } } diff --git a/fabric/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json index 85c219d..89d74b6 100644 --- a/fabric/src/main/resources/fabric.mod.json +++ b/fabric/src/main/resources/fabric.mod.json @@ -28,8 +28,5 @@ "fabricloader": ">=${fabric_loader_version}", "minecraft": ">=${minecraft_version}", "java": ">=${java_version}" - }, - "suggests": { - "fabric-api": "*" } } diff --git a/forge/src/main/java/net/lionarius/skinrestorer/forge/SkinRestorerForge.java b/forge/src/main/java/net/lionarius/skinrestorer/forge/SkinRestorerForge.java index ef34aa0..1023cfc 100644 --- a/forge/src/main/java/net/lionarius/skinrestorer/forge/SkinRestorerForge.java +++ b/forge/src/main/java/net/lionarius/skinrestorer/forge/SkinRestorerForge.java @@ -1,7 +1,6 @@ package net.lionarius.skinrestorer.forge; import net.lionarius.skinrestorer.SkinRestorer; -import net.lionarius.skinrestorer.compat.skinshuffle.SkinShuffleCompatibility; import net.minecraftforge.event.RegisterCommandsEvent; import net.minecraftforge.event.server.ServerStartedEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; @@ -13,9 +12,6 @@ public final class SkinRestorerForge { public SkinRestorerForge() { SkinRestorer.onInitialize(); - - if (SkinShuffleCompatibility.shouldApply()) - net.lionarius.skinrestorer.forge.compat.skinshuffle.SkinShuffleCompatibility.initialize(); } @SubscribeEvent diff --git a/forge/src/main/java/net/lionarius/skinrestorer/forge/compat/skinshuffle/SkinShuffleCompatibility.java b/forge/src/main/java/net/lionarius/skinrestorer/forge/compat/skinshuffle/SkinShuffleCompatibility.java deleted file mode 100644 index a433843..0000000 --- a/forge/src/main/java/net/lionarius/skinrestorer/forge/compat/skinshuffle/SkinShuffleCompatibility.java +++ /dev/null @@ -1,14 +0,0 @@ -package net.lionarius.skinrestorer.forge.compat.skinshuffle; - -import net.minecraftforge.common.MinecraftForge; - -public final class SkinShuffleCompatibility { - - private SkinShuffleCompatibility() {} - - public static void initialize() { - MinecraftForge.EVENT_BUS.register(SkinShuffleGameEventHandler.class); - - SkinShufflePacketHandler.initialize(); - } -} diff --git a/forge/src/main/java/net/lionarius/skinrestorer/forge/compat/skinshuffle/SkinShuffleGameEventHandler.java b/forge/src/main/java/net/lionarius/skinrestorer/forge/compat/skinshuffle/SkinShuffleGameEventHandler.java deleted file mode 100644 index 70daee9..0000000 --- a/forge/src/main/java/net/lionarius/skinrestorer/forge/compat/skinshuffle/SkinShuffleGameEventHandler.java +++ /dev/null @@ -1,16 +0,0 @@ -package net.lionarius.skinrestorer.forge.compat.skinshuffle; - -import net.lionarius.skinrestorer.compat.skinshuffle.SkinShuffleCompatibility; -import net.minecraft.server.level.ServerPlayer; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.eventbus.api.SubscribeEvent; - -public final class SkinShuffleGameEventHandler { - - private SkinShuffleGameEventHandler() {} - - @SubscribeEvent - public static void onPlayerLoggedIn(PlayerEvent.PlayerLoggedInEvent event) { - SkinShuffleCompatibility.onPlayerJoin((ServerPlayer) event.getEntity()); - } -} diff --git a/forge/src/main/java/net/lionarius/skinrestorer/forge/compat/skinshuffle/SkinShufflePacketHandler.java b/forge/src/main/java/net/lionarius/skinrestorer/forge/compat/skinshuffle/SkinShufflePacketHandler.java deleted file mode 100644 index 9ead6c5..0000000 --- a/forge/src/main/java/net/lionarius/skinrestorer/forge/compat/skinshuffle/SkinShufflePacketHandler.java +++ /dev/null @@ -1,67 +0,0 @@ -package net.lionarius.skinrestorer.forge.compat.skinshuffle; - -import io.netty.buffer.Unpooled; -import net.lionarius.skinrestorer.compat.skinshuffle.SkinShuffleCompatibility; -import net.lionarius.skinrestorer.compat.skinshuffle.*; -import net.minecraft.network.Connection; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.network.protocol.game.ClientboundCustomPayloadPacket; -import net.minecraftforge.network.NetworkEvent; -import net.minecraftforge.network.NetworkRegistry; -import net.minecraftforge.network.event.EventNetworkChannel; - -public class SkinShufflePacketHandler { - private SkinShufflePacketHandler() { - } - - private static final EventNetworkChannel HANDSHAKE_INSTANCE = NetworkRegistry.ChannelBuilder - .named(SkinShuffleHandshakePayload.PACKET_ID) - .clientAcceptedVersions(NetworkRegistry.acceptMissingOr("")) - .serverAcceptedVersions(NetworkRegistry.acceptMissingOr("")) - .networkProtocolVersion(() -> "") - .eventNetworkChannel(); - - private static final EventNetworkChannel SKIN_REFRESH_V1_INSTANCE = NetworkRegistry.ChannelBuilder - .named(SkinShuffleSkinRefreshV1Payload.PACKET_ID) - .clientAcceptedVersions(NetworkRegistry.acceptMissingOr("")) - .serverAcceptedVersions(NetworkRegistry.acceptMissingOr("")) - .networkProtocolVersion(() -> "") - .eventNetworkChannel(); - - private static final EventNetworkChannel SKIN_REFRESH_V2_INSTANCE = NetworkRegistry.ChannelBuilder - .named(SkinShuffleSkinRefreshV2Payload.PACKET_ID) - .clientAcceptedVersions(NetworkRegistry.acceptMissingOr("")) - .serverAcceptedVersions(NetworkRegistry.acceptMissingOr("")) - .networkProtocolVersion(() -> "") - .eventNetworkChannel(); - - protected static void initialize() { - SKIN_REFRESH_V1_INSTANCE.addListener(SkinShufflePacketHandler::skinRefreshV1Listener); - SKIN_REFRESH_V2_INSTANCE.addListener(SkinShufflePacketHandler::skinRefreshV2Listener); - } - - public static void sendHandshake(Connection connection) { - connection.send(new ClientboundCustomPayloadPacket(SkinShuffleHandshakePayload.PACKET_ID, new FriendlyByteBuf(Unpooled.buffer(0, 0)))); - } - - private static void skinRefreshV1Listener(NetworkEvent.ClientCustomPayloadEvent event) { - var payload = SkinShuffleSkinRefreshV1Payload.decode(event.getPayload()); - handleSkinRefreshPacket(payload, event.getSource().get()); - event.getSource().get().setPacketHandled(true); - } - - private static void skinRefreshV2Listener(NetworkEvent.ClientCustomPayloadEvent event) { - var payload = SkinShuffleSkinRefreshV2Payload.decode(event.getPayload()); - handleSkinRefreshPacket(payload, event.getSource().get()); - event.getSource().get().setPacketHandled(true); - } - - private static void handleSkinRefreshPacket(SkinShuffleSkinRefreshPayload payload, NetworkEvent.Context context) { - var sender = context.getSender(); - - if (!context.getDirection().getReceptionSide().isServer() || sender == null) - return; - - SkinShuffleCompatibility.handleSkinRefresh(sender.getServer(), sender, payload); - } -} diff --git a/forge/src/main/java/net/lionarius/skinrestorer/forge/platform/ForgeCompatibilityHelper.java b/forge/src/main/java/net/lionarius/skinrestorer/forge/platform/ForgeCompatibilityHelper.java index 5f28056..5151c94 100644 --- a/forge/src/main/java/net/lionarius/skinrestorer/forge/platform/ForgeCompatibilityHelper.java +++ b/forge/src/main/java/net/lionarius/skinrestorer/forge/platform/ForgeCompatibilityHelper.java @@ -1,13 +1,6 @@ package net.lionarius.skinrestorer.forge.platform; -import net.lionarius.skinrestorer.forge.compat.skinshuffle.SkinShufflePacketHandler; import net.lionarius.skinrestorer.platform.services.CompatibilityHelper; -import net.minecraft.server.level.ServerPlayer; public final class ForgeCompatibilityHelper implements CompatibilityHelper { - - @Override - public void skinShuffle_sendHandshake(ServerPlayer player) { - SkinShufflePacketHandler.sendHandshake(player.connection.connection); - } } diff --git a/gradle.properties b/gradle.properties index 2a211f2..69fdec9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,9 +3,9 @@ group=net.lionarius java_version=17 # Common -minecraft_version=1.20 -minecraft_version_list=1.20,1.20.1 -minecraft_version_range=[1.20, 1.20.1] +minecraft_version=1.19.4 +minecraft_version_list=1.19.4 +minecraft_version_range=[1.19.4,1.20) mod_id=skinrestorer mod_name=SkinRestorer mod_version=2.3.0 @@ -21,19 +21,18 @@ description=A server-side mod for managing skins. mineskin_client_version=3.0.1-SNAPSHOT # ParchmentMC mappings, see https://parchmentmc.org/docs/getting-started#choose-a-version for new versions -parchment_minecraft=1.20.1 -parchment_version=2023.09.03 +parchment_minecraft=1.19.4 +parchment_version=2023.06.26 # Fabric, see https://fabricmc.net/develop/ for new versions fabric_loader_version=0.15.0 -fabric_api_version=0.91.1+1.20.3 -fabric_optional_dependencies=fabric-api +fabric_optional_dependencies= # Forge, see https://files.minecraftforge.net/net/minecraftforge/forge/ for new versions -forge_version=46.0.1 -forge_loader_version_range=[46,) +forge_version=45.0.0 +forge_loader_version_range=[45,) # Forge sometimes skips minor minecraft versions (like 1.20.5) -forge_minecraft_version=1.20 +forge_minecraft_version=1.19.4 # NeoForge, see https://projects.neoforged.net/neoforged/neoforge for new versions neoforge_version=20.2.3-beta