[commands] Always respect guild IDs passed to cog adding and removal

Fixes #7657
This commit is contained in:
Rapptz
2022-03-12 06:58:55 -05:00
parent d921a03911
commit d68f2db7cb
2 changed files with 10 additions and 9 deletions

View File

@ -605,7 +605,7 @@ class BotBase(GroupMixin):
if isinstance(cog, app_commands.Group):
self.__tree.add_command(cog, override=override, guild=guild, guilds=guilds)
cog = cog._inject(self)
cog = cog._inject(self, override=override, guild=guild, guilds=guilds)
self.__cogs[cog_name] = cog
def get_cog(self, name: str, /) -> Optional[Cog]:
@ -681,15 +681,15 @@ class BotBase(GroupMixin):
if help_command and help_command.cog is cog:
help_command.cog = None
guild_ids = _retrieve_guild_ids(cog, guild, guilds)
if isinstance(cog, app_commands.Group):
guild_ids = _retrieve_guild_ids(cog, guild, guilds)
if guild_ids is None:
self.__tree.remove_command(name)
else:
for guild_id in guild_ids:
self.__tree.remove_command(name, guild=discord.Object(guild_id))
cog._eject(self)
cog._eject(self, guild_ids=guild_ids)
return cog