こんちゃっちゃ、ryoです!
皆さん知らないかと思いますが、私実はDiscordのBot開発者なんですよね
なのに、それっぽいこと全く書いてないことに最近気づいたんです。
なので、今回の記事は新規ユーザー認証のBotについての紹介です!
どういうBot?
簡単に言うと、年齢認証をするためのBotになります。
s!reg [年齢]と入力すると認証が完了し、未認証ロールを剥奪し、サーバーメンバーのロールを付与するって感じです。
私の自作Bot「唯香 -ゆいか-」のサポートサーバーで使ってるやつです、はい()
とりあえず環境の準備
既に記事があるので、これ見てねっ☆(え)
早速コードを書いていく
とりあえず、コードの全貌を最初に貼っちゃいますが、注意点が一つ。
ryoさんはぽんこつです。ここryoさんテストに出ます。
なので、無駄な部分があるとか、コードが汚いとか、結構あります。
きれいな書き方あるよ~!って方はコメント欄へGO!!()
const discord = require('discord.js');
const client = new discord.Client();
const prefix = "s!"//ここは必要に応じて変えましょう
client.on('message', message => {
//メッセージがPrefixで始まっていないか、メッセージの送信者がBotであるか、送信者がメンバーロールを持っているときは無視
if (!message.content.startsWith(prefix) || message.author.bot || message.member.roles.cache.has("<サーバーメンバーロールのID>")) { return; }
const reg = message.content.slice(prefix.length).split(' ');
const reg_command = reg.shift().toLowerCase();
if (reg_command === 'reg') {
message.delete();
message.member.roles.remove("<未認証ロールのID>")
message.member.roles.add("<サーバーメンバーロールのID>")
//embed(埋め込み)の設定
const embed = new discord.MessageEmbed()
.setAuthor(message.author.tag + "(" + message.author.id + ")", message.author.avatarURL())
.setTitle("新規ユーザー登録")
.setColor(0x1bff49)//1bff49の場所は、HTMLカラーコード:#XXXXXXのXXXXXXを指定できます
.setTimestamp()
.setThumbnail(message.author.avatarURL())
.addField("年齢", reg[0])
client.channels.cache.get('<認証情報を送信するチャンネルのID>').send(embed)
}
});
client.login("<ここにBotのアクセストークン>");
こんな感じです!
例えば、s!reg 15と打つとID指定したチャンネルにこのように送信されます。

ちゃんと15と表示されてますね!
まとめ
いかがでしたか?
さっきも言いましたが、ryoさんはぽんこつなので無駄な部分とか、コードが汚いとかが多いです。
修正点等あれば、コメントしてくださいね~!
それでは、Botづくり頑張ってください!!
コメント