diff --git a/changelog/929.feature.0.rst b/changelog/929.feature.0.rst new file mode 100644 index 0000000000..cb05b71004 --- /dev/null +++ b/changelog/929.feature.0.rst @@ -0,0 +1 @@ +Add ``flags`` parameter to message send and edit methods. diff --git a/changelog/929.feature.1.rst b/changelog/929.feature.1.rst new file mode 100644 index 0000000000..9db6e3fd77 --- /dev/null +++ b/changelog/929.feature.1.rst @@ -0,0 +1 @@ +Add :attr:`MessageFlags.suppress_notifications`. diff --git a/disnake/abc.py b/disnake/abc.py index 699b10c000..8c5925dadc 100644 --- a/disnake/abc.py +++ b/disnake/abc.py @@ -1355,6 +1355,7 @@ async def send( delete_after: float = ..., nonce: Union[str, int] = ..., suppress_embeds: bool = ..., + flags: MessageFlags = ..., allowed_mentions: AllowedMentions = ..., reference: Union[Message, MessageReference, PartialMessage] = ..., mention_author: bool = ..., @@ -1375,6 +1376,7 @@ async def send( delete_after: float = ..., nonce: Union[str, int] = ..., suppress_embeds: bool = ..., + flags: MessageFlags = ..., allowed_mentions: AllowedMentions = ..., reference: Union[Message, MessageReference, PartialMessage] = ..., mention_author: bool = ..., @@ -1395,6 +1397,7 @@ async def send( delete_after: float = ..., nonce: Union[str, int] = ..., suppress_embeds: bool = ..., + flags: MessageFlags = ..., allowed_mentions: AllowedMentions = ..., reference: Union[Message, MessageReference, PartialMessage] = ..., mention_author: bool = ..., @@ -1415,6 +1418,7 @@ async def send( delete_after: float = ..., nonce: Union[str, int] = ..., suppress_embeds: bool = ..., + flags: MessageFlags = ..., allowed_mentions: AllowedMentions = ..., reference: Union[Message, MessageReference, PartialMessage] = ..., mention_author: bool = ..., @@ -1435,7 +1439,8 @@ async def send( stickers: Optional[Sequence[Union[GuildSticker, StickerItem]]] = None, delete_after: Optional[float] = None, nonce: Optional[Union[str, int]] = None, - suppress_embeds: bool = False, + suppress_embeds: Optional[bool] = None, + flags: Optional[MessageFlags] = None, allowed_mentions: Optional[AllowedMentions] = None, reference: Optional[Union[Message, MessageReference, PartialMessage]] = None, mention_author: Optional[bool] = None, @@ -1535,6 +1540,16 @@ async def send( .. versionadded:: 2.5 + flags: :class:`.MessageFlags` + The flags to set for this message. + Only :attr:`~.MessageFlags.suppress_embeds` and :attr:`~.MessageFlags.suppress_notifications` + are supported. + + If parameter ``suppress_embeds`` is provided, + that will override the setting of :attr:`.MessageFlags.suppress_embeds`. + + .. versionadded:: 2.9 + Raises ------ HTTPException @@ -1623,10 +1638,12 @@ async def send( else: components_payload = None - if suppress_embeds: - flags = MessageFlags.suppress_embeds.flag - else: - flags = 0 + flags_payload = None + if suppress_embeds is not None: + flags = MessageFlags._from_value(0 if flags is None else flags.value) + flags.suppress_embeds = suppress_embeds + if flags is not None: + flags_payload = flags.value if files is not None: if len(files) > 10: @@ -1646,7 +1663,7 @@ async def send( message_reference=reference_payload, stickers=stickers_payload, components=components_payload, - flags=flags, + flags=flags_payload, ) finally: for f in files: @@ -1662,7 +1679,7 @@ async def send( message_reference=reference_payload, stickers=stickers_payload, components=components_payload, - flags=flags, + flags=flags_payload, ) ret = state.create_message(channel=channel, data=data) diff --git a/disnake/channel.py b/disnake/channel.py index f27970b04b..c27d1326d7 100644 --- a/disnake/channel.py +++ b/disnake/channel.py @@ -40,7 +40,7 @@ ) from .errors import ClientException from .file import File -from .flags import ChannelFlags +from .flags import ChannelFlags, MessageFlags from .iterators import ArchivedThreadIterator from .mixins import Hashable from .partial_emoji import PartialEmoji @@ -2979,6 +2979,7 @@ async def create_thread( embed: Embed = ..., file: File = ..., suppress_embeds: bool = ..., + flags: MessageFlags = ..., stickers: Sequence[Union[GuildSticker, StickerItem]] = ..., allowed_mentions: AllowedMentions = ..., view: View = ..., @@ -2999,6 +3000,7 @@ async def create_thread( embed: Embed = ..., files: List[File] = ..., suppress_embeds: bool = ..., + flags: MessageFlags = ..., stickers: Sequence[Union[GuildSticker, StickerItem]] = ..., allowed_mentions: AllowedMentions = ..., view: View = ..., @@ -3019,6 +3021,7 @@ async def create_thread( embeds: List[Embed] = ..., file: File = ..., suppress_embeds: bool = ..., + flags: MessageFlags = ..., stickers: Sequence[Union[GuildSticker, StickerItem]] = ..., allowed_mentions: AllowedMentions = ..., view: View = ..., @@ -3039,6 +3042,7 @@ async def create_thread( embeds: List[Embed] = ..., files: List[File] = ..., suppress_embeds: bool = ..., + flags: MessageFlags = ..., stickers: Sequence[Union[GuildSticker, StickerItem]] = ..., allowed_mentions: AllowedMentions = ..., view: View = ..., @@ -3060,6 +3064,7 @@ async def create_thread( file: File = MISSING, files: List[File] = MISSING, suppress_embeds: bool = MISSING, + flags: MessageFlags = MISSING, stickers: Sequence[Union[GuildSticker, StickerItem]] = MISSING, allowed_mentions: AllowedMentions = MISSING, view: View = MISSING, @@ -3110,6 +3115,15 @@ async def create_thread( suppress_embeds: :class:`bool` Whether to suppress embeds for the message. This hides all the embeds from the UI if set to ``True``. + flags: :class:`MessageFlags` + The flags to set for this message. + Only :attr:`~MessageFlags.suppress_embeds` is supported. + + If parameter ``suppress_embeds`` is provided, + that will override the setting of :attr:`MessageFlags.suppress_embeds`. + + .. versionadded:: 2.9 + file: :class:`.File` The file to upload. This cannot be mixed with the ``files`` parameter. files: List[:class:`.File`] @@ -3163,6 +3177,7 @@ async def create_thread( file=file, files=files, suppress_embeds=suppress_embeds, + flags=flags, view=view, components=components, allowed_mentions=allowed_mentions, diff --git a/disnake/flags.py b/disnake/flags.py index 7103cd067c..08f19f5d66 100644 --- a/disnake/flags.py +++ b/disnake/flags.py @@ -571,6 +571,7 @@ def __init__( loading: bool = ..., source_message_deleted: bool = ..., suppress_embeds: bool = ..., + suppress_notifications: bool = ..., urgent: bool = ..., ) -> None: ... @@ -637,6 +638,15 @@ def failed_to_mention_roles_in_thread(self): """ return 1 << 8 + @flag_value + def suppress_notifications(self): + """:class:`bool`: Returns ``True`` if the source message does not + trigger push and desktop notifications. + + .. versionadded:: 2.9 + """ + return 1 << 12 + class PublicUserFlags(BaseFlags): """ diff --git a/disnake/interactions/base.py b/disnake/interactions/base.py index 8828944ddc..68b87c6cb0 100644 --- a/disnake/interactions/base.py +++ b/disnake/interactions/base.py @@ -383,6 +383,7 @@ async def edit_original_response( view: Optional[View] = MISSING, components: Optional[Components[MessageUIComponent]] = MISSING, suppress_embeds: bool = MISSING, + flags: MessageFlags = MISSING, allowed_mentions: Optional[AllowedMentions] = None, ) -> InteractionMessage: """|coro| @@ -456,6 +457,15 @@ async def edit_original_response( .. versionadded:: 2.7 + flags: :class:`MessageFlags` + The new flags to set for this message. Overrides existing flags. + Only :attr:`~MessageFlags.suppress_embeds` is supported. + + If parameter ``suppress_embeds`` is provided, + that will override the setting of :attr:`.MessageFlags.suppress_embeds`. + + .. versionadded:: 2.9 + Raises ------ HTTPException @@ -488,6 +498,7 @@ async def edit_original_response( view=view, components=components, suppress_embeds=suppress_embeds, + flags=flags, allowed_mentions=allowed_mentions, previous_allowed_mentions=previous_mentions, ) @@ -587,8 +598,9 @@ async def send( view: View = MISSING, components: Components[MessageUIComponent] = MISSING, tts: bool = False, - ephemeral: bool = False, - suppress_embeds: bool = False, + ephemeral: bool = MISSING, + suppress_embeds: bool = MISSING, + flags: MessageFlags = MISSING, delete_after: float = MISSING, ) -> None: """|coro| @@ -645,6 +657,16 @@ async def send( .. versionadded:: 2.5 + flags: :class:`MessageFlags` + The flags to set for this message. + Only :attr:`~MessageFlags.suppress_embeds`, :attr:`~MessageFlags.ephemeral` + and :attr:`~MessageFlags.suppress_notifications` are supported. + + If parameters ``suppress_embeds`` or ``ephemeral`` are provided, + they will override the corresponding setting of this ``flags`` parameter. + + .. versionadded:: 2.9 + delete_after: :class:`float` If provided, the number of seconds to wait in the background before deleting the message we just sent. If the deletion fails, @@ -681,6 +703,7 @@ async def send( tts=tts, ephemeral=ephemeral, suppress_embeds=suppress_embeds, + flags=flags, delete_after=delete_after, ) @@ -852,8 +875,9 @@ async def send_message( view: View = MISSING, components: Components[MessageUIComponent] = MISSING, tts: bool = False, - ephemeral: bool = False, - suppress_embeds: bool = False, + ephemeral: bool = MISSING, + suppress_embeds: bool = MISSING, + flags: MessageFlags = MISSING, delete_after: float = MISSING, ) -> None: """|coro| @@ -907,6 +931,16 @@ async def send_message( .. versionadded:: 2.5 + flags: :class:`MessageFlags` + The flags to set for this message. + Only :attr:`~MessageFlags.suppress_embeds`, :attr:`~MessageFlags.ephemeral` + and :attr:`~MessageFlags.suppress_notifications` are supported. + + If parameters ``suppress_embeds`` or ``ephemeral`` are provided, + they will override the corresponding setting of this ``flags`` parameter. + + .. versionadded:: 2.9 + Raises ------ HTTPException @@ -966,11 +1000,14 @@ async def send_message( if content is not None: payload["content"] = str(content) - payload["flags"] = 0 - if suppress_embeds: - payload["flags"] |= MessageFlags.suppress_embeds.flag - if ephemeral: - payload["flags"] |= MessageFlags.ephemeral.flag + if suppress_embeds is not MISSING or ephemeral is not MISSING: + flags = MessageFlags._from_value(0 if flags is MISSING else flags.value) + if suppress_embeds is not MISSING: + flags.suppress_embeds = suppress_embeds + if ephemeral is not MISSING: + flags.ephemeral = ephemeral + if flags is not MISSING: + payload["flags"] = flags.value if view is not MISSING: payload["components"] = view.to_components() @@ -1445,6 +1482,7 @@ async def edit( file: File = ..., attachments: Optional[List[Attachment]] = ..., suppress_embeds: bool = ..., + flags: MessageFlags = ..., allowed_mentions: Optional[AllowedMentions] = ..., view: Optional[View] = ..., components: Optional[Components[MessageUIComponent]] = ..., @@ -1460,6 +1498,7 @@ async def edit( files: List[File] = ..., attachments: Optional[List[Attachment]] = ..., suppress_embeds: bool = ..., + flags: MessageFlags = ..., allowed_mentions: Optional[AllowedMentions] = ..., view: Optional[View] = ..., components: Optional[Components[MessageUIComponent]] = ..., @@ -1475,6 +1514,7 @@ async def edit( file: File = ..., attachments: Optional[List[Attachment]] = ..., suppress_embeds: bool = ..., + flags: MessageFlags = ..., allowed_mentions: Optional[AllowedMentions] = ..., view: Optional[View] = ..., components: Optional[Components[MessageUIComponent]] = ..., @@ -1490,6 +1530,7 @@ async def edit( files: List[File] = ..., attachments: Optional[List[Attachment]] = ..., suppress_embeds: bool = ..., + flags: MessageFlags = ..., allowed_mentions: Optional[AllowedMentions] = ..., view: Optional[View] = ..., components: Optional[Components[MessageUIComponent]] = ..., @@ -1506,6 +1547,7 @@ async def edit( files: List[File] = MISSING, attachments: Optional[List[Attachment]] = MISSING, suppress_embeds: bool = MISSING, + flags: MessageFlags = MISSING, allowed_mentions: Optional[AllowedMentions] = MISSING, view: Optional[View] = MISSING, components: Optional[Components[MessageUIComponent]] = MISSING, @@ -1567,6 +1609,15 @@ async def edit( .. versionadded:: 2.7 + flags: :class:`MessageFlags` + The new flags to set for this message. Overrides existing flags. + Only :attr:`~MessageFlags.suppress_embeds` is supported. + + If parameter ``suppress_embeds`` is provided, + that will override the setting of :attr:`.MessageFlags.suppress_embeds`. + + .. versionadded:: 2.9 + allowed_mentions: :class:`AllowedMentions` Controls the mentions being processed in this message. See :meth:`.abc.Messageable.send` for more information. @@ -1599,6 +1650,7 @@ async def edit( files=files, attachments=attachments, suppress_embeds=suppress_embeds, + flags=flags, allowed_mentions=allowed_mentions, view=view, components=components, @@ -1619,6 +1671,7 @@ async def edit( files=files, attachments=attachments, suppress_embeds=suppress_embeds, + flags=flags, allowed_mentions=allowed_mentions, view=view, components=components, diff --git a/disnake/message.py b/disnake/message.py index c5b19c66a7..eb710b552b 100644 --- a/disnake/message.py +++ b/disnake/message.py @@ -126,6 +126,7 @@ async def _edit_handler( attachments: Optional[List[Attachment]], suppress: bool, # deprecated suppress_embeds: bool, + flags: MessageFlags, allowed_mentions: Optional[AllowedMentions], view: Optional[View], components: Optional[Components[MessageUIComponent]], @@ -166,8 +167,9 @@ async def _edit_handler( files.extend(embed._files.values()) if suppress_embeds is not MISSING: - flags = MessageFlags._from_value(default_flags) + flags = MessageFlags._from_value(default_flags if flags is MISSING else flags.value) flags.suppress_embeds = suppress_embeds + if flags is not MISSING: payload["flags"] = flags.value if allowed_mentions is MISSING: @@ -1461,6 +1463,7 @@ async def edit( file: File = ..., attachments: Optional[List[Attachment]] = ..., suppress_embeds: bool = ..., + flags: MessageFlags = ..., allowed_mentions: Optional[AllowedMentions] = ..., view: Optional[View] = ..., components: Optional[Components[MessageUIComponent]] = ..., @@ -1477,6 +1480,7 @@ async def edit( files: List[File] = ..., attachments: Optional[List[Attachment]] = ..., suppress_embeds: bool = ..., + flags: MessageFlags = ..., allowed_mentions: Optional[AllowedMentions] = ..., view: Optional[View] = ..., components: Optional[Components[MessageUIComponent]] = ..., @@ -1493,6 +1497,7 @@ async def edit( file: File = ..., attachments: Optional[List[Attachment]] = ..., suppress_embeds: bool = ..., + flags: MessageFlags = ..., allowed_mentions: Optional[AllowedMentions] = ..., view: Optional[View] = ..., components: Optional[Components[MessageUIComponent]] = ..., @@ -1509,6 +1514,7 @@ async def edit( files: List[File] = ..., attachments: Optional[List[Attachment]] = ..., suppress_embeds: bool = ..., + flags: MessageFlags = ..., allowed_mentions: Optional[AllowedMentions] = ..., view: Optional[View] = ..., components: Optional[Components[MessageUIComponent]] = ..., @@ -1527,6 +1533,7 @@ async def edit( attachments: Optional[List[Attachment]] = MISSING, suppress: bool = MISSING, # deprecated suppress_embeds: bool = MISSING, + flags: MessageFlags = MISSING, allowed_mentions: Optional[AllowedMentions] = MISSING, view: Optional[View] = MISSING, components: Optional[Components[MessageUIComponent]] = MISSING, @@ -1603,6 +1610,15 @@ async def edit( all the embeds from the UI if set to ``True``. If set to ``False``, this brings the embeds back if they were suppressed. + flags: :class:`MessageFlags` + The new flags to set for this message. Overrides existing flags. + Only :attr:`~MessageFlags.suppress_embeds` is supported. + + If parameter ``suppress_embeds`` is provided, + that will override the setting of :attr:`.MessageFlags.suppress_embeds`. + + .. versionadded:: 2.9 + delete_after: Optional[:class:`float`] If provided, the number of seconds to wait in the background before deleting the message we just edited. If the deletion fails, @@ -1667,6 +1683,7 @@ async def edit( attachments=attachments, suppress=suppress, suppress_embeds=suppress_embeds, + flags=flags, allowed_mentions=allowed_mentions, view=view, components=components, @@ -2154,6 +2171,7 @@ async def edit( file: File = ..., attachments: Optional[List[Attachment]] = ..., suppress_embeds: bool = ..., + flags: MessageFlags = ..., allowed_mentions: Optional[AllowedMentions] = ..., view: Optional[View] = ..., components: Optional[Components[MessageUIComponent]] = ..., @@ -2170,6 +2188,7 @@ async def edit( files: List[File] = ..., attachments: Optional[List[Attachment]] = ..., suppress_embeds: bool = ..., + flags: MessageFlags = ..., allowed_mentions: Optional[AllowedMentions] = ..., view: Optional[View] = ..., components: Optional[Components[MessageUIComponent]] = ..., @@ -2186,6 +2205,7 @@ async def edit( file: File = ..., attachments: Optional[List[Attachment]] = ..., suppress_embeds: bool = ..., + flags: MessageFlags = ..., allowed_mentions: Optional[AllowedMentions] = ..., view: Optional[View] = ..., components: Optional[Components[MessageUIComponent]] = ..., @@ -2202,6 +2222,7 @@ async def edit( files: List[File] = ..., attachments: Optional[List[Attachment]] = ..., suppress_embeds: bool = ..., + flags: MessageFlags = ..., allowed_mentions: Optional[AllowedMentions] = ..., view: Optional[View] = ..., components: Optional[Components[MessageUIComponent]] = ..., @@ -2220,6 +2241,7 @@ async def edit( attachments: Optional[List[Attachment]] = MISSING, suppress: bool = MISSING, # deprecated suppress_embeds: bool = MISSING, + flags: MessageFlags = MISSING, allowed_mentions: Optional[AllowedMentions] = MISSING, view: Optional[View] = MISSING, components: Optional[Components[MessageUIComponent]] = MISSING, @@ -2298,6 +2320,15 @@ async def edit( all the embeds from the UI if set to ``True``. If set to ``False``, this brings the embeds back if they were suppressed. + flags: :class:`MessageFlags` + The new flags to set for this message. Overrides existing flags. + Only :attr:`~MessageFlags.suppress_embeds` is supported. + + If parameter ``suppress_embeds`` is provided, + that will override the setting of :attr:`.MessageFlags.suppress_embeds`. + + .. versionadded:: 2.9 + delete_after: Optional[:class:`float`] If provided, the number of seconds to wait in the background before deleting the message we just edited. If the deletion fails, @@ -2357,6 +2388,7 @@ async def edit( attachments=attachments, suppress=suppress, suppress_embeds=suppress_embeds, + flags=flags, allowed_mentions=allowed_mentions, view=view, components=components, diff --git a/disnake/webhook/async_.py b/disnake/webhook/async_.py index 12250082ab..80e6c91be5 100644 --- a/disnake/webhook/async_.py +++ b/disnake/webhook/async_.py @@ -479,8 +479,9 @@ def handle_message_parameters_dict( username: str = MISSING, avatar_url: Any = MISSING, tts: bool = False, - ephemeral: Optional[bool] = None, - suppress_embeds: Optional[bool] = None, + ephemeral: Optional[bool] = MISSING, + suppress_embeds: Optional[bool] = MISSING, + flags: MessageFlags = MISSING, file: File = MISSING, files: List[File] = MISSING, attachments: Optional[List[Attachment]] = MISSING, @@ -531,12 +532,14 @@ def handle_message_parameters_dict( if username: payload["username"] = username - if ephemeral is not None or suppress_embeds is not None: - payload["flags"] = 0 - if suppress_embeds: - payload["flags"] |= MessageFlags.suppress_embeds.flag - if ephemeral: - payload["flags"] |= MessageFlags.ephemeral.flag + if ephemeral not in (None, MISSING) or suppress_embeds not in (None, MISSING): + flags = MessageFlags._from_value(0 if flags is MISSING else flags.value) + if suppress_embeds not in (None, MISSING): + flags.suppress_embeds = suppress_embeds + if ephemeral not in (None, MISSING): + flags.ephemeral = ephemeral + if flags is not MISSING: + payload["flags"] = flags.value if allowed_mentions: if previous_allowed_mentions is not None: @@ -563,8 +566,9 @@ def handle_message_parameters( username: str = MISSING, avatar_url: Any = MISSING, tts: bool = False, - ephemeral: Optional[bool] = None, - suppress_embeds: Optional[bool] = None, + ephemeral: Optional[bool] = MISSING, + suppress_embeds: Optional[bool] = MISSING, + flags: MessageFlags = MISSING, file: File = MISSING, files: List[File] = MISSING, attachments: Optional[List[Attachment]] = MISSING, @@ -584,6 +588,7 @@ def handle_message_parameters( tts=tts, ephemeral=ephemeral, suppress_embeds=suppress_embeds, + flags=flags, file=file, files=files, attachments=attachments, @@ -1434,6 +1439,7 @@ async def send( tts: bool = ..., ephemeral: bool = ..., suppress_embeds: bool = ..., + flags: MessageFlags = ..., file: File = ..., files: List[File] = ..., embed: Embed = ..., @@ -1458,6 +1464,7 @@ async def send( tts: bool = ..., ephemeral: bool = ..., suppress_embeds: bool = ..., + flags: MessageFlags = ..., file: File = ..., files: List[File] = ..., embed: Embed = ..., @@ -1479,8 +1486,9 @@ async def send( username: str = MISSING, avatar_url: Any = MISSING, tts: bool = False, - ephemeral: bool = False, - suppress_embeds: bool = False, + ephemeral: bool = MISSING, + suppress_embeds: bool = MISSING, + flags: MessageFlags = MISSING, file: File = MISSING, files: List[File] = MISSING, embed: Embed = MISSING, @@ -1599,6 +1607,16 @@ async def send( .. versionadded:: 2.5 + flags: :class:`MessageFlags` + The flags to set for this message. + Only :attr:`~MessageFlags.suppress_embeds`, :attr:`~MessageFlags.ephemeral` + and :attr:`~MessageFlags.suppress_notifications` are supported. + + If parameters ``suppress_embeds`` or ``ephemeral`` are provided, + they will override the corresponding setting of this ``flags`` parameter. + + .. versionadded:: 2.9 + Raises ------ HTTPException @@ -1662,6 +1680,7 @@ async def send( embeds=embeds, ephemeral=ephemeral, suppress_embeds=suppress_embeds, + flags=flags, view=view, components=components, thread_name=thread_name, diff --git a/disnake/webhook/sync.py b/disnake/webhook/sync.py index 943e71811b..df14470637 100644 --- a/disnake/webhook/sync.py +++ b/disnake/webhook/sync.py @@ -19,6 +19,7 @@ from .. import utils from ..channel import PartialMessageable from ..errors import DiscordServerError, Forbidden, HTTPException, NotFound, WebhookTokenMissing +from ..flags import MessageFlags from ..http import Route from ..message import Message from .async_ import BaseWebhook, _WebhookState, handle_message_parameters @@ -867,6 +868,7 @@ def send( embed: Embed = ..., embeds: List[Embed] = ..., suppress_embeds: bool = ..., + flags: MessageFlags = ..., allowed_mentions: AllowedMentions = ..., thread: Snowflake = ..., thread_name: str = ..., @@ -887,6 +889,7 @@ def send( embed: Embed = ..., embeds: List[Embed] = ..., suppress_embeds: bool = ..., + flags: MessageFlags = ..., allowed_mentions: AllowedMentions = ..., thread: Snowflake = ..., thread_name: str = ..., @@ -906,6 +909,7 @@ def send( embed: Embed = MISSING, embeds: List[Embed] = MISSING, suppress_embeds: bool = MISSING, + flags: MessageFlags = MISSING, allowed_mentions: AllowedMentions = MISSING, thread: Snowflake = MISSING, thread_name: Optional[str] = None, @@ -970,6 +974,16 @@ def send( .. versionadded:: 2.5 + flags: :class:`MessageFlags` + The flags to set for this message. + Only :attr:`~MessageFlags.suppress_embeds` and :attr:`~MessageFlags.suppress_notifications` + are supported. + + If parameter ``suppress_embeds`` is provided, + that will override the setting of :attr:`MessageFlags.suppress_embeds`. + + .. versionadded:: 2.9 + wait: :class:`bool` Whether the server should wait before sending a response. This essentially means that the return type of this function changes from ``None`` to @@ -1018,6 +1032,7 @@ def send( avatar_url=avatar_url, tts=tts, suppress_embeds=suppress_embeds, + flags=flags, file=file, files=files, embed=embed,