试图删除来自特定频道的所有消息会破坏整个机器人
trying to delete all messages from a spesific channel breaks the whole bot
我想让用户键入 !join 加入游戏,但删除其中的所有消息,以免游戏满员。但是当我这样做时,它会删除该频道中的所有消息,但会破坏机器人的所有其他部分。
我试过 await message.delete() 和 await message.channel.purge(limit=1).
@client.event
async def on_message(message):
channel = client.get_channel(590978944904331274)
if message.channel == channel:
await message.channel.purge(limit=1)
client.run(token)
它可以工作,但会破坏机器人的其余部分。
@client.event
async def on_message(message):
channel = client.get_channel(590978944904331274)
if message.channel == channel:
await message.delete()
或在您的 !join 命令中
如果您正在使用
async def join(ctx):
#do your code
await ctx.message.delete()
await ctx.message.delete()
会在使用命令时删除用户message/command。
await message.delete()
将删除任何人的消息甚至对话。
遮阳篷是
来自文档:
Overriding the default provided on_message forbids any extra commands from running. To fix this, add a bot.process_commands(message) line at the end of your on_message. For example:
@bot.event
async def on_message(message):
# do some extra stuff here
await bot.process_commands(message)
默认on_message包含对这个协程的调用,但是当你用自己的on_message覆盖它时,你需要自己调用它。
@benjin 在 post 上对此发表了评论。谢谢
我想让用户键入 !join 加入游戏,但删除其中的所有消息,以免游戏满员。但是当我这样做时,它会删除该频道中的所有消息,但会破坏机器人的所有其他部分。
我试过 await message.delete() 和 await message.channel.purge(limit=1).
@client.event
async def on_message(message):
channel = client.get_channel(590978944904331274)
if message.channel == channel:
await message.channel.purge(limit=1)
client.run(token)
它可以工作,但会破坏机器人的其余部分。
@client.event
async def on_message(message):
channel = client.get_channel(590978944904331274)
if message.channel == channel:
await message.delete()
或在您的 !join 命令中 如果您正在使用
async def join(ctx):
#do your code
await ctx.message.delete()
await ctx.message.delete()
会在使用命令时删除用户message/command。
await message.delete()
将删除任何人的消息甚至对话。
遮阳篷是
来自文档:
Overriding the default provided on_message forbids any extra commands from running. To fix this, add a bot.process_commands(message) line at the end of your on_message. For example:
@bot.event
async def on_message(message):
# do some extra stuff here
await bot.process_commands(message)
默认on_message包含对这个协程的调用,但是当你用自己的on_message覆盖它时,你需要自己调用它。
@benjin 在 post 上对此发表了评论。谢谢