javascript - 无法读取未定义的属性“通道”
问题描述
所以我一直在尝试制作一个不和谐的机器人,当用户被踢(被工作人员)踢时,它会将嵌入发送到日志通道,但它会不断抛出错误
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")
但即使这样也行不通。我问了我的一些朋友,即使他们不知道,如果有人能帮助我,我将非常感激!
(我还应该说我是编程新手)
解决方案
我知道的不多,但我认为你应该这样做。
更改以下内容
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");
推荐阅读
- php - 认证后重定向到所需页面
- xamarin.forms - ViewModel 没有在带有棱镜的 Xamarin 表单的主详细信息页面中第一次被调用
- bash - 对包含 * 的字符串进行 for 循环迭代
- facebook - 使用 ID 获取与兴趣相关的兴趣
- typescript - TSLint: for statements must be braced (curly)
- javascript - React - 无限循环 xhr sockjs-node
- python-3.x - How to compare all the first element of tuple with corresponding second element in the same tuple
- javascript - 在客户端运行 python
- python-3.x - How to have my defined refresh function running in the background of my twisted server
- c# - OpenCover C# Branch Coverage 说在 throw new Exception 上应该有一个分支