#python #discord.py-rewrite
#python #discord.py
Вопрос:
Я пытаюсь закодировать команду в моем боте Discord, который при запуске будет активно удалять новые сообщения от определенного пользователя.
Я попробовал пару вариантов использования ctx, но, честно говоря, я не совсем понимаю, как я мог бы использовать его для достижения этой цели.
Этот блок кода удаляет сообщение, которое его запускает. Из-за этого я думаю, что использую неправильный подход, потому что он удаляет только от того, кто его запускает, и только если они вводят команду. Очевидно, я новичок в этом. Я был бы признателен за любую помощь. Большое спасибо 🙂
@client.event
async def on_message(ctx):
message_author = ctx.author.id
if message_author == XXXXXXXXXXXXXXXXX:
await ctx.message.delete()
Ответ №1:
В discord rewrite (DiscordPy 1.0 ) больше нет CTX, вместо этого вы должны сделать:
@client.event
async def on_message(message):
if message.author.id == XXXXXXXXXXXXXXXXX:
await message.delete()
Источник: ссылка
Ответ №2:
Вы можете создать команду для добавления пользователей в список, затем использовать on_message
, чтобы проверить, есть ли пользователь в этом списке, а затем удалить его, если true
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)))