サーバーから人をBANする方法
荒らす人、イライラする人にはBANができます。
その動作をBOTにさせる方法を教えます!
動作環境
バージョン | サービス |
---|---|
v.12以上 | Glitch |
document
公式ドキュメント(英語):Link
動き方
!ban メンションorID
↓
理由を聞く(BANをする理由)
↓
BAN完了!
コード
constdiscord=require("discord.js");constclient=newdiscord.Client();constprefix="!";//ここは好きに変えてもいいですclient.on("message",asyncmessage=>{if(!message.content.match(/^!/))return;//!が最初にない場合は処理をしないvarcommand=message.content;command=command.replace("!","");if(command=="ban"){if(message.mentions.members.size==1){//メンションがあるかを確認constmember=awaitmessage.mentions.members.first();//メンションの内容constid=member.user.id;//ユーザーIDconstmee=awaitmessage.channel.send({//あとで編集などができるようにawait(非同期処理)をつけるembed:{color:16757683,description:"60秒以内に理由を入力してください。"}});constfilter=msg=>msg.author.id===message.author.id;constcollected=awaitmessage.channel.awaitMessages(filter,{max:1,time:60000});constresponse=collected.first();if(!response)returnmee.edit({embed:{description:"タイムアウト…"}});mee.edit({embed:{description:"BANしています…"}});message.guild.members.ban(id,{reason:response.content});mee.edit({embed:{description:`<@${id}>をBANしました。`}});}else{//IDの場合letme=message.content;me=me.replace("!ban ","");letid=meconstmee=awaitmessage.channel.send({embed:{color:16757683,description:"60秒以内に理由を入力してください。"}});constfilter=msg=>msg.author.id===message.author.id;//検索内容を設定constcollected=awaitmessage.channel.awaitMessages(filter,{max:1,time:60000});constresponse=collected.first();if(!response)returnmee.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です