Apps Home
|
Create an App
bb_goal
Author:
blowbunny_and_lickingboy
Description
Source Code
Launch App
Current Users
Created by:
Blowbunny_And_Lickingboy
// JavaScript Document // vars var total_tipped = 0; var high_tip_username = null; var high_tip_amount = 0; var last_tip_username = null; var last_tip_amount = 0; var subject_is_set_with_0 = false; var high_tip_username2=null; var high_tip_amount2=0; var imena = new Array(); var tipovi = new Array(); var niz=[]; var antispam=false; var brpobanih=0; var blapped_users=[]; var blappon=false; cb.settings_choices = [ {name: 'tokens', type: 'int', minValue: 1, default: 100}, {name: 'goal_description', type: 'str', minLength: 1, maxLength: 240}, {name: 'anti_spam', type:'choice',choice1:'yes',choice2:'no', default: 'no'}, {name: 'spam_words', type: 'str', minLength: 1, maxLength: 240 ,default: "bb", label: "Spam words (separated by a space)",required: false}, {name: 'blapp_option', type:'choice',choice1:'yes',choice2:'no', default: 'no'} ]; // handlers cb.onTip(function(tip) { total_tipped += tip['amount'] if (total_tipped > cb.settings.tokens) { total_tipped = cb.settings.tokens; } najvisi(tip['from_user'],tip['amount']); update_subject(); last_tip_amount = tip['amount'] last_tip_username = tip['from_user'] if (tip['amount'] > high_tip_amount2) { high_tip_amount2 = tip['amount'] high_tip_username2 = tip['from_user'] } cb.drawPanel(); }); cb.onDrawPanel(function(user) { return { 'template': '3_rows_of_labels', 'row1_label': 'Tip Received / Goal :', 'row1_value': '' + total_tipped + ' / ' + cb.settings.tokens, 'row2_label': 'Highest Total:', 'row2_value': format_username(high_tip_username) + ' (' + high_tip_amount + ')', 'row3_label': 'Highest Tip:', 'row3_value': format_username(high_tip_username2) + ' (' + high_tip_amount2 + ')' }; }); cb.onMessage(function (msg) { var string=msg['m']; cb.log("Anti spam: " + antispam); if(string.charAt(0)=="/") { msg['X-Spam'] = true; if(blappon) { if(string.substring(0,6)=="/blapp" && (msg['is_mod'] || msg['user'] == cb.room_slug)) blapuser(msg); if(string.substring(0,8)=="/unblapp" && (msg['is_mod'] || msg['user'] == cb.room_slug)) unblapuser(msg); if(string.substring(0,12)=="/usrblapped" && (msg['is_mod'] || msg['user'] == cb.room_slug)) bloppedusers(msg); } } if (msg['user'] == high_tip_username2) { msg['background'] = '#9F9'; } if (msg['user'] == high_tip_username) { msg['background'] = '#3FEFEF'; } // if (msg['is_mod']){ // msg['background'] = '#FFFB4F'; // } if(blappon) { msg['m']=blabla(msg); } if(antispam && !msg['is_mod'] && msg['user'] != cb.room_slug) { cb.log("in antispam"); if(antispam) { for (var i=0;i<niz.length;i++) { var reg=new RegExp('\\b'+niz[i]+'\\b','g') if(string.match(reg)!=null){ msg['X-Spam'] = true; cb.chatNotice("Your message is not displayed in chat because it contains disallowed words",msg['user']); break; } } } } return msg; }); // helper functions function update_subject() { if (tips_remaining() == 0) { if (subject_is_set_with_0) { return; } subject_is_set_with_0 = true; } else { subject_is_set_with_0 = false; } if(high_tip_username!=null) var new_subject = cb.settings.goal_description + " [" + tips_remaining() + " tokens remaining"+" Highest Total: "+high_tip_username+"("+high_tip_amount+")]"; else var new_subject = cb.settings.goal_description + " [" + tips_remaining() + " tokens remaining)]"; cb.log("Changing subject to: " + new_subject); cb.changeRoomSubject(new_subject); } function tips_remaining() { var r = cb.settings.tokens - total_tipped; if (r < 0) { return 0; } else { return r; } } function format_username(val) { if (val === null) { return "--"; } else { return val.substring(0, 12); } } function najvisi(ime, tip) { var index=imena.indexOf(ime); if(index==-1) { cb.log("new"); imena[imena.length]=ime; tipovi[tipovi.length]=tip; if(high_tip_amount==0 || high_tip_amount<tip) { high_tip_amount=tip; high_tip_username=ime; } } else { cb.log("old"); tipovi[index]+=tip; if (tipovi[index]>high_tip_amount) { high_tip_amount=tipovi[index]; high_tip_username=imena[index]; } } } function blapuser(poruka) { var pom=poruka['m'].split(" "); if(pom.length!=2) { cb.chatNotice ("error in usage!! usage /blapp user_to_blapp",poruka['user']); return; } if(pom[1]==cb.room_slug) { cb.chatNotice ("Broadcaster cannot be blapped",poruka['user']); return; } blapped_users.push(pom[1]); cb.chatNotice ("User "+pom[1]+" is blaped",poruka['user']); } function bloppedusers(poruka) { cb.chatNotice ("Blopped users: "+blapped_users,poruka['user']); } function unblapuser(poruka) { var pom=poruka['m'].split(" "); if(pom.length!=2) { cb.chatNotice ("error in usage!! usage /unblapp user_to_blapp",poruka['user']); return; } if(blapped_users.indexOf(pom[1])==-1) { cb.chatNotice ("User " +pom[1]+ " is not blopped",poruka['user']); return; } blapped_users.splice(blapped_users.indexOf(pom[1]),1); cb.chatNotice ("User "+pom[1]+" is unblaped",poruka['user']); } function blabla(poruka) { if(!(blapped_users.indexOf(poruka['user'])==-1)) { var pom=poruka['m'].split(" "); var rmes=""; for(var i=0;i<pom.length;i++) { var blar=Math.round(pom[i].length/3); if(blar==0) blar=1; for(var j=0;j<blar;j++) rmes+="bla"; rmes+=" "; } return rmes; } else return poruka['m'] } function init() { if(cb.settings.blapp_option=="yes") blappon=true; cb.log(cb.settings.anti_spam); if(cb.settings.anti_spam=="yes") { antispam=true; spamws=cb.settings.spam_words; niz=spamws.split(" "); cb.log("Anti spam on"); } cb.log(cb.settings.anti_spam); update_subject(); } init();
© Copyright Chaturbate 2011- 2026. All Rights Reserved.