0
1

More than 3 years have passed since last update.

メンバーをBANする方法 Discord.js(GBAN前編)

Posted at

サーバーから人を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です

0
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1