运行时出现此错误:(节点:7112(未处理的PromiseRetentionWarning:TypeError:无法读取未定义的属性"cache">
const Discord = require("discord.js");
exports.run = async (client, message, member, args) => {
let Help = new Discord.RichEmbed()
.setAuthor(`[client] Help - ${message.author.username}#${message.author.discriminator}`)
.addField(`.help `, `bring up help list.`)
.setColor("#ff1100");
message.channel.send(Help);
/* Command Logger */
var DateTime = new Date();
var Hours = DateTime.getHours();
Hours = (Hours < 10 ? "0" : "") + Hours;
var Minutes = DateTime.getMinutes();
Minutes = (Minutes < 10 ? "0" : "") + Minutes;
var Seconds = DateTime.getSeconds();
Seconds = (Seconds < 10 ? "0" : "") + Seconds;
let CommandLog = new Discord.RichEmbed()
.addField(`Command: Help`)
member.guild.cache.channels.cache.get('820470375602847745').send(CommandLog);
/* Command Logger */
message.delete();
};
exports.help = {
name: 'help',
};
看起来member.guild
是undefined
,这可能意味着member
不是GuildMember
对象。在调用run
函数(在message
事件处理程序内部(时,请检查是否将message.member
作为第三个参数传递。修复后,请删除对member.guild
的cache
调用。Guild
对象没有cache
属性。由于您使用的是discord.js v11,因此guild.channels
返回一个Collection
。因此,您可以使用guild.channels.get
来获取通道。在v12中将guild.channels
的返回类型更改为GuildChannelManager
。
// discord.js v11
member.guild.channels.get('820470375602847745')
// v12
member.guild.channels.cache.get('820470375602847745')
您也可以在v11中使用message.guild.channels
来访问通道集合。
// discord.js v11
message.guild.channels.get('820470375602847745')
// v12
message.guild.channels.cache.get('820470375602847745')