@@ -158,18 +158,27 @@ def name(self) -> str:
158158 async def ban (
159159 self ,
160160 guild_id : Optional [Union [int , Snowflake , "Guild" ]] = MISSING ,
161+ seconds : Optional [int ] = 0 ,
162+ minutes : Optional [int ] = MISSING ,
163+ hours : Optional [int ] = MISSING ,
164+ days : Optional [int ] = MISSING ,
161165 reason : Optional [str ] = None ,
162- delete_message_days : Optional [int ] = 0 ,
163166 ) -> None :
164167 """
165168 Bans the member from a guild.
166169
167170 :param guild_id: The id of the guild to ban the member from
168171 :type guild_id: Optional[Union[int, Snowflake, "Guild"]]
172+ :param seconds?: Number of seconds to delete messages, from 0 to 604800. Defaults to 0
173+ :type seconds?: Optional[int]
174+ :param minutes?: Number of minutes to delete messages, from 0 to 10080
175+ :type minutes?: Optional[int]
176+ :param hours?: Number of hours to delete messages, from 0 to 168
177+ :type hours?: Optional[int]
178+ :param days?: Number of days to delete messages, from 0 to 7
179+ :type days?: Optional[int]
169180 :param reason?: The reason of the ban
170181 :type reason?: Optional[str]
171- :param delete_message_days?: Number of days to delete messages, from 0 to 7. Defaults to 0
172- :type delete_message_days?: Optional[int]
173182 """
174183
175184 if guild_id is MISSING :
@@ -182,11 +191,24 @@ async def ban(
182191 int (guild_id ) if isinstance (guild_id , (Snowflake , int )) else int (guild_id .id )
183192 )
184193
194+ if days is not MISSING :
195+ seconds += days * 24 * 3600
196+ if hours is not MISSING :
197+ seconds += hours * 3600
198+ if minutes is not MISSING :
199+ seconds += minutes * 60
200+
201+ if seconds > 604800 :
202+ raise LibraryException (
203+ code = 12 ,
204+ message = "The amount of total seconds to delete messages exceeds the limit Discord provides (604800)" ,
205+ )
206+
185207 await self ._client .create_guild_ban (
186208 guild_id = _guild_id ,
187209 user_id = int (self .user .id ),
188210 reason = reason ,
189- delete_message_days = delete_message_days ,
211+ delete_message_seconds = seconds ,
190212 )
191213
192214 async def kick (
0 commit comments