Add: Welcome and goodbye message module
All checks were successful
Auto Build and Push Docker Image / build (push) Successful in 6s

- Add /welcome command with setchannel, add, remove, list, help
- Welcome messages on guildMemberAdd event
- Goodbye messages on guildMemberRemove event
- Auto-use Discord system channel if no custom channel set
- Variables: {user}, {username}, {server}, {membercount}
- Add welcome_message and goodbye_message to guild_settings

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-23 10:24:47 +01:00
parent f17cde44c3
commit 5ee6959662
4 changed files with 228 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
import { Events, GuildMember, TextChannel, EmbedBuilder } from 'discord.js';
export default {
name: Events.GuildMemberRemove,
async execute(member: GuildMember) {
const DB = (member.client as any).DB;
const guildId = member.guild.id;
const settings: any = DB.get('SELECT * FROM guild_settings WHERE guild_id = ?', guildId);
// Use custom channel or fall back to Discord's system channel
const channelId = settings?.welcome_channel || member.guild.systemChannelId;
if (!channelId || !settings?.goodbye_message) {
return;
}
const channel = member.guild.channels.cache.get(channelId);
if (!channel || !channel.isTextBased()) {
return;
}
const message = settings.goodbye_message
.replace(/{user}/g, `<@${member.id}>`)
.replace(/{username}/g, member.user.username)
.replace(/{server}/g, member.guild.name)
.replace(/{membercount}/g, member.guild.memberCount.toString());
try {
await (channel as TextChannel).send(message);
} catch (error) {
console.error('[WELCOME] Error sending goodbye message:', error);
}
},
};