我正在尝试使用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作为我的机器人的框架。
答案 0 :(得分:0)
我无法告诉您导致重复邮件的原因,但它没有将ABDD
更改为ABCD
的原因是str.replace()
返回新字符串而不是编辑一个旧的。
将newMessage.replace("D","C",1)
更改为newMessage = newMessage.replace("D","C",1)