你如何添加一个新的斜杠命令,而不必踢并重新邀请机器人到它所在的每个服务器?

Posted

技术标签:

【中文标题】你如何添加一个新的斜杠命令,而不必踢并重新邀请机器人到它所在的每个服务器?【英文标题】:How do you add a new slash command without having to kick and re-invite the bot to each server it's in? 【发布时间】:2021-12-31 17:12:09 【问题描述】:

要制作斜线命令,请执行以下操作:

from discord_slash import SlashCommand

slash = SlashCommand(bot, sync_commands = True)

@slash.slash(name='command name', description='commands description', guild_ids=[#guild id's]):
    #CODE

如果您删除“guild_ids”部分,那么它在所有服务器中都可以使用,但需要在创建新服务器时被踢出并重新邀请。

另一方面,如果您在该列表中有公会 ID,它将自动更新,但这意味着您必须将每个服务器 ID 添加到该列表中,如果我希望这是一个公共 Discord Bot,这将不起作用。

如果你尝试这样做:

from discord_slash import SlashCommand

slash = SlashCommand(bot, sync_commands = True)

guilds = []
@bot.event
async def on_guild_join(guild):
    #append the guild id when it joins a new server
    guilds.append(guild.id)
@slash.slash(name='command name', description='command description', guild_ids=guilds)

它不起作用,因为它只指列表开头的内容。即使列表发生变化也不会更新

有没有办法让这更容易/自动?

如果你知道 MEE6 机器人,那么在你邀请机器人之后,斜线命令就会出现,所以这基本上就是我想要做的。

【问题讨论】:

如果不传入guild_ids 参数,全局注册斜线命令大约需要一个小时,也许更多。你必须让机器人在这段时间内保持在线。 【参考方案1】:

您的斜杠命令每小时自动更新一次。但是当你邀请机器人时,它的命令会立即为公会创建(如果你的机器人有manage_commands 权限)。

【讨论】:

谢谢拉斯顿

以上是关于你如何添加一个新的斜杠命令,而不必踢并重新邀请机器人到它所在的每个服务器?的主要内容,如果未能解决你的问题,请参考以下文章

检查 Discord bot 在服务器中是不是具有斜杠命令权限?

如何在 CentOS 7 中添加新磁盘而不用重启系统

如何在CentOS 7中添加新磁盘而不用重启系统

带有斜杠命令的 Discord.js 语音通道

如何激活 Slack 机器人

公会加入事件打印机器人被邀请 - Discord.py