当前位置: 首页 > 知识库问答 >
问题:

不一致py | Bot在ping时响应

黄逸清
2023-03-14

如果我执行类似于If消息的操作。所容纳之物startswith('hello'):它工作正常。

但是,我找不到一种方法使其适用于ping。我尝试了机器人ID和名称。我的机器人ID代码:

@client.event
async def on_message(message):
    await client.process_commands(message)
    if message.content.startswith('<@741352621826375781>'):
        embed = discord.Embed(
            colour = discord.Colour.red())
     
        embed.add_field(name='Hello', value='''My prefix is `.`, type `.help` for help.''', inline=False)
            
        await message.channel.send(embed=embed)

有人能帮忙吗?

共有3个答案

党航
2023-03-14

有一种更简单的方法可以检查消息中是否提到了bot。

@client.event
async def on_message(message):
    if client.user in message.mentions:
        await message.channel.send("Hello!")
胡彭亮
2023-03-14

这将解决您的问题,您的代码无法工作的原因是由于属性错误。

@client.event
async def on_message(message):
   if str(message.content) == '<@741352621826375781>':
        await message.channel.send('Hello ?')
    await client.process_commands(message)
夏侯智鑫
2023-03-14

这是索菲亚的一个改进版本

@client.event
async def on_message(message): 
    # Adding `<!@{id_here}>` so it's gonna work whether it's mentioned by nick or simply by the name
    if message.content in [f'<!@{client.user.id}>', f'<@{client.user.id}>']:
        await message.channel.send('Hello there')

    await client.process_commands(message)
 类似资料:
  • 我想我的机器人发送该特定服务器的前缀时,它pinged(提到)。 我用谷歌搜索了它,但它不起作用(Discord.py-当它发出ping时如何生成机器人消息?) 它停止执行其他命令等。 这是我的密码 改为给我发这个消息

  • 我在我的discord机器人上遇到了一个问题。命令不起作用。我认为代码不是问题。除了命令外,一切都很完美。不和谐,如果我使用!在这里测试mytext,什么都不会发生。 提前谢谢你!

  • 我在使用discord。py创建一个discord机器人,我需要每天在特定的时间执行某些操作。我看到了这个答案:如何在不和谐中循环。py重写?到目前为止,我一直在使用它。 当我在heroku免费计划上托管我的机器人时,问题就开始了。Heroku上的服务器每天至少重置一次,这会弄乱计时器,如该帖子所示。 我还看到了日程库。这个的问题是它似乎使用了一个无限循环。这不会阻止我在24小时内运行其他任何东西

  • 免责声明:我已经转发了这个问题,并删除了最初的问题,因为一个人给出了一个愚蠢的答案,降低了这个问题的可见性。 基本上,我正在将我的机器人迁移到discord.py的重写版本。 我正在测试机器人与前一个只有几个功能,现在我测试音频功能与on_voice_state_update()事件,机器人应该播放音频时,有人加入一个频道。 我写了这样的事件: 这段代码的作用是,检查用户是否加入了语音频道,加入了

  • 我想发送消息,如果作者有角色,但如果我尝试此代码不工作(角色的id是正确的)。

  • 当我在twitch上开始直播时,我正试图让我的机器人向指定频道发送消息。到目前为止,我还在忙于从我的状态中获取正确的“活动”,这表示我正在流媒体。到目前为止,我得到的是: 提前感谢任何帮助!^^