From 311c0dc4c6375c4afb320b25d177bf90d208905c Mon Sep 17 00:00:00 2001 From: Pyrofab Date: Mon, 1 Jan 2024 23:54:14 +0100 Subject: [PATCH] Clean up mixins --- .../impl/mixin/PlayerManagerMixin.java | 2 +- ...a => ServerCommonNetworkHandlerMixin.java} | 2 +- .../impl/mixin/TextSerializerMixin.java | 48 ------------------- .../resources/mixins.impersonate.common.json | 3 +- 4 files changed, 3 insertions(+), 52 deletions(-) rename src/main/java/io/github/ladysnake/impersonate/impl/mixin/{ServerPlayNetworkHandlerMixin.java => ServerCommonNetworkHandlerMixin.java} (98%) delete mode 100644 src/main/java/io/github/ladysnake/impersonate/impl/mixin/TextSerializerMixin.java diff --git a/src/main/java/io/github/ladysnake/impersonate/impl/mixin/PlayerManagerMixin.java b/src/main/java/io/github/ladysnake/impersonate/impl/mixin/PlayerManagerMixin.java index 8803e55..8a5e253 100644 --- a/src/main/java/io/github/ladysnake/impersonate/impl/mixin/PlayerManagerMixin.java +++ b/src/main/java/io/github/ladysnake/impersonate/impl/mixin/PlayerManagerMixin.java @@ -28,7 +28,7 @@ import org.spongepowered.asm.mixin.injection.Redirect; @Mixin(PlayerManager.class) -public class PlayerManagerMixin { +public abstract class PlayerManagerMixin { @Redirect(method = "loadPlayerData", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/network/ServerPlayerEntity;getGameProfile()Lcom/mojang/authlib/GameProfile;")) private GameProfile resolvePlayerName(ServerPlayerEntity player) { return Impersonator.get(player).getActualProfile(); diff --git a/src/main/java/io/github/ladysnake/impersonate/impl/mixin/ServerPlayNetworkHandlerMixin.java b/src/main/java/io/github/ladysnake/impersonate/impl/mixin/ServerCommonNetworkHandlerMixin.java similarity index 98% rename from src/main/java/io/github/ladysnake/impersonate/impl/mixin/ServerPlayNetworkHandlerMixin.java rename to src/main/java/io/github/ladysnake/impersonate/impl/mixin/ServerCommonNetworkHandlerMixin.java index fcb2a04..29675e5 100644 --- a/src/main/java/io/github/ladysnake/impersonate/impl/mixin/ServerPlayNetworkHandlerMixin.java +++ b/src/main/java/io/github/ladysnake/impersonate/impl/mixin/ServerCommonNetworkHandlerMixin.java @@ -37,7 +37,7 @@ import org.spongepowered.asm.mixin.injection.ModifyArg; @Mixin(ServerCommonNetworkHandler.class) -public abstract class ServerPlayNetworkHandlerMixin { +public abstract class ServerCommonNetworkHandlerMixin { @Shadow @Final protected MinecraftServer server; diff --git a/src/main/java/io/github/ladysnake/impersonate/impl/mixin/TextSerializerMixin.java b/src/main/java/io/github/ladysnake/impersonate/impl/mixin/TextSerializerMixin.java deleted file mode 100644 index 4efddce..0000000 --- a/src/main/java/io/github/ladysnake/impersonate/impl/mixin/TextSerializerMixin.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Impersonate - * Copyright (C) 2020-2024 Ladysnake - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; If not, see . - */ -package io.github.ladysnake.impersonate.impl.mixin; - -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonSerializationContext; -import io.github.ladysnake.impersonate.impl.ImpersonateTextContent; -import net.minecraft.text.Text; -import net.minecraft.text.TextContent; -import org.objectweb.asm.Opcodes; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -import org.spongepowered.asm.mixin.injection.callback.LocalCapture; - -import java.lang.reflect.Type; - -@Mixin(Text.Serializer.class) -public class TextSerializerMixin { - @Inject(method = "serialize(Lnet/minecraft/text/Text;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement;", - at = @At(value = "FIELD", target = "Lnet/minecraft/text/TextContent;EMPTY:Lnet/minecraft/text/TextContent;", opcode = Opcodes.GETSTATIC), - locals = LocalCapture.CAPTURE_FAILSOFT, - cancellable = true - ) - private void serializeImpersonateTexts(Text text, Type type, JsonSerializationContext jsonSerializationContext, CallbackInfoReturnable cir, JsonObject jsonObject, TextContent textContent) { - if (textContent instanceof ImpersonateTextContent cnt) { - jsonObject.addProperty("text", cnt.getString()); - cir.setReturnValue(jsonObject); - } - } -} diff --git a/src/main/resources/mixins.impersonate.common.json b/src/main/resources/mixins.impersonate.common.json index 473be50..98f6a4d 100644 --- a/src/main/resources/mixins.impersonate.common.json +++ b/src/main/resources/mixins.impersonate.common.json @@ -13,10 +13,9 @@ "PlayerListS2CPacketEntryAccessor", "PlayerListS2CPacketEntryMixin", "PlayerManagerMixin", + "ServerCommonNetworkHandlerMixin", "ServerPlayerEntityMixin", - "ServerPlayNetworkHandlerMixin", "TextMixin", - "TextSerializerMixin", "ThreadedAnvilChunkStorageAccessor", "TranslatableTextContentMixin" ],