单个参数中的多个选项

Multiple Options in a single argument

我正在我的机器人中开发票务系统。我想要:-ticket new-ticket close。但我需要知道如何对这些命令有两种不同的反应。因此,当玩家输入 -ticket new <subject> 时,它会打开一张新票,在我的日志频道中发送一条日志消息,其中说明票的主题并提及我的支持团队角色。或者当玩家键入 -ticket close <subject> 时,它会关闭现有的票证并在我的记录频道中发送一条记录消息,其中说明票证的主题。

我试过了 exports.run(client, message, arg1, arg2, subject) => { if (args.slice(1).join(''))
exports.run(client, message, arg1, arg2, subject) => { if (args[1] === '')

我当前的代码

exports.run = (client, message, arg1, arg2, subject) => {
    let error = new Discord.RichEmbed()
    .setColor("RED")
    .setFooter("NebulaCraft")
    .setTimestamp()
    .setDescription("An error accoured please try again. If this reacours please contact support.")
    if (args.slice(1).join("new")) {
        let new1 = new Discord.RichEmbed()
        .setColor("GREEN")
        .setFooter("NebulaCraft")
        .setTimestamp()
        .setTitle('New Ticket')
        .addField('Author', message.author)
        .addField('Subject', `${subject}`)
        client.channels.get('539852428565282851').send(new1).catch(console.error)
        return (message.channel.send(error).catch(console.error))
    }
    if (args.slice(1).join("close")) {
        let close1 = new Discord.RichEmbed()
        .setColor("GREEN")
        .setFooter("NebulaCraft")
        .setTimestamp()
        .setTitle('Ticket Closed')
        .addField('Closed By', message.author)
        .addField('Subject', `${subject}`)
        client.channels.get('539852428565282851').send(close1).catch(console.error)
        return (message.channel.send(error).catch(console.error))
    }
}

我希望得到一个代码,它只为一个 arg 创建 2 个选项。我想让它为 2 个选项发送 2 条不同的消息。

像以前一样保持导出 exports.run(client, message, args) => 最终代码应该是:

exports.run = (client, message, args) => {
    let error = new Discord.RichEmbed()
    .setColor("RED")
    .setFooter("NebulaCraft")
    .setTimestamp()
    .setDescription("An error accoured please try again. If this reacours please contact support.")
    if (args[0] === 'new') {
        let new1 = new Discord.RichEmbed()
        .setColor("GREEN")
        .setFooter("NebulaCraft")
        .setTimestamp()
        .setTitle('New Ticket')
        .addField('Author', message.author)
        .addField('Subject',  args.slice(1).join(' '))
        client.channels.get('539852428565282851').send(new1).catch(console.error)
        return (message.channel.send(error).catch(console.error))
    }
    if (args[0] === 'close') {
        let close1 = new Discord.RichEmbed()
        .setColor("GREEN")
        .setFooter("NebulaCraft")
        .setTimestamp()
        .setTitle('Ticket Closed')
        .addField('Closed By', message.author)
        .addField('Subject',  args.slice(1).join(' '))
        client.channels.get('539852428565282851').send(close1).catch(console.error)
        return (message.channel.send(error).catch(console.error))
    }
}
if (args[0] === 'option1') {
    // Command specific here
} else if (args[0] === 'option2') {
    // Command specific here
} else if (args[0] === 'option3') {
    // Command specific here
} else {
    // If none of the options match
    // Command error specific here
}

这很好用!