python-3.x - 如何使用指定的消息数量创建消息清除命令
问题描述
async def delete(ctx, number):
numbers = int(number)
await ctx.send("Deleting messages......")
await discord.Message.delete(numbers)
我是 Discord.py 的新手,我正在制作一个可以执行基本审核命令的机器人。我试图做出一个明确的命令来删除指定数量的消息,例如:del 10
将删除 10 条消息(不包括命令,所以总共 11 条)。但是我一直收到discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'int' object has no attribute '_state'
错误消息。我不知道如何解决这个问题并尝试了谷歌,有人可以帮忙吗?起初我在 之后有一个while循环await ctx.send("Deleting messages.....")
,它就像:
async def delete(ctx, number):
numbers = int(number)
max_number == 0
await ctx.send("Deleting messages......")
while max_number <= numbers:
await discord.Message.delete(numbers)
然而,这也引发了同样的错误,我不确定是否需要一个 while 循环,因为要删除的消息数量是用numbers
变量指定的。
解决方案
我认为您应该使用它来代替ctx.channel.purge
它执行的通道中的特定数量的消息。
async def clear(ctx, amount: int):
await ctx.channel.purge(limit= amount+1)
推荐阅读
- python - 在追加和迭代新/新值时循环 Python 列表
- java - 使用 Datavec 库将原始数据从数据集映射到新数据,并将其存储在 Spark RDD 中
- c# - 从 Angular 7 中的 Typescript 方法调用 C# 方法
- python - 使用搜索和条件查找两列值之间的差异
- python - 循环 Pandas DataFrame 并绘制每一列
- javascript - 为什么这会引发 SyntaxError?
- javascript - 用于匹配字符串的正则表达式不是以传递字母数字的数字开头
- python - 如何使用 glDrawArrays 和 glVertexPointer?
- coq - 逻辑:excluded_middle_irrefutable
- swift - 在 Swift 中创建下拉菜单