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

Discord.js v12がリリースされたので追加されたものを一部紹介

$
0
0

とうとうこの日が来ました。Discord.js v12がリリースされました。🎉
Discord.jsユーザーの9割はこの時を待ち望んでいたでしょう!ということでDiscord.jsの新機能というか、追加された一部分を紹介します。

Discord.js とは

Discord.jsは、Discord APIと簡単にやり取りできる強力なNode.jsモジュールです。
https://discord.js.org/#/

v12のリリースまでに凄く時間がかかっている。

このv12ですが結構前から開発が進んでいたものをリリースしたものです。破壊的変更が大量にあります。
v11のコードをそのまま動かすとほぼ確定でエラーが起きるでしょう。
そしてこの記事を読んでも1割、いや1割以下しか理解したことにならないでしょう...

Node.jsのアップデートが必要

今回のv12リリースで、Node.jsのバージョンはv12.x以降となりました。node -vコマンドでNode.jsのバージョンを確認して必要ならNode.jsの公式サイトからダウンロードして更新しましょう。

追加されたものの紹介

Discord.jsのオブジェクトを自由に拡張できる - Structuresクラス

公式ドキュメント: https://discord.js.org/#/docs/main/stable/class/Structures

過去にこちらの記事で書いてありますが改めて紹介します。

MessageやGuildなどのオブジェクトに、関数やプロパティを自由に追加することが可能になります。例えばユーザーのデータを取得するために一々モジュールをインポートしてー... なんてことも、これがあればユーザーオブジェクトからデータを取得して...ということができます。

注意点は、Clientをインスタンス化する前に拡張の処理を済ませること

コード

const{Structures,Client}=require('discord.js')Structures.extend('Guild',Base=>classextendsBase{getGuilds(){returnthis.client.guilds}})constbot=newClient()bot.on('guildCreate',guild=>{console.log(guild.getGuilds().cache.size)})bot.login()

使い道がよくわからない人のために実際にこの機能を使ったコードをGitHubに公開しておきました。

Server Boostに対応 - Premium Guild

Server Boost(Nitro Boost)が使われているサーバーのレベルなどを取得できるようになりました。

Guild

プロパティ返り値説明
.premiumSubscriptionCountnumber または undefinedサーバーをブーストしている人の人数
.premiumTierPremiumTierブーストのレベル(返り値の詳細はこちら
PremiumTier
  • 0 ブースト無し
  • 1 ブーストレベル1
  • 2 ブーストレベル2
  • 3 ブーストレベル3

GuildMember

メンバーがいつサーバーをブーストしたかを取得することが可能です。

プロパティ返り値説明
.premiumSinceDate または undefinedメンバーがブーストした時をDateオブジェクトで返します。
.premiumSinceTimestampnumber または undefinedメンバーがブーストした時を数値で返します。

画像形式やサイズを指定できるようになった。

guild.iconURLはプロパティでしたが、guild.iconURL()というメソッドに変更されました。
よって

guild.iconURL({format:'png',dynamic:true,size:1024})

こういう書き方ができるようになり、画像形式、サイズの指定ができるようになったわけです。これでwebp形式の画像が表示できないiOS版Discordの対応ができるというわけです。
ちなみにiOS版Discordに対応するためにはこのオプションにしておくといいです。

guild.iconURL({format:'png',dynamic:true})

dynamicオプションが有効だと、アニメーション画像はGIF形式の画像URLを受け取り、それ以外はPNG形式の画像URLを受け取ります。(デフォルトだとwebp形式で受け取ります。)

displayAvatarURLavatarURLsplashURLも同様のオプションが使用できます。

v11からv12にするために

現在公式ガイドの翻訳が進んでいる。こちらのサイトを見るのが良いでしょう。今後この記事で詳しく書くかもしれません。

この記事が作成された日にリリースされたのでまだv12の情報はほとんど無いと思われます。もしv11からv12への移行で困っていることがあれば、日本語のコミュニティを活用したり、ドキュメントを見たほうがいいでしょう。

まだまだ更新していくのでストックしておくといいかも?


Viewing all articles
Browse latest Browse all 8913

Trending Articles