javascript - discord.js V12“过滤器”未定义
问题描述
所以我将我的机器人更新为 discord.js V12 命令;whois 出现错误(节点:553) UnhandledPromiseRejectionWarning:TypeError:无法读取未定义的属性“过滤器”
Node.js 是 Discord.js 的当前版本我知道它是否与代码有关
const { MessageEmbed } = require("discord.js");
const { stripIndents } = require("common-tags");
const { getMember, formatDate } = require("../../functions.js");
module.exports = {
config:{
name: "whois",
aliases: ["who", "user", "info"],
category: "info",
description: "Returns user information",
usage: "[username | id | mention]"
},
run: (client, message, args) => {
const member = getMember(message, args.join(" "));
// Member variables
const joined = formatDate(member.joinedAt);
const roles = member.roles
.filter(r => r.id !== message.guild.id)
.map(r => r).join(", ") || 'none';
如果我删除 .filter & .map 会弹出另一个错误 .createdAT
// User variables
const created = formatDate(member.user.createdAt);
const embed = new MessageEmbed()
.setFooter(member.displayName, member.user.displayAvatarURL({ dynamic:true }))
.setThumbnail(member.user.displayAvatarURL({ dynamic:true }))
.setColor(member.displayHexColor === '#000000' ? '#ffffff' : member.displayHexColor)
.setAuthor(`${member.displayName} | WHOIS`, member.user.displayAvatarURL)
.addField('Member information:', stripIndents`** Display name:** ${member.displayName}
** Joined at:** ${joined}
** Roles:** ${roles}`, true)
.addField('User information:', stripIndents`** ID:** ${member.user.id}
** Username**: ${member.user.username}
** Tag**: ${member.user.tag}
** Created at**: ${created}`, true)
.setTimestamp()
if (member.user.presence.game)
embed.addField('Currently playing', stripIndents`** Name:** ${member.user.presence.activity.name}`);
message.channel.send(embed);
}
}
现在这就是整个whois 代码,我不知道还有什么需要更新的。
解决方案
要访问v12 中GuildMember
的roles
集合,您需要使用cache
.
const roles = member.roles.cache.filter(r => r.id !== message.guild.id).map(r => r).join(", ") || 'none';
推荐阅读
- keras - 禁用 keras “找到属于 # 个类别的 # 个图像”。信息
- arrays - 在循环中构建 div 并在按钮按下角度时显示它们
- java - AWS Kinesis 发送失败原因
- java - 检查空无限循环与多事无限循环中的选项
- java - 如何从@ToString lombok 注解生成的字符串转换为对象?
- javascript - 为什么在动态创建按钮时出现“无法读取 null 的属性 'appendChild'”?
- bigcommerce - 需要在结帐页面中建立日历
- python - 为什么在 tkinter 中查找中位数时会出错?
- c++ - 通过带有 < 的 stdin/cin 捕获文件并读取到 EOF
- javascript - 获取键和值在 IE 中使用 JavaScript 拖放地图