【发布时间】:2022-07-07 16:48:28
【问题描述】:
所以我正在构建一个小型验证机器人,你可以从公会开始,然后私信你继续。流程的每个阶段都需要一些用户输入或验证,因此我考虑通过角色来处理每个阶段。现在要完成机器人,我计划让每个命令只有在用户具有特定角色时才能访问。
现在问题来了,在 DMS 中,用户没有角色!
我创建了一个角色处理程序,它引用公会中的用户来授予和删除 DMS 中的角色,但这似乎不适用于装饰器。
长话短说,我如何让@commands.has_role(role) 装饰器引用公会中的用户??
非常感谢大家的帮助。
最好的问候
@commands.has_role("Verf Stage 2") #Issue
@slash.slash(
name="IamReady",
description="Allows you to continue with the verification.",
guild_ids=guildIds,
permissions = permission2
)
async def _IamReady(ctx:SlashContext):
global user_obj
role = "Verf Stage 2"
await ctx.author.send('Let me see what i can find')
username = user_obj.usrname
#For testing
tempateId = os.getenv('TEMPLATE_ID_TEST')
state = await getUserData(userName = username, templateId = tempateId)
if state == "NoAssetfound":
pass
elif state == "Usernotfound":
pass
else:
nftemebed = await getNftEmbed(state)
user_obj.assetId = state['asset_id']
# Addrole
await rolehandler(user = user_obj.auth, newrole = role, guild = bot.get_guild(id=guildIds[-1]))
await ctx.author.send(embed = nftemebed)
附:正在进行中
【问题讨论】:
标签: discord.py