0x02 S02PacketChat
Server sends a chat message or command response to the client.
Fields
| Field | Type | Description |
|---|---|---|
| chatComponent | IChatComponent | The chat message or command response |
| type | byte | 0 = chat box, 1 = system message (singleplayer), 2 = above hotbar |
Wire Encoding
| Field | Type | Notes |
|---|---|---|
| JSON Data | Chat Component | The chat message JSON |
| Position | byte | 0=chat, 1=system, 2=actionbar |
MCP References
NetHandlerPlayClient.handleChat()Handler Interface
INetHandlerPlayClientNotes
implementation Implementation Cases
Most commonly intercepted clientbound packet. AutoGG detects game-end messages. NameProtect replaces player name. AutoTPA auto-accepts teleport requests. AutoPlay auto-queues after game end. FlagDetector detects anti-cheat messages.
// AutoGG + AutoPlay
if (event.getPacket() instanceof S02PacketChat) {
S02PacketChat s02 = (S02PacketChat) event.getPacket();
String msg = s02.getChatComponent().getUnformattedText();
if (msg.contains("1st Killer - ") || msg.contains("Winner: ")) {
mc.thePlayer.sendChatMessage("/play solo_insane"); // AutoPlay
mc.thePlayer.sendChatMessage("gg"); // AutoGG
}
}
// NameProtect
if (msg.contains(mc.thePlayer.getName())) {
event.setCancelled(true);
String replaced = msg.replace(mc.thePlayer.getName(), "You");
ChatUtil.printChat(replaced);
}Most commonly intercepted clientbound packet. AutoGG detects game-end messages. NameProtect replaces player name. AutoTPA auto-accepts teleport requests. AutoPlay auto-queues after game end. FlagDetector detects anti-cheat messages.
// AutoGG + AutoPlay
if (event.getPacket() instanceof S02PacketChat) {
S02PacketChat s02 = (S02PacketChat) event.getPacket();
String msg = s02.getChatComponent().getUnformattedText();
if (msg.contains("1st Killer - ") || msg.contains("Winner: ")) {
mc.thePlayer.sendChatMessage("/play solo_insane"); // AutoPlay
mc.thePlayer.sendChatMessage("gg"); // AutoGG
}
}
// NameProtect
if (msg.contains(mc.thePlayer.getName())) {
event.setCancelled(true);
String replaced = msg.replace(mc.thePlayer.getName(), "You");
ChatUtil.printChat(replaced);
}Most commonly intercepted clientbound packet. AutoGG detects game-end messages. NameProtect replaces player name. AutoTPA auto-accepts teleport requests. AutoPlay auto-queues after game end. FlagDetector detects anti-cheat messages.
// AutoGG + AutoPlay
if (event.getPacket() instanceof S02PacketChat) {
S02PacketChat s02 = (S02PacketChat) event.getPacket();
String msg = s02.getChatComponent().getUnformattedText();
if (msg.contains("1st Killer - ") || msg.contains("Winner: ")) {
mc.thePlayer.sendChatMessage("/play solo_insane"); // AutoPlay
mc.thePlayer.sendChatMessage("gg"); // AutoGG
}
}
// NameProtect
if (msg.contains(mc.thePlayer.getName())) {
event.setCancelled(true);
String replaced = msg.replace(mc.thePlayer.getName(), "You");
ChatUtil.printChat(replaced);
}Most commonly intercepted clientbound packet. AutoGG detects game-end messages. NameProtect replaces player name. AutoTPA auto-accepts teleport requests. AutoPlay auto-queues after game end. FlagDetector detects anti-cheat messages.
// AutoGG + AutoPlay
if (event.getPacket() instanceof S02PacketChat) {
S02PacketChat s02 = (S02PacketChat) event.getPacket();
String msg = s02.getChatComponent().getUnformattedText();
if (msg.contains("1st Killer - ") || msg.contains("Winner: ")) {
mc.thePlayer.sendChatMessage("/play solo_insane"); // AutoPlay
mc.thePlayer.sendChatMessage("gg"); // AutoGG
}
}
// NameProtect
if (msg.contains(mc.thePlayer.getName())) {
event.setCancelled(true);
String replaced = msg.replace(mc.thePlayer.getName(), "You");
ChatUtil.printChat(replaced);
}Most commonly intercepted clientbound packet. AutoGG detects game-end messages. NameProtect replaces player name. AutoTPA auto-accepts teleport requests. AutoPlay auto-queues after game end. FlagDetector detects anti-cheat messages.
// AutoGG + AutoPlay
if (event.getPacket() instanceof S02PacketChat) {
S02PacketChat s02 = (S02PacketChat) event.getPacket();
String msg = s02.getChatComponent().getUnformattedText();
if (msg.contains("1st Killer - ") || msg.contains("Winner: ")) {
mc.thePlayer.sendChatMessage("/play solo_insane"); // AutoPlay
mc.thePlayer.sendChatMessage("gg"); // AutoGG
}
}
// NameProtect
if (msg.contains(mc.thePlayer.getName())) {
event.setCancelled(true);
String replaced = msg.replace(mc.thePlayer.getName(), "You");
ChatUtil.printChat(replaced);
}Most commonly intercepted clientbound packet. AutoGG detects game-end messages. NameProtect replaces player name. AutoTPA auto-accepts teleport requests. AutoPlay auto-queues after game end. FlagDetector detects anti-cheat messages.
// AutoGG + AutoPlay
if (event.getPacket() instanceof S02PacketChat) {
S02PacketChat s02 = (S02PacketChat) event.getPacket();
String msg = s02.getChatComponent().getUnformattedText();
if (msg.contains("1st Killer - ") || msg.contains("Winner: ")) {
mc.thePlayer.sendChatMessage("/play solo_insane"); // AutoPlay
mc.thePlayer.sendChatMessage("gg"); // AutoGG
}
}
// NameProtect
if (msg.contains(mc.thePlayer.getName())) {
event.setCancelled(true);
String replaced = msg.replace(mc.thePlayer.getName(), "You");
ChatUtil.printChat(replaced);
}Most commonly intercepted clientbound packet. AutoGG detects game-end messages. NameProtect replaces player name. AutoTPA auto-accepts teleport requests. AutoPlay auto-queues after game end. FlagDetector detects anti-cheat messages.
// AutoGG + AutoPlay
if (event.getPacket() instanceof S02PacketChat) {
S02PacketChat s02 = (S02PacketChat) event.getPacket();
String msg = s02.getChatComponent().getUnformattedText();
if (msg.contains("1st Killer - ") || msg.contains("Winner: ")) {
mc.thePlayer.sendChatMessage("/play solo_insane"); // AutoPlay
mc.thePlayer.sendChatMessage("gg"); // AutoGG
}
}
// NameProtect
if (msg.contains(mc.thePlayer.getName())) {
event.setCancelled(true);
String replaced = msg.replace(mc.thePlayer.getName(), "You");
ChatUtil.printChat(replaced);
}Most commonly intercepted clientbound packet. AutoGG detects game-end messages. NameProtect replaces player name. AutoTPA auto-accepts teleport requests. AutoPlay auto-queues after game end. FlagDetector detects anti-cheat messages.
// AutoGG + AutoPlay
if (event.getPacket() instanceof S02PacketChat) {
S02PacketChat s02 = (S02PacketChat) event.getPacket();
String msg = s02.getChatComponent().getUnformattedText();
if (msg.contains("1st Killer - ") || msg.contains("Winner: ")) {
mc.thePlayer.sendChatMessage("/play solo_insane"); // AutoPlay
mc.thePlayer.sendChatMessage("gg"); // AutoGG
}
}
// NameProtect
if (msg.contains(mc.thePlayer.getName())) {
event.setCancelled(true);
String replaced = msg.replace(mc.thePlayer.getName(), "You");
ChatUtil.printChat(replaced);
}