我正在尝试在Discord Bot中编写一条命令,该命令在被触发时将主动删除特定用户的新消息。
我尝试了使用ctx的几种方法,但老实说,我并不完全理解如何使用它来完成此操作。
此代码块删除触发它的消息。因此,我认为我采用了错误的方法,因为它只会从触发它的人中删除并且仅在他们键入命令时才删除。显然,我是新手。我将不胜感激。非常感谢:)
@client.event
async def on_message(ctx):
message_author = ctx.author.id
if message_author == XXXXXXXXXXXXXXXXX:
await ctx.message.delete()
答案 0 :(得分:0)
不和谐重写(DiscordPy 1.0+)中不再有CTX,而是应该这样做:
@client.event
async def on_message(message):
if message.author.id == XXXXXXXXXXXXXXXXX:
await message.delete()
来源:link
答案 1 :(得分:0)
您可以发出命令将用户添加到列表中,然后使用on_message
检查用户是否在该列表中,如果是,则将其删除
dels=[]
@bot.event
async def on_message(msg):
if msg.author.id in dels:
await bot.delete_message(msg)
await bot.process_commands(msg)
@bot.command(name='del_msg')
async def delete_message(con,*users:discord.Member):
for i in users:
dels.append(i.id)
await con.send("Users {} have been added to delete messages list".format(" ,".join(users)))