【Discord.js】簡単な新規ユーザー認証のシステムを作ってみる

テクノロジー
この記事は約4分で読めます。

こんちゃっちゃ、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づくり頑張ってください!!

コメント

タイトルとURLをコピーしました