Python Disocrd.py命令

Python Disocrd.py命令,python,discord.py,Python,Discord.py,我正在编写一个discord bot,我认为应该有一种更简单的方法来检测使用命令前缀的消息(将来很容易扩展),我的代码现在只是扫描每条消息,看看它是否包含确切的命令,也许一个类会有所帮助 @client.event 异步def on_消息(消息): #打印邮件内容 打印(message.content) #如果消息来自bot,请忽略它 如果message.author==client.user: 返回 #如果信息以“!repeat”开头,则在聊天中说出该信息 如果message.content.

我正在编写一个discord bot,我认为应该有一种更简单的方法来检测使用命令前缀的消息(将来很容易扩展),我的代码现在只是扫描每条消息,看看它是否包含确切的命令,也许一个类会有所帮助

@client.event
异步def on_消息(消息):
#打印邮件内容
打印(message.content)
#如果消息来自bot,请忽略它
如果message.author==client.user:
返回
#如果信息以“!repeat”开头,则在聊天中说出该信息
如果message.content.startswith(“!repeat”):
sentmessage=message.content.replace(“!repeat”,”)
等待消息。通道。发送(sentmessage)
如果message.content.lower()中的“hello”:
等待消息。频道。发送(“你好!”)
如果message.content.startswith(“!cleanup”):
如果不是message.author.guild\u permissions.administrator:
wait message.channel.send(“您没有运行此命令的权限!”)
其他:
num2c=0
num2c=int(message.content.replace(“!cleanup”,”)+1
打印(num2c)
等待消息.channel.purge(限制=num2c)
num2c=num2c-1
cleanmessage=str(“清除”+str(num2c)+“消息”)
wait message.channel.send(cleanmessage,delete_after=5)

您可以使用
命令。Bot
,它有一个内置的命令系统,下面是一个示例:

导入不一致
从discord.ext导入命令
#使能意图
intents=discord.intents.default()
bot=commands.bot(命令前缀='!',意图=意图)
@bot.command()
异步def foo(ctx,*args):
等待ctx.send('任何')
#您还拥有“discord.Client”所拥有的所有功能
@机器人事件
异步def on_消息(消息):
# ...
#在使用'commands.Bot'时,始终需要添加此选项`
等待bot.process_命令(消息)
bot.run('token')
看一看