我正在尝试做一个discord.js的bot,但是我不太能理解discord.js。我的代码如下所示:
client.on('message', function(message) {
if (message.content === 'ping') {
client.message.send(author, 'pong');
}
});
问题是我不太明白如何传递信息。
有人能帮我吗?
发送代码已再次更改。问题和答案中的项目都已过时。对于版本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#用户和成员