在前缀为send discord.py时发送消息
我正在制作一个前缀为“!c”的不和谐机器人,但我希望如果有人发送“!c”,就会出现一个嵌入,因此我通过这样做来修复它:在前缀为send discord.py时发送消息,discord,bots,discord.py,Discord,Bots,Discord.py,我正在制作一个前缀为“!c”的不和谐机器人,但我希望如果有人发送“!c”,就会出现一个嵌入,因此我通过这样做来修复它: client = commands.Bot(command_prefix='!') client.remove_command("help") @client.group() async def c(ctx): YourEmbedCodeHere 我想添加一个命令“!c help”,它会发送相同的嵌入。我试着这样做: @c.group(invok
client = commands.Bot(command_prefix='!')
client.remove_command("help")
@client.group()
async def c(ctx):
YourEmbedCodeHere
我想添加一个命令“!c help”,它会发送相同的嵌入。我试着这样做:
@c.group(invoke_without_command= True)
async def help(ctx):
embed = discord.Embed(title="ChiBot", description="ChiBot by Chita! A very usefull moderation, level, invite and misc bot!", color=0x62e3f9)
embed.add_field(name="Commands:", value="Do !help (command) to get help on that command!", inline=False)
embed.add_field(name="Misc", value="!c help !c randomimage !c invite !c echo", inline=False)
embed.add_field(name="Moderation", value="!c ban !c kick !c warn !c mute !c unmute !c warns !c warnings", inline=False)
embed.add_field(name="Levels", value="!c rank !c dashboard ", inline=False)
embed.add_field(name="Invites", value="!c invites (help with setting it up)", inline=False)
embed.set_footer(text="Created by Chita#8005")
await ctx.send(embed=embed)
但当我尝试这样做时,它会发送双精度,因为“!c”仍然是同一嵌入的命令。我怎样才能使它只发送1个嵌入?我还想添加其他“!c”命令,所以我需要一个解决方案来删除!如果有什么东西在后面,请嵌入!c
问候,,
Chita您可以使用on_消息事件侦听器来检查这一点
@client.listen('on_message')
异步def foo(消息):
等待客户端。等待,直到准备就绪()
ctx=等待客户端。获取上下文(消息)
如果message.content=='!c':
等待ctx.send(嵌入=嵌入)#将您的嵌入发送到此处
return#确保我们不会两次回复`!c`
我们正在使用客户端。请等到\u ready()
,以便客户端在连接之前不响应消息
或者,您可以添加
if message.author.bot:
return
确保我们不会回复机器人
资源:
您可以尝试将前缀保留为“!c”,并使用on_消息事件来侦听“!c”以发送嵌入。像这样的
@client.event
async def on_message(message):
if message.content == "!c":
#Your embed code here
await client.process_commands(message)
我希望这可能会有所帮助。是的,我改进了我的答案,加入了您的建议,您可以删除您的旧组或只是传递组功能