无法获取特定频道 - 不和谐.js v11.6.4



运行时出现此错误:(节点: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.guildundefined,这可能意味着member不是GuildMember对象。在调用run函数(在message事件处理程序内部(时,请检查是否将message.member作为第三个参数传递。修复后,请删除对member.guildcache调用。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')

最新更新