The default_permissions() decorator lets DMs through. This is cringe - we want to use default_permissions so that the server's role & moderation processes are abstracted out of the bot's code, and future committees can just fiddle with discord settings.
A more long-term solution is to have a decorator, @requires_server or the like, so we can continue to use default_permissions and just require that some commands must be used in the server. (This also would fix several other DM-based errors this PR identifies.) However, for now, let's just switch them all to checks.has_permissions() instead.
grep -r permission shows the following cogs use permissions:
member_count: errors out on DMs anyway (should be fixed but who cares)
minecraft: uses has_permissions() and Member-type-checks anyway
remindme: has manual permission checks, these will throw AttributeError in DMs (should be fixed but who cares)
The default_permissions() decorator lets DMs through. This is cringe - we want to use default_permissions so that the server's role & moderation processes are abstracted out of the bot's code, and future committees can just fiddle with discord settings.
A more long-term solution is to have a decorator,
@requires_server
or the like, so we can continue to use default_permissions and just require that some commands must be used in the server. (This also would fix several other DM-based errors this PR identifies.) However, for now, let's just switch them all tochecks.has_permissions()
instead.grep -r permission
shows the following cogs use permissions:AttributeError
in DMs (should be fixed but who cares)