diff --git a/discord/channel.py b/discord/channel.py index 9c8e7cc36..67a66045d 100644 --- a/discord/channel.py +++ b/discord/channel.py @@ -25,7 +25,7 @@ DEALINGS IN THE SOFTWARE. import copy from . import utils -from .permissions import Permissions +from .permissions import Permissions, PermissionOverwrite from .enums import ChannelType from collections import namedtuple from .mixins import Hashable @@ -33,7 +33,6 @@ from .role import Role from .member import Member Overwrites = namedtuple('Overwrites', 'id allow deny type') -PermissionOverwrite = namedtuple('PermissionOverwrite', 'allow deny') class Channel(Hashable): """Represents a Discord server channel. @@ -162,17 +161,18 @@ class Channel(Hashable): return utils.snowflake_time(self.id) def overwrites_for(self, obj): - """Returns a namedtuple that gives you the channel-specific overwrites - for a member or a role. - - The named tuple is a tuple of (allow, deny) :class:`Permissions` - with the appropriately named entries. + """Returns the channel-specific overwrites for a member or a role. Parameters ----------- obj The :class:`Role` or :class:`Member` or :class:`Object` denoting whose overwrite to get. + + Returns + --------- + :class:`PermissionOverwrite` + The permission overwrites for this object. """ if isinstance(obj, Member): @@ -184,10 +184,11 @@ class Channel(Hashable): for overwrite in filter(predicate, self._permission_overwrites): if overwrite.id == obj.id: - return PermissionOverwrite(allow=Permissions(overwrite.allow), - deny=Permissions(overwrite.deny)) + allow = Permissions(overwrite.allow) + deny = Permissions(overwrite.deny) + return PermissionOverwrite.from_pair(allow, deny) - return PermissionOverwrite(allow=Permissions.none(), deny=Permissions.none()) + return PermissionOverwrite() def permissions_for(self, member): """Handles permission resolution for the current :class:`Member`.