Repository: Cog-Creators/Red-DiscordBot

Issue:
[V3 Admin] [p]announce should consume all args for the message
### Type:

- [ ] Suggestion
- [x] Bug

### Brief description of the problem
if i using like this : [p]announce test time
### Expected behavior
i can see the message I wrote.(test time)
### Actual behavior
i can not see the message after the space, and appear only "test"...
### Steps to reproduce

1. V3 installed.
2. [p]load admin
3. [p]announce test time
4. apper message only "test"...

[V3 Admin] [p]announce should consume all args for the message
### Type:

- [ ] Suggestion
- [x] Bug

### Brief description of the problem
if i using like this : [p]announce test time
### Expected behavior
i can see the message I wrote.(test time)
### Actual behavior
i can not see the message after the space, and appear only "test"...
### Steps to reproduce

1. V3 installed.
2. [p]load admin
3. [p]announce test time
4. apper message only "test"...



Discussion:

Resolving patch:
diff --git a/redbot/cogs/admin/admin.py b/redbot/cogs/admin/admin.py
--- a/redbot/cogs/admin/admin.py
+++ b/redbot/cogs/admin/admin.py
@@ -134,7 +134,7 @@ async def _removerole(self, ctx: commands.Context, member: discord.Member,
     @commands.command()
     @commands.guild_only()
     @checks.admin_or_permissions(manage_roles=True)
-    async def addrole(self, ctx: commands.Context, rolename: discord.Role,
+    async def addrole(self, ctx: commands.Context, rolename: discord.Role, *,
                       user: MemberDefaultAuthor=None):
         """
         Adds a role to a user. If user is left blank it defaults to the
@@ -151,7 +151,7 @@ async def addrole(self, ctx: commands.Context, rolename: discord.Role,
     @commands.command()
     @commands.guild_only()
     @checks.admin_or_permissions(manage_roles=True)
-    async def removerole(self, ctx: commands.Context, rolename: discord.Role,
+    async def removerole(self, ctx: commands.Context, rolename: discord.Role, *,
                          user: MemberDefaultAuthor=None):
         """
         Removes a role from a user. If user is left blank it defaults to the
@@ -227,7 +227,7 @@ async def edit_role_name(self, ctx: commands.Context, role: discord.Role, *, nam
 
     @commands.group(invoke_without_command=True)
     @checks.is_owner()
-    async def announce(self, ctx: commands.Context, message: str):
+    async def announce(self, ctx: commands.Context, *, message: str):
         """
         Announces a message to all servers the bot is in.
         """
@@ -259,7 +259,7 @@ async def announce_cancel(self, ctx):
     @announce.command(name="channel")
     @commands.guild_only()
     @checks.guildowner_or_permissions(administrator=True)
-    async def announce_channel(self, ctx, channel: discord.TextChannel=None):
+    async def announce_channel(self, ctx, *, channel: discord.TextChannel=None):
         """
         Changes the channel on which the bot makes announcements.
         """
@@ -274,7 +274,7 @@ async def announce_channel(self, ctx, channel: discord.TextChannel=None):
     @announce.command(name="ignore")
     @commands.guild_only()
     @checks.guildowner_or_permissions(administrator=True)
-    async def announce_ignore(self, ctx, guild: discord.Guild=None):
+    async def announce_ignore(self, ctx, *, guild: discord.Guild=None):
         """
         Toggles whether the announcements will ignore the given server.
             Defaults to the current server if none is provided.
@@ -310,7 +310,7 @@ async def _valid_selfroles(self, guild: discord.Guild) -> Tuple[discord.Role]:
         return valid_roles
 
     @commands.group(invoke_without_command=True)
-    async def selfrole(self, ctx: commands.Context, selfrole: SelfRole):
+    async def selfrole(self, ctx: commands.Context, *, selfrole: SelfRole):
         """
         Add a role to yourself that server admins have configured as
             user settable.
@@ -319,7 +319,7 @@ async def selfrole(self, ctx: commands.Context, selfrole: SelfRole):
         await self._addrole(ctx, ctx.author, selfrole)
 
     @selfrole.command(name="remove")
-    async def selfrole_remove(self, ctx: commands.Context, selfrole: SelfRole):
+    async def selfrole_remove(self, ctx: commands.Context, *, selfrole: SelfRole):
         """
         Removes a selfrole from yourself.
         """
@@ -328,7 +328,7 @@ async def selfrole_remove(self, ctx: commands.Context, selfrole: SelfRole):
 
     @selfrole.command(name="add")
     @commands.has_permissions(manage_roles=True)
-    async def selfrole_add(self, ctx: commands.Context, role: discord.Role):
+    async def selfrole_add(self, ctx: commands.Context, *, role: discord.Role):
         """
         Add a role to the list of available selfroles.
         """
@@ -340,7 +340,7 @@ async def selfrole_add(self, ctx: commands.Context, role: discord.Role):
 
     @selfrole.command(name="delete")
     @commands.has_permissions(manage_roles=True)
-    async def selfrole_delete(self, ctx: commands.Context, role: SelfRole):
+    async def selfrole_delete(self, ctx: commands.Context, *, role: SelfRole):
         """
         Removes a role from the list of available selfroles.
         """


Test patch: