当机器人重新启动或打开时,执行特定功能
Posted
技术标签:
【中文标题】当机器人重新启动或打开时,执行特定功能【英文标题】:When bot is restarted or turned on, do a specific function 【发布时间】:2019-08-21 03:50:58 【问题描述】:我正在尝试这样做,以便当我的机器人重新启动时,它会在 ready.js 文件中搜索它在机器人所在的所有公会中创建的 webhook,然后机器人将使用该 webhook 并通过它发送消息。我无法到达任何地方,这是在 JS 中。
我已经参考了 Discord.JS 的文档,但确实没有得到任何帮助。我尝试从webhook.owner
获取客户端 ID,并查看机器人的 ID 是否与它匹配。我不知道如何从webhook.owner
中提取客户端ID
guild.fetchWebhooks()
if(webhook.owner == `$bot.user.id`);
(建议)
guild.fetchWebhooks()
if(webhook.owner == `$bot.user.username`);
(实际) 这是我能想到的唯一代码,如果需要可以添加完整文件。
我希望机器人在重新启动时 (bot.on
) 会搜索它所在的所有公会并找到它拥有的 webhook,并通过它发送消息而不将消息发送到另一个活动的 webhook。
最终发生的事情是我的机器人只是发送了一个关于该机器人的提及。
【问题讨论】:
【参考方案1】:做这样的事情:
bot.on('ready', async () => // on ready
await bot.guilds.forEach(async guild => // in all guilds:
const webhooks = await guild.fetchWebhooks(); // check for Webhooks
await webhooks.forEach(async webhook => // for all found Webhooks:
if (webhook.owner.id == bot.user.id) // check if bot owns them
webhook.send('test'); // Do something with the Webhook example
);
);
);
【讨论】:
以上是关于当机器人重新启动或打开时,执行特定功能的主要内容,如果未能解决你的问题,请参考以下文章
从 shell 重新启动 VM(在 vbox 上运行)到特定的(编译的)内核
通过单击应用程序图标(来自后台)打开时反应本机android应用程序重新启动