我正在努力让服务器主持人能够暂时将用户 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)
答案 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
事件来处理它。希望有帮助!