机器人就绪后如何在频道中发送消息?

时间:2020-05-17 06:50:37

标签: node.js bots discord discord.js

我正在尝试修改discord.js中的“乒乓”示例代码。
我不想登录控制台,而是想在Discord的特定频道中发送消息。 我尝试使用下面的代码来做到这一点,但它一直向我显示此错误:

(node:10192) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'channels' of undefined
    at Client.<anonymous> (D:\GAMES\DiscordBot\index.js:7:12)

这是我正在使用的代码:

const Discord = require('discord.js');
const client = new Discord.Client();

console.log(client);

client.on('ready', client => {
  client.channels.get('787667808777998851').send('Hello here!');
});

client.on('message', msg => {
  if (msg.content === 'ping') {
    msg.reply('pong');
  }
});

client.login('auth-token');

1 个答案:

答案 0 :(得分:1)

简单的错误!您正在声明一个新的client变量,该变量是未定义的,因为ready事件不会使用任何值回调。 .get也不是一个函数。您正在寻找的是.fetch,此函数返回一个可解析为频道的promise。这是您的新准备活动。

client.on('ready', () => {
    client.channels.fetch('787667808777998851')
    .then(channel => {
        channel.send("Hello here!");
    })
});

此外,请尽量不要在问题中发布您的机器人令牌。这非常危险,任何人都可以访问您的漫游器。