Events
Guild Delete
Handling bot removal from servers in nsCore
Overview
The guildDelete event is triggered when the bot is removed from a server or the server itself becomes unavailable.
This event is essential for:
- Cleaning up stored data
- Logging server removals
- Tracking bot growth and churn
- Preventing stale configurations
This event fires automatically when the bot leaves or is kicked from a guild.
When Is guildDelete Triggered?
The event fires when:
- A server owner removes the bot
- The bot is kicked
- The guild is deleted or becomes permanently unavailable
client.on('guildDelete', guild => {
// Triggered when the bot leaves a guild
})This event does NOT fire when the bot is offline during removal.
Typical Use Cases
Common tasks handled in guildDelete include:
- Removing guild-specific configurations
- Clearing database entries
- Logging server departure details
- Updating analytics dashboards
Tracking guild removals helps you understand why servers stop using your bot.
Example Implementation
Below is a basic guildDelete event handler structure:
import { ExtendedClient } from '../../interfaces/ExtendedClient'
import { logger } from '../../utils/logger'
export const registerGuildDeleteEvent = (client: ExtendedClient) => {
client.on('guildDelete', guild => {
logger.warn('Guild', `Removed from guild: ${guild.name} (${guild.id})`)
})
}Always log guild removals to keep operational visibility.
Handling Missing Data
In some cases:
- Guild name may be unavailable
- Member count may be
null
Always write defensive code.
guild.name ?? 'Unknown Guild'Never assume guild properties are always present.
Best Practices
- Avoid async-heavy logic inside this event
- Never attempt to send messages to the guild
- Immediately clean stored guild data
- Keep this handler lightweight
Attempting to message a deleted guild will always fail.
Summary
The guildDelete event:
- Detects when the bot leaves a server
- Helps maintain clean state
- Supports analytics and logging
- Prevents orphaned data
It is a critical server lifecycle event and should always be implemented.
Last updated on