Bots Home
|
Create an App
bot
Author:
memnoch91
Description
Source Code
Launch Bot
Current Users
Created by:
Memnoch91
// JavaScript Document String.prototype.format = function () { var newString = String(this); for (var i = 0; i < arguments.length; i++) { newString = newString.replace('{' + i + '}', arguments[i]); } return String(newString); } String.prototype.isInt = function () { return isInt(this) } // VARIABLES GLOBALES DE FONCTIONNEMENT // -> les lignes marquées d'un /*¤*/ sont modifiables // -> possibilite d ajouter des lignes marquees d'un /*+*/ (se referer a la ligne precedente) var Mod = { Name: "Memnoch Mod", /*¤*/ Version: 1.01, /*¤*/ Author: "memnoch91", OriginalAuthor: "memnoch91", Debug: false, StartupTime: null, Constants: { languages: 1, }, }; var UserConstants = { /*¤*/ "memnoch91": {languages: 2,}, /*+*/ }; var Colours = { AliceBlue: "#F0F8FF", AntiqueWhite: "#FAEBD7", Aqua: "#00FFFF", Aquamarine: "#7FFFD4", Azure: "#F0FFFF", Beige: "#F5F5DC", Bisque: "#FFE4C4", Black: "#000000", BlanchedAlmond: "#FFEBCD", Blue: "#0000FF", BlueViolet: "#8A2BE2", Brown: "#A52A2A", BurlyWood: "#DEB887", CadetBlue: "#5F9EA0", Chartreuse: "#7FFF00", Chocolate: "#D2691E", Coral: "#FF7F50", CornflowerBlue: "#6495ED", Cornsilk: "#FFF8DC", Crimson: "#DC143C", Cyan: "#00FFFF", DarkBlue: "#00008B", DarkCyan: "#008B8B", DarkGoldenRod: "#B8860B", DarkGrey: "#A9A9A9", DarkGreen: "#006400", DarkKhaki: "#BDB76B", DarkMagenta: "#8B008B", DarkOliveGreen: "#556B2F", DarkOrange: "#FF8C00", DarkOrchid: "#9932CC", DarkRed: "#8B0000", DarkSalmon: "#E9967A", DarkSeaGreen: "#8FBC8F", DarkSlateBlue: "#483D8B", DarkSlateGrey: "#2F4F4F", DarkTurquoise: "#00CED1", DarkViolet: "#9400D3", DeepPink: "#FF1493", DeepSkyBlue: "#00BFFF", DimGrey: "#696969", DodgerBlue: "#1E90FF", FireBrick: "#B22222", FloralWhite: "#FFFAF0", ForestGreen: "#228B22", Fuschia: "#FF00FF", Gainsboro: "#DCDCDC", GhostWhite: "#F8F8FF", Gold: "#FFD700", GoldenRod: "#DAA520", Grey: "#808080", Green: "#008000", GreenYellow: "#ADFF2F", HoneyDew: "#F0FFF0", HotPink: "#FF69B4", IndianRed: "#CD5C5C", Indigo: "#4B0082", Ivory: "#FFFFF0", Khaki: "#F0E68C", Lavender: "#E6E6FA", LavenderBlush: "#FFF0F5", LawnGreen: "#7CFC00", LemonChiffon: "#FFFACD", LightBlue: "#ADD8E6", LightCoral: "#F08080", LightCyan: "#E0FFFF", LightGoldenRodYellow: "#FAFAD2", LightGrey: "#D3D3D3", LightGreen: "#90EE90", LightPink: "#FFB6C1", LightSalmon: "#FFA07A", LightSeaGreen: "#20B2AA", LightSkyBlue: "#87CEFA", LightSlateGrey: "#778899", LightSteelBlue: "#B0C4DE", LightYellow: "#FFFFE0", Lime: "#00FF00", LimeGreen: "#32CD32", Linen: "#FAF0E6", Magenta: "#FF00FF", Maroon: "#800000", MediumAquaMarine: "#66CDAA", MediumBlue: "#0000CD", MediumOrchid: "#BA55D3", MediumPurple: "#9370DB", MediumSeaGreen: "#3CB371", MediumSlateBlue: "#7B68EE", MediumSpringGreen: "#00FA9A", MediumTurquoise: "#48D1CC", MediumVioletRed: "#C71585", MidnightBlue: "#191970", MintCream: "#F5FFFA", MistyRose: "#FFE4E1", Moccasin: "#FFE4B5", NavajoWhite: "#FFDEAD", Navy: "#000080", OldLace: "#FDF5E6", Olive: "#808000", OliveDrab: "#6B8E23", Orange: "#FFA500", OrangeRed: "#FF4500", Orchid: "#DA70D6", PaleGoldenRod: "#EEE8AA", PaleGreen: "#98FB98", PaleTurquoise: "#AFEEEE", PaleVioletRed: "#DB7093", PapayaWhip: "#FFEFD5", PeachPuff: "#FFDAB9", Peru: "#CD853F", Pink: "#FFC0CB", Plum: "#DDA0DD", PowderBlue: "#B0E0E6", Purple: "#800080", Red: "#FF0000", RosyBrown: "#BC8F8F", RoyalBlue: "#4169E1", SaddleBrown: "#8B4513", Salmon: "#FA8072", SandyBrown: "#F4A460", SeaGreen: "#2E8B57", SeaShell: "#FFF5EE", Sienna: "#A0522D", Silver: "#C0C0C0", SkyBlue: "#87CEEB", SlateBlue: "#6A5ACD", SlateGrey: "#708090", Snow: "#FFFAFA", SpringGreen: "#00FF7F", SteelBlue: "#4682B4", Tan: "#D2B48C", Teal: "#008080", Thistle: "#D8BFD8", Tomato: "#FF6347", Turquoise: "#40E0D0", Violet: "#EE82EE", Wheat: "#F5DEB3", White: "#FFFFFF", WhiteSmoke: "#F5F5F5", Yellow: "#FFFF00", YellowGreen: "#9ACD32" }; // FONCTIONS GLOBALES DE FONCTIONNEMENT function isInt (value) { return !isNaN(value) && parseInt(Number(value)) == value && !isNaN(parseInt(value, 10)); }; function valIfUndefined (test,valIf){ if (isUndefined(test)){ return valIf }else{ return test } }; function isUndefined (test) { return (test == undefined || test == "" || test == 0 || test==null); }; function Ran (min, max) { return Math.floor(Math.random() * (max - min +1)) + min; }; function isSuperuser (username, isMod) { return (username == cb.room_slug || isMod); }; // CONTROLEUR DE CB if (cb != null) { if (UserConstants[cb.room_slug] != undefined) Mod.Constants = UserConstants[cb.room_slug]; } if (cb == null) { var cb = { settings_choices: [], changeRoomSubject: function (new_subject) { }, drawPanel: function () { }, log: function (message) { }, onDrawPanel: function (func) { }, onEnter: function (func) { }, onLeave: function (func) { }, onMessage: function (func) { }, onShowStatus: function (func) { }, onTip: function (func) { }, room_slug: '', sendNotice: function (message, to_user, background, foreground, weight, to_group) { }, setTimeout: function (func, msec) { }, settings: {}, tipOptions: function (func) { }, limitCam_start: function (message, allowed_users) { }, limitCam_stop: function () { }, limitCam_addUsers: function (allowed_users) { }, limitCam_removeUsers: function (removed_users) { }, limitCam_removeAllUsers: function () { }, limitCam_userHasAccess: function (user) { }, limitCam_allUsersWithAccess: function () { }, limitCam_isRunning: function () { }, }; } cb.settings_choices = [] var settings={ languages:{ EN:{ I:1, A:"En", N:"English", S:"For an english traduction", D:true }, }, welcomeSentence:[], parseOptions:function(){ languages.parseOptions() } }; var utilisateurs={ utilisateurs:{}, add:function(user){ if (isUndefined(this.get(user.user))){ var o={ _params:{ _user:undefined, _utilisateur:undefined, _connected:false, }, name:"", connected:function(value){ if (!isUndefined(value)){ this._params._connected=value }else{ return this._params._connected } }, messages:{ _utilisateur:undefined, welcomeMessage:function(){ this.send("Welcome {0}! :star_olivia_dellvine ".format(this._utilisateur.name),Colours.White,Colours.DarkBlue,'bolder') }, send:function(mess,fontColor,backgroundColor,fontBold){ message.sendMessageToUser(this._utilisateur.name,mess,fontColor,backgroundColor,fontBold) } }, innit:function(user){ this._params._user=user this._params._utilisateur=this this.messages._utilisateur=this this._params._connected=false this.name=this._params._user.user } } o.innit(user) this.utilisateurs[o.name]=o o.messages.welcomeMessage() }else{ } this.get(user.user).connected(true) }, get:function(userName){ return this.utilisateurs[userName] }, remove:function(userName){ if (!isUndefined(this.get(userName))){ this.get(userName).connected(false) } }, }; var languages={ Cname:"languages", Dname:function(i){return "Language N\° {0}".format(i)}, Iname:function(i){return "Language_{0}".format(i)}, Sstring:"> LANGUAGE (<Abrev>,<Name>,<Description>) ..................... ", Settings:[], // INNITIALISATIONS innit:function(){ for (var i=2;i<=Mod.Constants[this.Cname];i++){ var st="" if (i==2){ st+= this.Sstring+this.Dname(i) }else{ st=this.Dname(i) } this.Settings.push({ name: this.Iname(i), label:st, type: 'str', minLength: 0, maxLength: 255, required: false, defaultValue:'' }); } cb.settings_choices = cb.settings_choices.concat(this.Settings); }, parseOptions:function(){ var z=1; for (var i = 2; i <= Mod.Constants[this.Cname]; i++) { if (!isUndefined(cb.settings[this.Iname(i)])){ var Arr= cb.settings[this.Iname(i)].split(',') if (Arr.length==3){ z++; var I=z; var A=Arr[0]; var N=Arr[1]; var S= Arr[2]; var D=false; settings[this.Cname][A]={ I: I, A: A, N: N, S: S, D: D }; } } } }, // FONCTIONS COMMUNES length:function(){ var i=0 for (l in settings[this.Cname]){ i++ } return i }, // FONCTIONS SUPP getDefault:function(){ for(l in settings[this.Cname]){ if (l.D==true){ return l } } }, getByA:function(Abreviation,undef){ if (!isUndefined(settings[this.Cname][Abreviation])){ return settings[this.Cname][Abreviation] }else{ if (isUndefined(undef) || undef==false){ return this.getDefault() }else{ return undefined } } }, getByI:function(Index,undef){ var i=0 if (Index<=0 || Index>this.length){ if (isUndefined(undef) || undef==false){ return this.getDefault() }else{ return undefined } }else{ for (l in settings[this.Cname]){ i++ if (i==Index){ return l } } } }, get(args,undef){ if (!isUndefined(args)){ if (isInt(args)){ return this.getByI(args,undef) }else{ return this.getByA(args,undef) } }else{ return undefined } }, addLanguage:function(A,N,S,D){ var I= this.length() if (isUndefined(this.getByA(A))){ settings[this.Cname][A]={ I: I, A: A, N: N, S: S, D: D }; } }, removeLanguage:function(A){ if (!isUndefined(settings[this.Cname])){ settings[this.Cname]=undefined return true }else{ return false } }, // HELP AND MESSAGE buildHelp:function(msg){ var output = "" if (isSuperuser(msg.user,msg.is_mod)){ output += "############# LANGUAGE COMMAND LINE #############\n"; output += "!l-add <abrev>,<name>,<description> => add a new language (for exemple : '!l-add En,English,For an english traduction')\n"; output += "!l-remove <abrev> => remove a language (for exemple : '!l-remove En')\n"; output += "/l => display a list of all language"; output += "/l-<abrev> => change your current language to <abrev> (for exemple : '/l-En' for English language)\n"; }else{ output += "#### LANGUAGE COMMAND LINE ####\n"; output += "/l => display a list of all language"; output += "/l-<abrev> => change your current language to <abrev> (for exemple : '/l-En' for English language)\n"; } return output }, onMessage:function(indic,msg){ if (msg.m.substring(0,6)=="!l-add"){ var arr=msg.m.substring(8).split(',') if (arr.length<3){ //utilisateur.get(msg.user).sendErrorMessage("You have to enter parametre like this : <Abrev>,Name>,<Description>") }else{ this.addLanguage(arr[0],arr[1],arr[2],false) // send confirm } }else if (msg.m.substring(0,9)=="!l-remove"){ var arr=msg.m.substring(11) if (arr==""){ // message erreur }else{ if (this.removeLanguage(arr)==true){ //send confirm }else{ // message erreur } } }else if (msg.m.substring(0,3)=="/l-"){ var arr=msg.m.substring(4) if (arr==""){ // message erreur }else{ if (!isUndefined(this.getByA(Arr,true))){ // change language of msg.user //send confirm }else{ // message erreur } } }else if(msg.m.length==2 && msg.m.substring(0,2)=="/l"){ var st = "" for (var i=0;i<this.length;i++){ if (st!=""){st+='\n'} st+=this.get0(i).I+" -> "+this.get0(i).A+" : "+this.get0(i).S } // send all language } }, }; languages.innit(); var message={ sendMessageToUser(userName,mess,fontColor,backgroundColor,fontBold){ this.send(mess,userName,null,fontColor,backgroundColor,fontBold) }, sendMessageExceptUser(userName,mess,fontColor,backgroundColor,fontBold){ for (us in utilisateurs.utilisateurs){ if (us.name!=userName && us.connected==true){ this.send(mess,us.name,null,fontColor,backgroundColor,fontBold) } } }, sendMessageToGroup(group,mess,fontColor,backgroundColor,fontBold){ this.send(mess,null,group,fontColor,backgroundColor,fontBold) }, send(message,utilisateurName,group,couleurTexte,couleurFond,bold){ var m = message var c = valIfUndefined(couleurTexte,Colours.Black) var f = valIfUndefined(couleurFond,Colours.White) var b = valIfUndefined(bold,'normal') if (!isUndefined(utilisateurName) && !isUndefined(group)) { cb.sendNotice(m, null, f, c, b, group); cb.sendNotice(m, utilisateurName, f, c, b, null); }else if (!isUndefined(utilisateurName) && isUndefined(group)){ cb.sendNotice(m, utilisateurName, f, c, b, null); }else if (isUndefined(utilisateurName) && !isUndefined(group)){ cb.sendNotice(m, null, f, c, b, group); }else if (isUndefined(utilisateurName) && isUndefined(group)) { cb.sendNotice(m, null, f, c, b, null); } }, }; cb.onEnter(function (user) { utilisateurs.add(user) }); cb.onLeave(function (user) { utilisateurs.remove(user.user) }); cb.onMessage(function (msg) { // var silenced = 0; //1 = user is already silenced // var messageBlocked = 0; // used to determine whether a message gets blocked based on wordlist // var graphicsBlocked = 0; // used to determine whether a user can use graphics // var imageReplaced = 0; // var symbolString = '~`!@#$%^&*()_-+={[}]|\\:;"\'<,>.?/'; // var msgString = msg['m'].trim(); // chaine de message sans les espaces avant et apres // var cmdPattern = '/^\/[a-z;A-Z]'; // si le teste commence par / et suivi d'un alpha de a à z ou A à Z' // var isCommand = cmdPattern.test(msgString); // var message = msgString.split(/\s+/g); // un tableau de tous les messages // User vars // var u = msg.user; // var utilisateur=utilisateurs.get(msg.user) // var isSilenced = utilisateur.estMuet() //var hasTipped = (utilisateur.tokenStat.TotalT>0) //var isHost = utilisateur.is_host //var isMod = utilisateur.is_mod //var isFan = utilisateur.in_fanclub //var isEmod = cbjs.arrayContains(emodArray, u); //var isNice = cbjs.arrayContains(niceArray, u); //var isGreyish = cbjs.arrayContains(greyArray, u); //var isOnVipList = cbjs.arrayContains(vipArray, u); // //var isGrey = (!msg.has_tokens && !hasTipped && !msg.tipped_recently); // technically MAY include some light blues who have tipped down to zero, but i don't think so //var isBlueUp = (msg.tipped_recently || hasTipped); //if(isSilenced && !(isHost || isMod || isEmod || isNice || isDev) && silenced == 0) { // msg['X-Spam'] = true; // silenced = 1; // utilisateur.sendMessage("Votre message n'a pas été envoyé. En effet, seul les personnes ayant des //Tokens peuvent participer au chat. Achetez des Tokens pour pouvoir //participer!",Colours.Red,Colours.DarkGrey,'bolder') //} //var i = 0; //var key = null; //if (msg.m.substring(0, 1) === "/") { // msg["X-Spam"] = true; // if (msg.m.substring(1) === "help") { // Utilisateurs.get(msg.user).sendMessage(buildHelp(msg),Colours.White,Colours.Black,'bolder'); // }else{ // language.onMessage(msg) // WelcomSentence.onMessage(msg) // } //} //return msg; }); /*////////////////////////////// INNITIALISATION ///////////////////////////////*/ function parseOptions(){ settings.parseOptions() } function init() { Mod.StartupTime=new Date(); parseOptions(); /*goals.goalTimer.hookOnTimer = function () { goals.goalTimerOnTimer(); }; Messenger.sendSuccessMessage("Tip Multi-Goal v" + Application.Version + " started.", null); Messenger.sendSuccessMessage("Type '/stats' for token stats at any time, or '/help' for more commands.", null, Groups.Moderators); TimerManager.initialise(); reset();*/ } //if (cb.settings.goal_1_tokens !== null && cb.settings.goal_1_tokens !== undefined) { if (!Mod.Debug || (Mod.Debug && cb.room_slug == Mod.Author)) { init(); } else { /*Messenger.sendErrorMessage("Application Error! This {0} version is a DEBUG build and can only be run by {1}. Startup aborted!".format(Mod.Name, Mod.Author), cb.room_slug);*/ } //}
© Copyright Chaturbate 2011- 2026. All Rights Reserved.