【问题标题】:Cannot read property 'channels' of undefined无法读取未定义的属性“通道”
【发布时间】:2020-11-28 22:47:35
【问题描述】:

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

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")

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

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

【问题讨论】:

  • 该错误意味着您正在从undefined 值读取属性channels。您尝试从client 读取channels,所以clientundefined。 (这似乎是正确的。您的代码中没有任何地方定义 client 是什么。
  • @Ivar 这只是代码的一部分,其余的与嵌入无关并将其发送到指定的频道,但我确实定义了客户端 const { client } = require("../index.js"); 就是它所说的(我很漂亮确定它不是问题,但如果是告诉我)。感谢您的评论!
  • @frenchee1607 你必须删除更多代码。 Ivar 的说法是正确的,当你初始化“client”的值时,你需要观察它,看看为什么它是未定义的
  • @Deian 哦,我的错我应该添加我的全部代码吗? (请记住,其中一些是教程和我自己的混合)

标签: javascript discord discord.js


【解决方案1】:

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

更改以下内容

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");

【讨论】:

    猜你喜欢
    • 2022-01-06
    • 2021-03-31
    • 1970-01-01
    • 2021-01-01
    • 2018-12-07
    • 2021-10-20
    • 2021-11-15
    • 2020-11-02
    相关资源
    最近更新 更多