当前位置: 首页 > 知识库问答 >
问题:

不一致js删除函数

况景龙
2023-03-14

我的问题是,我在尝试删除不一致的邮件时收到错误。

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'
}

我还尝试了消息。删除(1000),但我收到一个错误,告诉我消息未定义

当我删除试图删除消息的代码时,程序就会工作。

共有3个答案

姜弘新
2023-03-14

你可以用两种方法

>

  • SetTimeout方法

    setTimeout(() => {
        msg.delete()
    }, 1000 // <- change this according to your requirement in miliseconds)
    

    您可以在命令的参数中添加超时

    只是代替了

    msg.delete(3000);

    msg.delete({timeout: 1000});

    要执行批量删除,您可以执行以下操作

    setTimeout(() => {
        message.channel.bulkDelete(var)
    }, 1000 // <- change this according to your requirement in miliseconds)
    

    这可以帮助您删除多达100条消息。

    您可以在这里比较文档-Discord.jsv11和Discord.jsv12

  • 孟璞
    2023-03-14

    通过删除msg更改您的代码。删除(3000)msg。删除({timeout:3000}),这将修复错误,因为它在discord中被更改。jsv12。

    您可以比较文档-https://www.npmjs.com/package/discord.js-v11
    您可以比较文档-https://discord.js.org/#/

    陆野
    2023-03-14

    正如错误消息所说,您需要向delete方法传递nothing或object。

    因为不和。js@13以及上面的消息。delete()方法不再接受选项。您现在需要像这样使用setTimeout

    信息。delete()方法不再接受任何选项,需要手动执行定时删除。

    setTimeout(() => msg.delete(), 1000);
    

    您可以在文档中查找它。您试图做的事情如下所示:

    client.on('message', msg => {
      if(msg.content.startsWith(".del ")) {
    
        msg.delete({timeout: 1000}); //Supposed to delete message
    
      }
    });
    
     类似资料:
    • 最近,我开始研究一个不和谐的机器人,并添加了斜杠命令。 这是我的interactionHandler.js 有没有办法删除命令,因为我找不到方法。我想得到命令的ID,但是我不知道怎么做。感谢所有的帮助者:)Discord.js v13

    • 我对JavaScript非常陌生,所以我决定通过创建一个不和谐机器人来挑战自己。我想做的是检测用户是否有名为“棒”的项目,如果他有,机器人会回答“你已经拥有这个项目了!”否则,机器人将让用户购买该物品。当我让它删除数组中的“临时”时,它会删除整个数组,我如何修复这个问题?如果有任何方法可以解决这个问题并更好地“优化”它,那将是惊人的。 这是一段代码。 变量为:const db=require('q

    • 我正试图为不和谐做一个会员机器人。机器人将从API中检索用户ID和角色,并需要从用户中删除此角色。 首先,我要了解特定用户所在的公会: 然后,我通过名称查找角色: 然后我试图通过他的ID找到用户,并删除上面的角色。但是,用户始终未定义: 通常,当我添加一个角色时,我会使用消息对象,然后像这样使用消息中的公会: 但是,我从API中检索数据,因此我必须以另一种方式进行。 我的脚本的完整代码:

    • 好的,所以我搜索了一会儿,但是我找不到任何关于如何删除不协调频道中所有消息的信息。我所说的所有信息是指在该频道中所写的每一条信息。有什么线索吗?

    • 我正在为我的discord服务器制作一个机器人,但我遇到了问题。我想要的是,当最后一个人离开一个语音频道(它是由机器人生成的)时,我想要删除该语音频道。 我也考虑过测试任何空的语音频道并删除它们,但我不知道如何做。