python - 检查 discord 命令参数
问题描述
我没什么好说的,我正在尝试使用 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)
解决方案
这是工作代码
@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
其次作者未定义,用于ctx.author
显示谁发送了消息
最后你拼错了:white_check_mark:
希望这有帮助!
推荐阅读
- javascript - ERROR 错误:未捕获(在承诺中):错误:调用 getActive 时必需的参数参与者 ID 为空或未定义
- neural-network - 使用 BertForTokenClassification 模型预测 NER
- android - Android Studio中SETAFFINITY ret = -1是什么意思?这是我的活动日志
- java - 基于java中的用户输入更新数据库
- javascript - -[object Object]- Google 距离矩阵上的错误 - Android 和 iOS
- ios - Hyperledger Indy iOS sdk 无法导入钱包
- xml - Golang XML 编码
- java - 如何在后台和前台运行一个函数 Android Studio(JAVA)
- r - 如何增加标签的宽度 - BlueSky Statistics
- .net - 如何修复“连接未关闭。连接的当前状态:正在连接。”