putting everything in a try catch block to hopefully not crash the bot....

This commit is contained in:
Aster Fialla
2026-02-14 10:07:27 -05:00
parent ed01e7bc39
commit 5711fbb162
2 changed files with 35 additions and 32 deletions

63
bot.js
View File

@@ -32,37 +32,40 @@ let pluralFluxName = "PluralFlux";
let pluralFluxDiscriminator = "8677";
client.on(GatewayDispatchEvents.MessageCreate, async ({ api, data }) => {
if (data.webhook_id) {
return;
}
else if (data.author.username === pluralFluxName && data.author.discriminator === pluralFluxDiscriminator) {
return;
}
else if (data.content.startsWith(messageHelper.prefix)) {
const commandName = data.content.slice(messageHelper.prefix.length).split(" ")[0];
const args = messageHelper.parseCommandArgs(data.content, commandName);
if (!commandName) {
return await api.channels.createMessage(data.channel_id, {content: enums.help.PLURALFLUX});
}
switch (commandName) {
case 'm':
case 'member':
const attachment = data.attachments[0] ?? null;
const reply = await memberHelper.parseMemberCommand(data.author.id, args, attachment);
return await api.channels.createMessage(data.channel_id, {content: reply});
case 'help':
return await api.channels.createMessage(data.channel_id, {content: enums.help.PLURALFLUX});
default:
return await api.channels.createMessage(data.channel_id, {content: enums.err.NO_SUCH_COMMAND});
}
}
const proxyMatch = await messageHelper.parseProxyTags(data.author.id, data.content);
if (!proxyMatch.proxy) {
return;
}
const member = await memberHelper.getMemberByProxy(data.author.id, proxyMatch.proxy);
await webhookHelper.replaceMessage(api, data, proxyMatch.message, member);
try {
if (data.webhook_id) {
return;
} else if (data.author.username === pluralFluxName && data.author.discriminator === pluralFluxDiscriminator) {
return;
} else if (data.content.startsWith(messageHelper.prefix)) {
const commandName = data.content.slice(messageHelper.prefix.length).split(" ")[0];
const args = messageHelper.parseCommandArgs(data.content, commandName);
if (!commandName) {
return await api.channels.createMessage(data.channel_id, {content: enums.help.PLURALFLUX});
}
switch (commandName) {
case 'm':
case 'member':
const attachment = data.attachments[0] ?? null;
const reply = await memberHelper.parseMemberCommand(data.author.id, args, attachment);
return await api.channels.createMessage(data.channel_id, {content: reply});
case 'help':
return await api.channels.createMessage(data.channel_id, {content: enums.help.PLURALFLUX});
default:
return await api.channels.createMessage(data.channel_id, {content: enums.err.NO_SUCH_COMMAND});
}
const proxyMatch = await messageHelper.parseProxyTags(data.author.id, data.content);
if (!proxyMatch.proxy) {
return;
}
const member = await memberHelper.getMemberByProxy(data.author.id, proxyMatch.proxy);
await webhookHelper.replaceMessage(api, data, proxyMatch.message, member);
}
}
catch(error) {
return await api.channels.createMessage(data.channel_id, {content: error});
}
});
client.on(GatewayDispatchEvents.Ready, async ({data}) => {

View File

@@ -191,7 +191,7 @@ async function removeMember(authorId, args) {
return `${enums.err.NO_NAME_PROVIDED} deletion.`;
}
return await db.members.destroy({ where: { name: memberName, userid: authorId } }).then(() => {
return `${memberName} has been deleted.`;
return `Member "${memberName}" has been deleted.`;
}).catch(e => {
return `${enums.err.NO_MEMBER}: ${e.message}`;
});
@@ -218,7 +218,7 @@ async function updateMember(authorId, args) {
fluxerPropicWarning = setExpirationWarning(args[3]);
}
return await db.members.update({[columnName]: value}, { where: { name: memberName, userid: authorId } }).then(() => {
return `Updated ${columnName} for ${memberName} to ${value}${fluxerPropicWarning}.`;
return `Updated ${columnName} for ${memberName} to "${value}"${fluxerPropicWarning ?? ''}.`;
}).catch(e => {
return `${enums.err.NO_MEMBER}: ${e.message}`;
});