ユーザーのアバターを取得する
#v13.2 Guild Avatarsを扱うためには以下を使用する。 Guild Avatarが指定されていない場合はnullが帰る。
推奨
avatarURLはユーザーがアバターを設定していない場合はnullが返ってくるので注意
displayAvatarURLはユーザーがアバターを設定していない場合、デフォルトのアバターURLが返るようになっているのでnullが返ることはない。
画像のフォーマットを変更する場合、
v13まで→formatオプションを使う。
avatarURL({ format: 'png' })
v14以降→extensionオプションを使う。
avatarURL({ extension: 'png' })
デフォルトの画像フォーマットはwebp
指定できるフォーマットは次のうちのどれか
webp, png, jpg, jpeg, gif
ユーザーのアバターがGIF形式だった場合に、GIFのURLを取得したい場合はdynamicオプションを使う。
デフォルトはfalse
avatarURL({ dynamic: true })
画像のサイズを指定したい場合は、sizeオプションを使う。
指定できるサイズは次のうちのどれか
16, 32, 64, 128, 256, 512, 1024, 2048, 4096
avatarURL({ size: 128 })
URLを取得して送信する例
code:js
const { Client } = require('discord.js')
const client = new Client()
client.on('messageCreate', message => {
if (message.content === '!avatar') {
message.channel.send(message.author.avatarURL() ?? 'アバターが設定されてないよ。')
}
})
Guild AvatarsのURLを取得して送信する例
code:js
const { Client } = require('discord.js')
const client = new Client()
client.on('messageCreate', message => {
if (message.content === '!guildavatar' && message.guildId) {
message.channel.send(message.member.avatarURL() ?? 'アバターが設定されてないよ。')
}
})
上級者向け
オプションで毎回画像フォーマットを指定するのがめんどくさいという人に
avatarURLやdisplayAvatarURLを使用するとPNG形式のアバターURLが返ってくる。
ユーザーのアバターがGIF形式なら、GIF形式のアバターURLが返ってくる。
code:js
const { Structures, Client } = require('discord.js')
Structures.extend('User', BaseClass => class extends BaseClass {
avatarURL (options) {
return super.avatarURL(Object.assign(options || { format: 'png' }, { dynamic: true }))
}
displayAvatarURL (options) {
return super.displayAvatarURL(Object.assign(options || { format: 'png' }, { dynamic: true }))
}
})
const client = new Client() // 上記のコードはクライアントのインスタンスを作る前に書かないといけない。
client.on('message', message => {
if (message.content === '!avatar') {
message.channel.send(message.author.avatarURL() || 'アバターが設定されてないよ。')
}
})