【问题标题】:Python Discord bot message.contentPython Discord 机器人 message.content
【发布时间】:2021-10-22 21:39:24
【问题描述】:

我试图让我的 Discord 机器人在有人发送特定单词时自动响应,但问题是该命令仅在单词是句子中写的第一件事时才有效。即使特定单词位于句子的中间或任何位置,我也希望机器人能够响应消息。

我有什么可以改变的吗?

@client.event
async def on_message(message):
    words = ['test']

    if message.content in words: 
        await message.channel.send("test1")

【问题讨论】:

    标签: python discord discord.py bots


    【解决方案1】:

    在python中格式为if substring in string:

    因此,如果您有要查找的单词列表,则需要先遍历该单词列表,然后检查它是否在主字符串中:

    for word in words:
        if word in message.content:
    

    或者,你可以偷偷摸摸:

    if any(map(message.content.__contains__, words)):
    

    如果words 中的任何单词在消息内容中,则返回true。

    【讨论】:

    • 嗯,这有点解决了这个问题,我现在可以在任何我想要的地方使用这个词,但是当我发送测试词时,机器人每隔 10 秒就用同一个词回复 5 次。跨度>
    • 你确定机器人没有响应自己吗?我的意思是测试这个词在 test1 里面,所以它会自己回答。尝试将 test1 更改为没有测试的东西,看看它是否仍然发生
    猜你喜欢
    • 2018-08-13
    • 2021-07-20
    • 2021-07-17
    • 2019-01-12
    • 2019-08-10
    • 2019-05-10
    • 2021-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多