初めに
今回はDiscordの認証botを作っていきます!
必要なもの
1.discord.jsv12
入れる方法
npm i discord.js@12
とターミナル打つ
if (message.content.startsWith('!認証') && message.guild) { //メッセージの初めの文字が!認証だったら実行
let myRole = message.guild.roles.cache.find(role => role.name === "メンバー"); //メンバーという名前のロールを探す
if (!myRole) { //メンバーというロールがなかったら実行
message.guild.roles.create({
data: {
name: "メンバー",
color: "#ff0000",
permissions: 0,
position: 0
} //ロールを作成(nameがロールの名前,colorがロールの色,permissionsがロールの権限(8が管理者など各自調べて),positionがサーバーのロールの位置(0はeveryone))
}).then(role => {
message.channel.send("初回でメンバーロールを作りましたメンバーロールの権限設定をしてください"); //ロールを作った後の処理
}).catch(console.error); //エラーだった場合
}
var S = "ABCD1234" //追加する文字この状態ではABCD1234がランダムに表示される
var N = 4 //文字列の数初期は4こつまりAC2Cみたいに出るってこと
var a = Array.from(Array(N)).map(() => S[Math.floor(Math.random() * S.length)]).join('') //ランダムな文字作成
message.channel.send("認証コードは")
message.channel.send(a) //ランダムな文字をチャンネルに送る
message.channel.send("10秒以内に打ってください")
async function alertMsg() { //alertMsgを実行する(10秒処理を待機する)
const channel = await client.channels.fetch(message.channel.id) //メッセージが打たれたチャンネルIDを取得する
const afterMessages = await channel.messages.fetch({
after: message.content.id,
limit: 1
}) //一番下のメッセージを取得
let b = afterMessages.map(message => message.cleanContent).join('\n')
if (b == a) { //一番下のメッセージが作られたランダムな文字だったら実行
const role = message.guild.roles.cache.find(role => role.name === 'メンバー') //ロールを探す
message.member.roles.add(role) //メッセージを打った人にrollを付ける
message.channel.send("認証成功") //チャンネルに認証成功と送信する
} else { //一番下のメッセージが作られたランダムな文字ではなかったら実行
message.channel.send("認証失敗") //認証失敗と送信
}
};
setTimeout(alertMsg, 10*100); //sleepするようにやる(10が十秒)
}
説明
コードの中に書きました
最後に
公式サーバー
入る
公式サイト
見る
私のbotをよかったらいれてください
入れる
個別に質問したい場合などはBURI#9515まで
プログラムのソースコードは、そのコードを書いた人の著作物にあたる ため、著作権法による保護の対象となります。 そのため、ライセンスが定められていないプログラムは、その著作者から明示的に許可を受けない限り、ソースコードを複製したり、再頒布したり、手を加えたりすることができません。
↧