discord.js 删除包含空格的消息

Posted

技术标签:

【中文标题】discord.js 删除包含空格的消息【英文标题】:discord.js delete message if it contains a space 【发布时间】:2020-12-03 12:38:49 【问题描述】:

我正在尝试让我的机器人删除包含空格的消息,但它似乎不起作用。

oneword.on('message', message => 
    if (Attivo == true) 
        messaggio.push(message.content)
        console.log("il bot riceve un messaggio")
        if (message.content.includes(" ")) 
            message.delete(200)
        
        return
    
)

但每当我尝试执行此操作(我输入命令“;start”)时,它就会崩溃并出现此错误。

    /home/broog/discord-bot-terzo/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 (/home/broog/discord-bot-terzo/node_modules/discord.js/src/structures/Message.js:501:44)
        at Client.oneword.on.message (/home/broog/discord-bot-terzo/index.js:16:55)
        at Client.emit (events.js:203:15)
        at MessageCreateAction.handle (/home/broog/discord-bot-terzo/node_modules/discord.js/src/client/actions/MessageCreate.js:31:14)
        at Object.module.exports [as MESSAGE_CREATE] (/home/broog/discord-bot-terzo/node_modules/discord.js/src/client/websocket/handlers/MESSAGE_CREATE.js:4:32)
        at WebSocketManager.handlePacket (/home/broog/discord-bot-terzo/node_modules/discord.js/src/client/websocket/WebSocketManager.js:386:31)
        at WebSocketShard.onPacket (/home/broog/discord-bot-terzo/node_modules/discord.js/src/client/websocket/WebSocketShard.js:436:22)
        at WebSocketShard.onMessage (/home/broog/discord-bot-terzo/node_modules/discord.js/src/client/websocket/WebSocketShard.js:293:10)
        at WebSocket.onMessage (/home/broog/discord-bot-terzo/node_modules/ws/lib/event-target.js:125:16)
        at WebSocket.emit (events.js:198:13)

这里发生了什么,我该如何解决?

这是我的第一个 discord 机器人,所以我对 discord.js(甚至 javascript)真的很陌生

(是的,我知道这不是所有代码,但相信我,如果我离开第二个 if 语句,它会起作用)

【问题讨论】:

【参考方案1】:

我猜你正在尝试删除超时的消息。您的代码使用 Discord.js v11 运行。目前最新版本为v12。你应该使用一个选项对象:

oneword.on ('message', message=>
    if(Attivo == true)
    messaggio.push(message.content)                            
    console.log("il bot riceve un messaggio")
    if (message.content.includes(" ")) message.delete( timeout: 200 )
    return
        
    

【讨论】:

以上是关于discord.js 删除包含空格的消息的主要内容,如果未能解决你的问题,请参考以下文章

如何在 index.js [机器人的启动文件] 中创建一个 discord.js 命令,该命令在发送包含“hi”的消息时删除该消息

Discord.js 机器人的代码响应错误“TypeError:”

Node.js + Discord.js:无法读取未定义的属性“类”

Discord.js 删除命令消息

Discord.js 用于删除所有不是机器人命令的消息

在 Discord JS 中删除消息通知