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

discord.js最新版での罠(私的メモ)

$
0
0

discord.jsが11.xから12.xにアップデートされたので自分が引っかかりまくった点をサクッと書いていきます

Nodejsとdjsのバージョン

discord.js 12.xからはどうやらnodejs 12.xからじゃないと出来ないっぽくて見事にハマってました
自分はちょっと都合でnodejs8.10くらいを使ってまして、discord.jsを入れてbotを起動させようとしたら謎の場所でエラー吐いてまして…色々調べてたらバージョン関係で使えなかったことがわかって仕方なくnodejsとnpmを最新版にして使いました

djsの仕様変更

色々と変わったので自分が知ってる限りの仕様変更部分をまとめます。

xxxs系

xxxs系は<client>.channels<message>.guild.rolesなどの複数の情報が入ってるやつです。
11.xでは<client>.guilds.get('channelId')などで出来たのですが、最新版になって<client>.guilds.**cache**.get('channelId')と、cacheをつけないとArrayとして認識されなくなれました(xxxsはmanager系になってました、それでcacheにCollection系が移動されたんだと思います。)

ボイス系

ボイス系は<message>.member.voiceです
前のバージョンは<message>.member.voiceChannel.join()とかだったと思うんですけど、最新版だと<message>.member.voice.channel.join()になってます。
あとはモジュールの変更ですかね
旧モジュール:
node-opus, ffmpeg-binaries
新モジュール:
@discordjs/opus, ffmpeg-static
opusscriptはまだ使えるかは不明。

追記(2020/3/31)

メッセージ関連

最新版djsになって、メッセージを送信する時のやつが完全に消えました

12.xで消えたもの
constch=<message>.channel;ch.sendCode();ch.sendEmbed();ch.sendFile();ch.sendFiles();ch.sendMessage();

これは11.xでもDEPRECATEDが付いていたので多分知ってた人は知ってたと思います。

ついでに、基本メッセージ送信は<message>.channel.send();です、リプライは<message>.reply();です。

message系に関して

embedのRichEmbedMessageEmbedに変更されています。

自分的にはこれ使うよりオブジェクト型で書いた方が直感的かなーと思ってたりしてます

embed-sample.js
<message>.channel.send({title:'Hello',description:'Discord.js!'});

こんな感じの書き方があるのでぜひこの書き方をおすすめしたい

おわり

自分が見てきたとこだとこれくらいですかね、他にもあったような気がするので思い出したら追記しようと思います。

参考

discord.js


Viewing all articles
Browse latest Browse all 8691

Trending Articles