diff --git a/bot.js b/bot.js index 027a2e2..97e4f27 100644 --- a/bot.js +++ b/bot.js @@ -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}) => { diff --git a/helpers/memberHelper.js b/helpers/memberHelper.js index b1f41a4..7e60b42 100644 --- a/helpers/memberHelper.js +++ b/helpers/memberHelper.js @@ -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}`; });