discord.js - Discord.js v12+ TypeError:member.roles.map 不是函数
问题描述
所以我用它来显示离开服务器以获取日志的用户的所有角色,我相信 map 不再是一个函数,但我很好奇.name
也可以作为 map 函数的相似之处?
bot.on('guildMemberRemove', member => {
if(!member.lastMessage) member.lastMessage = "N/A"
const channel = member.guild.channels.cache.find(channel => channel.id === botconfig["channel_setup"].general_logs_channel);
let leaveLog = new Discord.MessageEmbed()
.setTitle("Red Cross Roleplay | Action Log")
.setColor(botconfig["bot_setup"].main_embed_color)
.setDescription(`**Action:** Member Left`)
.addField('Member Left', `<@${member.user.id}> - Hash: ${member.user.tag} - ID: ${member.user.id}`)
.addField('Member Roles', member.roles.name(r => `${r}`).join(' '))
.setTimestamp()
.setFooter(botconfig["bot_setup"].copyright);
channel.send(leaveLog)
});
这还能用吗?
.addField('Member Roles', member.roles.name(r => `${r}`).join(' '))
解决方案
您似乎正在尝试过时的代码。在 discord.js 文档中,您可以看到GuildMember.roles是GuildMemberRoleManager的一个实例。您将不得不使用返回 Collection的cache.map()
属性,然后您可以在其上使用该函数。
以下是如何实现它
member.roles.cache.map(r => `${r}`)
推荐阅读
- c# - MongoDB c#使用定义生成器检索文档内数组中的所有匹配元素
- python - 遵循约定重写代码的困难
- javascript - 类型 'void' 必须有一个返回迭代器的 '[Symbol.iterator]()' 方法
- rdf - 个人创建的耶拿在写入文件时没有类
- ios - Swift - 4 - 无法将“__NSCFNumber”(0x10cfb1840)类型的值转换为“NSString”(0x10c0824a8)
- odoo-10 - XMLRPC 搜索 product.template 返回空列表
- pcap.net - pcap.net ReceivePacket 无法正常工作
- wpf - 如何从数据库中整齐地打印表格
- c++ - 错误:无法取消引用结束列表迭代器
- c++ - 扣除其他类型依赖的类型