npm package: @slicybt5w/djs-anti-raid
Description: a discord bot package to protect your server from raids,links,spams with a simple way
Author: https://github.com/slicybt3w
Latest version: 1.0.3


# @slicybt5w/djs-anti-raid
it's a package to protect your discord server from any kind of "raid attacks"

Installation:
```
npm i @slicybt5w/djs-anti-raid
```

Example Anti Raid:
```js
const { Client } = require("discord.js");
const client = new Client();


const { AntiRaid } = require("@slicybt5w/djs-anti-raid"); // import @slicybt5w/djs-anti-raid

const antiRaid = new AntiRaid(client, {
    rateLimit: 3, // Rate limit of actions.
    time: 30000, // Amount of time (in milliseconds)
    punishType: "removeRole", // ban, kick, editRole, removeRole
    verbose: true, // Extended Logs from module.
    ignoredUsers: [], // Array of User IDs that get ignored.
    ignoredRoles: [], // Array of Role IDs that get ignored.
    ignoredEvents: [] 
});



antiRaid.on("trying", (member, event, punishType) => {
    console.log(`I will trying do ${punishType} to stop ${member.user.tag} for ${event}`);
});

antiRaid.on("action", (member, type) => {
    console.log(`${member.user.tag} has been ${type}`);
});



client.on("ready", () => {
    console.log("Ready!");
});

client.login("YOUR_TOKEN_HERE");
```

Example Anti Invites:
```js
const { Client } = require("discord.js");
const client = new Client();


const { AntiInvites } = require("@slicybt5w/djs-anti-raid"); // import @slicybt5w/djs-anti-raid


const antiInvites = new AntiInvites(client, {
    maxInterval: 60000 * 60 * 2, // Amount of time (in milliseconds)
    warnThreshold: 1,
    kickThreshold: 5,
    banThreshold: 8,
    muteThreshold: 3,
    warnMessage: "{@user}, Please don't advertising",
    kickMessage: "**{user_tag}** has been kicked for advertising.", // Message that will be sent in chat upon kicking a user.
    banMessage: "**{user_tag}** has been banned for advertising.", // Message that will be sent in chat upon banning a user.
    muteMessage: "**{user_tag}** has been muted for advertising.",
    verbose: true, // Extended Logs from module.
    ignoredPermissions: ["MANAGE_MESSAGES"], // Bypass users with any of these permissions.
    ignoredBots: true, // Ignore bot messages.
    ignoredUsers: [], // Array of User IDs that get ignored.
    ignoredRoles: [] // Array of Role IDs that get ignored.
});

antiInvites.on("warnAdd", member => console.log(`${member.user.tag} has been warned for advertising.`));
antiInvites.on("muteAdd", member => console.log(`${member.user.tag} has been muted for advertising.`));
antiInvites.on("kickAdd", member => console.log(`${member.user.tag} has been kicked for advertising.`));
antiInvites.on("banAdd", member => console.log(`${member.user.tag} has been banned for advertising.`));


client.on("ready", () => {
    console.log("Ready!");
});

client.on("message", (msg) => antiInvites.message(msg));

client.login("YOUR_TOKEN_HERE");
```
Example Anti Spam:
```js
const Discord = require('discord.js');
const client = new Discord.Client();
const { AntiSpam } = require('@slicybt5w/djs-anti-raid');
const antiSpam = new AntiSpam({
	warnThreshold: 3, // Amount of messages sent in a row that will cause a warning.
	muteThreshold: 4, // Amount of messages sent in a row that will cause a mute
	kickThreshold: 7, // Amount of messages sent in a row that will cause a kick.
	banThreshold: 7, // Amount of messages sent in a row that will cause a ban.
	maxInterval: 2000, // Amount of time (in milliseconds) in which messages are considered spam.
	warnMessage: '{@user}, Please stop spamming.', // Message that will be sent in chat upon warning a user.
	kickMessage: '**{user_tag}** has been kicked for spamming.', // Message that will be sent in chat upon kicking a user.
	muteMessage: '**{user_tag}** has been muted for spamming.',// Message that will be sent in chat upon muting a user.
	banMessage: '**{user_tag}** has been banned for spamming.', // Message that will be sent in chat upon banning a user.
	maxDuplicatesWarning: 6, // Amount of duplicate messages that trigger a warning.
	maxDuplicatesKick: 10, // Amount of duplicate messages that trigger a warning.
	maxDuplicatesBan: 12, // Amount of duplicate messages that trigger a warning.
	maxDuplicatesMute: 8, // Ammount of duplicate message that trigger a mute.
	ignoredPermissions: [ 'ADMINISTRATOR'], // Bypass users with any of these permissions.
	ignoreBots: true, // Ignore bot messages.
	verbose: true, // Extended Logs from module.
	ignoredMembers: [], // Array of User IDs that get ignored.
	muteRoleName: "Muted", // Name of the role that will be given to muted users!
	removeMessages: true // If the bot should remove all the spam messages when taking action on a user!
	// And many more options... See the documentation.
});

client.on('ready', () => console.log(`Logged in as ${client.user.tag}.`));

client.on('message', (message) => antiSpam.message(message));

client.login('YOUR_SUPER_SECRET_TOKEN');
```

## Docs
Comming soon.!

## Support Server

Join our [Support Server](https://discord.gg/8M9fhmeUzM) where we help you with issues regarding the module.