AntiSpam

AntiSpam

Anti Spam instance.

Constructor

new AntiSpam(optionsopt)

Properties:
Name Type Description
data AntiSpamData

Anti Spam cache data.

Parameters:
Name Type Attributes Description
options AntiSpamOptions <optional>

Client options.

Example
const antiSpam = new AntiSpam({
  warnThreshold: 3, // Amount of messages sent in a row that will cause a warning.
  banThreshold: 7, // Amount of messages sent in a row that will cause a ban.
  maxInterval: 2000, // Amount of time (in ms) in which messages are cosidered spam.
  warnMessage: "{@user}, Please stop spamming.", // Message will be sent in chat upon warning.
  banMessage: "**{user_tag}** has been banned for spamming.", // Message will be sent in chat upon banning.
  maxDuplicatesWarning: 7, // Amount of same messages sent that will be considered as duplicates that will cause a warning.
  maxDuplicatesBan: 15, // Amount of same messages sent that will be considered as duplicates that will cause a ban.
  deleteMessagesAfterBanForPastDays: 1, // Amount of days in which old messages will be deleted. (1-7)
  exemptPermissions: ["MANAGE_MESSAGES", "ADMINISTRATOR", "MANAGE_GUILD", "BAN_MEMBERS"], // Bypass users with at least one of these permissions
  ignoreBots: true, // Ignore bot messages.
  verbose: false, // Extended Logs from module.
  ignoredUsers: [], // Array of string user IDs that are ignored.
  ignoredRoles: [], // Array of string role IDs or role name that are ignored.
  ignoredGuilds: [], // Array of string Guild IDs that are ignored.
  ignoredChannels: [] // Array of string channels IDs that are ignored.
});

Methods

(async) message(message) → {boolean}

Checks a message.

Parameters:
Name Type Description
message Message

The message to check.

Returns:
Type:
boolean

Whether the message has triggered a threshold.

Example
client.on('message', (msg) => {
	antiSpam.message(msg);
});

(private) resetData() → {AntiSpamData}

Resets the cache data of the Anti Spam instance.

Returns:
Type:
AntiSpamData

The cache that was just cleared.

Example
antiSpam.resetData().then((data) => {
  console.log("Cleared a total of "+data.messageCache+" cached messages.");
});

Events

banAdd

Emitted when a member is banned.

Parameters:
Name Type Description
member GuildMember

The banned member.

Example
antiSpam.on("banAdd", (member) => console.log(`${member.user.tag} has been banned.`));

kickAdd

Emitted when a member is kicked.

Parameters:
Name Type Description
member GuildMember

The kicked member.

Example
antiSpam.on("kickAdd", (member) => console.log(`${member.user.tag} has been kicked.`));

spamThresholdBan

Emitted when a member reaches the ban threshold.

Parameters:
Name Type Description
member GuildMember

The member who reached the ban threshold.

duplicate boolean

Whether the member reached the ban threshold by spamming the same message.

Example
antiSpam.on("spamThresholdBan", (member) => console.log(`${member.user.tag} has reached the ban threshold.`));

spamThresholdKick

Emitted when a member reaches the kick threshold.

Parameters:
Name Type Description
member GuildMember

The member who reached the kick threshold.

duplicate boolean

Whether the member reached the kick threshold by spamming the same message.

Example
antiSpam.on("spamThresholdKick", (member) => console.log(`${member.user.tag} has reached the kick threshold.`));

spamThresholdWarn

Emitted when a member reaches the warn threshold.

Parameters:
Name Type Description
member GuildMember

The member who reached the warn threshold.

duplicate boolean

Whether the member reached the warn threshold by spamming the same message.

Example
antiSpam.on("spamThresholdWarn", (member) => console.log(`${member.user.tag} has reached the warn threshold.`));

warnAdd

Emitted when a member is warned.

Parameters:
Name Type Description
member GuildMember

The warned member.

Example
antiSpam.on("warnAdd", (member) => console.log(`${member.user.tag} has been warned.`));