Bots Home
|
Create an App
Vasiliy's GMF Club
Author:
jaybee_uk
Description
Source Code
Launch Bot
Current Users
Created by:
Jaybee_Uk
// GMF Club Member Bot //V1.3 // CB app settings cb.settings_choices = [ { name: 'WelcomeText', label: 'Extra text to put in room welcome message eg: Today is a chat show.', type: 'str', minLength: 0, maxLength: 64, required: false, defaultValue: '' }, { name: 'GMFtext', label: 'Text to put in front of GMF Club members messages, the text will be put inside square brackets [ ]', type: 'str', minLength: 0, maxLength: 15, required: false, defaultValue: 'GMF' }, { name: 'GMFtextColor', label: 'GMF Club members text color', type: 'str', minLength: 0, maxLength: 6, required: false, defaultValue: '008b00' }, { name: 'GMFbgColor', label: 'GMF Club members background color', type: 'str', minLength: 0, maxLength: 6, required: false, defaultValue: 'FFFFFF' }, { name: 'GMFMemberList', label: 'List of current GMF Club members, separated by commas', type: 'str', minLength: 0, maxLength: 10240, required: false, defaultValue: 'jaybee_uk' }, { name: 'GMFadmin', label: 'Admins for adding and listing members', type: 'str', minLength: 0, maxLength: 10240, required: false, defaultValue: 'vasya96,jaybee_uk' } ]; var GMFadmin = {}; var GMFmembers = new Array( ); var silencelist = new Array( ); var total_tipped = 0; var position; var autothx = 0; var silenceCount = 0; cb.onMessage(function (msg) { var u = msg['user']; //create word array from msg var message = msg['m'].split(' '); //is first character of message a '.' for a command and user is Admin? if((message[0].charAt(0) == '.') && (isAdmin(u))) { //Do Admin Commands msg['X-Spam'] = true; //Hide message from chat //Check command and do function switch(message[0]) { case '.gmfadd': //Add to member list { makeUL(message[1]); msg['m'] = 'User: ' + message[1] + ' added to GMF list'; return msg; } case '.gmfremove': //Remove from member list { removeUL(message[1]); msg['m'] = 'User: ' + message[1] + ' removed from GMF list'; return msg; } case '.gmflist': //List GMF members { msg['m'] = 'MEMBER LIST: ' + GMFmembers; return msg; } case '.silencelist': //List Silenced members { msg['m'] = 'SILENCE LIST: ' + silencelist; return msg; } case '.tips': //Display total tips { msg['m'] = 'Total Tipped: ' + total_tipped; return msg; } case '.silence': //Silence user { silenceUser(message[1],u); msg['m'] = 'User: ' + message[1] + ' has been silenced.'; return msg; } case '.unsilence': //Unsilence user { unsilence(message[1],u); msg['m'] = 'User: ' + message[1] + ' has been unsilenced.'; return msg; } case '.gmfpm': //send notice to GMFs { var tmpmsg=msg['m']; tmpmsg=tmpmsg.substr(7); GMFmembers.forEach(function (member, index, group) { cb.sendNotice('*** MESSAGE FOR GMFs ONLY from '+ u +'***\n' + tmpmsg + '\n--------------------------',member,'','#1F7A1F','bold'); }); msg['m'] = 'Message sent to GMFs'; return msg; } case '.help': //Display GMF Club Help { cb.sendNotice('*** GMF Club Bot Commands ***\nGMF Commands\n------------------------------\nAdd GMF: .gmfadd username\nRemove GMF: .gmfremove username\nList GMFMembers: .gmflist\nSend message only to GMFs: .gmfpm message\n\nOther Commands\n------------------------------\nAuto-thanks on/off: .autothx\nSilence: .silence username\nUnsilence:.unsilence username\nShow Total Tips: .tips\n',u,'','#1F7A1F'); msg['m'] = ''; return; } case '.chat': //Display GMF Chat Rules { cb.sendNotice('*** Chat Rules ***\nI created this "framework" NOT for restricting you in thoughts on topics being discussed. Regulations are designed to ensure that we keep on topic and allows ANYONE to be able to take part! Otherwise it becomes very difficult for me - to keep a fair and warm atmosphere in OUR room.\n\n1. Topic is chosen (shown in room title)\n2. Vasiliy says his opinion and asks who else wants to say something\n3. Vasiliy chooses who is next to talk\n4. Chosen person talks - others listen\n5. Questions can be asked and answered\n7. Next person chosen to talk...\n*** Please stay on topic and wait for others to finish talking ***','','','#1F7A1F'); msg['m'] = ''; return; } case '.autothx': //Toggle Auto thanks { if(autothx===0) { autothx=1; msg['m'] = 'Auto Thanks On'; return msg; } if(autothx===1) { autothx=0; msg['m'] = 'Auto Thanks Off'; return msg; } } } } //close is admin command // Color and add text to GMF Messages if ( isGMF(u) ) { msg['background'] = '#' + cb.settings.GMFbgColor; msg['c'] = '#' + cb.settings.GMFtextColor; msg['m'] = "[" +cb.settings.GMFtext+ "] " + msg['m']; return msg; } //Silence users on silence list if(cbjs.arrayContains(silencelist,msg['user'])) { msg['X-Spam'] = true; cb.sendNotice('Your message was not sent because you have been silenced. ',msg['user']); return msg; } //Spam block and silence - temp version need to rework with banned words in array for next version var temp=msg['m']; if ((temp.indexOf("Premium Cheat") !=-1) ) { msg['X-Spam'] = true; cb.sendNotice('Your message was not sent because it appears to be spam. ',msg['user']); qsilenceUser(msg['user']); //silence quietly return msg; } if ((temp.indexOf("Tokens for free") !=-1) ) { msg['X-Spam'] = true; cb.sendNotice('Your message was not sent because it appears to be spam. ',msg['user']); qsilenceUser(msg['user']); //silence quietly return msg; } if ((temp.indexOf("Tokens Generator") !=-1) ) { msg['X-Spam'] = true; cb.sendNotice('Your message was not sent because it appears to be spam. ',msg['user']); qsilenceUser(msg['user']); //silence quietly return msg; } });//Close on.msg cb.onTip(function (tip) { total_tipped += parseInt(tip['amount']) if(autothx===1) { //Tip <10 if(tip['amount']<10) {return;} //Tip <50 if(tip['amount']<50) {cb.chatNotice(':thx ' + tip['from_user']); return;} //Tip <100 if(tip['amount']<100) {cb.chatNotice(':thanks-3 ' + tip['from_user']); return;} //Tip >100 if(tip['amount']>=100) {cb.chatNotice(':wow7 ' + tip['from_user'] + ' :thx'); return;} } return; }); function isGMF(username) { if(cbjs.arrayContains(GMFmembers,username)) return username; } function isAdmin(username) { return (username in GMFadmin); } function makeUL(username) { GMFmembers[GMFmembers.length] = username; } function removeUL(username) { if(cbjs.arrayContains(GMFmembers,username)) { cbjs.arrayRemove(GMFmembers,username); } } function silenceUser(user,u) { //Already silenced if(cbjs.arrayContains(silencelist,user)) { cb.sendNotice(user + ' has already been silenced.',u); } else { silencelist[silenceCount] = user; silenceCount++; } } function qsilenceUser(user) { //Already silenced if(cbjs.arrayContains(silencelist,user)) { } else { silencelist[silenceCount] = user; silenceCount++; } } function unsilence(user, u) { if(cbjs.arrayContains(silencelist,user)) { cbjs.arrayRemove(silencelist,user); cb.sendNotice('You have unsilenced ' + user + '.',u); cb.sendNotice('You have been unsilenced by ' + u + '. Be nice and don\'t make demands. :smile',user); } else { cb.sendNotice(user + ' does not need to be unsilenced.',u); } } function getSettings() { cb.log("starting to get settings"); // Get Club Members if (cb.settings.GMFMemberList) { var GMFmembersettings = cb.settings.GMFMemberList.split(','); for (var ii = 0; ii < GMFmembersettings.length; ii++) { var clean = GMFmembersettings[ii].toLowerCase().replace(/ /g,""); GMFmembers[GMFmembers.length] = clean; GMFmembers = GMFmembers.filter(function(str) { return /\S/.test(str); }); } } // Get Admins if (cb.settings.GMFadmin) { var GMFadminSettings = cb.settings.GMFadmin.split(','); for (var ii = 0; ii < GMFadminSettings.length; ii++) { var clean = GMFadminSettings[ii].toLowerCase().replace(/ /g,""); GMFadmin[clean] = {'u': 1}; } } cb.log("finished getting settings"); } getSettings(); cb.onEnter(function(user) { cb.sendNotice('Welcome to my room ' + user['user'] + '! Please read my bio and follow the rules\n\n'+cb.settings.WelcomeText,user['user'], '#CCF5EB', '', 'bold'); });
© Copyright Chaturbate 2011- 2026. All Rights Reserved.