【发布时间】:2021-07-24 16:04:10
【问题描述】:
所以我正在使用 discord.py 开发一个不和谐的机器人,并且我正在尝试为服务器中的审核团队创建一个机器人,该机器人会将“主持人”角色与“请假”角色交换因为当它们不活动时,但是我想出的代码有一个我无法弄清楚的轻微漏洞问题,命令的代码是这样的
...
@client.command()
@commands.has_role('Moderator')
async def sl(ctx, member: discord.Member = None):
if not member:
member = ctx.author
loa = ctx.guild.get_role(848032714715561985)
mod = ctx.guild.get_role(848032880709074944)
await member.add_roles(loa)
await member.remove_roles(mod)
await ctx.send("I have filed your Leave, take care, we look forward to your return!")
@client.command()
async def sr(ctx, member: discord.Member = None):
if not member:
member = ctx.author
mod = ctx.guild.get_role(848032880709074944)
loa = ctx.guild.get_role(848032714715561985)
await member.add_roles(mod)
await member.remove_roles(loa)
await ctx.send("Welcome back!")
...
你可以看到任何人都可以使用第二个命令来给自己一个主持人角色,我不能将第二个命令设置为只使用主持人,因为主持人将不再使用第一个命令说角色,我我绞尽脑汁想办法解决,即将命令用户 id 记录到白名单中,并且只有那些列入白名单的 id 才能使用第二个命令,我为此做了很多谷歌搜索,但没有结果,任何建议将不胜感激,请原谅这个问题有点冗长,而且我对一般编码仍然很陌生,所以任何帮助,即使你不完全理解我在喋喋不休的内容也会非常感谢,谢谢。
【问题讨论】:
标签: discord.py