【问题标题】:Message collector in Discord.JS not runningDiscord.JS 中的消息收集器未运行
【发布时间】:2021-12-18 11:06:51
【问题描述】:

我有一个基本命令可以在我的 discord.js v13 机器人上测试消息收集器功能。

当我运行机器人时它没有崩溃,但该功能没有正确加载,因为它有一个错误。

import { ICommand } from 'wokcommands'
import { Message } from 'discord.js'

export default {
    category: 'Testing',
    description: 'Tests the collector system',
    hidden: true,

    callback: ({ message, channel }) => {
        message.reply('Answer your username')

        const filter = (m: Message) => {
            m.author.id === message.author.id
        }

        const collector = channel.createMessageCollector({
            filter,
            max: 1,
            time: 1000 * 10,
        })

        collector.on('collect', message => {
            console.log(message.content)
        })
        
        collector.on('end', collected => {
            if (collected.size === 0) {
                message.reply('You did not provide your username')
                return
            }

            let text = 'Collected:\n\n'

            collected.forEach((message) => {
                text += `${message.content}\n`
            })

            message.reply(text)
        })
    }
} as ICommand

当我调用过滤器时,错误出现在收集器函数内的行中。 IDE 给我一个错误:

Type '(m: Message) => void' 不可分配给 type '收集器过滤器'。类型“void”不可分配给类型 '布尔值 |承诺”。

我明白错误的意思,但我该如何解决呢?

【问题讨论】:

  • m 在哪里以及如何定义?

标签: javascript discord.js


【解决方案1】:

您的filter 需要返回一个布尔值。目前你没有返回任何东西,你只是比较两个变量。其中任何一个都可以:

const filter = (m: Message) => {
  return m.author.id === message.author.id
}
const filter = (m: Message) => m.author.id === message.author.id

【讨论】:

    猜你喜欢
    • 2020-12-30
    • 1970-01-01
    • 2021-03-31
    • 2019-07-30
    • 2020-10-25
    • 2022-01-21
    • 2022-11-17
    • 2022-01-12
    • 2019-11-25
    相关资源
    最近更新 更多