提问者:小点点

用discord.js发送消息


我正在尝试做一个discord.js的bot,但是我不太能理解discord.js。我的代码如下所示:

client.on('message', function(message) {
 if (message.content === 'ping') {
  client.message.send(author, 'pong');
 }
});

问题是我不太明白如何传递信息。

有人能帮我吗?


共3个答案

匿名用户

发送代码已再次更改。问题和答案中的项目都已过时。对于版本12,下面将是正确的代码。有关此代码的详细信息可在此链接中获得。

向特定通道发送消息

const channel = <client>.channels.cache.get('<id>');
channel.send('<content>');

向DM中的特定用户发送消息

const user = <client>.users.cache.get('<id>');
user.send('<content>');

如果您想DM一个用户,请注意bot和用户应该至少有一个共同的服务器。

希望这个答案能帮助那些在版本12之后来到这里的人。

匿名用户

您的.send()行中有错误。当前的代码是在早期版本的discord.js库中使用的,并且send函数已经更改。

要发送邮件,请使用此行:

message.channel.send('My Message')

如果收到一个错误,说明message未定义,请确保已将该行放在消息事件处理程序中。

client.on("message", function(message) {
  //message sending goes here
});

您还可以将消息发送到特定的通道,您可以使用下面的行来执行此操作。

client.channels.get(channelID).send('My Message');

或者,如果你喜欢,一个公会的默认频道(在创建公会时创建的#通用频道)

guildObj.defaultChannel.send('My Message');

希望这有帮助,

-间谍

匿名用户

下面我呈现的脚本,发送直接消息给用户。

在这种情况下,我们的消息不是响应,而是直接发送给选定用户的新消息。

require('dotenv').config({ path: __dirname + '/.env.local' });

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

client.on("ready", () => {
    console.log(client.users.get('ID_OF_USER').send("hello"));
});

client.login(process.env.DISCORD_BOT_TOKEN);

进一步的文件:

https://github.com/anidiotsguide/discordjs-bot-guide/blob/master/frequency-asked-questions.md#用户和成员