#サーバーから人をBANする方法
荒らす人、イライラする人にはBANができます。
その動作をBOTにさせる方法を教えます!
##動作環境
バージョン | サービス |
---|---|
v.12以上 | Glitch |
##document
公式ドキュメント(英語):Link
##動き方
!ban メンションorID
↓
理由を聞く(BANをする理由)
↓
BAN完了!
##コード
const discord = require("discord.js");
const client = new discord.Client();
const prefix = "!";//ここは好きに変えてもいいです
client.on("message", async message => {
if (!message.content.match(/^!/)) return; //!が最初にない場合は処理をしない
var command = message.content;
command = command.replace("!", "");
if (command == "ban") {
if (message.mentions.members.size == 1) { //メンションがあるかを確認
const member = await message.mentions.members.first();//メンションの内容
const id = member.user.id; //ユーザーID
const mee = await message.channel.send({ //あとで編集などができるようにawait(非同期処理)をつける
embed: {
color: 16757683,
description: "60秒以内に理由を入力してください。"
}
});
const filter = msg => msg.author.id === message.author.id;
const collected = await message.channel.awaitMessages(filter, {
max: 1,
time: 60000
});
const response = collected.first();
if (!response)
return mee.edit({
embed: {
description: "タイムアウト…"
}
});
mee.edit({
embed: {
description: "BANしています…"
}
});
message.guild.members.ban(id, { reason: response.content });
mee.edit({
embed: {
description: `<@${id}>をBANしました。`
}
});
} else { //IDの場合
let me = message.content;
me = me.replace("!ban ", "");
let id = me
const mee = await message.channel.send({
embed: {
color: 16757683,
description: "60秒以内に理由を入力してください。"
}
});
const filter = msg => msg.author.id === message.author.id; //検索内容を設定
const collected = await message.channel.awaitMessages(filter, {
max: 1,
time: 60000
});
const response = collected.first();
if (!response)
return mee.edit({
embed: {
description: "タイムアウト…"
}
});
mee.edit({
embed: {
description: "BANしています…"
}
});
message.guild.members.ban(id, { reason: response.content });//BANをする
mee.edit({
embed: {
description: `<@${id}>をBANしました。`
}
});
}
}
})
動かない場合
①使うBOTに管理者権限、BANの権限、チャンネルへのアクセス権がない
②tokenが間違っている
③BOTが招待されていない
④コードが間違っている
など…
##使う上での注意
※サーバーにいないひとをBANする場合、IDでしかBANができません。一応反応はします。(エラーを出すこともできるけど→別の記事で)サーバー内にいる人ならメンションでOKです。
##質問など
Discordの場合:ライグー/racoon#1010
コメントでもOKです