42 lines
1.5 KiB
Java
42 lines
1.5 KiB
Java
|
package net.minecraft.network.chat;
|
||
|
|
||
|
import net.minecraft.server.level.ServerPlayer;
|
||
|
|
||
|
public interface OutgoingChatMessage {
|
||
|
Component content();
|
||
|
|
||
|
void sendToPlayer(ServerPlayer p_250979_, boolean p_249307_, ChatType.Bound p_252281_);
|
||
|
|
||
|
static OutgoingChatMessage create(PlayerChatMessage p_249173_) {
|
||
|
return (OutgoingChatMessage)(p_249173_.isSystem()
|
||
|
? new OutgoingChatMessage.Disguised(p_249173_.decoratedContent())
|
||
|
: new OutgoingChatMessage.Player(p_249173_));
|
||
|
}
|
||
|
|
||
|
public record Disguised(Component content) implements OutgoingChatMessage {
|
||
|
@Override
|
||
|
public Component content() {
|
||
|
return this.content;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public void sendToPlayer(ServerPlayer p_249237_, boolean p_249574_, ChatType.Bound p_250880_) {
|
||
|
p_249237_.connection.sendDisguisedChatMessage(this.content, p_250880_);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public record Player(PlayerChatMessage message) implements OutgoingChatMessage {
|
||
|
@Override
|
||
|
public Component content() {
|
||
|
return this.message.decoratedContent();
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public void sendToPlayer(ServerPlayer p_249642_, boolean p_251123_, ChatType.Bound p_251482_) {
|
||
|
PlayerChatMessage playerchatmessage = this.message.filter(p_251123_);
|
||
|
if (!playerchatmessage.isFullyFiltered()) {
|
||
|
p_249642_.connection.sendPlayerChatMessage(playerchatmessage, p_251482_);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|