ユーザーのアバターを取得する
#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を取得して送信する例
jsconst { 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を取得して送信する例
jsconst { 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が返ってくる。
jsconst { 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() || 'アバターが設定されてないよ。')
}
})