Why discord did it this way instead of as an integer bitfield like everything
reasonable is unknowable, but this does less work to get to the same result.
Add comment detailing what many would find unreadbale
This changes the type information of check decorators to return a
protocol representing that the decorator leaves the underlying object
unchanged while having a .predicate attribute.
resolves#7949
Adds an efficient way to check if a member has a role by ID.
This is done in a way consistent with the existing user API of the
library.
The more debated Member.has_role_id/has_role is intentionally not
included for review at this time given the heavy bikeshedding of it.
- fixes 4087
- This intentionally uses some internals in both Member.roles and
Member.top_role to retain as much performance as possible while
removing the cache
This adds some implicit permission handling for `discord.VoiceChannel.permissions_for`
This is not documented behavior in discord's developer documentation, but it can easily be verified as correct.