Code Patterns

Copy-paste examples for common plugin tasks. Commands, events, ECS, GUI, and more.

← Back to Patterns
player

Chat Formatting

Format chat messages using PlayerChatEvent and Message builder.

Example Code

java
public static void onPlayerChat(PlayerChatEvent event) {
    PlayerRef sender = event.getSender();

    // Filter bad words
    if (event.getContent().equalsIgnoreCase("badword")) {
        event.setCancelled(true);
        sender.sendMessage(Message.raw("Watch your language!").color(Color.RED));
        return;
    }

    // Replace content
    if (event.getContent().contains("replace_me")) {
        event.setContent(event.getContent().replace("replace_me", "replaced"));
    }

    // Custom chat format
    event.setFormatter((playerRef, message) ->
        Message.join(
            Message.raw("[Admin] ").color(Color.RED),
            Message.raw(sender.getUsername()).color(Color.YELLOW),
            Message.raw(" : " + message).color(Color.WHITE)
        )
    );
}

// Register in setup():
getEventRegistry().registerGlobal(PlayerChatEvent.class, ChatHandler::onPlayerChat);

Thread Safety

PlayerChatEvent is async (IAsyncEvent).

Common Mistakes

Modifying game state in async event handler.