Bots Home
|
Create an App
Kiradenial
Author:
apptester1
Description
Source Code
Launch Bot
Current Users
Created by:
Apptester1
// Title: "KiraDivine's Mbot" // Author: d_styles // April 30 2018 // Filters grey comments. // Cum denial timer that starts when tipped for cum denial // Hidden cam for freeloaders, activated when cum denial finishes or manual // Guess the numbers. Will add or subtract denial time when winning // Variables var LowTipArray = []; //users who tipped too little to get access before the cam hides var alwaysInShowArray = []; //users who always have access to the hidden cam var kenoArray = []; //Numbers in keno var kenoExcludeArray = []; //Numbers excluded from winning a prize var winningNumbersArray = []; //Numbers that will win a prize [number][add or subtract] var xtraPrizeArray = []; //Array with extra prizes var NumUsersLow = 0; //Number of users in LowTipArray var CumDenialOn = false; var KenoOn = false; var DenialEndTime = 0; var NoticeTime = 5; var idDenial; //To cancel setTimeout for denial notice var TipsForHidden = 0; var HiddenCamMessage = '\nCum show is hidden. ' + cb.settings.min_tokens_showcam_started + ' tokens single tip will give you access to the cumshow.'; mutereasons = [ {regexp: /(?=.*\b(f?ck|finger|my|suck|show|visit|check|click|smell|zoom|flash|blow|down|open|where|fuck|see|touch|spread|lick)\b)(?=.*\b(bio|room|profile|site|cam|titties|body|from|live|panties|you|ass|butt?|booty|clit|pussy|boobies|boobs?|bobs?|tits?|vagina|legs|nipples?|breasts?|asshole|dick|cock|penis|vagina|face)\b)/i, notice: 'demands', index: 0}, {regexp: /:\b/, notice: 'graphics', index: 1}, {regexp: /(.)\1{2}/, notice: 'sticky keys', index: 2}, {regexp: /((?=.*pm)|(?=.*c2c)|(?=.*private)|(?=.*pvt)|(?=.*prvt?)|(?=.*message))/i, notice: 'PM requests', index: 3}, {regexp: /((?=.*1.?f cam)|(?=.*leaked)|(?=.*lanus)|(?=.*textt)|(?=.*texxt)|(?=.*sexlife)|(?=.*citylove)|(?=.*sky)|(?=.*www)|(?=.*streamingnaked)|(?=.*1.?female)|(?=.*pornhub)|(?=.*pornmeds)|(?=.*snapmilfs)|(?=.*viagra)|(?=.*cialis)|(?=.*online)|(?=.*erotimo)|(?=.*freecam)|(?=.*freecambook)|(?=.*amecam)|(?=.*1.? f)|(?=.*bestwork)|(?=.*p.*r.*e.*m.*i.*u.*m.*c.*h.*e.*a.*t)|(?=.*patched)|(?=.*ellagocam)|(?=.*visit this)|(?=.*dot)|(?=.*com)|(?=.*fucktubate)|(?=.*tokens)|(?=.*swipegirls)|(?=.*generator))/i, notice: 'spam', index: 4}, {regexp: /\b[A-Z]{2,}\b/, notice: 'all caps', index: 5}, {regexp: /((?=.*bb)|(?=.*baby)|(?=.*babby)|(?=.*daddy)|(?=.*babe))/i, notice: 'bb or baby', index: 6}, {regexp: /((?=.*f.?e.?e.?t)|(?=.*f33t?)|(?=.*foot)|(?=.*dick)|(?=.*cock)|(?=.*soles?)|(?=.*toes?))/i, notice: 'feet', index: 7}, {regexp: /[^\x00-\x7F]+/, notice: 'non-english', index: 8}, {regexp: /((?=.*bitch)|(?=.*slut)|(?=.*dumbass)|(?=.*mommy)|(?=.*mom)|(?=.*mother)|(?=.*escort)|(?=.*milf)|(?=.*piss)|(?=.*whore)|(?=.*putt?a)|(?=.*ugly)|(?=.*fat)|(?=.*pee)|(?=.*poo)|(?=.*peeing)|(?=.*fart)|(?=.*cunt)|(?=.*filthy)|(?=.*fuckable)|(?=.*fuck))/i, notice: 'rudeness', index: 9}, {regexp: /((?=.*please?)|(?=.*plzz?)|(?=.*pregnant?)|(?=.*behind?)|(?=.*pls)|(?=.*pleaze?)|(?=.*pleez)|(?=.*plee?se)|(?=.*instagram)|(?=.*twitter)|(?=.*sky?pe?)|(?=.*milk)|(?=.*tips?))/i, notice: 'demands', index: 10}, {regexp: /((?=.*mast.?rbate)|(?=.*squirt)|(?=.*fist)|(?=.*kiss)|(?=.*strip)|(?=.*cum)|(?=.*twerk)|(?=.*ass)|(?=.*boobs?)|(?=.*pussy)|(?=.*doggy)|(?=.*doggie)|(?=.*anal)|(?=.*zoom)|(?=.*show)|(?=.*tits)|(?=.*titties)|(?=.*stand up)|(?=.*face)|(?=.*watch my cam)|(?=.*blowjob)|(?=.*watch me)|(?=.*deepthroat))/i, notice: 'demands', index: 11}, ] cb.settings_choices = [ {name: 'denial_tokens', label: 'Enter the token amount for cum denial.', type: 'int', minValue: 1, maxValue: 1000000, defaultValue: 1}, {name: 'denial_time', label: 'Enter the cum denial time in minutes (max 1440).', type: 'int', minValue: 10, maxValue: 1440, defaultValue: 60}, {name: 'cancel_denial_tokens', label: 'Enter the token amount for cancelling cum denial.', type: 'int', minValue: 1, maxValue: 1000000, defaultValue: 1}, {name: 'use_keno', label: 'Use keno during cum denial? (from 1 to 100)', type: 'choice', choice1: 'Yes', choice2: 'No', defaultValue: 'Yes'}, {name: 'excluded_from_keno', label: 'Exclude these numbers from winning. (enter the numbers separated with a comma and no spaces)', type: 'str', minLength: 1, maxLength: 1000, defaultValue: '', required: false}, {name: 'total_numbers_winning', label: 'How many winning numbers will there be?', type: 'int', minValue: 1, maxValue: 100, defaultValue: 1}, {name: 'add_time_winning', label: 'How much time is added/subtracted when a number is guessed?', type: 'int', minValue: 1, maxValue: 60, defaultValue: 5}, {name: 'extra_prize1', label: 'Special keno prize item 1.', type: 'str', minLength: 1, maxLength: 100, defaultValue: '', required: false}, {name: 'extra_prize2', label: 'Special keno prize item 2.', type: 'str', minLength: 1, maxLength: 100, defaultValue: '', required: false}, {name: 'extra_prize3', label: 'Special keno prize item 3.', type: 'str', minLength: 1, maxLength: 100, defaultValue: '', required: false}, {name: 'extra_prize4', label: 'Special keno prize item 4.', type: 'str', minLength: 1, maxLength: 100, defaultValue: '', required: false}, {name: 'extra_prize5', label: 'Special keno prize item 5.', type: 'str', minLength: 1, maxLength: 100, defaultValue: '', required: false}, {name: 'min_tokens_showcam', label: 'Total tip amount to join the cam before it\'s hidden.', type: 'int', minValue: 1, maxValue: 1000000, defaultValue: 25}, {name: 'min_tokens_showcam_started', label: 'Tip amount to join the cam when it\'s hidden.', type: 'int', minValue: 1, maxValue: 1000000, defaultValue: 35}, {name: 'auto_start_on_end_denial', label: 'Hide the cam automatically after cum denial finished?', type: 'choice', choice1: 'Yes', choice2: 'No', defaultValue: 'Yes'}, {name: 'always_show_green', label: 'Always show the hidden cam to green members?', type: 'choice', choice1: 'Yes', choice2: 'No', defaultValue: 'Yes'}, {name: 'always_show_to_these', label: 'Always show the hidden cam to these members? (enter the names separated with a comma and no spaces)', type: 'str', minLength: 1, maxLength: 1000, defaultValue: '', required: false} ]; cb.onEnter(function(user) { if (user['in_fanclub'] && cb.settings.always_show_green == 'Yes') { if (!cbjs.arrayContains(cb.limitCam_allUsersWithAccess(), user['user'])) { cb.limitCam_addUsers(user['user']); } cb.sendNotice(user['user'] + ', as a fan member you will have free access \'if\' the hidden cam will be used.',user['user'],'#FFA749','','bold'); } else if (alwaysInShowArray.indexOf(user['user']) >= 0) { if (!cbjs.arrayContains(cb.limitCam_allUsersWithAccess(), user['user'])) { cb.limitCam_addUsers(user['user']); cb.sendNotice(user['user'] + ', you will be given free access \'if\' the hidden cam will be used.',user['user'],'#FFA749','','bold'); } } }); cb.onMessage(function (msg) { if ((!msg['has_tokens']) && (!msg['is_mod']) && (!msg['in_fanclub']) && (!is_broadcaster(msg['user']))) { checkmsg(msg); } else if (is_broadcaster(msg['user'])) { if (msg['m'].indexOf('/starttimer') == 0 && CumDenialOn == false) { CumDenialOn = true; if (cb.settings.use_keno == 'Yes') { KenoOn = true; showBoard(''); } NoticeTime = 5; DenialEndTime = checkTime() + cb.settings.denial_time; idDenial = cb.setTimeout(timeleftnotice, NoticeTime * 60000); cb.sendNotice(cb.settings.denial_time + ' Minutes cum denial while edging started.','','#C287C2','','bold'); cb.sendNotice('A new ' + cb.settings.denial_tokens + ' token tip will add ' + cb.settings.denial_time + ' minutes to the remaining time.','','#C287C2','','bold'); msg['X-Spam'] = true; } else if (msg['m'].indexOf('/hidecam') == 0) { if (!cb.limitCam_isRunning()) { cb.sendNotice(cb.room_slug + ' has started the hidden cam show.','','#FFA749','','bold'); cb.sendNotice('Press F5 if you have access and don\'t see the cam.','','#FFA749','','bold'); cb.sendNotice('No access? A single tip of ' + cb.settings.min_tokens_showcam_started + ' tokens will show the cam.','','#FFA749','','bold'); cb.limitCam_start(HiddenCamMessage); } else { cb.sendNotice('Cam already hidden.',cb.room_slug,'#FFA749','','bold'); } msg['X-Spam'] = true; } else if (msg['m'].indexOf('/showcam') == 0) { if (cb.limitCam_isRunning()) { cb.limitCam_stop(); cb.sendNotice(cb.room_slug + ' has stopped the hidden cam show.','','#FFA749','','bold'); cb.sendNotice('Press F5 if you don\'t see the cam.','','#FFA749','','bold'); } else { cb.sendNotice('Cam is not hidden.',cb.room_slug,'#FFA749','','bold'); } msg['X-Spam'] = true; } else if (msg['m'].indexOf('/stopkeno') == 0) { if (KenoOn == true) { KenoOn = false; cb.sendNotice(cb.room_slug + ' has stopped denial keno.','','#FFA749','','bold'); } else { cb.sendNotice('Keno is not running.',cb.room_slug,'#FFA749','','bold'); } msg['X-Spam'] = true; } else if (msg['m'].indexOf('/startkeno') == 0) { if (KenoOn == false && CumDenialOn == true) { KenoOn = true; cb.sendNotice(cb.room_slug + ' has started denial keno.','','#FFA749','','bold'); } else { cb.sendNotice('Keno is already running or not in cum denial.',cb.room_slug,'#FFA749','','bold'); } msg['X-Spam'] = true; } else if (msg['m'].indexOf('/helpmbot') == 0) { mbotHelp(); msg['X-Spam'] = true; } else if (msg['m'].indexOf('/adduser') == 0) { var str_subtract = msg['m'].substring(8).trim(); if (!cb.limitCam_userHasAccess(str_subtract) && !(str_subtract == '')) { cb.limitCam_addUsers(str_subtract); cb.sendNotice(str_subtract + ', you will be given free access \'if\' the hidden cam will be used.',str_subtract,'#FFA749','','bold'); cb.sendNotice(str_subtract + ' now has access to the hidden cam.',cb.room_slug,'#FFA749','','bold'); } msg['X-Spam'] = true; } else if (msg['m'].indexOf('/hiddentips') == 0) { cb.sendNotice('Tokens received to show the cam when it was hidden: ' + TipsForHidden ,cb.room_slug,'#FFA749','','bold'); msg['X-Spam'] = true; } else if (msg['m'].indexOf('/listusers') == 0) { listUsersWithAccess(); msg['X-Spam'] = true; } else if (msg['m'].indexOf('/board') == 0) { if (KenoOn == true) { showBoard(''); cb.sendNotice('Keno board send to the room.',cb.room_slug,'#FFA749','','bold'); msg['X-Spam'] = true; } else { cb.sendNotice('Keno board not active.',cb.room_slug,'#FFA749','','bold'); msg['X-Spam'] = true; } } } else if (msg['m'].indexOf('/board') == 0) { if (KenoOn == true) { showBoard(msg['user']); msg['X-Spam'] = true; } else { cb.sendNotice('Keno board not active.',msg['user'],'#FFA749','','bold'); msg['X-Spam'] = true; } } }); cb.onTip(function (tip) { if (parseInt(tip['amount']) == cb.settings.denial_tokens) { if (!cb.limitCam_userHasAccess(tip['from_user'])) { allowAccess(tip['from_user']); } if (CumDenialOn == true) { DenialEndTime += cb.settings.denial_time; cb.sendNotice(cb.settings.denial_time + ' Minutes cum denial while edging added to the remaining time by ' + tip['from_user'] + '.','','#C287C2','','bold'); cb.cancelTimeout(idDenial); timeleftnotice(); } else { CumDenialOn = true; NoticeTime = 5; DenialEndTime = checkTime() + cb.settings.denial_time; idDenial = cb.setTimeout(timeleftnotice, NoticeTime * 60000); cb.sendNotice(cb.settings.denial_time + ' Minutes cum denial while edging started by ' + tip['from_user'] + '.','','#C287C2','','bold'); cb.sendNotice('A new ' + cb.settings.denial_tokens + ' token tip will add ' + cb.settings.denial_time + ' minutes to the remaining time.','','#C287C2','','bold'); if (cb.settings.use_keno == 'Yes') { KenoOn = true; showBoard(''); } if (cb.limitCam_isRunning()) { cb.limitCam_stop(); cb.sendNotice('Hidden cam show stopped, cam is open.',cb.room_slug,'#FF2222','','bold'); cb.sendNotice('Press F5 if you don\'t see the cam.','','#FF2222','','bold'); } } } else if (parseInt(tip['amount']) == cb.settings.cancel_denial_tokens) { if (!cb.limitCam_userHasAccess(tip['from_user'])) { allowAccess(tip['from_user']); } if (CumDenialOn == true) { CumDenialOn = false; cb.cancelTimeout(idDenial); DenialEndTime = 0; cb.sendNotice('Cum denial while edging has been cancelled by ' + tip['from_user'] + '.','','#C287C2','','bold'); if (cb.settings.auto_start_on_end_denial == 'Yes') { if (!cb.limitCam_isRunning()) { cb.sendNotice(cb.room_slug + ' has started the hidden cam show.','','#FFA749','','bold'); cb.sendNotice('Press F5 if you have access and don\'t see the cam.','','#FFA749','','bold'); cb.sendNotice('No access? A single tip of ' + cb.settings.min_tokens_showcam_started + ' tokens will show the cam.','','#FFA749','','bold'); cb.limitCam_start(HiddenCamMessage); } } if (KenoOn == true) { KenoOn = false; } } } else if (!cb.limitCam_isRunning()) { if (parseInt(tip['amount']) >= cb.settings.min_tokens_showcam) { if (!cb.limitCam_userHasAccess(tip['from_user'])) { allowAccess(tip['from_user']); } } else if (!cb.limitCam_userHasAccess(tip['from_user'])) { if (checkTotalForAccess(tip['from_user'], tip['amount'])) { allowAccess(tip['from_user']); } } if (CumDenialOn == true && KenoOn == true && parseInt(tip['amount']) <= 100) { checkForWinner(tip['from_user'], tip['amount']); } } else if (cb.limitCam_isRunning() && parseInt(tip['amount']) >= cb.settings.min_tokens_showcam_started) { if (!cb.limitCam_userHasAccess(tip['from_user'])) { TipsForHidden += parseInt(tip['amount']); allowAccess(tip['from_user']); } } }); function checkmsg(msg) { var i, tmpmsg; tmpmsg = msg['m']; for (i=0; i<= 11; i++) { if (tmpmsg.search(mutereasons[i].regexp) != -1){ msg['X-Spam'] = true; break; } } } // ********************************************************************** // ******************** Start cum denail part *************************** // ********************************************************************** function timeleftnotice(){ if (CumDenialOn == true) { var MinutesLeft = DenialEndTime - checkTime(); if (MinutesLeft <= 0) { cb.sendNotice('Cum denial while edging finished.','','#C287C2','','bold'); DenialEndTime = 0; CumDenialOn = false; KenoOn = false; if (cb.settings.auto_start_on_end_denial == 'Yes') { if (!cb.limitCam_isRunning()) { cb.sendNotice(cb.room_slug + ' has started the hidden cam show.','','#FFA749','','bold'); cb.sendNotice('Press F5 if you have access and don\'t see the cam.','','#FFA749','','bold'); cb.sendNotice('No access? A single tip of ' + cb.settings.min_tokens_showcam_started + ' tokens will show the cam.','','#FFA749','','bold'); cb.limitCam_start(HiddenCamMessage); } } } else if (MinutesLeft >= 60){ var HourPart = parseInt(MinutesLeft/60); var MinutePart = MinutesLeft % 60; cb.sendNotice(HourPart + ' hour(s) and ' + MinutePart + ' minute(s) cum denial left while edging left.','','#C287C2','','bold'); if (KenoOn == true) { showBoard(''); } } else { cb.sendNotice(MinutesLeft + ' Minute(s) cum denial while edging left.','','#C287C2','','bold'); if (KenoOn == true && MinutesLeft > 4) { showBoard(''); } if (cb.settings.auto_start_on_end_denial == 'Yes' && MinutesLeft <= 4) { cb.sendNotice('\nWhen cum denial time ends, the cam will be hidden.','','#FFA749','','bold'); cb.sendNotice('Tipping a TOTAL of ' + cb.settings.min_tokens_showcam + ' before the hidden cam will give you access.','','#FFA749','','bold'); cb.sendNotice('When the cam is hidden, tipping a ' + cb.settings.min_tokens_showcam_started + ' tokens SINGLE TIP will give you access.','','#FFA749','','bold'); } } switch (MinutesLeft) { case 9 : NoticeTime = 4; break; case 8 : NoticeTime = 3; break; case 7 : NoticeTime = 2; break; case 6 : NoticeTime = 1; break; case 5 : NoticeTime = 1; break; case 4 : NoticeTime = 1; break; case 3 : NoticeTime = 1; break; case 2 : NoticeTime = 1; break; case 1 : NoticeTime = 1; break; default: NoticeTime = 5; } if (CumDenialOn == true) { idDenial = cb.setTimeout(timeleftnotice, NoticeTime * 60000) ; } } } function checkTime() { var d = new Date(); var t = d.getTime(); return parseInt(t/60000); } // ********************************************************************** // ********************* End cum denail part **************************** // ********************************************************************** // ********************************************************************** // ********************* Start limitcam part **************************** // ********************************************************************** function allowAccess(user) { cb.limitCam_addUsers(user); if (!cb.limitCam_isRunning()) { cb.sendNotice('Thank you ' + user + '. You will have access \'if\' the hidden cam will be used.',user,'#FFA749','','bold'); } else { cb.sendNotice(user + ' now has access to the hidden cam.',cb.room_slug,'#FFA749','','bold'); cb.sendNotice('Thank you ' + user + '. You now have access to the cam, press F5 to refresh the page if necessary.',user,'#FFA749','','bold'); } for (var i = 0; i < LowTipArray.length; i++) { if(LowTipArray[i][0] == user) { LowTipArray.splice(i, 1); NumUsersLow--; return; } } } function checkTotalForAccess(user, addtokens) { for (var i = 0; i < LowTipArray.length; i++) { if(LowTipArray[i][0] == user) { if (parseInt(LowTipArray[i][1]) + addtokens >= cb.settings.min_tokens_showcam) { LowTipArray.splice(i, 1); NumUsersLow--; return true; } else { LowTipArray[i][1] = parseInt(LowTipArray[i][1]) + addtokens; return false; } } } LowTipArray[NumUsersLow] = []; LowTipArray[NumUsersLow][0] = user; LowTipArray[NumUsersLow][1] = addtokens; NumUsersLow++; return false; } function alwaysInHiddenShow() { if (cb.settings.always_show_to_these != '' && cb.settings.always_show_to_these != null) { var n = cb.settings.always_show_to_these; alwaysInShowArray = n.split(','); } } function listUsersWithAccess() { var userlist = cb.limitCam_allUsersWithAccess(); if (userlist.length > 0) { var msglist = 'Users with access to the hidden cam.\n' for (i =0; i < userlist.length; i++) { msglist += userlist[i] + '\n'; } msglist += '***** End of list ******.'; cb.sendNotice(msglist,cb.room_slug,'','','bold'); } else { cb.sendNotice('No users with access to the hidden cam',cb.room_slug,'','','bold'); } } // ********************************************************************** // ********************** End limitcam part ***************************** // ********************************************************************** // ********************************************************************** // *********************** Start keno part ****************************** // ********************************************************************** function fillKeno() { for (var i = 0; i < 100; i++) { kenoArray[i] = i + 1; } for (var x = 0; x < kenoExcludeArray.length; x++) { kenoArray[parseInt(kenoExcludeArray[x]) - 1] = 'xx'; } } function setWinningNumbers() { var found = 0; var idx; var i; var addORsubtract = 'a'; var rnd; for (var x = 1; x <= 5; x++) { if (cb.settings['extra_prize' + x] != '') { xtraPrizeArray.splice(xtraPrizeArray.length, 0, cb.settings['extra_prize' + x]); } } while (found < cb.settings.total_numbers_winning + xtraPrizeArray.length) { rnd = Math.floor((Math.random() * 100) + 1); idx = -1; for (i = 0; i < winningNumbersArray.length; i++) { if(winningNumbersArray[i][0] == rnd) { idx = i; } } if (kenoArray[rnd - 1] != 'xx' && idx < 0) { winningNumbersArray[found] = []; winningNumbersArray[found][0] = rnd; if (found < xtraPrizeArray.length) { winningNumbersArray[found][1] = xtraPrizeArray[found]; found += 1; } else { winningNumbersArray[found][1] = addORsubtract; found += 1; if(addORsubtract == 'a') { addORsubtract = 's'; } else { addORsubtract = 'a'; } } } } } function showBoard(user) { var kenotxt; if (xtraPrizeArray.length > 0) { kenotxt = 'A winning number will add or subtract ' + cb.settings.add_time_winning + ' minutes denial time or win a special prize.\n'; kenotxt += (xtraPrizeArray.length > 1 ? xtraPrizeArray.length + ' of the winning numbers have special prizes.\n' : xtraPrizeArray.length + ' of the winning numbers has a special prize.\n'); kenotxt += '******** SPECIAL PRIZES ********\n'; for(var i = 0; i < xtraPrizeArray.length; i++) { kenotxt += '** ' + xtraPrizeArray[i] + '\n'; } } else { kenotxt = 'A winning number will add or subtract ' + cb.settings.add_time_winning + ' minutes denial time.\n'; } kenotxt += '***** ' + winningNumbersArray.length + ' winning number(s) left on the board *****\n'; var pos = 0; for (var row = 1; row <= 10; row++) { for (var col = 1; col <= 10; col++) { var str = ' ' + kenoArray[pos]; if (str.length <3) { str = ' 0' + kenoArray[pos]; } kenotxt += str; pos++; } kenotxt += '\n'; } kenotxt += '******** Type \/board to show the board ********'; cb.sendNotice(kenotxt,user,'','','bold'); } function checkForWinner(user, tokens) { var idx = -1; for (var i = 0; i < winningNumbersArray.length; i++) { if(winningNumbersArray[i][0] == tokens) { idx = i; } } if (!(idx < 0)) { if (winningNumbersArray[idx][1] == 'a') { cb.sendNotice('Winning number ' + tokens + ' guessed by ' + user + ', ' + cb.settings.add_time_winning + ' minutes added to the denial.','','#FFA749','','bold'); DenialEndTime += cb.settings.add_time_winning; } else if (winningNumbersArray[idx][1] == 's') { cb.sendNotice('Winning number ' + tokens + ' guessed by ' + user + ', ' + cb.settings.add_time_winning + ' minutes subtracted from denial.','','#00F22E','','bold'); DenialEndTime -= cb.settings.add_time_winning; if (DenialEndTime - checkTime() <= 10) { cb.cancelTimeout(idDenial); timeleftnotice(); } } else { cb.sendNotice('Special prize won by ' + user + '. ** ' + winningNumbersArray[idx][1] + ' **','','#00c7f2','','bold'); var SandD = xtraPrizeArray.indexOf(winningNumbersArray[idx][1]); xtraPrizeArray.splice(SandD, 1); } winningNumbersArray.splice(idx, 1); } else if (kenoArray[tokens - 1] != 'xx') { cb.sendNotice(tokens + ' is not a winning number.','','#FFA749','','bold'); } else { return; } kenoArray[kenoArray.indexOf(tokens)] = 'xx'; if (winningNumbersArray.length + xtraPrizeArray.length == 0) { cb.sendNotice('No more winning numbers on the board, the board is reset.\n','','#FFA749','','bold'); fillKeno(); setWinningNumbers(); showBoard(''); } } // ********************************************************************** // *********************** End keno part ******************************** // ********************************************************************** function mbotHelp() { var helpMbot = 'BROADCASTER INSTRUCTIONS\n' + ' -- \/helpmbot, to show this help.\n' + ' -- \/showcam, will show the cam to everyone again if it was hidden.\n' + ' -- \/hidecam, to make the cam hidden for freeloaders.\n' + ' -- \/stopkeno, stop keno manually while in cum denial.\n' + ' -- \/startkeno, start keno manually while in cum denial.\n' + ' -- \/board, send the keno board to the room if keno is on.\n' + ' -- \/adduser username, to give a user access to the hidden cam manually.\n' + ' -- \/starttimer, to start the timer manually in case the bot was not running when tipped for denial.\n' + ' -- \/listusers, to show you the users who have hidden cam access.\n' + ' -- \/hiddentips, to see how many tokens were tipped to open the cam while it was hidden.\n'; cb.sendNotice(helpMbot,cb.room_slug,'#eaeaea','','bold'); } function is_broadcaster(testforslug) { return (testforslug == cb.room_slug); } function init() { if (cb.limitCam_isRunning()) { //In case the bot had to be restarted when limitcam was running cb.limitCam_stop(); } mbotHelp(); alwaysInHiddenShow(); //Fill selected users array if (cb.settings.excluded_from_keno != '' && cb.settings.excluded_from_keno != null) { var n = cb.settings.excluded_from_keno; kenoExcludeArray = n.split(','); } fillKeno(); setWinningNumbers(); } init();
© Copyright Chaturbate 2011- 2024. All Rights Reserved.