单个参数中的多个选项
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
}
这很好用!
我正在我的机器人中开发票务系统。我想要:-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
}
这很好用!