Skip to content

Commit c7bdab2

Browse files
MiddledotDorukyumLulalaby
authored
Add set_mfa_required method (#1552)
Co-authored-by: Dorukyum <[email protected]> Co-authored-by: Lala Sabathil <[email protected]>
1 parent db38261 commit c7bdab2

File tree

3 files changed

+35
-3
lines changed

3 files changed

+35
-3
lines changed

discord/guild.py

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1552,7 +1552,7 @@ async def leave(self) -> None:
15521552
via :meth:`delete`.
15531553
15541554
Raises
1555-
--------
1555+
-------
15561556
HTTPException
15571557
Leaving the guild failed.
15581558
"""
@@ -1565,15 +1565,36 @@ async def delete(self) -> None:
15651565
guild.
15661566
15671567
Raises
1568-
--------
1568+
-------
15691569
HTTPException
15701570
Deleting the guild failed.
15711571
Forbidden
15721572
You do not have permissions to delete the guild.
15731573
"""
1574-
15751574
await self._state.http.delete_guild(self.id)
15761575

1576+
async def set_mfa_required(self, required: bool, *, reason: str = None) -> None:
1577+
"""|coro|
1578+
1579+
Set whether it is required to have MFA enabled on your account
1580+
to perform moderation actions. You must be the guild owner to do this.
1581+
1582+
Parameters
1583+
-----------
1584+
required: :class:`bool`
1585+
Whether MFA should be required to perform moderation actions.
1586+
reason: :class:`str`
1587+
The reason to show up in the audit log.
1588+
1589+
Raises
1590+
-------
1591+
HTTPException
1592+
The operation failed.
1593+
Forbidden
1594+
You are not the owner of the guild.
1595+
"""
1596+
await self._state.http.edit_guild_mfa(self.id, required, reason=reason)
1597+
15771598
async def edit(
15781599
self,
15791600
*,

discord/http.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1334,6 +1334,13 @@ def edit_guild(self, guild_id: Snowflake, *, reason: Optional[str] = None, **fie
13341334
reason=reason,
13351335
)
13361336

1337+
def edit_guild_mfa(self, guild_id: Snowflake, required: bool, *, reason: Optional[str]) -> Response[guild.GuildMFAModify]:
1338+
return self.request(
1339+
Route("POST", "/guilds/{guild_id}/mfa", guild_id=guild_id),
1340+
json={"level": int(required)},
1341+
reason=reason
1342+
)
1343+
13371344
def get_template(self, code: str) -> Response[template.Template]:
13381345
return self.request(Route("GET", "/guilds/templates/{code}", code=code))
13391346

discord/types/guild.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,3 +183,7 @@ class _RolePositionRequired(TypedDict):
183183

184184
class RolePositionUpdate(_RolePositionRequired, total=False):
185185
position: Optional[Snowflake]
186+
187+
188+
class GuildMFAModify(TypedDict):
189+
level: Literal[0, 1]

0 commit comments

Comments
 (0)