如何解决如何使命令参数不区分大小写?
所以基本上我想让命令参数不区分大小写。例如:?role [成员] [角色]。因此,我不必键入成员和角色名称的全名或相同的大小写。真的有可能吗?因为我已经尝试过 Dyno bot,这似乎是可能的。我试过这段代码,但它不起作用:
import discord
from discord.ext import commands
client = commands.Bot(command_prefix=("d","D"),intents=intents,help_command=None,case_insensitive=True)
Like this,我没有输入完整的成员名称和具有相同大小写的角色名称。
解决方法
如果只针对成员(如图所示),可以指定参数为成员对象,然后可以给出名称,提及成员或给出成员的id .
一个例子是:
@commands.command(name="userinfo")
async def userinfo(self,ctx,Member : discord.Member):
# Do your stuff
,
使用 .lower()
降低参数
@commands.command()
async def role(self,Member : discord.Member,Role):
role = Role.lower()
如果您希望第一个字母大写,请执行以下操作:
@commands.command()
async def role(self,Role):
role = Role.capitalize()
,
你可以简单地使用 discord 的转换器
@commands.command()
async def role(self,member : discord.Member = None,Role: discord.role = None):
if role is None or member is None:
await ctx.send('you need to specify a member and a role')
else:
if role in member.roles():
await member.remove_role(role)
else:
await member.add_role(role)
参考:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。