♻️ messageUpdate event

This commit is contained in:
Axel Olausson Holtenäs 2022-04-12 23:26:35 +02:00
parent 28eac8c061
commit 784f647ab4
No known key found for this signature in database
GPG key ID: 9347A5E873995701
2 changed files with 39 additions and 19 deletions

View file

@ -1,27 +1,19 @@
import counters from "../../database/schemas/counter";
// Dependencies
import { Message } from "discord.js";
import logger from "../../logger";
// Modules
import counter from "./modules/counter";
export default {
name: "messageUpdate",
async execute(oldMessage: Message, newMessage: Message) {
// If message author is bot
if (newMessage.author.bot) return;
const { author } = newMessage;
// Get counter object
const counter = await counters.findOne({
guildId: newMessage.guild?.id,
channelId: newMessage.channel.id,
});
logger.silly({ oldMessage, newMessage });
// If counter for the message channel
if (counter) {
// If message content is not strictly the same as counter word
if (newMessage.content !== counter.word) {
// Delete the message
await newMessage.delete();
await newMessage.channel.send(
`${newMessage.author} said **${counter.word}**.`
);
}
}
if (author?.bot) return;
await counter(newMessage);
},
};

View file

@ -0,0 +1,28 @@
// Dependencies
import { Message } from "discord.js";
// Models
import counterSchema from "../../../database/schemas/counter";
import logger from "../../../logger";
export default async (message: Message) => {
const { guild, channel, author, content } = message;
const counter = await counterSchema?.findOne({
guildId: guild?.id,
channelId: channel?.id,
});
if (counter === null) return;
const { word } = counter;
if (content === word) return;
await message
?.delete()
?.then(async () => {
await channel?.send(`${author} said **${word}**.`);
})
?.catch(async (error) => {
logger.error(new Error(error));
});
};