♻️ messageUpdate event
This commit is contained in:
parent
28eac8c061
commit
784f647ab4
2 changed files with 39 additions and 19 deletions
|
@ -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);
|
||||
},
|
||||
};
|
||||
|
|
28
src/events/messageUpdate/modules/counter.ts
Normal file
28
src/events/messageUpdate/modules/counter.ts
Normal 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));
|
||||
});
|
||||
};
|
Loading…
Add table
Reference in a new issue