mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-09 16:13:31 +01:00
* chore: consistency/prettier * chore: rebase * chore: rebase * chore: include typings * fix: include typings file in prettier lint-staged
152 lines
4.8 KiB
Markdown
152 lines
4.8 KiB
Markdown
# Moderation
|
|
|
|
In here, you'll see some basic examples for kicking and banning a member.
|
|
|
|
## Kicking a member
|
|
|
|
Let's say you have a member that you'd like to kick. Here is an example of how you _can_ do it.
|
|
|
|
```js
|
|
// Import the discord.js module
|
|
const Discord = require('discord.js');
|
|
|
|
// Create an instance of a Discord client
|
|
const client = new Discord.Client();
|
|
|
|
/**
|
|
* The ready event is vital, it means that only _after_ this will your bot start reacting to information
|
|
* received from Discord
|
|
*/
|
|
client.on('ready', () => {
|
|
console.log('I am ready!');
|
|
});
|
|
|
|
client.on('message', message => {
|
|
// Ignore messages that aren't from a guild
|
|
if (!message.guild) return;
|
|
|
|
// If the message content starts with "!kick"
|
|
if (message.content.startsWith('!kick')) {
|
|
// Assuming we mention someone in the message, this will return the user
|
|
// Read more about mentions over at https://discord.js.org/#/docs/main/master/class/MessageMentions
|
|
const user = message.mentions.users.first();
|
|
// If we have a user mentioned
|
|
if (user) {
|
|
// Now we get the member from the user
|
|
const member = message.guild.member(user);
|
|
// If the member is in the guild
|
|
if (member) {
|
|
/**
|
|
* Kick the member
|
|
* Make sure you run this on a member, not a user!
|
|
* There are big differences between a user and a member
|
|
*/
|
|
member
|
|
.kick('Optional reason that will display in the audit logs')
|
|
.then(() => {
|
|
// We let the message author know we were able to kick the person
|
|
message.reply(`Successfully kicked ${user.tag}`);
|
|
})
|
|
.catch(err => {
|
|
// An error happened
|
|
// This is generally due to the bot not being able to kick the member,
|
|
// either due to missing permissions or role hierarchy
|
|
message.reply('I was unable to kick the member');
|
|
// Log the error
|
|
console.error(err);
|
|
});
|
|
} else {
|
|
// The mentioned user isn't in this guild
|
|
message.reply("That user isn't in this guild!");
|
|
}
|
|
// Otherwise, if no user was mentioned
|
|
} else {
|
|
message.reply("You didn't mention the user to kick!");
|
|
}
|
|
}
|
|
});
|
|
|
|
// Log our bot in using the token from https://discordapp.com/developers/applications/me
|
|
client.login('your token here');
|
|
```
|
|
|
|
And the result is:
|
|
|
|

|
|
|
|
## Banning a member
|
|
|
|
Banning works the same way as kicking, but it has slightly more options that can be changed.
|
|
|
|
```js
|
|
// Import the discord.js module
|
|
const Discord = require('discord.js');
|
|
|
|
// Create an instance of a Discord client
|
|
const client = new Discord.Client();
|
|
|
|
/**
|
|
* The ready event is vital, it means that only _after_ this will your bot start reacting to information
|
|
* received from Discord
|
|
*/
|
|
client.on('ready', () => {
|
|
console.log('I am ready!');
|
|
});
|
|
|
|
client.on('message', message => {
|
|
// Ignore messages that aren't from a guild
|
|
if (!message.guild) return;
|
|
|
|
// if the message content starts with "!ban"
|
|
if (message.content.startsWith('!ban')) {
|
|
// Assuming we mention someone in the message, this will return the user
|
|
// Read more about mentions over at https://discord.js.org/#/docs/main/master/class/MessageMentions
|
|
const user = message.mentions.users.first();
|
|
// If we have a user mentioned
|
|
if (user) {
|
|
// Now we get the member from the user
|
|
const member = message.guild.member(user);
|
|
// If the member is in the guild
|
|
if (member) {
|
|
/**
|
|
* Ban the member
|
|
* Make sure you run this on a member, not a user!
|
|
* There are big differences between a user and a member
|
|
* Read more about what ban options there are over at
|
|
* https://discord.js.org/#/docs/main/master/class/GuildMember?scrollTo=ban
|
|
*/
|
|
member
|
|
.ban({
|
|
reason: 'They were bad!',
|
|
})
|
|
.then(() => {
|
|
// We let the message author know we were able to ban the person
|
|
message.reply(`Successfully banned ${user.tag}`);
|
|
})
|
|
.catch(err => {
|
|
// An error happened
|
|
// This is generally due to the bot not being able to ban the member,
|
|
// either due to missing permissions or role hierarchy
|
|
message.reply('I was unable to ban the member');
|
|
// Log the error
|
|
console.error(err);
|
|
});
|
|
} else {
|
|
// The mentioned user isn't in this guild
|
|
message.reply("That user isn't in this guild!");
|
|
}
|
|
} else {
|
|
// Otherwise, if no user was mentioned
|
|
message.reply("You didn't mention the user to ban!");
|
|
}
|
|
}
|
|
});
|
|
|
|
// Log our bot in using the token from https://discordapp.com/developers/applications/me
|
|
client.login('your token here');
|
|
```
|
|
|
|
And the result is:
|
|
|
|

|