Repository: Pycord-Development/pycord

Issue:
respond() uses MISSING for embeds but send() is using None
### Summary

The new interaction resond() is using utils.MISSING for messages without embeds

### What is the feature request for?

The core library

### The Problem

respond() and send() are behaving differently in that way.

Example:
I am using a wrapper function like:
```py
    async def channel_send(self, ctx, embed = None, text = None, view = None):
            if isinstance(ctx, discord.ext.commands.context.Context):
                message = await ctx.channel.send(content=text, embed=embed, view=view)
            elif isinstance(ctx, discord.commands.ApplicationContext):
                await ctx.respond(content=text, embed=embed, view=view)
                message = await ctx.interaction.original_message()
```
to support both slash commands and current prefix commands. But with the current behavior, embed=None would not work

### The Ideal Solution

Also use None als default value for `respond()`

### The Current Solution

Currently I am using it like this:
```py
    async def channel_send(self, ctx, embed = None, text = None, view = None):
            if isinstance(ctx, discord.ext.commands.context.Context):
                message = await ctx.channel.send(content=text, embed=embed, view=view)
            elif isinstance(ctx, discord.commands.ApplicationContext):
                await ctx.respond(content=text, embed=embed if embed else discord.utils.MISSING, view=view)
                message = await ctx.interaction.original_message()
```


Discussion:
BTW: I just saw that `view` also needs `MISSING` and its not just a `respond()` related "issue", it affects all interactions.


Resolving patch:
diff --git a/discord/interactions.py b/discord/interactions.py
--- a/discord/interactions.py
+++ b/discord/interactions.py
@@ -502,9 +502,9 @@ async def send_message(
         self,
         content: Optional[Any] = None,
         *,
-        embed: Embed = MISSING,
-        embeds: List[Embed] = MISSING,
-        view: View = MISSING,
+        embed: Embed = None,
+        embeds: List[Embed] = None,
+        view: View = None,
         tts: bool = False,
         ephemeral: bool = False,
         allowed_mentions: AllowedMentions = None,
@@ -563,10 +563,10 @@ async def send_message(
             'tts': tts,
         }
 
-        if embed is not MISSING and embeds is not MISSING:
+        if embed is not None and embeds is not None:
             raise TypeError('cannot mix embed and embeds keyword arguments')
 
-        if embed is not MISSING and embed is not None:
+        if embed is not None:
             embeds = [embed]
 
         if embeds:
@@ -580,7 +580,7 @@ async def send_message(
         if ephemeral:
             payload['flags'] = 64
 
-        if view is not MISSING and view is not None:
+        if view is not None:
             payload['components'] = view.to_components()
 
         state = self._parent._state
@@ -624,7 +624,7 @@ async def send_message(
                 for file in files:
                     file.close()
 
-        if view is not MISSING and view is not None:
+        if view is not None:
             if ephemeral and view.timeout is None:
                 view.timeout = 15 * 60.0
 


Test patch: