Skip to content

ClientEvent

ClientEvent is a string enum of all events the Client emits. Use it with client.on(ClientEvent.MessageCreate, ...) for type-safe event subscriptions instead of string literals.

import { ClientEvent } from "lunibee";
client.on(ClientEvent.Ready, (user) => {
console.log(`🐝 Logged in as ${user.username}`);
});
// Equivalent string form (also valid):
client.on("ready", (user) => { ... });
Event String Key Listener Args
ClientEvent.Ready "ready" (user: ClientUser)
ClientEvent.Resumed "resumed" ()
ClientEvent.InvalidSession "invalidSession" (isRecoverable: boolean)
ClientEvent.Open "open" ()
ClientEvent.Close "close" ({ code: number, action: string })
ClientEvent.Error "error" (error: Error)
ClientEvent.Raw "raw" ({ event: string, data: unknown })
Event String Key Listener Args
ClientEvent.MessageCreate "messageCreate" (message: Message)
ClientEvent.MessageUpdate "messageUpdate" (message: Message)
ClientEvent.MessageDelete "messageDelete" (data: APIMessageDeleteEvent)
ClientEvent.MessageDeleteBulk "messageDeleteBulk" (data: APIMessageDeleteBulkEvent)
Event String Key Listener Args
ClientEvent.MessageReactionAdd "messageReactionAdd" (data: APIMessageReactionEvent)
ClientEvent.MessageReactionRemove "messageReactionRemove" (data: APIMessageReactionEvent)
ClientEvent.MessageReactionRemoveAll "messageReactionRemoveAll" (data: ...)
ClientEvent.MessageReactionRemoveEmoji "messageReactionRemoveEmoji" (data: ...)
Event String Key Listener Args
ClientEvent.GuildCreate "guildCreate" (guild: APIGuild)
ClientEvent.GuildUpdate "guildUpdate" (guild: APIGuild)
ClientEvent.GuildDelete "guildDelete" (data: { id: string })
ClientEvent.GuildAvailable "guildAvailable" (guild: APIGuild)
ClientEvent.GuildUnavailable "guildUnavailable" (data: ...)
Event String Key Listener Args
ClientEvent.GuildMemberAdd "guildMemberAdd" (member: APIGuildMember)
ClientEvent.GuildMemberUpdate "guildMemberUpdate" (member: APIGuildMember)
ClientEvent.GuildMemberRemove "guildMemberRemove" (member: APIGuildMember)
ClientEvent.GuildMembersChunk "guildMembersChunk" (data: APIGuildMembersChunk)
Event String Key Listener Args
ClientEvent.ChannelCreate "channelCreate" (channel: Channel)
ClientEvent.ChannelUpdate "channelUpdate" (channel: Channel)
ClientEvent.ChannelDelete "channelDelete" (data: APIChannel)
ClientEvent.ChannelPinsUpdate "channelPinsUpdate" (data: ...)
Event String Key Listener Args
ClientEvent.GuildRoleCreate "guildRoleCreate" (data: APIGuildRoleEvent)
ClientEvent.GuildRoleUpdate "guildRoleUpdate" (data: APIGuildRoleEvent)
ClientEvent.GuildRoleDelete "guildRoleDelete" (data: APIGuildRoleDeleteEvent)
Event String Key Listener Args
ClientEvent.InteractionCreate "interactionCreate" (interaction: Interaction)
Event String Key Listener Args
ClientEvent.VoiceStateUpdate "voiceStateUpdate" (data: APIVoiceState)
ClientEvent.VoiceServerUpdate "voiceServerUpdate" (data: APIVoiceServerUpdate)
Event String Key Listener Args
ClientEvent.ThreadCreate "threadCreate" (channel: Channel)
ClientEvent.ThreadUpdate "threadUpdate" (channel: Channel)
ClientEvent.ThreadDelete "threadDelete" (data: ...)
ClientEvent.ThreadListSync "threadListSync" (data: ...)
Event String Key Listener Args
ClientEvent.PresenceUpdate "presenceUpdate" (data: APIPresenceUpdate)
ClientEvent.TypingStart "typingStart" (data: APITypingStart)

Scheduled Events, AutoMod, Invites, Webhooks, Polls

Section titled “Scheduled Events, AutoMod, Invites, Webhooks, Polls”
Event Description
GuildScheduledEventCreate/Update/Delete Guild scheduled event lifecycle.
AutoModerationRuleCreate/Update/Delete AutoMod rule changes.
AutoModerationActionExecution AutoMod action fired.
InviteCreate / InviteDelete Invite creation/deletion.
WebhooksUpdate Webhook updates.
MessagePollVoteAdd / MessagePollVoteRemove Poll vote events.

Handle errors gracefully

client.on(ClientEvent.Error, (error) => {
console.error("Client error:", error.message);
});

React to every message (read-only monitor)

client.on(ClientEvent.MessageCreate, (message) => {
if (!message.author.bot) {
console.log(`[${message.guildId ?? "DM"}] ${message.author.username}: ${message.content}`);
}
});

Log raw Gateway events

client.on(ClientEvent.Raw, ({ event, data }) => {
if (event === "VOICE_STATE_UPDATE") {
console.log("Voice state:", data);
}
});