node.js - 如何从频道 discord.js 中获取用户的所有提及
问题描述
所以,我正在尝试创建一个简单的机器人,当用户写入时:
!howmanypoints {user}
它应该只是去一个特定的频道,并搜索它在特定频道中被提及的次数。
截至目前,我遇到了 fetchMentions() 函数,但它似乎已被弃用,并且当机器人尝试执行此操作时 API 不喜欢它。
任何输入或至少是更好的方法。也许我执着于让它发挥作用。
const Discord = require('discord.js')
const client = new Discord.Client()
client.on('message', msg => {
if (msg.content.includes('!howmanypoints') || msg.content.includes('!cuantospuntos')) {
const canal_de_share = client.channels.find('name', 'dev')
const id_user = client.user.id
client.user.fetchMentions({guild: id_user })
.then(console.log)
.catch(console.error);
}
})
解决方案
ClientUser.fetchMentions()
已弃用,仅适用于用户帐户。
作为替代方案,您可以获取频道的所有消息并遍历每个消息,检查提及。
例子:
let mentions = 0;
const channel = client.channels.find(c => c.name === 'dev');
const userID = client.user.id;
channel.fetchMessages()
.then(messages => {
for (let message of messages) {
if (message.mentions.users.get(userID)) mentions++;
}
console.log(mentions);
})
.catch(console.error);
推荐阅读
- php - Google Cloud App Engine app.yaml php72 路由问题
- javascript - 视频不可用 youtube API
- r - 将中间观测值添加到数据框(手动插值)
- c++ - 我声明抽象类的方式是错误的/不常见的吗?
- node.js - 将 google 身份验证添加到 Node REST API
- mysql - 如何在三个表之间进行内部连接?
- java - 打印两个时间戳之间的所有时间戳
- csv - Ownership and lifetime in nested iterators in rust for string comparison
- openai-gym - 如何在初始化时将参数传递给 openai-gym 环境
- django - 在 IIS 上使用 django 的静态文件的不止一个路径