嘿,所以我试图在discord.py中改写命令,正在执行类似let Teacher = function() {
this.age = 12
}
Teacher.prototype.job = function() {
return "I teach";
}
let professor = new Professor();
professor.job(); // "I teach"
的操作,该操作会清除发送该消息的用户的5条消息,但是由于某种原因,它将无法正常工作。我在回复中使用它,因此它不会显示错误;-;但是到目前为止,这是我为使之正常工作所做的事情!
>purgemessage 5
答案 0 :(得分:0)
我还没有做完彻底的测试,但是我遇到的第一个错误是(在齿轮之外重写以便可以快速测试之后)
discord.errors.HTTPException:400错误的请求(错误代码:50034):您只能批量删除14天以内的邮件。
此错误可能是由于您的代码未包含任何内容而导致在到达amount
之后停止添加消息,并继续向用户返回频道中的整个历史记录。
取决于您要测试的渠道,这很可能不是您遇到的错误。我强烈建议您开始在会向您显示错误的环境中工作,以便我们更好地帮助您。
我对调试给定的代码还不了解,但是下面的代码可以用更少的代码来完成您想要的事情,并且我知道可以工作:
channel = ctx.channel
await channel.purge(limit=amount, check=lambda message: message.author == ctx.author)
ctx.channel
是发送命令的通道,ctx.author
是发送命令的通道。
channel.purge
将purge limit
满足check
函数的消息数量,在这种情况下,该消息是lambda(在一行中定义的函数,看起来像这样:{{ 1}}。lambda会隐式返回表达式)。
check关键字将通过lambda argument: expression
作为参数,因此我已经适当地使用了lambda参数命名。该表达式检查我们正在检查的消息(message
)是否由命令的调用者(message.author
)编写。
即使对于超过14天的邮件,此代码也有效,但是对于大量邮件,确实需要一些时间。