You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

discord.js v12如何实现带输入校验的问答式清除消息指令

discord.js v12 问答式clear指令校验修复方案

你现有代码的核心问题除了缺少输入校验外,还存在直接将用户消息对象传入bulkDelete的逻辑错误,修正后的完整代码如下:

module.exports = {
    name: 'clearr',
    description: "Clear messages!",
    async execute(client, message, args) {
        if(!args[0]) {
            // 过滤器仅匹配触发指令的用户,如需限制特定用户可改回你原有的固定ID
            const filter = m => m.author.id === message.author.id
            message.channel.send(`How many messages do you want to delete?`).then(() => {
                message.channel.awaitMessages(filter, {
                    max: 1,
                    time: 10000,
                    errors: ['time']
                })
                .then(collected => {
                    const userReply = collected.first()
                    const deleteCount = parseInt(userReply.content)
                    // 新增输入校验逻辑
                    if(isNaN(deleteCount) || deleteCount < 1 || deleteCount > 100) {
                        return message.channel.send("Not a valid value").then(msg => msg.delete({timeout: 5000}))
                    }
                    // 执行批量删除,第二个参数true自动过滤14天以上无法删除的消息,避免API报错
                    message.channel.bulkDelete(deleteCount, true)
                    .then(() => {
                        message.channel.send (`\`${deleteCount} message\` successfully deleted!`)
                        .then(msg => {
                            msg.delete({ timeout: 5000 })
                        })
                        .catch(console.error);
                    })
                })
                // 新增超时提示,可选配置
                .catch(() => {
                    message.channel.send("Request timed out, please try again").then(msg => msg.delete({timeout:5000}))
                })
            })
        }
    }
}

核心修改说明

  • 用parseInt()转换用户输入内容,非数字内容转换结果为NaN
  • 校验逻辑同时覆盖三种非法场景:非数字输入、删除数量小于1、删除数量大于100(Discord API限制bulkDelete最多一次性删除100条消息)
  • 修复原代码直接传消息对象给bulkDelete的错误,改为传入转换后的合法数字
  • 额外增加超时场景的友好提示,可根据需求自行删除

内容的提问来源于stack exchange,提问作者user17263435

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 01:39:07