discord.py bot在使用on_message()重复自身并修改用户消息时遇到问题

时间:2017-11-18 02:16:44

标签: python python-3.6 discord discord.py

我正在尝试使用on_message()命令让机器人识别特定类型的消息,并返回该消息的修改版本;这是一个例子:

import discord
import asyncio
from discord.ext.commands import Bot
from discord.ext import commands
import platform
import logging

logging.basicConfig(level=logging.INFO)

client = Bot(description="Basic Bot by Habchy#1665", command_prefix="!",     pm_help = True)

@client.command()
async def ping(*args):

    await client.say(":ping_pong: Pong!")
    await asyncio.sleep(3)

@client.event
async def on_message(message):

    if message.content.startswith('ABDD'):

        newMessage = message.content[:]

        newMessage.replace("D","C",1)

        await client.send_message(message.channel, "Fixed!")
        await client.send_message(message.channel, newMessage)

    await client.process_commands(message)


client.run('my auth code')

我遇到的第一个问题是我的机器人重复了“固定!”的消息。和“ABDD”不断,直到我把它关闭。

我遇到的第二个问题是它似乎没有将“ABDD”改为“ABCD”

我对整个机器人制作工具都很陌生,我希望能帮助解决这个问题。谢谢!

我正在使用Habchy的BasicBot作为我的机器人的框架。

1 个答案:

答案 0 :(得分:0)

我无法告诉您导致重复邮件的原因,但它没有将ABDD更改为ABCD的原因是str.replace()返回新字符串而不是编辑一个旧的。

newMessage.replace("D","C",1)更改为newMessage = newMessage.replace("D","C",1)