【问题标题】:Deleting bot's response when the person who triggered the bot response deletes their initial message当触发机器人响应的人删除他们的初始消息时删除机器人的响应
【发布时间】:2019-12-24 03:54:42
【问题描述】:

我正试图让我的不和谐机器人在有人说话时说些什么,如果那个人删除了他们的消息,机器人将删除它的回复。

Bot 用于使用 discord.py 用 python 编写的不和谐,当它响应的人删除他们的消息时试图删除它的响应。

BOT_PREFIX = '.', '?'
message_list = {}
bot = commands.Bot(command_prefix=BOT_PREFIX, message_list={})


@bot.event
async def on_message_delete(message):
    if message in message_list:
        await message.channel.delete()
        del message_list[message]


@bot.event
async def on_message(message):
    print(message.author.id)
    if message.author.id == 137351212856115200:
        response = await message.channel.send('Message')
        message_list[message] = response
        await bot.process_commands(message)
    else:
        await bot.process_commands(message)
        return

我希望它能够检测到此人何时删除他们的消息,它会删除其回复,但它正在尝试删除此人已删除的消息。

【问题讨论】:

  • 是否应该指定删除哪条消息,而不是在频道上盲目调用 delete?
  • @tehhowch 我是 python 新手,不知道如何指定要删除的消息。如果我尝试做await message.channel.delete(message_list) 它会抛出一个错误:TypeError: delete() takes 1 positional argument but 2 were given

标签: python discord.py


【解决方案1】:

解决了!将await message.channel.delete() 替换为await message_list[message].delete()

【讨论】:

    猜你喜欢
    • 2018-11-25
    • 2020-08-24
    • 1970-01-01
    • 2019-12-31
    • 1970-01-01
    • 2019-03-01
    • 1970-01-01
    • 2021-10-10
    • 1970-01-01
    相关资源
    最近更新 更多