如何使命令参数不区分大小写?

时间:2021-03-03 10:53:47

标签: python discord discord.py

所以基本上我想让命令参数不区分大小写。例如:?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,我没有输入完整的成员名称和具有相同大小写的角色名称。

3 个答案:

答案 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)

参考: