mirror of
https://github.com/Rapptz/discord.py.git
synced 2025-06-07 20:28:38 +00:00
Add CommandTree.clear_commands
This commit is contained in:
parent
8a1800bd12
commit
83fae4f0fa
@ -409,6 +409,47 @@ class CommandTree(Generic[ClientT]):
|
|||||||
key = (command, guild_id, type.value)
|
key = (command, guild_id, type.value)
|
||||||
return self._context_menus.pop(key, None)
|
return self._context_menus.pop(key, None)
|
||||||
|
|
||||||
|
def clear_commands(self, *, guild: Optional[Snowflake], type: Optional[AppCommandType] = None) -> None:
|
||||||
|
"""Clears all application commands from the tree.
|
||||||
|
|
||||||
|
This only removes the commands locally -- in order to sync the commands
|
||||||
|
and remove them in the client, :meth:`sync` must be called.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
-----------
|
||||||
|
guild: Optional[:class:`~discord.abc.Snowflake`]
|
||||||
|
The guild to remove the commands from. If ``None`` then it
|
||||||
|
removes all global commands instead.
|
||||||
|
type: :class:`~discord.AppCommandType`
|
||||||
|
The type of command to clear. If not given or ``None`` then it removes all commands
|
||||||
|
regardless of the type.
|
||||||
|
"""
|
||||||
|
|
||||||
|
if type is None or type is AppCommandType.chat_input:
|
||||||
|
if guild is None:
|
||||||
|
self._global_commands.clear()
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
commands = self._guild_commands[guild.id]
|
||||||
|
except KeyError:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
commands.clear()
|
||||||
|
|
||||||
|
guild_id = None if guild is None else guild.id
|
||||||
|
if type is None:
|
||||||
|
self._context_menus = {
|
||||||
|
(name, _guild_id, value): cmd
|
||||||
|
for (name, _guild_id, value), cmd in self._context_menus.items()
|
||||||
|
if _guild_id != guild_id
|
||||||
|
}
|
||||||
|
elif type in (AppCommandType.user, AppCommandType.message):
|
||||||
|
self._context_menus = {
|
||||||
|
(name, _guild_id, value): cmd
|
||||||
|
for (name, _guild_id, value), cmd in self._context_menus.items()
|
||||||
|
if _guild_id != guild_id or value != type.value
|
||||||
|
}
|
||||||
|
|
||||||
@overload
|
@overload
|
||||||
def get_command(
|
def get_command(
|
||||||
self,
|
self,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user