首页 > 解决方案 > 给出此错误的原因是什么:无法读取未定义的属性“发送”

问题描述

我不明白出了什么问题。

注意:我是初学者。

我没有任何回报client.channels.get

我的代码:

const client = new Discord.Client();

module.exports.run = async (bot, message, args) => {

message.delete().catch(O_o => {});
message.channel.send(`Olá <@&702918917588385858>`)

}

client.channels.get("780108435940835378").send(); 

标签: javascriptnode.jsdiscord.js

解决方案


您好,欢迎来到 Stack Overflow。如果您真的介意用葡萄牙语回复,您可以随时使用葡萄牙语 Stack Overflow,尽管响应时间可能会有所不同。

无论如何,您的代码有两个主要问题。首先,您正在此命令文件中创建另一个 Discord 客户端实例,该实例与您的机器人在主/索引文件中运行的实例不同(您使用的那个client.login(token)您可以在此处获得更好的解释)其次,您的发送命令不在运行功能块中,它应该在里面。

为了解决这个问题,如果你的 run 函数中的 message 参数是一个MessageObject,你可以从 message 对象中的 client 属性中获取客户端。因此,您的命令可能如下所示:

module.exports.run = function(bot, message, args) {
  const client = message.client;
  // The channel you want to send the message in.
  // If it always the one in which the message was
  // sent you could use message.channel
  const channel == client.channels.get('YOUR_CHANNEL_ID_HERE');

  message.delete();
  message.channel.send(`Olá, ${message.user.toString()}!`);
  channel.send('Anything you want / Qualquer coisa.');
}

推荐阅读