微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

所以基本上我想让命令参数不区分大小写。例如:?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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?