35 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			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);
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| }
 |