diff --git a/changelog/1108.bugfix.rst b/changelog/1108.bugfix.rst new file mode 100644 index 0000000000..593813ab65 --- /dev/null +++ b/changelog/1108.bugfix.rst @@ -0,0 +1 @@ +Make message_command check both local and synchronized guild_ids diff --git a/disnake/ext/commands/interaction_bot_base.py b/disnake/ext/commands/interaction_bot_base.py index 25308c3649..a3edb70016 100644 --- a/disnake/ext/commands/interaction_bot_base.py +++ b/disnake/ext/commands/interaction_bot_base.py @@ -830,9 +830,13 @@ async def _sync_application_commands(self) -> None: # Same process but for each specified guild individually. # Notice that we're not doing this for every single guild for optimisation purposes. # See the note in :meth:`_cache_application_commands` about guild app commands. + guild_ids_to_check = set(guild_cmds.keys()) + for guild_id in self._connection._guild_application_commands.keys(): + guild_ids_to_check.add(guild_id) if self._command_sync_flags.sync_guild_commands: - for guild_id, cmds in guild_cmds.items(): + for guild_id in guild_ids_to_check: current_guild_cmds = self._connection._guild_application_commands.get(guild_id, {}) + cmds = guild_cmds.get(guild_id, {}) diff = _app_commands_diff(cmds, current_guild_cmds.values()) if not self._command_sync_flags.allow_command_deletion: # because allow_command_deletion is disabled, we want to never automatically delete a command