Javascript 如何拆分命令
所以我有一个poll命令,它将Javascript 如何拆分命令,javascript,discord.js,Javascript,Discord.js,所以我有一个poll命令,它将&poll[pollEvent][agreeStatement][discoverstatement] 这是我的密码 if (command === 'poll') { let pollMessage = args[0] let aggree = args[1]; let disagree = args[2]; const agreeEmoji = '<a:verified:75365428733
&poll[pollEvent][agreeStatement][discoverstatement]
这是我的密码
if (command === 'poll') {
let pollMessage = args[0]
let aggree = args[1];
let disagree = args[2];
const agreeEmoji = '<a:verified:753654287338569778>'
const disagreeEmoji = '<:no:753654286134542447>'
if (!pollMessage) return message.reply("What are you going to poll?")
if (!aggree) return message.reply('Please insert the aggree statement')
if (!disagree) return message.reply("Please insert the disagree statement")
const pollEmbed = new Discord.MessageEmbed()
.setTitle('Poll!')
.setColor('#00FF2A')
.addFields(
{ name: pollMessage, value: `
<a:verified:753654287338569778> ${aggree}
<:no:753654286134542447> ${disagree}`}
)
message.delete();
let msg = await message.channel.send(pollEmbed);
await msg.react('753654287338569778')
await msg.react('753654286134542447')
const filter = (reaction, user) => reaction.emoji.id === '753654287338569778' || reaction.emoji.id === '753654286134542447'
const result = await msg.awaitReactions(filter, {time: 5000}).then((collected) => {
if (msg.reactions.cache.get('753654287338569778').count-1 <= 0 || msg.reactions.cache.get('753654286134542447').count-1 <= 0) return message.channel.send("No one voted sorry this poll is aborted")
let resutEmbed = new Discord.MessageEmbed()
.setTitle('Voting Complete!')
.setColor('#00FF2A')
.addFields(
{name: pollMessage, value: `<a:verified:753654287338569778> ${aggree} => ${collected.get('753654287338569778').count-1}
<:no:753654286134542447> ${disagree} => ${collected.get('753654286134542447').count-1}`}
)
msg.edit(resutEmbed)
msg.reactions.removeAll()
})
}
if(命令=='poll'){
让pollMessage=args[0]
设aggree=args[1];
让不同意=args[2];
const agreemoji='看起来像是数组解构
和rest操作符
ES6s功能将方便您的命令
您可以通过执行以下操作来“解构”您的args
数组元素,并为每个元素指定一个变量名:
//其中:let[word1,word2,…rest]=args
//同:
让[word1,word2,…rest]=[应该”,“我”,“去”,“外面”,“是”,“否];
通过执行此操作,您可以开始使用命令条目,无论这些条目的长度如何。此处rest
也声明为变量,并包含未命名元素的“rest”:
console.log(rest);
//将提示•>['go','Out','yes','no']
如果要启用每次轮询的个性化响应,您的实现可以升级到:
let[…问题,选项a,选项b]=args;
在这种情况下,这很好,不过我建议如果您只是想实现yes/no
poll,就不要将命令的答案选项个性化
如果将来您希望提供两个以上的答案选项,您可以设计命令,在特殊字符后检测它们,如:
&poll What's the coolest pet: dog, cat, panda
(特殊字符为:
此处)
您还可以考虑执行<代码>数组.Cube()/<代码>方法和<代码> String .Strut.()/Case>处理命令条目,作为<代码>…REST < /COD>操作方式只适用于单个措辞的回答选项:<代码>确定/NA< /COD>,如果您得到如下条目,错误将出现:
&poll Should I go outside?: sure thing nah
由于选项a
将包含东西
/和选项b
包含nah
我认为我们需要看到更多的上下文,比如在args中使用的传递的参数。