【发布时间】:2021-04-19 01:49:14
【问题描述】:
我正在编写一个回复特定命令组的机器人。为此,我打算使用 Switch 条件,它在我的第一次部署中完美运行。
bot.on("message", function(message) {
if(!message.content.startsWith(prefix)) return;
message.content = message.content.toLowerCase();
let args = message.content.substring(prefix.length).split(" ");
switch(args[0]){
case "salecs":
let dt = new Date();
let hr = dt.getHours();
let min = dt.getMinutes();
if (min < 10) {
hr = hr*10
}
let tie = `${hr}${min}`;
let ti = parseInt(tie);
if (ti < 1729 && ti > 1529) {
message.reply('https://es.wikipedia.org/wiki/Almuerzo');
}else if (ti < 44 || ti > 2259) {
message.reply('https://es.wikipedia.org/wiki/Cena');
}else
message.channel.send('Salen esos tiritos? \n@everyone');
break;
}
});
但是当我尝试输入新案例时,它停止了工作。它不仅不执行新的案例,它也没有原来的工作。
bot.on("message", function(message) {
if(!message.content.startsWith(prefix)) return;
message.content = message.content.toLowerCase();
let args = message.content.substring(prefix.length).split(" ");
switch(args[0]){
case "salecs":
let dt = new Date();
let hr = dt.getHours();
let min = dt.getMinutes();
if (min < 10) {
hr = hr*10
}
let tie = `${hr}${min}`;
let ti = parseInt(tie);
if (ti < 1729 && ti > 1529) {
message.reply('https://es.wikipedia.org/wiki/Almuerzo');
}else if (ti < 44 || ti > 2259) {
message.reply('https://es.wikipedia.org/wiki/Cena');
}else
message.channel.send('Salen esos tiritos? \n@everyone');
break;
case "salelol":
let dt = new Date();
let hr = dt.getHours();
let min = dt.getMinutes();
if (min < 10) {
hr = hr*10
}
let tie = `${hr}${min}`;
let ti = parseInt(tie);
if (ti < 1729 && ti > 1529) {
message.reply('https://es.wikipedia.org/wiki/Almuerzo');
}else if (ti < 44 || ti > 2259) {
message.reply('https://es.wikipedia.org/wiki/Cena');
}else
message.channel.send('Salen esos locitos? \n@everyone');
break;
default:
message.reply('No lo tengo ese comando, rey.');
break;
}
});
我一直在寻找错误,但我找不到哪里出错了,我希望这里的人能够发现并纠正我。
【问题讨论】:
-
你能不能从 switch 改为 if..else if()...else。我认为处理特定情况更容易。
标签: javascript node.js heroku discord.js