我对编码不和谐机器人有点新意,但现在我遇到了问题,无法找到解决方案。 我甚至不确定我正在使用哪种语言 - 我在Atom工作,用节点index.js启动我的机器人并使用函数/ classes / ...从这里: https://discord.js.org/#/docs/main/stable/general/welcome
我的问题
但是,通过特定命令,我的机器人会向某个频道发送消息并将其固定。但我希望机器人删除系统消息“用户固定消息到频道”(它必须是类似的东西,我的不和谐不是英文),但我不知道怎么得不到那个消息。
我尝试了什么
我试着这样做:
if (message.content.toLowerCase().startsWith(`${BOT} hat eine nachricht an diesen kanal angeheftet`) { somefunction}
其中BOT是< @ Bot ID>并且“hat eine nachricht an diesen kanal angeheftet”有点像德国版的“固定信息通道”,但没有任何反应。它不执行某些功能(使用message.channel.send(something)
进行测试)
然后我想我可以使用fetchMessages()
(https://discord.js.org/#/docs/main/stable/class/TextChannel?scrollTo=fetchMessages):
function botAngeheftet(message, planungsChannel) {
let mes = planungsChannel.fetchMessages({limit:1})
.then(messages => planungsChannel.send("TEST:\n" + messages.first())
.catch(console.error);
但是planungsChannel中的消息是
TEST:
没有任何消息。我将限制更改为2并在planungsChannel(sometext)中写了一些东西,再次执行了该函数,结果是
TEST:
sometext
所以...... fetchMessages()似乎有效 - 但不适用于系统消息。
我的问题
如何“获取”系统消息以使用它?或者:我如何让机器人删除系统消息“用户固定消息到频道”?
答案 0 :(得分:0)
这是一个理论上的解决方案(未经测试),但它应该有效。
不和谐中的每个message
都有type
属性,属于几种类型,您可以看到here。在这种情况下您可以使用的具体type
是message.type === "PINS_ADD"
,它是
type
你指的是。系统消息显示"用户将消息固定到频道"
简单地说,你所要做的就是:
on msg event (msg)
if(msg.type === "PINS_ADD") msg.delete();
这是伪代码而不是实际代码,希望你能转换它。 Documentation