[英]How to delete the bot's previous message on discord.py
我见过这个命令
@bot.command()
async def disappear(ctx):
msg = await ctx.send("Hey!")
await msg.delete(delay=1)
但是,我正在尝试删除其他一些函数中的“msg”。 准确地说,这是我的代码
@bot.command()
async def disappear(ctx):
msg = await ctx.send("Hey!")
await msg.delete(delay=1)
@bot.command()
async def somethingelse(ctx):
await msg.delete(delay=1)
这给了我一个错误
NameError: name 'msg' is not defined
所以我想知道是否有任何方法可以通过机器人本身删除机器人的先前消息。
你可以试试这个:
prev_msg = None
@bot.command()
async def deleteprevmsg(ctx):
global prev_msg
try:
await prev_msg.delete(delay = 1)
except:
prev_msg = await ctx.send("No previous message found")
并在每个await ctx.send()
之前放置prev_msg =
。 请记住在使用它的每个函数中global prev_msg
。
如果您不想使用全局变量,您可以获取您的机器人在该频道中发送的最后一条消息,然后将其删除。
@client.command()
async def somethingelse(ctx):
channel = client.get_channel(123456789123456) # ID of channel
msg = await channel.history().get(author__id=123456789123456) # ID of bot
await msg.delete(delay=1)
print(f"Deleted message: {msg.id}")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.