-
Notifications
You must be signed in to change notification settings - Fork 147
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Summary
Unloading app commands with guild_ids which were not specified anywhere else doesn't delete those commands.
Reproduction Steps
- Register an app command X with exclusive guild_ids (by exclusive I mean that those guild_ids are not associated with other commands; by registering I mean adding a command and applying the sync algo)
- Remove the app command X and resync
Minimal Reproducible Code
import disnake
from disnake.ext import commands
class Misc(commands.Cog):
@commands.slash_command(guild_ids=[859404768992165920])
async def example(self, inter: disnake.AppCmdInter) -> None:
...
bot = commands.InteractionBot(command_sync_flags=commands.CommandSyncFlags.all())
bot.add_cog(Misc())
@bot.event
async def on_ready():
bot.remove_cog("Misc")
print("Bot is ready. You can check the list of commands")
bot.run("BOT_TOKEN")Expected Results
Command X should be gone
Actual Results
The command stays in the list of commands
Intents
disnake.Intents.default()
System Information
- Python v3.8.6-final
- disnake v2.9.0
- disnake importlib.metadata: v2.4.0
- aiohttp v3.8.1
- system info: Windows 10 10.0.19041 AMD64Checklist
- I have searched the open issues for duplicates.
- I have shown the entire traceback, if possible.
- I have removed my token from display, if visible.
Additional Context
Probably the best solution is to compare ConnectionState._guild_application_commands to the list of invokable slash commands and remove any commands that are included in the first dict but are missing in the second.
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working