我们如何阅读某些用户发送给我们的机器人的消息?

时间:2020-01-12 15:46:42

标签: javascript discord.js

我一直在设计我的机器人2-3周。我已经通过命令发出了不和谐的bot DM命令,可以将消息发送给我们服务器成员的任何人..但是如何阅读他们对该机器人的答复

3 个答案:

答案 0 :(得分:0)

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

client.on('ready', () => {
  console.log(`Logged in as ${client.user.tag}!`);
});

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

client.login('token');

点击here查看官方文档。

答案 1 :(得分:0)

使用“ message”事件,您在DM中获得的消息与获得正常消息的消息相同。 要查看消息是否在DM中发送,请检查message.guild是否存在。 例如:

if (!message.guild) {return console.log(`New Message in DMs: ${message.content}`)}

根据您的注释“ i want to see that message in a specific channel and with their names”,您必须检查Channel ID。您可以使用Message's Author属性获得消息作者的姓名。

这是一个例子:

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

Client.on("message", (message) => {
    if (message.author.bot) return false; // If the message is sent by a bot, we ignore it.
    if (message.channel.id == "661567766444376085") { // Checking if the message is sent in a certain channel.
        let Channel = message.client.channels.get("661567766444376085"); // Getting the channel object.
        console.log(`New message in #${Channel.name} from ${message.author.tag}: ${message.content}`);
    };
});

Client.login("TOKEN");

输出应为:New message in #channel_name from Author#0000: Message Content!

答案 2 :(得分:0)

Discord不具有作为对话与用户通信的内置功能。为了组织这样的交流,有几种选择。您可以使用channel.fetchMessages方法,该方法将对话框中的所有消息作为集合返回,但这不是很方便。您可以创建一个服务器,并在该服务器中为每个用户创建一个通道,然后在其中向他发送消息,并在dm中将您的消息发送给他。实施方案有很多,但是所有方案都需要认真研究才能使其正常工作。