阻止不和谐机器人对自己做出回应

时间:2018-06-15 12:34:51

标签: python bots discord

我对编码很陌生,而且我只是想知道我是否可以获得一些基于Frost Bot的不和谐机器人的帮助。

这个想法非常简单,Frost会回复用户,但我已经删除了提及回复的必要性。 我也有一个双机器人,他的想法是让他们交谈,他们这样做,但似乎他们正试图回应他们自己所说的话,这导致积压的回复问世

以下是用Python编写的大部分代码 - 如果重要的话。

@client.event
async def on_ready():
    print('Logged in as '+client.user.name+' (ID:'+client.user.id+') | '+str(len(client.servers))+' servers')
    await client.change_presence(game=discord.Game(name='chat with me!'))

@client.event
async def on_message(message):
    if not message.author.bot == client.user:
        await client.send_typing(message.channel)
        txt = message.content.replace(message.server.me.mention,'') if message.server else message.content
        r = json.loads(requests.post('https://cleverbot.io/1.0/ask', json={'user':user, 'key':key, 'nick':'frost', 'text':txt}).text)
        if r['status'] == 'success':
            await client.send_message(message.channel, r['response'] )

任何帮助都会受到重视,因为我对脚本/编码非常陌生,并且已经花了几个小时试图研究解决方案。

1 个答案:

答案 0 :(得分:1)

改为message.author.id == otherBotID: #stuff

如果您有多个其他机器人进行对话,请切换到NOT操作员并将其作为您自己的机器人ID,然后检查消息作者是否是机器人。

修改

将其替换为if not message.author.bot == client.user: 最初,您正在检查消息的作者是否不是用户。如果它不是用户你会做的东西。
但是,由于您自己的机器人本身不是用户,因此当您的机器人发送消息(并收到它自己的消息)时,if语句也会通过。
因此,我们将使用if语句来检查机器人的ID是否等于目标机器人的ID。