我的问题是在尝试删除不一致的消息时收到错误。
client.on('message', msg => {
if(msg.content.startsWith(".del ")) {
msg.delete(1000); //Supposed to delete message
}
});我收到这个错误:
C:\Users\---\Desktop\Test\node_modules\discord.js\src\structures\Message.js:501
if (typeof options !== 'object') throw new TypeError('INVALID_TYPE', 'options', 'object', true);
^
TypeError [INVALID_TYPE]: Supplied options is not an object.
at Message.delete (C:\Users\---\Desktop\Test\node_modules\discord.js\src\structures\Message.js:501:44)
at Client.<anonymous> (C:\Users\---\Desktop\Test\index.js:51:17)
at Client.emit (events.js:310:20)
at MessageCreateAction.handle (C:\Users\---\Desktop\Test\node_modules\discord.js\src\client\actions\MessageCreate.js:31:14)
at Object.module.exports [as MESSAGE_CREATE] (C:\Users\---\Desktop\Test\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (C:\Users\---\Desktop\Test\node_modules\discord.js\src\client\websocket\WebSocketManager.js:386:31)
at WebSocketShard.onPacket (C:\Users\---\Desktop\Test\node_modules\discord.js\src\client\websocket\WebSocketShard.js:436:22)
at WebSocketShard.onMessage (C:\Users\---\Desktop\Test\node_modules\discord.js\src\client\websocket\WebSocketShard.js:293:10)
at WebSocket.onMessage (C:\Users\---\Desktop\Test\node_modules\ws\lib\event-target.js:120:16)
at WebSocket.emit (events.js:310:20) {
[Symbol(code)]: 'INVALID_TYPE'
}我也尝试过message.delete(1000),但收到一个错误,告诉我消息未定义。
当我删除试图删除消息的代码时,程序会工作。
发布于 2020-04-24 05:07:10
正如错误消息所述,您需要将nothing或对象传递给delete方法。
新版本vor Discord.js V13
对于Discord.js@13和更高版本,message.delete()方法不再接受选项。您现在需要使用这样的setTimeout:
setTimeout(() => msg.delete(), 1000);适用于Discord.js V12和更早版本
你可以在in the documentation上找到它。你想要做的事情是这样的:
client.on('message', msg => {
if(msg.content.startsWith(".del ")) {
msg.delete({timeout: 1000}); //Supposed to delete message
}
});发布于 2021-01-26 22:48:28
通过将msg.delete(3000)移至msg.delete({ timeout: 3000 })来更改代码,这样应该可以修复错误,因为它已在discord.js v12中进行了更改。
您可以比较文档- https://www.npmjs.com/package/discord.js-v11
You can compare the docs - [https://discord.js.org/#/](https://discord.js.org/#/)发布于 2021-03-19 18:53:07
你可以通过两种方法做到这一点
setTimeout(() => { msg.delete() },1000 // <-根据您的需求修改,单位为毫秒)
而不是
msg.delete(3000);
放
msg.delete({ timeout: 1000});
setTimeout(() => { message.channel.bulkDelete(var) },1000 // <-根据您的需求进行修改,单位为毫秒)
这可以帮助您删除多达100封邮件。
您可以在此处比较文档- Discord.js v11和Discord.js v12
https://stackoverflow.com/questions/61396267
复制相似问题