If you are reading this, then you are a developer who has encountered discord spam personally or through your discord server. That's also my story. The library is simple and provides functions to detect spam.
The sole purpose of this library is to provide a global list to prevent spam in Discord. Therefore, we are asking you to contribute to our little project and submit a pull request to add a new type of spam message.
Version 16.6.0 or newer of Node.js is required
npm install discord-spams
yarn add discord-spams
@Discord()
export class Spam {
lastUpdate: number | null = null;
@On("messageCreate")
async handler([message]: ArgsOf<"messageCreate">): Promise<void> {
if (!message.guild || !message.member || message.author.bot) {
return;
}
// update master list every five minute, will not be updated if event is not called
if (!this.lastUpdate || Date.now() - this.lastUpdate > 5 * 60 * 1000) {
await SpamMeta.refreshMasterList();
this.lastUpdate = Date.now();
}
if (SpamMeta.isSpam(message.content)) {
// delete message, if bot have permissions
await message.delete().catch(() => null);
// mute member for 6 hours
const isMuted = await message.member
.disableCommunicationUntil(
Date.now() + 6 * 60 * 60 * 1000,
"Spam message detected"
)
.catch(() => null);
if (isMuted) {
message.channel.send(
`:cold_face: Spam message detected, I have muted ${message.author} for 6 hours.`
);
} else {
message.channel.send(
`:cold_face: Spam message detected from ${message.author}, please allow me to mute members!`
);
}
}
}
}
In your bot, create a command that allows all users to report links. On the bot side, add that link to spam storage using SpamMeta.addLink("cars-dont-fly.com");
.
Later, Please report on our repository so we can add it to the global list.
Ask in discord server
Show your support for discordx by giving us a star on github.