使用Discord.js发送消息

Gab*_*abe 15 javascript discord discord.js

所以.我正在尝试制作一个不和谐机器人,但我不太了解Discord.js.我的代码看起来像这样:

client.on("message", function(message) {
    if(message.content === "ping") {
        client.message.send(author, "pong");
    }
});
Run Code Online (Sandbox Code Playgroud)

问题是我不太明白如何发送消息.

有谁能够帮我 ?

Bal*_*n S 35

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

向特定频道发送消息

const channel = <client>.channels.cache.get('<id>');
channel.send('<content>');
Run Code Online (Sandbox Code Playgroud)

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

const user = <client>.users.cache.get('<id>');
user.send('<content>');
Run Code Online (Sandbox Code Playgroud)

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

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


小智 25

您的行中有错误.send().您拥有的当前代码在早期版本的discord.js库中使用,并且发送功能已更改.

要发送消息,请使用以下行:

message.channel.send('My Message')
Run Code Online (Sandbox Code Playgroud)

如果你得到一个错误,说message是没有defined,请确保你已经把线在你的消息事件处理程序.

client.on("message", function(message) {
  //message sending goes here
});
Run Code Online (Sandbox Code Playgroud)

您还可以向特定频道发送消息,您可以使用以下行进行操作.

client.channels.get(channelID).send('My Message');
Run Code Online (Sandbox Code Playgroud)

或者如果您愿意,可以使用公会的默认频道(创建公会时创建的#general频道)

guildObj.defaultChannel.send('My Message');
Run Code Online (Sandbox Code Playgroud)

希望这有帮助,

- 间谍


sea*_*arn 5

最佳答案已过时

新方法是:

const channel = await client.channels.fetch(<id>);

await channel.send('hi')
Run Code Online (Sandbox Code Playgroud)

添加有关获取频道 ID 的一些上下文;所有频道的列表都存储在该client.channels属性中。

一个简单的console.log(client.channels)将显示该服务器上所有频道的数组。