你如何添加一个新的斜杠命令,而不必踢并重新邀请机器人到它所在的每个服务器?
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
权限)。
【讨论】:
谢谢拉斯顿以上是关于你如何添加一个新的斜杠命令,而不必踢并重新邀请机器人到它所在的每个服务器?的主要内容,如果未能解决你的问题,请参考以下文章