用于取消白名单的机器人
bot for unwhitelisting people
我正在尝试制作一个用于将人员列入白名单和取消白名单的机器人。我使用 replit 因为它有简单的数据库 - 代码将 运行 在他们的数据库中。所以我开始制作机器人白名单,这很容易。当我开始取消白名单时出现错误......
当我是 V.I.P 机器人时,它说我不是。请帮我...
代码:
@client.command()
async def unwhitelist(ctx, user):
role = ctx.guild.get_role(893143464781422612)
if role in ctx.author.roles:
try:
if len(db[str(user)]) != -1:
del db[str(user)]
await ctx.send(f'Succesfult deleted {str(user)} from V.I.P')
except:
await ctx.send(f'{str(user)} is not V.I.P')
else:
await ctx.send('U dont have Permission')
数据库看起来像这样:
{'user', 'user1', 'user2'}
DB 是 replit 的插件所以...不要混淆
TLDR
替换
try:
if len(db[str(user)]) != -1:
del db[str(user)]
await ctx.send(f'Succesfult deleted {str(user)} from V.I.P')
except:
await ctx.send(f'{str(user)} is not V.I.P')
和
if str(user) in db:
db.remove(str(user))
await ctx.send(f'Succesfult deleted {str(user)} from V.I.P')
else:
await ctx.send(f'{str(user)} is not V.I.P')
说明
既然你有
db = {'user', 'user1', 'user2'}
变量db
是一个set
,不可下标。因此,当您的代码运行 db[str(user)]
(作为 if
条件的一部分)时,您会收到错误
TypeError: 'set' object is not subscriptable
此错误在您的 except
块中被捕获,因此您的程序发送消息说您不是 VIP。
我正在尝试制作一个用于将人员列入白名单和取消白名单的机器人。我使用 replit 因为它有简单的数据库 - 代码将 运行 在他们的数据库中。所以我开始制作机器人白名单,这很容易。当我开始取消白名单时出现错误...... 当我是 V.I.P 机器人时,它说我不是。请帮我... 代码:
@client.command()
async def unwhitelist(ctx, user):
role = ctx.guild.get_role(893143464781422612)
if role in ctx.author.roles:
try:
if len(db[str(user)]) != -1:
del db[str(user)]
await ctx.send(f'Succesfult deleted {str(user)} from V.I.P')
except:
await ctx.send(f'{str(user)} is not V.I.P')
else:
await ctx.send('U dont have Permission')
数据库看起来像这样:
{'user', 'user1', 'user2'}
DB 是 replit 的插件所以...不要混淆
TLDR
替换
try:
if len(db[str(user)]) != -1:
del db[str(user)]
await ctx.send(f'Succesfult deleted {str(user)} from V.I.P')
except:
await ctx.send(f'{str(user)} is not V.I.P')
和
if str(user) in db:
db.remove(str(user))
await ctx.send(f'Succesfult deleted {str(user)} from V.I.P')
else:
await ctx.send(f'{str(user)} is not V.I.P')
说明
既然你有
db = {'user', 'user1', 'user2'}
变量db
是一个set
,不可下标。因此,当您的代码运行 db[str(user)]
(作为 if
条件的一部分)时,您会收到错误
TypeError: 'set' object is not subscriptable
此错误在您的 except
块中被捕获,因此您的程序发送消息说您不是 VIP。