检查discord命令参数

问题描述 投票:0回答:1

我没有太多要说的,我正在尝试使用python制作一个不和谐的机器人。

这个命令就在我做的时候

+permissions <user>

它显示了用户权限的列表

继承人的问题:

因此,开头的权限是“管理员”

并且取决于用户是否拥有该权限,它会显示一条唯一的消息,说明他是否拥有该权限

正如你在这里看到的那样

if ctx.message.user.server_permissions.administrator == True:
    embed.add_field(name="Administrator", value=":white_ckeck_mark: Permission Granted!", inline=True)
if ctx.message.user.server_permissions.administrator == False:    
    embed.add_field(name="Administrator", value=":x: Permission Denied!", inline=True)

但它显示错误说我没有归咎于一个论点(用户)

所有代码

@bot.command(pass_context=True)
async def permissions(ctx, user: discord.Member):
    embed = discord.Embed(name="USER_PERMISSIONS", description="------------------------------------------------------", color=0x0099ff)
    embed.set_author(name="USER_PERMISSIONS: {}'s Permissions".format(user.name))
if ctx.message.user.server_permissions.administrator == True:
    embed.add_field(name="Administrator", value=":white_ckeck_mark: Permission Granted!", inline=True)
if ctx.message.user.server_permissions.administrator == False:    
    embed.add_field(name="Administrator", value=":x: Permission Denied!", inline=True)
if ctx.message.user.server_permissions.view_audit_logs == True:
    embed.add_field(name="View Audit Logs", value=":white_ckeck_mark: Permission Granted!", inline=True)
if ctx.message.user.server_permissions.view_audit_logs == False:
    embed.add_field(name="View Audit Logs", value=":x: Permission Denied!", inline=True)
embed.set_thumbnail(url=user.avatar_url)
embed.set_footer(text="Requested by {}".format(author), icon_url=author.avatar_url)
await bot.say(embed=embed)
python discord.py
1个回答
1
投票

这是工作代码

@bot.command(pass_context=True)
async def permissions(ctx, user: discord.Member):
  embed = discord.Embed(name="USER_PERMISSIONS", description="------------------------------------------------------", color=0x0099ff)
  embed.set_author(name="USER_PERMISSIONS: {}'s Permissions".format(user.name))
  if user.server_permissions.administrator == True:
    embed.add_field(name="Administrator", value=":white_check_mark:  Permission Granted!", inline=True)
  if user.server_permissions.administrator == False:    
    embed.add_field(name="Administrator", value=":x: Permission Denied!", inline=True)
  if user.server_permissions.view_audit_logs == True:
    embed.add_field(name="View Audit Logs", value=":white_check_mark:  Permission Granted!", inline=True)
  if user.server_permissions.view_audit_logs == False:
    embed.add_field(name="View Audit Logs", value=":x: Permission Denied!", inline=True)
  embed.set_thumbnail(url=user.avatar_url)
  embed.set_footer(text="Requested by {}".format(ctx.message.author), icon_url=ctx.message.author.avatar_url)
  await bot.say(embed=embed)

有几件事,首先你不需要使用ctx.message.user.server_permissions,如果你已经初始化了用户是什么,所以只需使用user.server_permissions,因为ctx.message没有名为“user”的属性

其次作者没有定义,使用ctx.author来显示发送消息的人

最后你拼错了:white_check_mark:

希望这有帮助!

This is how it all looks in the end

© www.soinside.com 2019 - 2024. All rights reserved.