From 7023a576e6ccb0dd325922f4981286bc9b1c4e04 Mon Sep 17 00:00:00 2001 From: IzzelAliz Date: Sat, 3 Sep 2022 21:14:07 +0800 Subject: [PATCH] Fix Player.Spigot#sendMessage --- .../bukkit/BukkitCommandWrapperMixin.java | 18 --------------- .../ClientboundSystemChatPacketMixin.java | 23 +++++++++++++++++++ .../common/mod/ArclightMixinPlugin.java | 1 + .../resources/mixins.arclight.bukkit.json | 1 - .../main/resources/mixins.arclight.core.json | 1 + 5 files changed, 25 insertions(+), 19 deletions(-) delete mode 100644 arclight-common/src/main/java/io/izzel/arclight/common/mixin/bukkit/BukkitCommandWrapperMixin.java create mode 100644 arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/network/protocol/game/ClientboundSystemChatPacketMixin.java diff --git a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/bukkit/BukkitCommandWrapperMixin.java b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/bukkit/BukkitCommandWrapperMixin.java deleted file mode 100644 index 8ce718c4..00000000 --- a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/bukkit/BukkitCommandWrapperMixin.java +++ /dev/null @@ -1,18 +0,0 @@ -package io.izzel.arclight.common.mixin.bukkit; - -import com.mojang.brigadier.context.CommandContext; -import org.bukkit.craftbukkit.v.command.BukkitCommandWrapper; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Redirect; - -@Mixin(BukkitCommandWrapper.class) -public class BukkitCommandWrapperMixin { - - @Redirect(method = "run", remap = false, at = @At(value = "INVOKE", target = "Lcom/mojang/brigadier/context/CommandContext;getInput()Ljava/lang/String;")) - public String arclight$removeSlash(CommandContext context) { - String input = context.getInput(); - if (input.startsWith("/")) return input.substring(1); - return input; - } -} diff --git a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/network/protocol/game/ClientboundSystemChatPacketMixin.java b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/network/protocol/game/ClientboundSystemChatPacketMixin.java new file mode 100644 index 00000000..d1b83ebe --- /dev/null +++ b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/network/protocol/game/ClientboundSystemChatPacketMixin.java @@ -0,0 +1,23 @@ +package io.izzel.arclight.common.mixin.core.network.protocol.game; + +import net.md_5.bungee.api.chat.BaseComponent; +import net.md_5.bungee.chat.ComponentSerializer; +import net.minecraft.network.chat.Component; +import net.minecraft.network.protocol.game.ClientboundSystemChatPacket; +import org.spongepowered.asm.mixin.Mixin; + +@Mixin(ClientboundSystemChatPacket.class) +public class ClientboundSystemChatPacketMixin { + + public void arclight$constructor(Component content, boolean overlay) { + throw new RuntimeException(); + } + + public void arclight$constructor(String content, boolean overlay) { + arclight$constructor(Component.Serializer.fromJson(content), overlay); + } + + public void arclight$constructor(BaseComponent[] content, boolean overlay) { + arclight$constructor(ComponentSerializer.toString(content), overlay); + } +} diff --git a/arclight-common/src/main/java/io/izzel/arclight/common/mod/ArclightMixinPlugin.java b/arclight-common/src/main/java/io/izzel/arclight/common/mod/ArclightMixinPlugin.java index 5d4dca90..f9376ac0 100644 --- a/arclight-common/src/main/java/io/izzel/arclight/common/mod/ArclightMixinPlugin.java +++ b/arclight-common/src/main/java/io/izzel/arclight/common/mod/ArclightMixinPlugin.java @@ -126,6 +126,7 @@ public class ArclightMixinPlugin implements IMixinConfigPlugin { .add("net.minecraft.network.chat.TextColor") .add("net.minecraft.commands.Commands") .add("net.minecraft.world.level.storage.LevelStorageSource.LevelStorageAccess") + .add("net.minecraft.network.protocol.game.ClientboundSystemChatPacket") .build(); @Override diff --git a/arclight-common/src/main/resources/mixins.arclight.bukkit.json b/arclight-common/src/main/resources/mixins.arclight.bukkit.json index a627a7f4..2357a6f2 100644 --- a/arclight-common/src/main/resources/mixins.arclight.bukkit.json +++ b/arclight-common/src/main/resources/mixins.arclight.bukkit.json @@ -11,7 +11,6 @@ }, "compatibilityLevel": "JAVA_11", "mixins": [ - "BukkitCommandWrapperMixin", "ColouredConsoleSenderMixin", "CraftAbstractVillagerMixin", "CraftBlockMixin", diff --git a/arclight-common/src/main/resources/mixins.arclight.core.json b/arclight-common/src/main/resources/mixins.arclight.core.json index f63fe510..74acc042 100644 --- a/arclight-common/src/main/resources/mixins.arclight.core.json +++ b/arclight-common/src/main/resources/mixins.arclight.core.json @@ -39,6 +39,7 @@ "network.chat.TextColorMixin", "network.protocol.PacketThreadUtilMixin", "network.protocol.game.CCloseWindowPacketMixin", + "network.protocol.game.ClientboundSystemChatPacketMixin", "network.protocol.game.CPlayerTryUseItemOnBlockPacketMixin", "network.protocol.game.CPlayerTryUseItemPacketMixin", "network.protocol.game.SWorldBorderPacketMixin",