机器人回复消息作者
Bot reply to message author
我已经创建了自己的 Node.js 机器人来在我的 discord 服务器上工作。
我的机器人名为 mybot
。
我见过许多响应传入消息的示例 - 它们看起来像这样(并且工作正常)。
chatroom.on('message', function(msg){
if(msg.content === 'ping'){
msg.reply('pong');
}
});
只要有人在频道中只写 "ping",上面的代码就会让机器人回复 "pong"。
与大多数机器人一样,通常您会与他们交谈并询问他们 @mybot blahblahblah
之类的东西 - 然后他们会回复。
我想做这个。我希望 mybot
仅在与他交谈时才回复。必须有一个 msg.recipientList
或 msg.recipients
来捕获 @mybot
。我查看了 Discord.js 的文档,但很难找到这个结果。
有几种不同的方法可以做到这一点,但我认为最 "elegant" 的方法是使用 Message.isMentioned
它将一个对象(类型为 User、GuildChannel、Role、string ) 以检查消息中是否存在对该对象的 @reference。您需要做的就是提供您的 bot 的 User 对象(基础 class 的存储对象是一个 ClientUser 实例,但 User 是它的 superclass)。
// I'm assuming chatroom is your bot's DiscordClient instance,
// if it isn't then replace the "chatroom" in chatroom.user with the bot's
// DiscordClient.
chatroom.on('message', msg => {
if (msg.isMentioned(chatroom.user)) {
msg.reply('pong');
}
});
您也可以使用 if(message.content.startsWith(prefix))
或 if(message.content.indexOf("what you are looking in message") != -1)
。第一个是当您希望消息以前缀开头时,第二个是当您希望消息中包含某事时。
我已经创建了自己的 Node.js 机器人来在我的 discord 服务器上工作。
我的机器人名为 mybot
。
我见过许多响应传入消息的示例 - 它们看起来像这样(并且工作正常)。
chatroom.on('message', function(msg){
if(msg.content === 'ping'){
msg.reply('pong');
}
});
只要有人在频道中只写 "ping",上面的代码就会让机器人回复 "pong"。
与大多数机器人一样,通常您会与他们交谈并询问他们 @mybot blahblahblah
之类的东西 - 然后他们会回复。
我想做这个。我希望 mybot
仅在与他交谈时才回复。必须有一个 msg.recipientList
或 msg.recipients
来捕获 @mybot
。我查看了 Discord.js 的文档,但很难找到这个结果。
有几种不同的方法可以做到这一点,但我认为最 "elegant" 的方法是使用 Message.isMentioned
它将一个对象(类型为 User、GuildChannel、Role、string ) 以检查消息中是否存在对该对象的 @reference。您需要做的就是提供您的 bot 的 User 对象(基础 class 的存储对象是一个 ClientUser 实例,但 User 是它的 superclass)。
// I'm assuming chatroom is your bot's DiscordClient instance,
// if it isn't then replace the "chatroom" in chatroom.user with the bot's
// DiscordClient.
chatroom.on('message', msg => {
if (msg.isMentioned(chatroom.user)) {
msg.reply('pong');
}
});
您也可以使用 if(message.content.startsWith(prefix))
或 if(message.content.indexOf("what you are looking in message") != -1)
。第一个是当您希望消息以前缀开头时,第二个是当您希望消息中包含某事时。