Это специфицирует c строку:
print("? "+member+" was muted.")
Печатает его в терминале или там, где вы выполняли команду. Попробуйте await ctx.send
Кроме того, попробуйте использовать f-строки, если у вас версия> 3.6 из Python. Кроме того, ваша ошибка неверна.
@client.command()
@commands.has_role("staff")
async def mute(ctx, member: discord.Member):
role = discord.utils.get(ctx.guild.roles, name="Muted")
guild = ctx.guild
if role not in guild.roles:
perms = discord.Permissions(send_messages=False, speak=False)
await guild.create_role(name="Muted", permissions=perms)
await member.add_roles(role)
await ctx.send(f"?{member} was muted.")
else:
await member.add_roles(role)
await ctx.send(f"?{member} was muted.")
@mute.error
async def mute_error(ctx, error):
if isinstance(error, commands.MissingRole):
await ctx.send("You don't have the 'staff' role")
@mute.error
async def mute_error(ctx, error):
if isinstance(error, commands.BadArgument):
await ctx.send("That is not a valid member")