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 " ;
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 ) => { ... });
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)
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 );
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 } ` );
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);
client . on ( ClientEvent . Raw , ( { event , data } ) => {
if ( event === " VOICE_STATE_UPDATE " ) {
console . log ( " Voice state: " , data );