package net.minecraftforge.event;
import net.minecraftforge.fml.common.eventhandler.Cancelable;
import net.minecraftforge.fml.common.eventhandler.Event;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.util.text.ITextComponent;
/**
* ServerChatEvent is fired whenever a C01PacketChatMessage is processed.
* This event is fired via {@link ForgeHooks#onServerChatEvent(net.minecraft.network.NetHandlerPlayServer, String, ChatComponentTranslation)},
* which is executed by the NetHandlerPlayServer#processChatMessage(net.minecraft.network.play.client.C01PacketChatMessage)
*
* {@link #username} contains the username of the player sending the chat message.
* {@link #message} contains the message being sent.
* {@link #player} the instance of EntityPlayerMP for the player sending the chat message.
* {@link #component} contains the instance of ChatComponentTranslation for the sent message.
*
* This event is {@link Cancelable}.
* If this event is canceled, the chat message is never distributed to all clients.
*
* This event does not have a result. {@link HasResult}
*
* This event is fired on the {@link MinecraftForge#EVENT_BUS}.
**/
@Cancelable
public class ServerChatEvent extends Event
{
private final String message, username;
private final EntityPlayerMP player;
private ITextComponent component;
public ServerChatEvent(EntityPlayerMP player, String message, ITextComponent component)
{
super();
this.message = message;
this.player = player;
this.username = player.getGameProfile().getName();
this.component = component;
}
public void setComponent(ITextComponent e)
{
this.component = e;
}
public ITextComponent getComponent()
{
return this.component;
}
public String getMessage() { return this.message; }
public String getUsername() { return this.username; }
public EntityPlayerMP getPlayer() { return this.player; }
}