我想让用户输入!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)
它可以工作,但会破坏机器人的其余部分。
答案 0 :(得分:0)
@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()
将在使用命令时删除用户消息/命令。
await message.delete()
将删除任何人的消息,甚至是对话。
答案 1 :(得分:0)
遮阳篷是
从文档中:
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在帖子上对此发表了评论。谢谢。