swapped to a new db locally hosted

This commit is contained in:
2025-10-06 00:25:29 -04:00
parent 097583ca0a
commit ca23c0ab8c
40 changed files with 2244 additions and 556 deletions

View File

@@ -5,39 +5,37 @@ module.exports = {
name: Events.GuildMemberRemove,
async execute(member) {
try {
const db = readDb();
const settings = db[member.guild.id];
const api = require('../api');
const settings = (await api.getServerSettings(member.guild.id)) || {};
const leave = { enabled: settings.leaveEnabled || false, channel: settings.leaveChannel || '', message: settings.leaveMessage || '{user} has left the server.' };
if (settings && settings.leaveEnabled && settings.leaveChannel) {
let channel = member.guild.channels.cache.get(settings.leaveChannel);
if (!channel) {
if (leave && leave.enabled && leave.channel) {
const channel = member.guild.channels.cache.get(leave.channel);
if (channel) {
try {
channel = await member.guild.channels.fetch(settings.leaveChannel);
} catch (err) {
return;
}
}
if (channel && channel.isTextBased && channel.isTextBased()) {
try {
const me = member.guild.members.me;
const perms = channel.permissionsFor(me);
if (!perms || !perms.has('ViewChannel') || !perms.has('SendMessages')) {
return;
}
const userMention = member.user ? (member.user.toString ? member.user.toString() : member.user.tag) : 'A user';
const message = (settings.leaveMessage || '{user} has left the server.').replace('{user}', userMention).replace('{server}', member.guild.name);
const message = (leave.message).replace('{user}', member.user.toString());
await channel.send(message);
} catch (error) {
console.error(`Could not send leave message to channel ${settings.leaveChannel} in guild ${member.guild.id}:`, error);
console.error(`Could not send leave message to channel ${leave.channel} in guild ${member.guild.id}:`, error);
}
} else {
return;
}
}
} catch (error) {
console.error(`Error in guildMemberRemove event for guild ${member.guild.id}:`, error);
// fallback to local db
try {
const db = readDb();
const settings = db[member.guild.id];
if (settings && settings.leaveEnabled && settings.leaveChannel) {
const channel = member.guild.channels.cache.get(settings.leaveChannel);
if (channel) {
try {
const message = (settings.leaveMessage || '{user} has left the server.').replace('{user}', member.user.toString());
await channel.send(message);
} catch (innerErr) { /* ignore */ }
}
}
} catch (inner) { /* ignore */ }
}
},
};