【问题标题】:How i make my bot only response if it is in the right channel如果它在正确的渠道中,我如何让我的机器人只响应
【发布时间】:2020-09-30 14:57:40
【问题描述】:

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

@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)

这是我的命令

【问题讨论】:

标签: python discord.py discord.py-rewrite


【解决方案1】:

您在 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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-06
    • 2019-11-23
    • 2017-10-14
    • 2022-01-20
    • 2021-07-06
    • 2021-10-02
    • 2021-04-09
    • 2020-09-27
    相关资源
    最近更新 更多