minecraft-src/net/minecraft/network/chat/OutgoingChatMessage.java
2025-07-04 01:41:11 +03:00

35 lines
1.2 KiB
Java

package net.minecraft.network.chat;
import net.minecraft.server.level.ServerPlayer;
public interface OutgoingChatMessage {
Component content();
void sendToPlayer(ServerPlayer player, boolean filtered, ChatType.Bound boundType);
static OutgoingChatMessage create(PlayerChatMessage message) {
return (OutgoingChatMessage)(message.isSystem() ? new OutgoingChatMessage.Disguised(message.decoratedContent()) : new OutgoingChatMessage.Player(message));
}
public record Disguised(Component content) implements OutgoingChatMessage {
@Override
public void sendToPlayer(ServerPlayer player, boolean filtered, ChatType.Bound boundType) {
player.connection.sendDisguisedChatMessage(this.content, boundType);
}
}
public record Player(PlayerChatMessage message) implements OutgoingChatMessage {
@Override
public Component content() {
return this.message.decoratedContent();
}
@Override
public void sendToPlayer(ServerPlayer player, boolean filtered, ChatType.Bound boundType) {
PlayerChatMessage playerChatMessage = this.message.filter(filtered);
if (!playerChatMessage.isFullyFiltered()) {
player.connection.sendPlayerChatMessage(playerChatMessage, boundType);
}
}
}
}