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.