55from .channel import Channel , ChannelType
66from .member import Member
77from .message import Emoji , Sticker
8- from .misc import MISSING , DictSerializerMixin , Snowflake
8+ from .misc import MISSING , DictSerializerMixin , Overwrite , Snowflake
99from .presence import PresenceActivity
1010from .role import Role
1111from .team import Application
@@ -674,7 +674,7 @@ async def create_channel(
674674 user_limit : Optional [int ] = MISSING ,
675675 rate_limit_per_user : Optional [int ] = MISSING ,
676676 position : Optional [int ] = MISSING ,
677- # permission_overwrites,
677+ permission_overwrites : Optional [ List [ Overwrite ]] = MISSING ,
678678 parent_id : Optional [int ] = MISSING ,
679679 nsfw : Optional [bool ] = MISSING ,
680680 reason : Optional [str ] = None ,
@@ -698,6 +698,8 @@ async def create_channel(
698698 :type position: Optional[int]
699699 :param parent_id?: The id of the parent category for a channel
700700 :type parent_id: Optional[int]
701+ :param permission_overwrites?: The permission overwrites, if any
702+ :type permission_overwrites: Optional[Overwrite]
701703 :param nsfw?: Whether the channel is nsfw or not, default ``False``
702704 :type nsfw: Optional[bool]
703705 :param reason: The reason for the creation
@@ -742,6 +744,10 @@ async def create_channel(
742744 payload ["parent_id" ] = parent_id
743745 if nsfw is not MISSING :
744746 payload ["nsfw" ] = nsfw
747+ if permission_overwrites is not MISSING :
748+ payload ["permission_overwrites" ] = [
749+ overwrite ._json for overwrite in permission_overwrites
750+ ]
745751
746752 res = await self ._client .create_channel (
747753 guild_id = int (self .id ),
@@ -760,7 +766,7 @@ async def modify_channel(
760766 user_limit : Optional [int ] = MISSING ,
761767 rate_limit_per_user : Optional [int ] = MISSING ,
762768 position : Optional [int ] = MISSING ,
763- # permission_overwrites,
769+ permission_overwrites : Optional [ List [ Overwrite ]] = MISSING ,
764770 parent_id : Optional [int ] = MISSING ,
765771 nsfw : Optional [bool ] = MISSING ,
766772 reason : Optional [str ] = None ,
@@ -784,6 +790,8 @@ async def modify_channel(
784790 :type position: Optional[int]
785791 :param parent_id?: The id of the parent category for a channel, defaults to the current value of the channel
786792 :type parent_id: Optional[int]
793+ :param permission_overwrites?: The permission overwrites, if any
794+ :type permission_overwrites: Optional[Overwrite]
787795 :param nsfw?: Whether the channel is nsfw or not, defaults to the current value of the channel
788796 :type nsfw: Optional[bool]
789797 :param reason: The reason for the edit
@@ -805,6 +813,11 @@ async def modify_channel(
805813 _position = ch .position if position is MISSING else position
806814 _parent_id = ch .parent_id if parent_id is MISSING else parent_id
807815 _nsfw = ch .nsfw if nsfw is MISSING else nsfw
816+ _permission_overwrites = (
817+ ch .permission_overwrites
818+ if permission_overwrites is MISSING
819+ else [overwrite ._json for overwrite in permission_overwrites ]
820+ )
808821 _type = ch .type
809822
810823 payload = Channel (
@@ -814,6 +827,7 @@ async def modify_channel(
814827 bitrate = _bitrate ,
815828 user_limit = _user_limit ,
816829 rate_limit_per_user = _rate_limit_per_user ,
830+ permission_overwrites = _permission_overwrites ,
817831 position = _position ,
818832 parent_id = _parent_id ,
819833 nsfw = _nsfw ,
0 commit comments