Managers API Reference¶
classes.managers.GuildManager
¶
GuildManager
¶
Manage guild-level data, settings materialization, and caching.
Responsibilities
- Ensure a guild document exists in MongoDB.
- Merge module-declared default settings with DB values.
- Maintain an in-memory settings cache per guild.
Source code in classes/managers/GuildManager.py
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 |
|
create_guild_data(guild_data)
async
¶
Insert a new guild document in MongoDB.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
guild_data
|
Dict[str, Any]
|
Initial document to insert. |
required |
Returns:
Type | Description |
---|---|
The inserted id or driver-specific result. |
Source code in classes/managers/GuildManager.py
86 87 88 89 90 91 92 93 94 95 |
|
fetch_all_members(guild_id)
async
¶
Fetching all members for a given guild.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
guild_id
|
int
|
The Discord guild id. |
required |
Returns:
Type | Description |
---|---|
List[Dict[str, Any]]
|
A list of member profile dicts or manager-defined structures. |
Source code in classes/managers/GuildManager.py
63 64 65 66 67 68 69 70 71 72 73 |
|
fetch_guild_data(guild_id)
async
¶
Fetch the guild document from MongoDB.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
guild_id
|
str
|
The Discord guild id. |
required |
Returns:
Type | Description |
---|---|
Dict[str, Any]
|
The guild document or None if not found. |
Source code in classes/managers/GuildManager.py
75 76 77 78 79 80 81 82 83 84 |
|
fetch_or_create(guild_id, force=False)
async
¶
Fetch the Guild object with materialized settings, creating DB docs as needed.
Loads the Discord guild from cache or API, ensures a guild profile exists
in the guilds
collection, and resolves the full settings map by combining
module defaults and stored values.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
guild_id
|
str
|
The Discord guild id (stringable). |
required |
force
|
bool
|
Reserved for future use (e.g., bypass certain caches). |
False
|
Returns:
Name | Type | Description |
---|---|---|
A |
Guild
|
class: |
Raises:
Type | Description |
---|---|
ValueError
|
If the Discord guild cannot be found. |
Source code in classes/managers/GuildManager.py
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
|
find_by_kv(filter)
async
¶
Find guilds matching a filter and return their materialized profiles.
Prefers _id
as the guild id key but tolerates legacy documents using id
.
Each result is hydrated with settings (merged defaults + DB values) and
cached under setting_cache
keyed by the string guild id.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
filter
|
Dict[str, Any]
|
Mongo‑style filter applied to the |
required |
Returns:
Type | Description |
---|---|
List[Guild]
|
A list of |
Source code in classes/managers/GuildManager.py
165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 |
|
get_language(guild_id)
async
¶
Return the guild's language from settings, defaulting to 'en'.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
guild_id
|
str
|
The Discord guild id. |
required |
Returns:
Type | Description |
---|---|
str
|
The ISO code of the language, e.g., "en". |
Source code in classes/managers/GuildManager.py
97 98 99 100 101 102 103 104 105 106 107 108 |
|
invalidate_cache(guild_id)
¶
Invalidate the in-memory settings cache for a guild.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
guild_id
|
str
|
The Discord guild id (stringable). |
required |
Source code in classes/managers/GuildManager.py
194 195 196 197 198 199 200 201 202 |
|
classes.managers.MemberManager
¶
MemberManager
¶
Manage member profiles, hydration, and per-user settings resolution.
Responsibilities
- Ensure a member document exists in MongoDB for (guild_id, member_id).
- Fetch the Discord Member object.
- Build a
Member
domain object with resolved user settings from modules.
Source code in classes/managers/MemberManager.py
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 |
|
create(member_id, guild_id)
async
¶
Create a new member profile and hydrate a Member
object.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
member_id
|
str
|
Discord user id (stringable). |
required |
guild_id
|
str
|
Discord guild id (stringable). |
required |
Returns:
Type | Description |
---|---|
Member
|
A hydrated :class: |
Raises:
Type | Description |
---|---|
CommandError
|
If the guild/member cannot be found or creation fails. |
Source code in classes/managers/MemberManager.py
175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 |
|
delete(member_id, guild_id)
async
¶
Delete a member profile document.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
member_id
|
str
|
Discord user id (stringable). |
required |
guild_id
|
str
|
Discord guild id (stringable). |
required |
Returns:
Type | Description |
---|---|
The deleted document or None. |
Raises:
Type | Description |
---|---|
CommandError
|
If the profile does not exist. |
Source code in classes/managers/MemberManager.py
153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 |
|
fetch(member_id, guild_id)
async
¶
Fetch an existing member profile and hydrate a Member
object.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
member_id
|
str
|
Discord user id (stringable). |
required |
guild_id
|
str
|
Discord guild id (stringable). |
required |
Returns:
Type | Description |
---|---|
Member
|
A hydrated :class: |
Raises:
Type | Description |
---|---|
CommandError
|
If the profile, guild, or member cannot be found. |
Source code in classes/managers/MemberManager.py
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
|
fetch_or_create(member_id, guild_id)
async
¶
Fetch or create a member profile, then hydrate a Member
object.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
member_id
|
str
|
Discord user id (stringable). |
required |
guild_id
|
str
|
Discord guild id (stringable). |
required |
Returns:
Type | Description |
---|---|
Member
|
A hydrated :class: |
Raises:
Type | Description |
---|---|
CommandError
|
If the guild/member cannot be found. |
Source code in classes/managers/MemberManager.py
117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 |
|
find_by_kv(filter)
async
¶
Find member profiles by filter and hydrate Member
objects.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
filter
|
Dict[str, Any]
|
Mongo-style filter applied to the |
required |
Returns:
Type | Description |
---|---|
List[Member]
|
A list of hydrated :class: |
Raises:
Type | Description |
---|---|
CommandError
|
If no member profiles match the filter. |
Source code in classes/managers/MemberManager.py
233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 |
|
find_or_create_profile(member_id, guild_id)
async
¶
Find a member profile document by (guild, user), creating it if missing.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
member_id
|
str
|
Discord user id (stringable). |
required |
guild_id
|
str
|
Discord guild id (stringable). |
required |
Returns:
Type | Description |
---|---|
Any
|
The member profile document. |
Source code in classes/managers/MemberManager.py
212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 |
|
update_member(member_id, guild_id, update)
async
¶
Update fields in a member profile document via $set
.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
member_id
|
str
|
Discord user id. |
required |
guild_id
|
str
|
Discord guild id. |
required |
update
|
Dict[str, Any]
|
Field map to be applied under |
required |
Returns:
Type | Description |
---|---|
int
|
The number of modified documents (0 or 1). |
Source code in classes/managers/MemberManager.py
264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 |
|
get_all_settings(client, member_data, guild, logger, user)
async
¶
Resolve all user-scoped settings defined by modules for a specific member.
Copies the Setting
templates from modules, preserves hooks (save
, load
,
parse
, parse_to_database
, condition
), then loads either from load()
,
from the member profile data, or uses the default.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
client
|
ExtendedClient
|
Extended client. |
required |
member_data
|
Any
|
Member profile document from DB. |
required |
guild
|
Guild
|
Discord guild object. |
required |
logger
|
Logger
|
Logger instance. |
required |
user
|
Member
|
Discord member to resolve settings for. |
required |
Returns:
Type | Description |
---|---|
A mapping from setting id to |
Source code in classes/managers/MemberManager.py
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
|
get_guilds(client, guilds)
async
¶
Helper to materialize a list of guild wrappers by id.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
client
|
ExtendedClient
|
Extended client. |
required |
guilds
|
List[str]
|
List of guild ids. |
required |
Returns:
Type | Description |
---|---|
List[Guild]
|
A list of :class: |
Source code in classes/managers/MemberManager.py
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
classes.managers.SettingsManager
¶
SettingsManager
¶
Facade for loading and saving guild- and member-level settings.
Delegates to GuildManager
and MemberManager
to materialize domain objects
and persist updates.
Source code in classes/managers/SettingsManager.py
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
|
load_guild_settings(guild_id)
async
¶
Load and return a Guild
object with settings materialized.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
guild_id
|
int
|
Discord guild id. |
required |
Returns:
Type | Description |
---|---|
Optional[Guild]
|
A |
Source code in classes/managers/SettingsManager.py
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
|
load_member_settings(member_id, guild_id)
async
¶
Load and return a hydrated Member
object with user settings.
This delegates to MemberManager.fetch_or_create
, which ensures the
profile exists and resolves per‑user settings from module definitions.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
member_id
|
int
|
Discord user id. |
required |
guild_id
|
int
|
Discord guild id. |
required |
Returns:
Type | Description |
---|---|
Optional[Member]
|
Hydrated |
Source code in classes/managers/SettingsManager.py
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
|
save_guild_setting(guild_id, setting_id, value)
async
¶
Persist a single guild setting.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
guild_id
|
int
|
Discord guild id. |
required |
setting_id
|
str
|
Setting identifier. |
required |
value
|
Any
|
New value to store. |
required |
Raises:
Type | Description |
---|---|
ValueError
|
If the guild cannot be loaded. |
KeyError
|
If the setting id is unknown for that guild. |
Source code in classes/managers/SettingsManager.py
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
|
save_member_setting(member_id, guild_id, setting_id, value)
async
¶
Persist a single member (user-scoped) setting.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
member_id
|
int
|
Discord user id. |
required |
guild_id
|
int
|
Discord guild id. |
required |
setting_id
|
str
|
Setting identifier. |
required |
value
|
Any
|
New value to store. |
required |
Raises:
Type | Description |
---|---|
ValueError
|
If the member cannot be loaded. |
Exception
|
If persistence fails. |
Source code in classes/managers/SettingsManager.py
88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
|
classes.managers.PermissionsManager
¶
PermissionsManager
¶
Hierarchical permission registry and resolver.
Stores permission nodes in a nested mapping keyed by dot‑separated paths, for example "Role.*", "User.1234", "Channel.5678", or custom trees like "Feature.Admin.Purge".
Resolution rules
- Exact path match returns the first terminal node found.
- If a segment is missing, the resolver remembers a sibling literal "*" at that level, which acts as a wildcard. The last wildcard seen becomes the fallback.
- If the traversal ends on a terminal node, it is returned. Otherwise the last wildcard wins.
The manager also evaluates override documents with "allow" and "deny" lists by calling into registered nodes.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
client
|
Bot
|
Discord bot client. |
required |
logger
|
Logger
|
Logger instance. |
required |
Source code in classes/managers/PermissionsManager.py
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 |
|
check_permission_for(node, member, channel)
async
¶
Evaluate a permission node for a given member and channel.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
node
|
str
|
Permission path to evaluate. |
required |
member
|
Member
|
Guild member being checked. |
required |
channel
|
TextChannel
|
Text channel context for the check. |
required |
Returns:
Type | Description |
---|---|
bool
|
True if the node grants permission, False otherwise. |
Source code in classes/managers/PermissionsManager.py
103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
|
compute_permissions(override, member, channel)
async
¶
Evaluate an override document with allow and deny lists.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
override
|
OverrideNode
|
Override document with "allow" and "deny". |
required |
member
|
Member
|
Guild member being checked. |
required |
channel
|
TextChannel
|
Text channel context. |
required |
Returns:
Type | Description |
---|---|
Optional[bool]
|
True, False, or None if no rule matched. |
Source code in classes/managers/PermissionsManager.py
126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 |
|
get_node(permission)
¶
Resolve a permission path into a terminal node.
Traverses the internal tree segment by segment and returns the matching callable. Supports a literal "*" at any level as a wildcard fallback.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
permission
|
str
|
Permission path to resolve. |
required |
Returns:
Type | Description |
---|---|
Optional[PermissionNode]
|
The resolved PermissionNode or None if nothing matches. |
Source code in classes/managers/PermissionsManager.py
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
|
has_permission(node, member, channel, override)
async
¶
High‑level permission check that combines Discord flags and overrides.
Order
1) If the last segment of node
matches a Discord permission flag and the member has it,
return True.
2) Evaluate the override document. If it resolves, return that result.
3) Default to False.
Note
This method is intended for cases where node
maps to a Discord built‑in permission,
for example "Permissions.manage_messages". For custom namespaces like "Role.*", prefer
compute_permissions
or check_permission_for
with explicit nodes.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
node
|
str
|
Permission path to check. |
required |
member
|
Member
|
Guild member being checked. |
required |
channel
|
TextChannel
|
Text channel context. |
required |
override
|
OverrideNode
|
Override document with "allow" and "deny". |
required |
Returns:
Type | Description |
---|---|
bool
|
True if permission is granted, otherwise False. |
Source code in classes/managers/PermissionsManager.py
151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 |
|
register_node(permission, result)
¶
Register a terminal permission node.
The permission string is a dot‑separated path. Intermediate namespaces are created as dicts. The final segment becomes the terminal node and must be a callable that returns an awaitable bool.
Example
register_node("Role.*", role_checker) register_node("Feature.Admin.Purge", purge_checker)
Parameters:
Name | Type | Description | Default |
---|---|---|---|
permission
|
str
|
Permission path, for example "Role.*" or "Feature.Admin.Purge". |
required |
result
|
PermissionNode
|
Async callable of type PermissionNode. |
required |
Source code in classes/managers/PermissionsManager.py
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
|
is_end_node(node)
¶
Return True if the node is a terminal permission node.
A terminal node is a callable that resolves an access decision and is not a dict.
Source code in classes/managers/PermissionsManager.py
11 12 13 14 15 16 |
|
classes.managers.FlagsManager
¶
FlagsManager
¶
Central registry for feature flags and defaults.
This manager holds global default flag values and exposes helpers to read
per-guild flag values via the guild's own ObjectFlags
facade.
Typical usage
- Call :meth:
register_flag
at startup to declare a flag and its default. - Use :meth:
get_flag
inside your features to read the value for a given guild, falling back to the global default when the guild did not override it. - Use :meth:
has_flag
to quickly check if a flag exists either locally (guild) or globally.
Notes¶
Guild-level reads are delegated to :class:classes.structs.ObjectFlags.ObjectFlags
via guild.flags
(which is created in :class:classes.structs.Guild.Guild
).
Source code in classes/managers/FlagsManager.py
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 |
|
__init__(client, logger)
¶
Parameters¶
client: The Discord client/bot instance. logger: Logger used for diagnostics.
Source code in classes/managers/FlagsManager.py
28 29 30 31 32 33 34 35 36 37 38 39 |
|
delete_flag(flag)
¶
Remove a global flag definition.
If the flag is not present, this is a no-op.
Parameters¶
flag: The flag identifier to remove.
Returns¶
FlagsManager Self, to allow call chaining.
Source code in classes/managers/FlagsManager.py
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
|
get_flag(guild, flag)
¶
Resolve a flag value for a specific guild.
The lookup order is:
1) Guild override via guild.flags.get(flag)
.
2) Global default from this manager.
Parameters¶
guild:
The target :class:classes.structs.Guild.Guild
instance.
flag:
The flag identifier.
Returns¶
Any The resolved flag value (guild override if present, otherwise global default).
Raises¶
TypeError
If guild
is not an instance of :class:classes.structs.Guild.Guild
.
Source code in classes/managers/FlagsManager.py
86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
|
has_flag(guild, flag)
¶
Check if a flag exists for a guild (override) or globally.
Parameters¶
guild:
The target :class:classes.structs.Guild.Guild
instance.
flag:
The flag identifier.
Returns¶
bool
True
if the flag is available either in the guild override or in
the manager's global defaults; False
otherwise.
Raises¶
TypeError
If guild
is not an instance of :class:classes.structs.Guild.Guild
.
Source code in classes/managers/FlagsManager.py
116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 |
|
register_flag(flag, default_value)
¶
Register (or overwrite) a global flag and its default value.
Parameters¶
flag:
Unique flag identifier (e.g., "features.xp_enabled"
).
default_value:
Default value used when the guild has no explicit override.
Returns¶
FlagsManager Self, to allow call chaining.
Examples¶
flags.register_flag("features.xp_enabled", True)
Source code in classes/managers/FlagsManager.py
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
|
classes.managers.SlashManager
¶
SlashManager
¶
Helper for registering :class:classes.structs.SlashCommand.SlashCommand
objects.
This manager wires slash commands into the client's command tree and performs the necessary sync operations (globally or per-guild).
Source code in classes/managers/SlashManager.py
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
|
__init__(client)
¶
Parameters¶
client: The Discord client/bot that owns the command tree.
Source code in classes/managers/SlashManager.py
13 14 15 16 17 18 19 20 21 |
|
register_commands_for_guild(commands, guild_ids)
async
¶
Register and sync slash commands for specific guilds.
Parameters¶
commands:
List of :class:classes.structs.SlashCommand.SlashCommand
instances.
guild_ids:
Guild IDs where the commands should be registered.
Notes¶
Guild-specific sync is near-instant and ideal for testing.
Source code in classes/managers/SlashManager.py
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
|
register_global_commands(commands)
async
¶
Register and sync a list of slash commands globally.
Parameters¶
commands:
List of :class:classes.structs.SlashCommand.SlashCommand
instances
to be added to the application's global command tree.
Notes¶
Discord caches global commands and propagation can take some minutes.
Source code in classes/managers/SlashManager.py
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
|