API Integration

Integrate your addons into core bot logic, unlocking a new level of power.

✨ Features

  • Event-driven architecture β€” React to Discord and bot events

  • Backward compatibility β€” Legacy addons still work

  • Priority system β€” Control execution order of handlers

  • Error isolation β€” One addon's error won't crash others

  • Rich context β€” Access client, config, and language data

  • Async support β€” Full Promise / async-await support


πŸš€ Quick Start

Example: HelloWorld Addon

A simple addon that responds to messages, welcomes new members, and reacts to tickets being created:

βœ… With this addon

  • Type !hello β†’ Bot replies with a greeting

  • New members join β†’ Welcome message in #welcome or #general

  • Ticket is created β†’ Logged in console


πŸ“‘ Event Reference

Discord Events

Listen to Discord.js events with the discord: prefix:

Event
What It Does
Key Data

discord:messageCreate

New message sent

message

discord:messageUpdate

Message edited

message, oldMessage

discord:messageDelete

Message deleted

message

discord:guildMemberAdd

User joins server

member

discord:guildMemberRemove

User leaves server

member

discord:guildMemberUpdate

User roles/nickname changed

oldMember, newMember

discord:voiceStateUpdate

Voice channel changes

oldState, newState

discord:channelCreate

Channel created

channel

discord:channelDelete

Channel deleted

channel

discord:roleCreate

Role created

role

discord:roleDelete

Role deleted

role

discord:guildBanAdd

User banned

ban

discord:guildBanRemove

User unbanned

ban

discord:interactionCreate

Slash command/button used

interaction

discord:ready

Bot started

client

Bot Business Logic Events

Ticket Events

Event
What It Does
Key Data

ticket:created

New ticket opened

ticket, user, ticketType, questions

ticket:closed

Ticket closed/resolved

ticket, closedBy, closeReason, isAutoAlert

ticket:deleted

Ticket channel deleted

ticket, deletedBy, channelName

ticket:claimed

Staff member claims ticket

ticket, claimer

ticket:unclaimed

Staff member unclaims ticket

ticket, previousClaimer

ticket:reviewed

User reviews service

ticket, rating, feedback, reviewer

Suggestion Events

Event
What It Does
Key Data

suggestion:created

New suggestion submitted

suggestion, author, text, message

suggestion:accepted

Suggestion approved by staff

suggestion, acceptedBy, reason, originalAuthor

suggestion:denied

Suggestion rejected by staff

suggestion, deniedBy, reason, originalAuthor

Leveling Events

Event
What It Does
Key Data

level:up

User gains XP and levels up

user, newLevel, oldLevel, xpGained, userData

Auto-Moderation Events

Event
What It Does
Key Data

autoReact:triggered

Bot auto-reacts to keyword

message, keyword, emoji, reaction

autoResponse:triggered

Bot sends auto-response

message, trigger, responseType, responseContent

moderation:antiSpam

Anti-spam/mass mention triggered

type, user, action, reason, duration

Music Events

Event
What It Does
Key Data

music:trackStart

Track starts playing

track, requestedBy, queue

music:trackAdded

Track added to queue

track, requestedBy, queue

Giveaway Events

Event
What It Does
Key Data

giveaway:created

New giveaway started

giveaway, prize, winnerCount, hostedBy

giveaway:ended

Giveaway finished, winners selected

giveaway, winners, prize, totalEntries

Invite Events

Event
What It Does
Key Data

invite:memberJoined

Member joins via tracked invite

member, inviter, inviterInviteCount

Moderation Events (Slash Commands)

moderation:ban

A user is banned via slash command or audit log

type, target, moderator, reason, guild, dmSent, method

moderation:unban

A previously banned user is unbanned

type, targetUserId, moderator, reason, guild, method

moderation:kick

A member is removed from the server

type, target, moderator, reason, guild, dmSent, method

moderation:warn

A moderator issues a warning

type, target, moderator, reason, guild, warningCount, warning, method

moderation:unwarn

A warning is removed from a user

type, target, moderator, removedWarning, warningId, guild, remainingWarnings, method

moderation:timeout

A user is muted/timed out

type, subType, target, moderator, reason, duration, durationMs, endTime, guild, method

moderation:timeout_clear

Timeout or mute is lifted

type, target, moderator, guild, wasMuted, method

moderation:tempban

A moderator applies a timed ban

type, target, moderator, reason, duration, endTime, guild, dmSent, method

moderation:nickname_change

A moderator edits a user’s nickname

type, target, moderator, oldNickname, newNickname, guild, method

moderation:purge

A moderator bulk deletes messages

type, moderator, channel, guild, messageCount, purgeType, originalAmount, method

Addon Lifecycle Events

Event
What It Does
Key Data

addon:loaded

Addon loaded successfully

name, path, type

addon:unloaded

Addon unloaded

name, path

addon:registered

Addon registered with event system

name, events


πŸ”§ Custom Events

Emit and listen for your own events:


🧰 Context Object

Every handler receives:


βš™οΈ Advanced Features

Priority System

Control execution order:

Error Handling

Addons run independently:

Database Integration

Use Mongoose inside addons:

Conditional Event Handling

Run logic only in certain channels/users:


πŸ”„ Migration from Legacy Addons

Legacy Format (still works)

New Event API Format

Key Differences

  • Legacy β†’ run function, no name property

  • New β†’ name required, uses events

  • New format benefits: event-driven API, hot reloading, enable/disable, error isolation, priorities


πŸ“‹ Requirements Summary

Absolutely Required

  • name (string) β€” Unique addon identifier

Required (pick one)

  • events (object) β€” Event handlers

  • run (function) β€” Init function

Optional (defaults)

  • version β†’ '1.0.0'

  • description β†’ ''

  • author β†’ 'Unknown'

  • priority β†’ 0

  • permissions β†’ []

  • dependencies β†’ []

Minimal Working Addon


πŸ’‘ Practical Examples

Staff Notification System

Level Rewards System

Auto-Moderation Logger

Last updated