Skip to content

Event System

Events are the soul of the Xinbot plugin system. By listening to different events, your plugin can react to chat, logins, and other server activities.

1. Create a Listener

Implement the xin.bbtt.mcbot.event.Listener interface. Using SLF4J Logger is highly recommended.

📄 Source

The dispatch core lives in the event/ package (EventManager, EventHandler, EventPriority), and every built-in event type lives in the events/ package.

java
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import xin.bbtt.mcbot.event.Listener;
import xin.bbtt.mcbot.event.EventHandler;
import xin.bbtt.mcbot.event.EventPriority;
import xin.bbtt.mcbot.events.PublicChatEvent;

public class MyChatListener implements Listener {
    private static final Logger log = LoggerFactory.getLogger(MyChatListener.class);

    @EventHandler(priority = EventPriority.NORMAL)
    public void onPublicChat(PublicChatEvent event) {
        // Use log instead of System.out for proper formatting
        log.info("[Chat] {}: {}", event.getSender(), event.getMessage());
    }
}

2. Common Events List

Event NameTriggered WhenCore Methods
PublicChatEventPublic chat message receivedgetSender(), getMessage()
PrivateChatEventPrivate message (whisper) receivedgetSender(), getMessage()
SystemChatMessageEventSystem message receivedgetContent(), getText(), isOverlay()
PlayerJoinEventA player joinsgetPlayerProfile()
PlayerLeaveEventA player leavesgetPlayerProfile()
ConnectEventConnected to the server-
DisconnectEventDisconnected from the servergetReason()
ServerChangeEventSub-server switch on a networkgetServer(), getCurrentServer()
LoginSuccessEventSuccessfully logged into the server-
ReceivePacketEventRaw network packet receivedgetPacket()

These are just the common ones. The full set of built-in event types (20+) lives in the events/ package.


3. Event Priorities

Xinbot supports 6 priorities (EventPriority) to determine execution order:

  1. LOWEST (First) -> 2. LOW -> 3. NORMAL (Default) -> 4. HIGH -> 5. HIGHEST -> 6. MONITOR (Last, read-only)

QQ Group: 434173700 · Telegram · Released under the GPL-3.0 License.