Discord机器人加入行会会触发什么事件?

Has*_*cut 6 discord discord.js

我正在使用Discord.js创建一个基本的Discord机器人。首次启动该漫游器时,我会运行client.guilds.array()以获取该漫游器当前已订阅的所有行会的列表。我将其保存到其他程序使用的数据库中。

但是,随着人们在他们的行会中添加/删除该漫游器,我想保留一个行会的更新列表。我意识到我可以clients.guilds.array()每分钟或每分钟重新运行一次,但这似乎效率很低。

将您的漫游器添加到公会和/或渠道时,会触发事件吗?根据我的阅读,该guildMemberAdd事件似乎对已经订阅了该行会的所有用户/机器人触发。是否有任何此类事件可让您的机器人知道何时将其添加到公会中?

Wri*_*ght 7

是的,您可以在客户端事件https://discord.js.org/#/docs/main/stable/class/Client中查看它。一个简单的示例,使用该事件更新行会数组:

const discord = require("discord.js");
const client = new discord.Client();

let guildArray = client.guilds.array();

//joined a server
client.on("guildCreate", guild => {
    console.log("Joined a new guild: " + guild.name);
    //Your other stuff like adding to guildArray
})

//removed from a server
client.on("guildDelete", guild => {
    console.log("Left a guild: " + guild.name);
    //remove from guildArray
})
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!我很困惑。我认为这些事件只是在实际创建或删除新公会时发生,而不是在仅从该机器人中添加或删除该机器人时发生。 (2认同)
  • 当一些公会发生中断时,我有时会遇到这个问题,它会触发 guildDelete 事件,以避免我建议在运行该事件中的任何内容之前首先使用“guild.available” (2认同)