Skip to content

Commit f8c08cd

Browse files
committed
Fix chat messages sent in vanish
1 parent 5b8dc6b commit f8c08cd

1 file changed

Lines changed: 13 additions & 0 deletions

File tree

src/mixins/java/org/spongepowered/common/mixin/core/server/players/PlayerListMixin.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
import net.minecraft.network.Connection;
4343
import net.minecraft.network.chat.ChatType;
4444
import net.minecraft.network.chat.MutableComponent;
45+
import net.minecraft.network.chat.OutgoingChatMessage;
4546
import net.minecraft.network.chat.PlayerChatMessage;
4647
import net.minecraft.network.protocol.Packet;
4748
import net.minecraft.network.protocol.common.ClientboundDisconnectPacket;
@@ -654,6 +655,18 @@ public abstract class PlayerListMixin implements PlayerListBridge {
654655
}
655656
}
656657

658+
@ModifyExpressionValue(method = "broadcastChatMessage(Lnet/minecraft/network/chat/PlayerChatMessage;Ljava/util/function/Predicate;Lnet/minecraft/server/level/ServerPlayer;Lnet/minecraft/network/chat/ChatType$Bound;)V",
659+
at = @At(value = "INVOKE", target = "Lnet/minecraft/network/chat/OutgoingChatMessage;create(Lnet/minecraft/network/chat/PlayerChatMessage;)Lnet/minecraft/network/chat/OutgoingChatMessage;"))
660+
private OutgoingChatMessage impl$useDisguisedChatPacketForInvisibleSenders(
661+
final OutgoingChatMessage original, final @Local(argsOnly = true) PlayerChatMessage message,
662+
final @Local(argsOnly = true) net.minecraft.server.level.@Nullable ServerPlayer player
663+
) {
664+
if (player != null && ((VanishableBridge) player).bridge$vanishState().invisible()) {
665+
return new OutgoingChatMessage.Disguised(message.decoratedContent());
666+
}
667+
return original;
668+
}
669+
657670
@ModifyExpressionValue(method = "broadcastChatMessage(Lnet/minecraft/network/chat/PlayerChatMessage;Ljava/util/function/Predicate;Lnet/minecraft/server/level/ServerPlayer;Lnet/minecraft/network/chat/ChatType$Bound;)V",
658671
at = @At(value = "INVOKE", target = "Ljava/util/List;iterator()Ljava/util/Iterator;"))
659672
private Iterator<net.minecraft.server.level.ServerPlayer> impl$filterPlayersToBroadcastChatMessage(

0 commit comments

Comments
 (0)