【发布时间】:2021-06-09 01:03:28
【问题描述】:
所以我在 discord.py 中创建了一个不和谐机器人,当我创建一个用于设置机器人前缀的命令时,我想到了这个想法:“我如何知道用户是否为机器人输入了有效字符字首?”
例如,这里有一些机器人前缀的有效字符:'!'、'$'、'%'、'&'等...
以下是一些无效字符:'╒'、'Γ'、'▓'、'µ'、'╦'等...
这是我的代码:
@commands.command(aliases=['prefixSet']) # also I'm creating this command in a cog
@commands.has_permissions(administrator=True) # setting permission
async def change_prefix(self, context, prefix):
valid_prefix = ['!', '@', '#', '$', '%', '^', '&', '*','-', '_', '+', '=', '~']
if prefix in valid_prefix:
with open('prefixes.json', 'r') as f:
prefixes = json.load(f)
prefixes[str(context.guild.id)] = prefix
with open('prefixes.json', 'w') as f:
json.dump(prefixes, f, indent=4)
else:
context.send('Abnormal symbol for new prefix, try something else.')
基本上,如果用户输入的字符确实存在于@ 987654325@ list 然后它将接受该字符作为新前缀,否则它不会。
但是当我用这个'╒'字符测试它时,它仍然接受这个字符作为新的前缀,所以你们有什么解决办法吗?
【问题讨论】:
标签: python discord.py