所以基本上我想让命令参数不区分大小写。例如:?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,我没有输入完整的成员名称和具有相同大小写的角色名称。
答案 0 :(得分:0)
如果只针对成员(如图所示),可以指定参数为成员对象,然后可以给出名称,提及成员或给出成员的id .
一个例子是:
@commands.command(name="userinfo")
async def userinfo(self, ctx, Member : discord.Member):
# Do your stuff
答案 1 :(得分:0)
使用 .lower()
降低参数
@commands.command()
async def role(self, ctx, Member : discord.Member, Role):
role = Role.lower()
如果您希望第一个字母大写,请执行以下操作:
@commands.command()
async def role(self, ctx, Member : discord.Member, Role):
role = Role.capitalize()
答案 2 :(得分:0)
你可以简单地使用 discord 的转换器
@commands.command()
async def role(self, ctx, 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)