首页 > 解决方案 > 无法读取未定义的属性“通道”

问题描述

所以我一直在尝试制作一个不和谐的机器人,当用户被踢(被工作人员)踢时,它会将嵌入发送到日志通道,但它会不断抛出错误

Cannot read property 'channels' of undefined

这是我的代码:

let embed = new Discord.MessageEmbed()
.setColor("RANDOM")
.setAuthor(message.author.tag,message.author.avatarURL())
.setFooter("Made by frenchee1607")
.addField("Moderation:", "kick")
.addField("Mutee:", member.user.username)
.addField("Moderator:", message.author.username)
.addField("Reason:", reason)
.addField("Date:", message.createdAt.toLocaleString())
let Channel = client.channels.find(channel => channel.name == "mods-chat-logger");        
if (Channel) {
    Channel.send(message)
} else {
    message.channel.send("Error sending embed to <#735829837306003456>");
}

我试过做

client.channels.cache.get("735829837306003456")

但即使这样也行不通。我问了我的一些朋友,即使他们不知道,如果有人能帮助我,我将非常感激!

(我还应该说我是编程新手)

标签: javascriptdiscorddiscord.js

解决方案


我知道的不多,但我认为你应该这样做。

更改以下内容

let Channel = client.channels.find(channel => channel.name == "mods-chat-logger");

对此(如果您有 Discord.js v12):

let Channel = message.client.channels.cache.find(channel => channel.name == "mods-chat-logger");

或者这个(如果你有 Discord.js v11):

let Channel = message.client.channels.find("name", "mods-chat-logger");

推荐阅读