希望您能帮我解决这个特定用例的问题。
当用户加入我的服务器时,我想显示欢迎嵌入并更新他们在服务器中的昵称。
我的嵌入位工作正常,但似乎无法使用提供的用户获取guildMember。
代码:Discord.js v12.2
bot.on('guildMemberAdd', member=> {
const channel = member.guild.channels.cache.find(channel => channel.name === 'cloudservertesting');
if(!channel) return;
const embed = new Discord.MessageEmbed()
.setColor('#992D22')
.setTitle('New Member')
.setDescription(`**${member.user.username}** has joined Red Wine Gaming!, Welcome!`)
.setThumbnail(`${member.user.displayAvatarURL()}`)
.setTimestamp();
channel.send(embed);
//Change users Nickname Here
});
member.guild.members返回一个对象,但它不会让我.filter
如果可以从用户添加的mumer.user中获取公会成员,这样我可以setNickname。
答案 0 :(得分:0)
您要查找的GuildMember实例是参数member
。查看Client#guildMemberAdd
事件的文档,您会看到参数是GuildMember。
member.setNickname('foo')
.catch(console.error);
member.guild.members返回一个对象,但它不会让我.filter
那是因为从v12开始,它是一个Manager,因此您必须利用cache
属性来使用Collection#filter()
。具体请参见GuildMemberManager。