临时静音命令

时间:2018-05-29 15:38:30

标签: discord.py

我正在努力让服务器主持人能够暂时将用户 Discord 静音。我不是Discord机器人中经验丰富的开发人员,但学习。

我想做什么? 我试图让它成为服务器所有者能够在他们的Discord服务器中临时静音用户。

这是我目前用于我的静音命令的内容:

@bot.command(pass_context=True)
async def mute(ctx, user: discord.Member):
    if ctx.message.author.server_permissions.kick_members:
        role = discord.utils.get(user.server.roles, name="Muted")
        embed = discord.Embed(title="{} has been muted!".format(user.name), description="When the user needs unmuting do !unmute @user!" , color=0x0072ff)
        embed.set_footer(text="Reversed by Damian#9209 | Reduction#9975")
        embed.set_thumbnail(url=user.avatar_url)
        await bot.add_roles(user, role)
        await bot.say(embed=embed)
    else:
       embed = discord.Embed(title="Permission Denied.", description="You don't have permission to use this command.", color=0xff0000)
       embed.set_footer(text="Reversed by Damian#9209 | Reduction#9975")
       await bot.say(embed=embed)

1 个答案:

答案 0 :(得分:1)

我确信您知道,Discord.py库已更改为不再包括重写分支。这意味着静音命令已为您简化了。我将提供一些代码来帮助您入门。我还将提供每行所有文档的链接。

@bot.command(name="tempmute",description="Temporarily mute a member")
@commands.has_permission(mute_members=True)
async def _tempmute(ctx,user:discord.Member):
    muteRole = discord.utils.get(ctx.guild.roles,name="Muted")
    await user.add_roles(muteRole)

has_permission是对Discord用户权限的检查

utils.get是一种实用程序功能,可以逐步遍历可迭代对象并找到正确的搜索过滤器。在这里,我们使用它来查找名称为“静音”的角色

add_roles是一个协程函数(又需要等待),可以向用户添加一个或多个角色。

我建议您还确保该角色已禁用speak权限,这样您就不必通过on_message事件来处理它。希望有帮助!

相关问题