diff --git a/revolt/channel.py b/revolt/channel.py index 2e34d1e..dd79b89 100755 --- a/revolt/channel.py +++ b/revolt/channel.py @@ -182,13 +182,13 @@ class GroupDMChannel(Channel, Messageable, EditableChannel): self.permissions = Permissions(data.get("permissions", 0)) def _update(self, *, name: Optional[str] = None, recipients: Optional[list[str]] = None, description: Optional[str] = None): - if name: + if name is not None: self.name = name - if recipients: + if recipients is not None: self.recipients = [self.state.get_user(user_id) for user_id in recipients] - if description: + if description is not None: self.description = description async def set_default_permissions(self, permissions: Permissions) -> None: @@ -280,7 +280,7 @@ class ServerChannel(Channel): if description is not None: self.description = description - if icon: + if icon is not None: self.icon = Asset(icon, self.state) if nsfw is not None: diff --git a/revolt/member.py b/revolt/member.py index 3e9b0e0..f4af55e 100755 --- a/revolt/member.py +++ b/revolt/member.py @@ -75,10 +75,10 @@ class Member(User): return f"<@{self.id}>" def _update(self, *, nickname: Optional[str] = None, avatar: Optional[File] = None, roles: Optional[list[str]] = None): - if nickname: + if nickname is not None: self.nickname = nickname - if avatar: + if avatar is not None: self.guild_avatar = Asset(avatar, self.state) if roles is not None: diff --git a/revolt/message.py b/revolt/message.py index bb50a75..a8e8762 100755 --- a/revolt/message.py +++ b/revolt/message.py @@ -116,12 +116,12 @@ class Message(Ulid): self.interactions = None def _update(self, *, content: Optional[str] = None, embeds: Optional[list[EmbedPayload]] = None, edited: int): - if content: + if content is not None: self.content = content self.edited = datetime.datetime.fromtimestamp(edited / 1000) - if embeds: + if embeds is not None: self.embeds = [to_embed(embed, self.state) for embed in embeds] async def edit(self, *, content: Optional[str] = None, embeds: Optional[list[SendableEmbed]] = None) -> None: diff --git a/revolt/role.py b/revolt/role.py index b36fce5..d44a84d 100755 --- a/revolt/role.py +++ b/revolt/role.py @@ -2,7 +2,7 @@ from __future__ import annotations from typing import TYPE_CHECKING, Any, Optional -from .permissions import PermissionsOverwrite +from .permissions import PermissionsOverwrite, Overwrite from .utils import Missing, Ulid if TYPE_CHECKING: @@ -63,19 +63,22 @@ class Role(Ulid): allow, deny = permissions.to_pair() await self.state.http.set_server_role_permissions(self.server.id, self.id, allow.value, deny.value) - def _update(self, *, name: Optional[str] = None, colour: Optional[str] = None, hoist: Optional[bool] = None, rank: Optional[int] = None): - if name: + def _update(self, *, name: Optional[str] = None, colour: Optional[str] = None, hoist: Optional[bool] = None, rank: Optional[int] = None, permissions: Optional[Overwrite] = None): + if name is not None: self.name = name - if colour: + if colour is not None: self.colour = colour - if hoist: + if hoist is not None: self.hoist = hoist - if rank: + if rank is not None: self.rank = rank + if permissions is not None: + self.permissions = PermissionsOverwrite._from_overwrite(permissions) + async def delete(self): """Deletes the role""" await self.state.http.delete_role(self.server.id, self.id) diff --git a/revolt/server.py b/revolt/server.py index 2cc1b5d..d37db5b 100755 --- a/revolt/server.py +++ b/revolt/server.py @@ -130,15 +130,15 @@ class Server(Ulid): self._emojis: dict[str, Emoji] = {} def _update(self, *, owner: Optional[str] = None, name: Optional[str] = None, description: Optional[str] = None, icon: Optional[FilePayload] = None, banner: Optional[FilePayload] = None, default_permissions: Optional[int] = None, nsfw: Optional[bool] = None, system_messages: Optional[SystemMessagesConfig] = None, categories: Optional[list[CategoryPayload]] = None, channels: Optional[list[str]] = None): - if owner: + if owner is not None: self.owner_id = owner - if name: + if name is not None: self.name = name if description is not None: self.description = description or None - if icon: + if icon is not None: self.icon = Asset(icon, self.state) - if banner: + if banner is not None: self.banner = Asset(banner, self.state) if default_permissions is not None: self.default_permissions = Permissions(default_permissions) diff --git a/revolt/user.py b/revolt/user.py index 447257f..2c1ae08 100755 --- a/revolt/user.py +++ b/revolt/user.py @@ -153,7 +153,7 @@ class User(Messageable, Ulid): self.profile = UserProfile(profile.get("content"), background) - if avatar: + if avatar is not None: self.original_avatar = Asset(avatar, self.state) if online is not None: