| Commit message (Collapse) | Author | Lines |
|
Since the banner and avatar assets will always have the same filename,
we need their full paths to differentiate between assets of different
seasons. Rather than introducing more complexity to the `pretty_files`
function and deconstructing the download urls, we can just store the
path as provided by the API.
We also now print the `path` instead of showing bools in the status
embed, as just the fact that there is some banner is not enough
information - we want to know which season's banner has been picked
up during refresh.
|
|
We do not have any multi-word seasons at the moment, but there is no
reason to restrict the command to just one word.
|
|
|
|
Asyncio's sleep will accept both, and we default to an int, so might
as well not break our own promise.
|
|
Importing the bot instance will allow us to safely access
the `wait_until_ready` method without having to make fragile
assumptions about the arguments passed to the decorated method.
Although still not perfect, this feels a lot cleaner and safer than
the previous approach.
|
|
It makes more sense for it to be positioned alongside other core bot
features.
|
|
|
|
See docstring for implementation details.
|
|
We want to prevent listeners from performing season-specific behaviour
outside of specific months.
|
|
A guarded listener will abort if the triggering event happens outside
of `allowed_months`. This provides a convenient way of season-locking
listeners without having to write guards directly within their bodies.
|
|
Raise a custom exception if the command fails. This is then handled
in the error handler, and the user will be informed of which months
allow the invoked command.
|
|
|
|
|
|
Prevent re-applying branding if the user requests an already active
season. This saves us an expensive operation.
Only trigger typing if season switch was successful and `apply` will
be called, as otherwise the bot will respond immediately.
|