diff --git a/bin/tipbot.js b/bin/tipbot.js index 7ebd705..496a0be 100644 --- a/bin/tipbot.js +++ b/bin/tipbot.js @@ -194,20 +194,27 @@ client.addListener('message', function(from, channel, message) { switch(command) { case 'rain': - var match = message.match(/^.?rain ([\d\.]+) ?(\d+)?/); - if(match == null || !match[1]) { + var match = message.match(/^.?rain (random)?([\d\.]+) ?(\d+)?/); + if(match == null || !match[2]) { client.say(channel, 'Usage: !rain [max people]'); return; } - var amount = Number(match[1]); - var max = Number(match[2]); + var random = match[1]; + var amount = Number(match[2]); + var max = Number(match[3]); if(isNaN(amount)) { client.say(channel, settings.messages.invalid_amount.expand({name: from, amount: match[2]})); return; } + if(random) { + var min = settings.coin.min_rain; + var maxAmount = amount; + amount = Math.floor(Math.random() * (maxAmount - min + 1)) + min; + } + if(isNaN(max) || max < 1) { max = false; } @@ -260,19 +267,26 @@ client.addListener('message', function(from, channel, message) { }) break; case 'tip': - var match = message.match(/^.?tip (\S+) ([\d\.]+)/); + var match = message.match(/^.?tip (\S+) (random)?([\d\.]+)/); if(match == null || match.length < 3) { client.say(channel, 'Usage: !tip ') return; } var to = match[1]; - var amount = Number(match[2]); + var random = match[2]; + var amount = Number(match[3]); if(isNaN(amount)) { - client.say(channel, settings.messages.invalid_amount.expand({name: from, amount: match[2]})); + client.say(channel, settings.messages.invalid_amount.expand({name: from, amount: match[3]})); return; } + if(random) { + var min = settings.coin.min_tip; + var max = amount; + amount = Math.floor(Math.random() * (max - min + 1)) + min; + } + if(to.toLowerCase() == from.toLowerCase()) { client.say(channel, settings.messages.tip_self.expand({name: from})); return;