Apps Home
|
Create an App
multigoaltest
Author:
markus1987test111
Description
Source Code
Launch App
Current Users
Created by:
Markus1987test111
cb.settings_choices = [ {name: "goalUsernumber1", type:"int", minValue: 1, maxValue: 999999, defaultValue: 10, label: "Number of users goal #1"}, {name: "goalText1", type:"str", minLength:1, maxLength:255, label:"Text goal #1", defaultValue:"", required:true}, {name: "goalUsernumber2", type:"int", minValue: 0, maxValue: 999999, defaultValue: 10, label: "Number of users goal #2"}, {name: "goalText2", type:"str", minLength:1, maxLength:255, label:"Text goal #2", defaultValue:"", required:false}, {name: "goalUsernumber3", type:"int", minValue: 0, maxValue: 999999, defaultValue: 10, label: "Number of users goal #3"}, {name: "goalText3", type:"str", minLength:1, maxLength:255, label:"Text goal #3", defaultValue:"", required:false}, {name: "goalUsernumber4", type:"int", minValue: 0, maxValue: 999999, defaultValue: 10, label: "Number of users goal #4"}, {name: "goalText4", type:"str", minLength:1, maxLength:255, label:"Text goal #4", defaultValue:"", required:false}, {name: "goalUsernumber5", type:"int", minValue: 0, maxValue: 999999, defaultValue: 10, label: "Number of users goal #5"}, {name: "goalText5", type:"str", minLength:1, maxLength:255, label:"Text goal #5", defaultValue:"", required:false}, {name: "goalUsernumber6", type:"int", minValue: 0, maxValue: 999999, defaultValue: 10, label: "Number of users goal #6"}, {name: "goalText6", type:"str", minLength:1, maxLength:255, label:"Text goal #6", defaultValue:"", required:false}, {name: "goalUsernumber7", type:"int", minValue: 0, maxValue: 999999, defaultValue: 10, label: "Number of users goal #7"}, {name: "goalText7", type:"str", minLength:1, maxLength:255, label:"Text goal #7", defaultValue:"", required:false}, {name: "goalUsernumber8", type:"int", minValue: 0, maxValue: 999999, defaultValue: 10, label: "Number of users goal #8"}, {name: "goalText8", type:"str", minLength:1, maxLength:255, label:"Text goal #8", defaultValue:"", required:false}, {name: "tipDecreaser", type:"int", minValue: 1, maxValue: 999, label: "Tip amount to decrease goal (Max. 999)", required:false}, {name: 'tipMsg', type:'int', minValue: 1, maxValue: 999, defaultValue: 5, label: 'Delay in minutes between notices being displayed (minimum 1)'}, {name:"choiceStatus1", type:"choice", label:"User in room - Total amount of visitors", choice1:"Total", choice2:"User", defaultValue:"Total", required:false}, {name: "hashtag", type:"str", minLength:1, maxLength:255, label:"Hashtag in status", defaultValue:"", required:false}, ]; var goalUsernumber1 = cb.settings.goalUsernumber1; var goalUsernumber2 = cb.settings.goalUsernumber2; var goalUsernumber3 = cb.settings.goalUsernumber3; var goalUsernumber4 = cb.settings.goalUsernumber4; var goalUsernumber5 = cb.settings.goalUsernumber5; var goalUsernumber6 = cb.settings.goalUsernumber6; var goalUsernumber7 = cb.settings.goalUsernumber7; var goalUsernumber8 = cb.settings.goalUsernumber8; var varTipMsg = cb.settings.tipMsg; var counterChoice = cb.settings.choiceStatus1; var hashtag = cb.settings.hashtag var goalText1 = ""; var goalText2 = ""; var goalText3 = ""; var goalText4 = ""; var goalText5 = ""; var goalText6 = ""; var goalText7 = ""; var goalText8 = ""; var goalNumbers = 1; var currentGoal = 1; var nextGoal = ""; var lastGoal = ""; var counter = 0; var arrayCount = -1; var missing = 0; var change = 0; var total_tipped = 0; var goal_tipped = 0; var tipped = 0; var addUser = false; var tipDecreaseVar = cb.settings.tipDecreaser; var goal = cb.settings.goalUsers; var goalR = false; var endfor = 0; var new_subject = ""; var visitors = []; var high_tip_username = null; var high_tip_amount = 0; var last_tip_username = null; var last_tip_amount = 0; var msg; cb.onDrawPanel(function(user) { return { 'template': '3_rows_of_labels', 'row1_label': 'Next goal:', 'row1_value': nextGoal, 'row2_label': 'Missing user:', 'row2_value': missing, 'row3_label': 'Highest tip / Latest tip received:', 'row3_value': format_username(high_tip_username) + ' (' + high_tip_amount + ') / '+format_username(last_tip_username) + ' (' + last_tip_amount + ')' }; }); function format_username(val) { if (val === null) { return "--"; } else { return val.substring(0, 12); } } function checkGoal() { counter++; missing = goal - counter; if (missing<1) { missing = 0; goalReached(); } } cb.onEnter(function(user) { if (goalR == false) { if (counterChoice == "Total") { checkEntry(user); } else { /*Eintritt abarbeiten*/ counter++; missing = goal - counter; cb.sendNotice(progressBar()); if (missing < 1 ) { missing = 0; goalReached(); } cb.drawPanel(); } } }); cb.onLeave(function(user) { if (goalR == false) { if (counterChoice == "User") { counter = counter-1; missing = goal - counter; cb.drawPanel(); if (missing < 0 ) { missing = 0; } cb.drawPanel(); } } }); function checkEntry(user) { if (goalR == false) { addUser = true; for (var i=0; i<=arrayCount; i++) { if (visitors[i]["name"] == user["user"]) { addUser = false; cb.sendNotice("Welcome back, " + user["user"]); } } if (addUser == true) { arrayCount++; visitors[arrayCount] = new Object (); visitors[arrayCount]["name"] = user["user"]; /*Eintritt abarbeiten*/ counter++; missing = goal - counter; cb.sendNotice(progressBar()); if (missing < 1 ) { missing = 0; goalReached(); } cb.drawPanel(); } } } cb.onTip(function (tip) { if (goalR == false) { if (tipDecreaseVar > 0) { tipped += parseInt(tip["amount"]); endfor = tipped; for (var i=0; i<= endfor; i++) { if (tipped >= tipDecreaseVar) { tipped = tipped-tipDecreaseVar; goal = goal-1; missing = goal - counter; /*cb.sendNotice("Missing" + missing);*/ if (missing <= 0) { goalReached(); } else if (tipped < tipDecreaseVar) { cb.sendNotice("Goal changed to " + goal + " user."); if (tipDecreaseVar > 1) { cb.sendNotice(tipDecreaseVar-tipped + " tokens needed to decrease the goal"); } setStatus(); cb.sendNotice(progressBar()); } } else { if (goalR == false) { if (tipDecreaseVar > 1) { cb.sendNotice(tipDecreaseVar-tipped + " tokens needed to decrease the goal"); } i = endfor; } } } } } total_tipped += tip['amount'] last_tip_amount = tip['amount'] last_tip_username = tip['from_user'] if (tip['amount'] > high_tip_amount) { high_tip_amount = tip['amount'] high_tip_username = tip['from_user'] } cb.sendNotice("Thanks, "+last_tip_username,'','',cb.settings['msgcolor'],'bold'); cb.sendNotice("Highest Tip: "+high_tip_username+" ("+high_tip_amount+")",'','',cb.settings['msgcolor'],'bold'); cb.drawPanel(); }); cb.onMessage(function (msg) { if (msg["user"] == cb.room_slug) { if (msg["m"] == "/add") { goal = goal+1; missing = goal - counter; cb.sendNotice("Goal changed to " + goal + " user. " + missing + " are still missing to reach the next goal."); setStatus(); cb.sendNotice(progressBar()); cb.drawPanel(); } else if (msg["m"] == "/del") { goal = goal-1; missing = goal - counter; cb.sendNotice("Goal changed to " + goal + " user. " + missing + " are still missing to reach the next goal."); setStatus(); cb.sendNotice(progressBar()); cb.drawPanel(); } else if (msg["m"] == "/add5") { goal = goal+5; missing = goal - counter; cb.sendNotice("Goal changed to " + goal + " user. " + missing + " are still missing to reach the next goal."); setStatus(); cb.sendNotice(progressBar()); cb.drawPanel(); } else if (msg["m"] == "/del5") { goal = goal-5; missing = goal - counter; cb.sendNotice("Goal changed to " + goal + " user. " + missing + " are still missing to reach the next goal."); setStatus(); cb.sendNotice(progressBar()); cb.drawPanel(); cb.drawPanel(); } else if (msg["m"] == "/add10") { goal = goal+10; missing = goal - counter; cb.sendNotice("Goal changed to " + goal + " user. " + missing + " are still missing to reach the next goal."); setStatus(); cb.sendNotice(progressBar()); } else if (msg["m"] == "/del10") { goal = goal-10; missing = goal - counter; cb.sendNotice("Goal changed to " + goal + " user. " + missing + " are still missing to reach the next goal."); setStatus(); cb.sendNotice(progressBar()); cb.drawPanel(); } else if (msg["m"] == "/add100") { goal = goal+100; missing = goal - counter; cb.sendNotice("Goal changed to " + goal + " user. " + missing + " are still missing to reach the next goal."); setStatus(); cb.sendNotice(progressBar()); cb.drawPanel(); } else if (msg["m"] == "/del100") { goal = goal-100; missing = goal - counter; cb.sendNotice("Goal changed to " + goal + " user. " + missing + " are still missing to reach the next goal."); setStatus(); cb.sendNotice(progressBar()); cb.drawPanel(); } else if (msg["m"] == "/restart") { if (counterChoice == "Total") { missing = goal; } } } }) function goalReached() { if (goalR == false) { if (currentGoal == goalNumbers) { finalGoalReached(); } else { progressBar(); currentGoal++; if (counterChoice == "User") { if (currentGoal == 2) { cb.sendNotice("****************", "", "#FFFFFF", "#0B0B61", "bold"); cb.sendNotice("Goal #1 reached: " +goalText1, "", "#FFFFFF", "#0B0B61", "bold"); cb.sendNotice("****************", "", "#FFFFFF", "#0B0B61", "bold"); lastGoal = goalText1; nextGoal = goalText2; missing = goalUsernumber2; goal += goalUsernumber2; } else if (currentGoal == 3) { cb.sendNotice("****************", "", "#FAFAFA", "#0B0B61", "bold"); cb.sendNotice("Goal #2 reached: " +goalText2, "", "#FAFAFA", "#0B0B61", "bold"); cb.sendNotice("****************", "", "#FAFAFA", "#0B0B61", "bold"); lastGoal = goalText2; nextGoal = goalText3; missing = goalUsernumber3; goal += goalUsernumber3; } else if (currentGoal == 4) { cb.sendNotice("****************", "", "#F2F2F2", "#0B0B61", "bold"); cb.sendNotice("Goal #3 reached: " +goalText3, "", "#F2F2F2", "#0B0B61", "bold"); cb.sendNotice("****************", "", "#F2F2F2", "#0B0B61", "bold"); lastGoal = goalText3; nextGoal = goalText4; missing = goalUsernumber4; goal += goalUsernumber4; } else if (currentGoal == 5) { cb.sendNotice("****************", "", "#E6E6E6", "#0B0B61", "bold"); cb.sendNotice("Goal #4 reached: " +goalText4, "", "#E6E6E6", "#0B0B61", "bold"); cb.sendNotice("****************", "", "#E6E6E6", "#0B0B61", "bold"); lastGoal = goalText4; nextGoal = goalText5; missing = goalUsernumber5; goal += goalUsernumber5; } else if (currentGoal == 6) { cb.sendNotice("****************", "", "#D8D8D8", "#0B0B61", "bold"); cb.sendNotice("Goal #5 reached: " +goalText5, "", "#D8D8D8", "#0B0B61", "bold"); cb.sendNotice("****************", "", "#D8D8D8", "#0B0B61", "bold"); lastGoal = goalText5; nextGoal = goalText6; missing = goalUsernumber6; goal += goalUsernumber6; } else if (currentGoal == 7) { cb.sendNotice("****************", "", "#BDBDBD", "#0B0B61", "bold"); cb.sendNotice("Goal #6 reached: " +goalText6, "", "#BDBDBD", "#0B0B61", "bold"); cb.sendNotice("****************", "", "#BDBDBD", "#0B0B61", "bold"); lastGoal = goalText6; nextGoal = goalText7; missing = goalUsernumber7; goal += goalUsernumber7; } else if (currentGoal == 8) { cb.sendNotice("****************", "", "#A4A4A4", "#0B0B61", "bold"); cb.sendNotice("Goal #7 reached: " +goalText7, "", "#A4A4A4", "#0B0B61", "bold"); cb.sendNotice("****************", "", "#A4A4A4", "#0B0B61", "bold"); lastGoal = goalText7; nextGoal = goalText8; missing = goalUsernumber8; goal += goalUsernumber8; } } else { counter = 0; if (currentGoal == 2) { cb.sendNotice("****************", "", "#FFFFFF", "#0B0B61", "bold"); cb.sendNotice("Goal #1 reached: " +goalText1, "", "#FFFFFF", "#0B0B61", "bold"); cb.sendNotice("****************", "", "#FFFFFF", "#0B0B61", "bold"); lastGoal = goalText1; nextGoal = goalText2; missing = goalUsernumber2; } else if (currentGoal == 3) { cb.sendNotice("****************", "", "#FAFAFA", "#0B0B61", "bold"); cb.sendNotice("Goal #2 reached: " +goalText2, "", "#FAFAFA", "#0B0B61", "bold"); cb.sendNotice("****************", "", "#FAFAFA", "#0B0B61", "bold"); lastGoal = goalText2; nextGoal = goalText3; missing = goalUsernumber3; } else if (currentGoal == 4) { cb.sendNotice("****************", "", "#F2F2F2", "#0B0B61", "bold"); cb.sendNotice("Goal #3 reached: " +goalText3, "", "#F2F2F2", "#0B0B61", "bold"); cb.sendNotice("****************", "", "#F2F2F2", "#0B0B61", "bold"); lastGoal = goalText3; nextGoal = goalText4; missing = goalUsernumber4; } else if (currentGoal == 5) { cb.sendNotice("****************", "", "#E6E6E6", "#0B0B61", "bold"); cb.sendNotice("Goal #4 reached: " +goalText4, "", "#E6E6E6", "#0B0B61", "bold"); cb.sendNotice("****************", "", "#E6E6E6", "#0B0B61", "bold"); lastGoal = goalText4; nextGoal = goalText5; missing = goalUsernumber5; } else if (currentGoal == 6) { cb.sendNotice("****************", "", "#D8D8D8", "#0B0B61", "bold"); cb.sendNotice("Goal #5 reached: " +goalText5, "", "#D8D8D8", "#0B0B61", "bold"); cb.sendNotice("****************", "", "#D8D8D8", "#0B0B61", "bold"); lastGoal = goalText5; nextGoal = goalText6; missing = goalUsernumber6; } else if (currentGoal == 7) { cb.sendNotice("****************", "", "#BDBDBD", "#0B0B61", "bold"); cb.sendNotice("Goal #6 reached: " +goalText6, "", "#BDBDBD", "#0B0B61", "bold"); cb.sendNotice("****************", "", "#BDBDBD", "#0B0B61", "bold"); lastGoal = goalText6; nextGoal = goalText7; missing = goalUsernumber7; } else if (currentGoal == 8) { cb.sendNotice("****************", "", "#A4A4A4", "#0B0B61", "bold"); cb.sendNotice("Goal #7 reached: " +goalText7, "", "#A4A4A4", "#0B0B61", "bold"); cb.sendNotice("****************", "", "#A4A4A4", "#0B0B61", "bold"); lastGoal = goalText7; nextGoal = goalText8; missing = goalUsernumber8; } goal = missing; } setStatus(); } } } function finalGoalReached() { goalR = true; progressBar(); cb.changeRoomSubject("!!! FINAL GOAL REACHED !!! ("+nextGoal+")"); cb.sendNotice("****************", "", "#2E2E2E", "#FFFFFF", "bold"); cb.sendNotice("~~ FINAL GOAL REACHED! ~~ ("+nextGoal+")", "", "#2E2E2E", "#FFFFFF", "bold"); cb.sendNotice("****************", "", "#2E2E2E", "#FFFFFF", "bold"); missing = 0; } function setStatus() { if (counterChoice == "User") { if (currentGoal == goalNumbers) { new_subject = "Final goal: " + nextGoal + " (" + goal + " registered user in my room) "+hashtag; } else { new_subject = "Goal #" +currentGoal+ ": " + nextGoal + " (" + goal + " registered user in my room) "+hashtag; } } else { if (currentGoal == goalNumbers) { new_subject = "Final goal: " + nextGoal + " (When " + goal + " user visited my room) "+hashtag; } else { new_subject = "Goal #" +currentGoal+ ": " + nextGoal + " (When " + goal + " user visited my room) "+hashtag; } } cb.changeRoomSubject(new_subject); } function round(value, decimals) { return Number(Math.round(value+"e"+decimals)+"e-"+decimals); } function progressBar() { var countBar = ""; var countBars = ""; var countProgress = ""; var countPercenty = ""; var countPercent = ""; var countPercentInt = ""; var countLeft = ""; if (counter > goal) { countPercent = 100; } else { countPercent = round((counter/goal)*100,2); } countPercentInt = parseInt(countPercent,10); // 10 countLeft = (goal - counter); var countBars = { g00 : "\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592", g05 : "\u2593\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592", g10 : "\u2593\u2593\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592", g15 : "\u2593\u2593\u2593\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592", g20 : "\u2593\u2593\u2593\u2593\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592", g25 : "\u2593\u2593\u2593\u2593\u2593\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592", g30 : "\u2593\u2593\u2593\u2593\u2593\u2593\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592", g35 : "\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592", g40 : "\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592", g45 : "\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592", g50 : "\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592", g55 : "\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592", g60 : "\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2592\u2592\u2592\u2592\u2592\u2592\u2592\u2592", g65 : "\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2592\u2592\u2592\u2592\u2592\u2592\u2592", g70 : "\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2592\u2592\u2592\u2592\u2592\u2592", g75 : "\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2592\u2592\u2592\u2592\u2592", g80 : "\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2592\u2592\u2592\u2592", g85 : "\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2592\u2592\u2592", g90 : "\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2592\u2592", g95 : "\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2592", gxx : "\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593\u2593", }; // Expand to be more detailed. if (countPercentInt < 5) { countBar = countBars.g00; } else if (countPercentInt < 10) { countBar = countBars.g05; } else if (countPercentInt < 15) { countBar = countBars.g10; } else if (countPercentInt < 20) { countBar = countBars.g15; } else if (countPercentInt < 25) { countBar = countBars.g20; } else if (countPercentInt < 30) { countBar = countBars.g25; } else if (countPercentInt < 35) { countBar = countBars.g30; } else if (countPercentInt < 40) { countBar = countBars.g35; } else if (countPercentInt < 45) { countBar = countBars.g40; } else if (countPercentInt < 50) { countBar = countBars.g45; } else if (countPercentInt < 55) { countBar = countBars.g50; } else if (countPercentInt < 60) { countBar = countBars.g55; } else if (countPercentInt < 65) { countBar = countBars.g60; } else if (countPercentInt < 70) { countBar = countBars.g65; } else if (countPercentInt < 75) { countBar = countBars.g70; } else if (countPercentInt < 80) { countBar = countBars.g75; } else if (countPercentInt < 85) { countBar = countBars.g80; } else if (countPercentInt < 90) { countBar = countBars.g85; } else if (countPercentInt < 95) { countBar = countBars.g90; } else if (countPercentInt < 100) { countBar = countBars.g95; } else if (countPercentInt >= 100) { countBar = countBars.gxx; } if (countPercent<0) { countPercent = 0; } countProgress = countBar+" ("+countPercent+"%)"; /*var debug = "\n DEBUG: "; debug += "\n counter: "+counter; debug += "\n goal: "+goal; debug += "\n countPercenty: "+countPercenty; debug += "\n countPercent: "+countPercent; debug += "\n countPercentInt: "+countPercentInt; debug += "\n countLeft: "+countLeft; debug += "\n countBars: "+countBars; debug += "\n countBar: "+countBar; debug += "\n countProgress: "+countProgress+"\n"; cb.sendNotice(debug); */ return countProgress; } function repeatMSG() { if (goalR == false) { if (tipDecreaseVar>0) { cb.sendNotice("With "+tipDecreaseVar+" tokens the goal can be decreased by 1!",'','',cb.settings['msgcolor'],'bold'); cb.setTimeout(repeatMSG, (varTipMsg * 60000)); } } } cb.setTimeout(repeatMSG, (varTipMsg * 60000)); function init() { goalText1 = cb.settings.goalText1; goalText2 = cb.settings.goalText2; goalText3 = cb.settings.goalText3; goalText4 = cb.settings.goalText4; goalText5 = cb.settings.goalText5; goalText6 = cb.settings.goalText6; goalText7 = cb.settings.goalText7; goalText8 = cb.settings.goalText8; if (goalText8 != "") { goalNumbers = 8; } else if (goalText7 != "") { goalNumbers = 7; } else if (goalText6 != "") { goalNumbers = 6; } else if (goalText5 != "") { goalNumbers = 5; } else if (goalText4 != "") { goalNumbers = 4; } else if (goalText3 != "") { goalNumbers = 3; } else if (goalText2 != "") { goalNumbers = 2; } missing = goalUsernumber1; goal = missing; nextGoal = goalText1; setStatus(); cb.drawPanel(); cb.sendNotice(progressBar()); } init();
© Copyright Chaturbate 2011- 2024. All Rights Reserved.