【问题标题】:Response from a discord bot in discord.pydiscord.py 中不和谐机器人的响应
【发布时间】:2018-11-17 13:32:27
【问题描述】:

我正在为我的服务器制作一个不和谐的机器人,我希望它能够在用户说出类似“我”之类的话时与他们进行交互。例如,如果有人说“我累了”。我的机器人会说,“嘿,累了,我是 HalogenBot”(这就是我的机器人的名字)。

所以我最好的猜测是使用

if message.content.startswith('im'):
    await client.send_message(message.channel, '')

我不知道在回复中要写什么。 我需要让机器人复制消息并以某种方式从消息中删除“im”,然后剩下的很简单,我只是让它声明它是卤素机器人。

我也知道我的代码很丑,我在这个机器人上的工作还处于起步阶段,还没有修改

有什么帮助吗?谢谢大家。

【问题讨论】:

    标签: python bots discord discord.py


    【解决方案1】:

    假设您在message.content 中有消息(例如“我累了”)。您可以使用string.replace 删除您不感兴趣的部分。

    adjective = message.content.replace("I'm ", "")
    response = "Hello {}, I'm HalogenBot".format(adjective)
    

    如果您觉得自己的内容可能很长,但只想要“I'm”之后的第一个词,请不要忘记使用split 裁剪其余部分:

    adjective = message.content.replace("I'm", "").split(" ")[0]
    

    【讨论】:

    • 还有一个问题,机器人检测到它发送的消息中的“im”,然后开始一个无限循环的响应,因为每次他说“嗨,我是卤素机器人”时,它都会看到 im 而没有停止。
    • 从你所说的,我猜你以某种方式从 API 流式传输所有消息,对吗?如果是这样,您是否检查过您是否可以访问发送消息的用户(可能是message.user)?然后,您可以通过在进入您发送消息的部分之前添加条件 (if message.user != "halogen") 来过滤来自机器人的消息。
    • 我使用了“如果 client.user.id !=”。非常感谢你帮了大忙
    猜你喜欢
    • 2019-04-13
    • 2020-12-02
    • 2021-06-17
    • 2021-03-10
    • 2021-07-07
    • 2021-10-06
    • 2018-06-27
    • 2021-06-20
    • 2021-09-04
    相关资源
    最近更新 更多