我不确定为什么未注释的开关不会触发。
应该发生的是用户输入D [int],例如D20。 然后脚本将D和字符串分开。将字符串转换为标记为X的实际int。然后,如果该int大于0,它将提供0到X之间的随机数。
但是,当(X <0)时,case语句不会触发:
我对这一切都是超级新手,因此对您的帮助深表感谢!
代码附在下面。
var Discord = require('discord.io');
var logger = require('winston');
var auth = require('./auth.json');
function getRndInteger(min, max) {
return Math.floor(Math.random() * (max - min + 1) ) + min;
}
// Configure logger settings
logger.remove(logger.transports.Console);
logger.add(new logger.transports.Console, {
colorize: true
});
logger.level = 'debug';
// Initialize Discord Bot
var bot = new Discord.Client({
token: auth.token,
autorun: true
});
bot.on('ready', function (evt) {
logger.info('Connected');
logger.info('Logged in as: ');
logger.info(bot.username + ' - (' + bot.id + ')');
});
bot.on('message', function (user, userID, channelID, message, evt) {
// Our bot needs to know if it will execute a command
// It will listen for messages that will start with `!`
if (message.substring(0, 1) == 'D') {
var args = message.substring(1).split(' ');
var cmd = args[0];
var X = Number(cmd)
args = args.splice(1);
switch(cmd) {
// !ping
case (X > 0):
bot.sendMessage({
to: channelID,
message: getRndInteger(1,X)
});
break;
/* case '4':
bot.sendMessage({
to: channelID,
message: getRndInteger(1,4)
});
break;
case '6':
bot.sendMessage({
to: channelID,
message: getRndInteger(1,6)
});
break;
case '8':
bot.sendMessage({
to: channelID,
message: getRndInteger(1,8)
});
break;
case '10':
bot.sendMessage({
to: channelID,
message: getRndInteger(1,10)
});
break;
case '12':
bot.sendMessage({
to: channelID,
message: getRndInteger(1,12)
});
break;
case '20':
bot.sendMessage({
to: channelID,
message: getRndInteger(1,20)
});
break;
case '100':
bot.sendMessage({
to: channelID,
message: getRndInteger(1,100)
});
break;
*/
// Just add any case commands if you want to..
}
}
});