Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9042

[discord.js] グローバルチャットを作る!

$
0
0

概要

discord.jsのバージョンがv12になり、グローバルチャットの機構を作ったので、メモしとこうかなと思います。
(ほかの人も記事を書いているので参考程度に...)
解説とありますが、まだまだすごいdiscord.jsが扱えるわけではないので、間違っているかもしれないので
気軽に見てってください。

BOTの導入やNode.js等のインストールはすでに済んでいるものとします。

環境

名前versionとか
Node.jsv12.16.3
discord.jsv12.2.0

OS : Windows10

コード

index.js
constdiscord=require('discord.js');// --1constclient=newdiscord.Client();client.on("message",asyncmessage=>{// --2if(message.channel.name==="チャンネル名"){// --3if(message.author.bot)return;// --4if(message.attachments.size<=0){message.delete()}client.channels.cache.forEach(channel=>{// --5if(message.attachments.size<=0){constembed=newdiscord.MessageEmbed()// --6.setAuthor(message.author.tag,message.author.avatarURL()).setDescription(message.content).setColor(0x2C2F33)if(channel.name==="チャンネル名"){// --7channel.send(embed)return}return}if(!message.attachments.forEach(attachment=>{//--8constembed=newdiscord.MessageEmbed().setAuthor(message.author.tag,message.author.avatarURL()).setImage(attachment.url).setDescription(attachment.url).setColor(0x2C2F33)if(channel.name==="チャンネル名"){channel.send(embed)return}return}));return});}});client.login("BOT_TOKEN")// --9

解説

--1 : discord.jsの読み込みをしています
--2 : Message イベントが起こったときに、この括弧内の処理がされます
--3 : Message が送信されたチャンネルが チャンネル名だった場合になるように条件分岐をしています
--4 : 再帰を防ぐために、Messageを送信した人がBOTだった場合は処理を行わないように returnを書いています

--5 : BOTが参加しているすべてのサーバーのチャンネルを取得しています(簡単に言うとforEachはforに似たようなもの)
--6 : v11.xでは discord.RichEmbed()でしたが、v12.xでは discord.MessageEmbed()になりました
--7 : 取得したチャンネルのうちチャンネルの名前が チャンネル名か否かを判断する条件分岐です
--8 : 写真等が送信されたときに処理が行われます (解説が書けそうでしたら後日書きます)
--9 : これがなければBOTにはログインしてくれません

まとめ

グローバルチャットはBOTが導入されているサーバーで会話することができます。
ただトラブル等起きやすいので、グローバルチャットを利用するときは常識を守りましょう。

上のコードはシンプルな方です。まだまだいろんな機能を付け加えられると思うのでぜひチャレンジしてみてください!


Viewing all articles
Browse latest Browse all 9042