Bots Home
|
Create an App
arcane2bot
Author:
2moso2
Description
Source Code
Launch Bot
Current Users
Created by:
2moso2
// CB app settings cb.settings_choices = [ { name: 'enableMsgColour', label: 'Alter message text colour of club members?', type: 'choice', choice1: 'Yes', choice2: 'No', defaultValue: 'Yes' },{ name: 'enableClubBadge', label: 'Prepend club badge text to member messages?', type: 'choice', choice1: 'Yes', choice2: 'No', defaultValue: 'Yes' },{ name: 'hopClubBadge', label: 'Arcane Team badge', type: 'str', minLength: 1, maxLength: 20, required: true, defaultValue: 'Arcane Team' },{ name: 'hopColor',label: 'Arcane Team badge colour text/background', type: 'str', minLength: 13, maxLength: 13, required: true, defaultValue: '000000/EDE73B' },{ name: 'hopTipRequired', label: 'Arcane Team Tip Value', type: 'int', minValue: 1, maxValue: 8000, defaultValue: 23 },{ name: 'hopRainText', label: 'Text to use for Arcane Team rain', type: 'str', minLength: 0, maxLength: 80, required: false, defaultValue: ' - Arcane Team - ' },{ name: 'hopRainCount', label: 'Number of lines of Arcane Team rain', type: 'int', minValue: 1, maxValue: 3, defaultValue: 3 },{ name: 'hopClubJoinMessage', label: 'Arcane Team joining message', type: 'str', minLength: 1, maxLength: 200, required: true, defaultValue: 'MEMBERNAME just joined Arcanes Team' },{ name: 'hopMemberList', label: 'Arcane Team Member List', type: 'str', minLength: 1, maxLength: 2000, required: true, defaultValue: 'roydz,2moso2' },{ name: 'enigmaClubBadge', label: 'Time Team Club badge', type: 'str', minLength: 1, maxLength: 20, required: true, defaultValue: 'Time Team' },{ name: 'enigmaColor', label: 'Time Team Club badge colour text/background', type: 'str', minLength: 13, maxLength: 13, required: true, defaultValue: '000000/FFEFCC' },{ name: 'enigmaTipRequired', label: 'Time Team Club Tip Value', type: 'int', minValue: 0, maxValue: 8000, defaultValue: 723 },{ name: 'enigmaRainText', label: 'Text to use for Time Team Club rain', type: 'str', minLength: 0, maxLength: 80, required: false, defaultValue: ' - Time Team - ' },{ name: 'enigmaRainCount', label: 'Number of lines of Time Team Club rain', type: 'int', minValue: 1, maxValue: 30, defaultValue: 23 },{ name: 'enigmaClubJoinMessage', label: 'Time Team Club joining message', type: 'str', minLength: 1, maxLength: 200, required: true, defaultValue: 'MEMBERNAME just became a Time Team Member' },{ name: 'enigmaMemberList', label: 'Time Team Member List', type: 'str', minLength: 1, maxLength: 2000, required: false, defaultValue: 'w1ld__one,cr_ready4u,boxerboi0807,stripped_ease1' },{ name: 'dualColor', label: 'Dual badge colour text/background', type: 'str', minLength: 13, maxLength: 13, required: true, defaultValue: '000000/FFFFFF' },{ name: 'dualClubBadge', label: 'Dual badge', type: 'str', minLength: 1, maxLength: 20, required: true, defaultValue: 'Golden Team' },{ name: 'purrrList', label: 'Muppets list', type: 'str', minLength: 1, maxLength: 2000, required: false, defaultValue: '' },{ name: 'roomRules', label: 'Rules for room shown when /roomRules is used', type: 'str', minLength: 1, maxLength: 2000, required: false, defaultValue: "Sit back, Relax and Enjoy Arcanes cam, Please NO directing, c2c or cam2cam or even requesting - as you'll enjoy it far much more - Thank you" },{ name: 'vipMemberList', label: 'VIP list', type: 'str', minLength: 1, maxLength: 2000, required: false, defaultValue: '' },{ name: 'arcaneClubBadge', label: 'Arcane Team badge', type: 'str', minLength: 1, maxLength: 20, required: true, defaultValue: 'Teams Leader' },{ name: 'arcaneColor',label: 'Arcane badge colour text/background', type: 'str', minLength: 13, maxLength: 13, required: true, defaultValue: '000000/FBCCFF' },{ name: 'arcaneClubJoinMessage', label: 'Arcane Team joining message', type: 'str', minLength: 1, maxLength: 200, required: true, defaultValue: 'MEMBERNAME just joined Arcanes' },{ name: 'arcaneMemberList', label: 'Arcanes List', type: 'str', minLength: 1, maxLength: 2000, required: true, defaultValue: 'arcane2' } ]; var hopMemberList = {}; var enigmaMemberList = {}; var purrrList = {}; var vipMemberList = {}; var arcaneMemberList = {}; cb.onMessage(function (msg) { var u = msg['user']; var m = msg['m']; var isMod = msg['is_mod']; var isFan = msg['in_fanclub']; var isModel = (u == cb.room_slug); var hasTokens = msg['has_tokens']; var hasTipped = msg['tipped_recently']; var isGrey = !(hasTokens || isMod || isModel || isFan); var modsAllowed = true; var exempt = (isModel || isMod); var hopColor = cb.settings.hopColor.match(/[a-z0-9]+/gi); var enigmaColor = cb.settings.enigmaColor.match(/[a-z0-9]+/gi); var dualColor = cb.settings.dualColor.match(/[a-z0-9]+/gi); if(m[0] == '/'){ // Is a command msg['X-Spam'] = true; if(isModel || (isMod && modsAllowed) ){ // IsModel or Mod var actionArray = m.substr(1).split(' '); if( isModel ){ if( actionArray.length >= 2){ switch(actionArray[0]) { case "addhop": cb.chatNotice('Adding Arcane Team Member '+actionArray[1]); setHouseOfPurrrs(actionArray[1]); break; case "removehop": cb.chatNotice('Removing Arcane Team Member '+actionArray[1]); unsetHouseOfPurrrs(actionArray[1]); break; case "addenigma": cb.chatNotice('Adding Time Team Member '+actionArray[1]); setEnigma(actionArray[1]); break; case "removeenigma": cb.chatNotice('Removing Time Team Member '+actionArray[1]); unsetEnigma(actionArray[1]); break; case "addvip": cb.chatNotice('Adding VIP '+actionArray[1]); setVIP(actionArray[1]); break; case "removevip": cb.chatNotice('Removing VIP '+actionArray[1]); unsetVIP(actionArray[1]); break; case "mup": cb.chatNotice('Uh oh '+actionArray[1]+', has been turned into a muppet!'); setCatHasTounge(actionArray[1],actionArray[2]); break; case "unmup": cb.chatNotice('Kermit got bored of '+actionArray[1]+', can be a human again, but please behave!'); unsetCatHasTounge(actionArray[1]); break; default: } }else if( actionArray.length == 1){ switch(actionArray[0].toLowerCase()) { case "showhop": cb.chatNotice('Current Arcane Team Members', u); var n = ""; for (var user in hopMemberList) { n += "-- "+user+"\n"; } cb.chatNotice(n,u); break; case "showenigma": cb.chatNotice('Current Time Team Members', u); var n = ""; for (var user in enigmaMemberList) { n += "-- "+user+"\n"; } cb.chatNotice(n,u); break; case "showvip": cb.chatNotice('Current VIPs', u); var n = ""; for (var user in vipMemberList) { n += "-- "+user+"\n"; } cb.chatNotice(n,u); break; case "roomrules": msg['X-Spam'] = false; msg['m'] = showRules(); msg['c'] = '#ffffff'; msg['background'] = '#8C1717'; break; case "help": var n = ""; n += "Arcanes Multi Bot Actions\n"; n += "---------------------------\n"; n += "/roomRules: Display the room rules\n"; n += "\n"; n += "/addHoP <membername> : Add Arcane Team Member\n"; n += "/removeHoP <membername> : Remove Arcane Team Member\n"; n += "/showHoP: List Arcane Team Members\n"; n += "\n"; n += "/addEnigma <membername> : Add Time Team Member\n"; n += "/removeEnigma <membername> : Remove Time Team Member\n"; n += "/showEnigma: List Time Team Members\n"; n += "\n"; n += "/addVIP <membername> : Add VIP\n"; n += "/removeVIP <membername> : Remove VIP\n"; n += "/showVIP: List VIP's\n"; n += "\n"; n += "/mup <membername> : Turns a user into a Muppet\n"; n += "/mup <membername> <token_amount> : Turns a user into a Muppet, but are allowed to tip to get their voice back\n"; n += "/unmup <membername> : Gives a user their voice back\n"; cb.chatNotice(n,u); break; default: } } }else{ // Is a mod if( actionArray.length >= 2){ switch(actionArray[0]) { case "addhop": cb.chatNotice('Adding Arcane Team Member '+actionArray[1]); setHouseOfPurrrs(actionArray[1]); break; case "removehop": cb.chatNotice('Removing Arcane Team Member '+actionArray[1]); unsetHouseOfPurrrs(actionArray[1]); break; case "addenigma": cb.chatNotice('Adding Time Team Member '+actionArray[1]); setEnigma(actionArray[1]); break; case "removeenigma": cb.chatNotice('Removing Time Team Member '+actionArray[1]); unsetEnigma(actionArray[1]); break; case "addvip": cb.chatNotice('Adding VIP '+actionArray[1]); setVIP(actionArray[1]); break; case "removevip": cb.chatNotice('Removing VIP '+actionArray[1]); unsetVIP(actionArray[1]); break; case "mup": cb.chatNotice(u+" was made into a muppet "+actionArray[1], cb.room_slug); cb.chatNotice('Uh oh '+actionArray[1]+', has been turned into a muppet!'); setCatHasTounge(actionArray[1]); break; case "unmup": cb.chatNotice('Kermit has forgiven '+actionArray[1]+', is no longer a muppet!'); unsetCatHasTounge(actionArray[1]); break; default: } }else if( actionArray.length == 1 ){ switch(actionArray[0].toLowerCase()) { case "roomrules": msg['X-Spam'] = false; msg['m'] = showRules(); msg['c'] = '#ffffff'; msg['background'] = '#8C1717'; break; case "help": var n = ""; n += "Arcanes Multi Bot Mod Actions\n"; n += "---------------------------\n"; n += "/roomRules: Display the room rules\n"; n += "\n"; n += "/mup <membername> : Changes a user into a muppet\n"; n += "/unmup <membername> : Gives the user a voice again\n"; n += "\n"; cb.chatNotice(n,u); break; default: } } } } // No else, if its a command and not a model or a mod, do nothing }else{ // Isnt a command so treat is text chat if( isGrey && !isVIP(u) ){ msg['m'] = m; } if( /(E+ *R+ *O* *H+ *O+ *O+ *K+ *U+ *P+|T+ *O+ *P+ *G+ *A+ *M+ *E+ *S+ *C+ *R+ *A+ *C+ *K+|d+ *e+ *a+ *l+ *n+ *e+ *w+ *s+|e+ *r+ *o+ *s+ *b+ *b+|EvaCamSessions)/i.test(m) && !exempt ){ cb.chatNotice(u+" Sorry but no one wants to know about your website!"); msg['X-Spam'] = true; return msg; } if( /(?:[^\x00-\x80]+ *)/i.test(m) && !exempt ){ cb.chatNotice("Standard Characters Only PLease!", u); msg['X-Spam'] = true; return msg; } if( m.replace(/[^A-Za-z]/g, "").length > 3 && m.replace(/[^A-Za-z]/g, "").length == m.replace(/[^A-Z]/g, "").length && !exempt ){ cb.chatNotice(u+" can you drop your caps lock please!"); msg['X-Spam'] = true; } if( /(\w)\1{3,}/gi.test(m) && !exempt){ cb.chatNotice(u+" using sticky keys, anyone got any tissues for their keyboard please?"); msg['X-Spam'] = true; } if( /(\bbb|baby|bby|babay|babe|babz|babes|baaby|babez|babie\b)/i.test(m) && !exempt ){ cb.chatNotice(u+" can you use Arcanes name and not bb - Thank you!"); msg['X-Spam'] = true; }else if( /(\bsquirt\b)/i.test(m) && !exempt ){ cb.chatNotice(u+" no water pistols here, arcanes lost it!"); msg['X-Spam'] = true; }else if( /(love you)/i.test(m) && !exempt ){ cb.chatNotice(u+" wants to make love to Miss Piggy"); msg['X-Spam'] = true; }else if( /((see|watch|view|look at) my cam)/i.test(m) && !exempt ){ cb.chatNotice(u+" wants roydz to view their cam!"); msg['X-Spam'] = true; }else if( /((see|watch|view|look at) my (dick|cock|penis))/i.test(m) && !exempt ){ cb.chatNotice(u+" cock-a doodle-doo!"); msg['X-Spam'] = true; }else if( /((see|watch|view|look at) me (cum))/i.test(m) && !exempt ){ cb.chatNotice(u+" I want roydz to view me pwwwease!"); msg['X-Spam'] = true; }else if( /(show (feet|foot))/i.test(m) && !exempt ){ cb.chatNotice(u+" ysour feet are at the end of your legs, just look down"); msg['X-Spam'] = true; }else if( /(show (pussy))/i.test(m) && !exempt ){ cb.chatNotice(u+" wants to see roydz pussy!"); msg['X-Spam'] = true; }else if( /(nice (pussy))/i.test(m) && !exempt ){ cb.chatNotice(u+" really enjoyed roydz pussy"); msg['X-Spam'] = true; }else if( /(show (arse|ass|asshole))/i.test(m) && !exempt ){ cb.chatNotice(u+" has a donkey which a gorgeous ass!"); msg['X-Spam'] = true; }else if( /(open (ass|arse|boobs|pussy|feet|foot))/i.test(m) && !exempt ){ cb.chatNotice(u+" wants to open a local supermarket!"); msg['X-Spam'] = true; }else{ if( catHasTongue(u) ){ msg['m'] = kittyPurrr(m); }else{ if (isEnigma(u) && isHouseOfPurrrs(u)) { msg['background'] = '#' + dualColor[1]; msg['c'] = '#' + dualColor[0]; msg['in_fanclub'] = true; msg['m'] = "[" + cb.settings.dualClubBadge + "] " + msg['m']; } else if (isEnigma(u)) { msg['background'] = '#' + enigmaColor[1]; msg['c'] = '#' + enigmaColor[0]; msg['in_fanclub'] = true; msg['m'] = "[" + cb.settings.enigmaClubBadge + "] " + msg['m']; } else if (isHouseOfPurrrs(u)) { msg['background'] = '#' + hopColor[1]; msg['c'] = '#' + hopColor[0]; msg['in_fanclub'] = true; msg['m'] = "[" + cb.settings.hopClubBadge + "] " + msg['m']; } else if (isVIP(u)){ msg['in_fanclub'] = true; } } } } return msg; }); cb.onTip(function (tip) { var amountTipped = parseInt(tip['amount']); if (amountTipped == cb.settings.enigmaTipRequired && !isEnigma(tip['from_user'])) { // Make 23Enigma and announce it var announcement = cb.settings.enigmaClubJoinMessage.replace("MEMBERNAME", tip['from_user']); setEnigma(tip['from_user']); var n = ""; for (var i = 0; i < cb.settings.enigmaRainCount; i++) { n += cb.settings.enigmaRainText+"\n"; } cb.chatNotice(n); cb.chatNotice(announcement); } if (amountTipped == cb.settings.hopTipRequired) { // Make House of Purrrs and announce it var announcement = cb.settings.hopClubJoinMessage.replace("MEMBERNAME", tip['from_user']); setHouseOfPurrrs(tip['from_user']); var n = ""; for (var i = 0; i < cb.settings.hopRainCount; i++) { n += cb.settings.hopRainText+"\n"; } cb.chatNotice(n); cb.chatNotice(announcement); } var user = tip['from_user']; if( catHasTongue(user) && purrrList[user]["u"] > 0 ){ if( amountTipped >= purrrList[user]["u"] ){ cb.chatNotice("Okay, you are forgiven "+user+", you may have your tongue back."); unsetCatHasTounge(user); }else{ var diff = purrrList[user]["u"] - amountTipped; if( diff > 100 ){ cb.chatNotice("oh "+user+", you're way of the mark there!"); }else if( diff > 50 ){ cb.chatNotice("That's not really much of an apology "+user+", try again!"); }else if( diff > 10 ){ cb.chatNotice("oh no "+user+", you've been naughtier than that, try again!"); }else{ cb.chatNotice("Well "+user+", that's pretty close but not right, try again!"); } } } }); // Enigma Functions function isEnigma(username) { return (username in enigmaMemberList); } function setEnigma(username) { enigmaMemberList[username] = {'u': 1}; } function unsetEnigma(username) { delete enigmaMemberList[username]; } // House Of Purrrs Functions function isHouseOfPurrrs(username) { return (username in hopMemberList); } function setHouseOfPurrrs(username) { hopMemberList[username] = {'u': 1}; } function unsetHouseOfPurrrs(username) { delete hopMemberList[username]; } // VIP Functions function isVIP(username) { return (username in vipMemberList); } function setVIP(username) { vipMemberList[username] = {'u': 1}; } function unsetVIP(username) { delete vipMemberList[username]; } // Arcanes Functions function isArcane(username) { return (username in arcaneMemberList); } function setArcane(username) { arcaneMemberList[username] = {'u': 1}; } function unsetArcane(username) { delete arcaneMemberList[username]; } // Cat's Got Your Tongue Functions function catHasTongue(username) { return (username in purrrList); } function setCatHasTounge(username, bribe) { if(typeof(bribe)==='undefined'){ bribe = 0; }else{ cb.chatNotice("If you want your tongue back try and behave next time!",username); bribe = parseInt(bribe); } purrrList[username] = {'u': bribe}; } function unsetCatHasTounge(username) { delete purrrList[username]; } function kittyPurrr(m){ var kittySpeak = [ "Mahna", "do doo", "be-do-do", "me-me-me", "cookieeees" ] var words = m.split(' '); m = ""; for (var i = 0; i < words.length; i++){ var s = Math.floor(Math.random() * kittySpeak.length); m += " "+kittySpeak[s]; } return m.trim(); } function showRules(){ return "ROOM RULES: "+cb.settings.roomRules; } function grabSettings() { cb.log("starting grabbing settings"); // Get purrrs members if (cb.settings.hopMemberList) { var memberList = cb.settings.hopMemberList.split(','); for (var ii = 0; ii < memberList.length; ii++) { var clean = memberList[ii].toLowerCase().replace(/ /g, ""); hopMemberList[clean] = {'u': 1}; } } // Get 23 enigmas if (cb.settings.enigmaMemberList) { var memberList = cb.settings.enigmaMemberList.split(','); for (var ii = 0; ii < memberList.length; ii++) { var clean = memberList[ii].toLowerCase().replace(/ /g, ""); enigmaMemberList[clean] = {'u': 1}; } } // Get VIP's if (cb.settings.vipMemberList) { var memberList = cb.settings.vipMemberList.split(','); for (var ii = 0; ii < memberList.length; ii++) { var clean = memberList[ii].toLowerCase().replace(/ /g, ""); vipMemberList[clean] = {'u': 1}; } } // Get arcane members if (cb.settings.arcaneMemberList) { var memberList = cb.settings.arcaneMemberList.split(','); for (var ii = 0; ii < memberList.length; ii++) { var clean = memberList[ii].toLowerCase().replace(/ /g, ""); arcaneMemberList[clean] = {'u': 1}; } } // Perminantly Purrr'd if (cb.settings.purrrList) { var memberList = cb.settings.purrrList.split(','); for (var ii = 0; ii < memberList.length; ii++) { var clean = memberList[ii].toLowerCase().replace(/ /g, ""); purrrList[clean] = {'u': 1}; } } cb.log("finished grabbing settings"); } grabSettings();
© Copyright Chaturbate 2011- 2026. All Rights Reserved.