我如何让我的机器人只在正确的频道中响应

How i make my bot only response if it is in the right channel

嘿,我试过了,但它没有用,机器人仍然在任何频道中回答我的问题,如果你能帮助我,那太棒了

@bot.event
async def on_message(message):
    if 'hey' in message.content.lower():
        if 'i' in message.content.lower():
            message.channel.name.startswith("ticket")
            embed = discord.Embed(title=f'test',description=f'**test** : ``test``', color=0x001fff )
            await message.channel.send(embed=embed)


    if 'test' in message.content.lower():
        message.channel.name.startswith("ticket")
        embed = discord.Embed(title=f'test',description=f'**test** : ``hi``', color=0x001fff )
        await message.channel.send(embed=embed)

这是我的命令

您在 if 语句外使用了 message.channel.name.startswith("ticket")。这不会做任何事情。 将其替换为 if(message.channel.name.startswith("ticket")): 实际上会检查频道名称是否以“ticket”开头。你需要缩进应该执行的代码。下面你可以看到我已经为你修复了代码。

@bot.event
async def on_message(message):
    if 'hey' in message.content.lower():
        if 'i' in message.content.lower():
            if(message.channel.name.startswith("ticket")): #This line
                embed = discord.Embed(title=f'test',description=f'**test** : ``test``', color=0x001fff )
                await message.channel.send(embed=embed)


    if 'test' in message.content.lower():
        message.channel.name.startswith("ticket")
        embed = discord.Embed(title=f'test',description=f'**test** : ``hi``', color=0x001fff )
        await message.channel.send(embed=embed)