Удаление определенных сообщений, которые были отправлены ботом и отправлены пользователем. Discord.py переписать
У меня много проблем с перезаписью discord.py и его миграцией. Я посмотрел на миграцию на сайт v1.0 и там было сказано, что нужно добавить message.delete(), и я так и сделал, но понял, что это не работает, поэтому я также ввел ctx. Но это привело к ошибке. На данный момент есть две команды с этой ошибкой.
Я уже пытался поместить сообщение в переменную.
@client.command()
async def clear(ctx, amount=100):
message = ctx.message
channel = ctx.message.channel
messages = []
await ctx.channel.purge(limit=int(amount+1))
mymessage = await channel.send('Messages deleted')
await ctx.message.delete(mymessage)
@client.command()
async def verify(ctx, *, arg):
print(ctx.message.channel.id)
print(ctx.message.author)
if ctx.channel.id == 521645091098722305:
role = await ctx.guild.create_role(name=arg)
await ctx.message.author.add_roles(role)
mymessage = await ctx.send('Done! Welcome!')
await ctx.message.delete(mymessage)
await ctx.message.delete(ctx.message)
Я ожидал, что вывод удалит сообщение. Для ясного это удаляет это и затем возвращает это. для проверки он просто сохраняет его и показывает ошибку: поднять CommandInvokeError(exc) из exc discord.ext.commands.errors.CommandInvokeError: Команда вызвала исключение: TypeError: delete() принимает 1 позиционный аргумент, но 2 были дано
Также моя роль дает проверки иногда идет 3 раза. Я вошел в диспетчер задач и убил весь питон, но он все-таки сделал это. Однажды, когда я очищался, он сказал Готово! Добро пожаловать. Если вы также можете ответить на этот вопрос, я был бы рад! Заранее спасибо.
2 ответа
Message.delete
не принимает никаких аргументов. Это метод, который вы вызываете для сообщения, которое хотите удалить. + Изменить
await ctx.message.delete(mymessage)
await ctx.message.delete(ctx.message)
в
await mymessage.delete()
await ctx.message.delete()
@client.command(pass_context=True)
async def delete(ctx, arg):
arg1 = int(arg) + 1
await client.purge_from(ctx.message.channel, limit=arg1)
! удалить 10 - удалить последние 10 сообщений