diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 412eeda7..00000000 --- a/.gitattributes +++ /dev/null @@ -1,22 +0,0 @@ -# Auto detect text files and perform LF normalization -* text=auto - -# Custom for Visual Studio -*.cs diff=csharp -*.sln merge=union -*.csproj merge=union -*.vbproj merge=union -*.fsproj merge=union -*.dbproj merge=union - -# Standard to msysgit -*.doc diff=astextplain -*.DOC diff=astextplain -*.docx diff=astextplain -*.DOCX diff=astextplain -*.dot diff=astextplain -*.DOT diff=astextplain -*.pdf diff=astextplain -*.PDF diff=astextplain -*.rtf diff=astextplain -*.RTF diff=astextplain diff --git a/LICENSE.md b/LICENSE.md deleted file mode 100644 index 7c55da9b..00000000 --- a/LICENSE.md +++ /dev/null @@ -1,4 +0,0 @@ -Copyright © 2014 Yemasthui - -Modifications (including forks) of the code to fit personal needs are allowed only for personal use and should refer back to the original source. -This software is not for profit, any extension, or unauthorised person providing this software is not authorised to be in a position of any monetary gain from this use of this software. Any and all money gained under the use of the software (which includes donations) must be passed on to the original author. \ No newline at end of file diff --git a/LICENSE.txt b/LICENSE.txt deleted file mode 100644 index 92e3f7c1..00000000 --- a/LICENSE.txt +++ /dev/null @@ -1,4 +0,0 @@ -Copyright 2014 Yemasthui - -Modifications (including forks) of the code to fit personal needs are allowed only for personal use and should refer back to the original source. -This software is not for profit, any extension, or unauthorised person providing this software is not authorised to be in a position of any monetary gain from this use of this software. Any and all money gained under the use of the software (which includes donations) must be passed on to the original author. \ No newline at end of file diff --git a/README.md b/README.md index afeea0c1..19a2efef 100644 --- a/README.md +++ b/README.md @@ -1,75 +1,105 @@ -# basicBot (source) +![basicBot](http://i.imgur.com/efwl0PS.png) -[![Slack](https://basicbot.herokuapp.com/badge.svg)](https://basicbot.herokuapp.com/) [![facebook group](https://img.shields.io/badge/facebook-group-3b5998.svg?style=flat)](https://facebook.com/groups/basicBot) [![twitter](https://img.shields.io/twitter/follow/bscbt.svg?style=social)](https://twitter.com/bscbt) +### Contact +[![Slack](https://basicbot.herokuapp.com/badge.svg)](https://basicbot.herokuapp.com/) [![Facebook group](https://img.shields.io/badge/facebook-group-3b5998.svg?style=flat)](https://facebook.com/groups/basicBot) [![Twitter](https://img.shields.io/twitter/follow/bscbt.svg?style=social)](https://twitter.com/bscbt) +Email enquiries: [hi[at]benzi[dot]io](mailto:hi@benzi.io) -Usage ------ -Bookmark the following code. To run the bot, run the bookmark. -`javascript:(function(){$.getScript('https://rawgit.com/basicBot/source/master/basicBot.js');})();` +### Usage -If this does not work, go to https://raw.githubusercontent.com/basicBot/source/master/basicBot.js and copy paste its content into your console (accessible in chrome by pressing F12) when on plug.dj in your community. +Bookmark the following code. To run the bot, click the bookmark. +``` +javascript:(function(){$.getScript('https://raw.githack.com/basicBot/source/master/basicBot.js');})(); +``` -Commands --------- -These can be found in [the commands file](https://github.com/basicBot/source/blob/master/commands.md). +If this does not work, go to [basicBot.js](https://raw.githubusercontent.com/basicBot/source/master/basicBot.js) and copy paste its content into your console (accessible in chrome by pressing F12) when on plug.dj in your community. +### Commands + +These can be found in [the commands list](commands.md). + +### Blacklists -Blacklists ----------- Examples of blacklists can be found in [the customization repository](https://github.com/basicBot/custom/tree/master/blacklists). You can add blacklists in the settings of the bot via the methods given in that same repository. See below for more information. -Extending functionality and custom default settings ---------------------------------------------------- +### Extending functionality and custom default settings + basicBot can be customized to fit your needs. Please refer to [the customization repository](https://github.com/basicBot/custom) for more info. -Please do not try to if you are not confident in your javascript capabilities. +Please do not try to if you are not confident in your JavaScript capabilities. + +### Credits -Developers ----------- - - [Benzi](https://github.com/Benzi) __(Maintainer)__ - - -Credits --------- +| Developers | +|:----------:| +| [![Benzi](https://www.gravatar.com/avatar/a9a9e27f874dadfaf0e21e8ecf8e9833.jpg?s=100)](https://github.com/Benzi) | +| **[Benzi](https://github.com/Benzi)** | -I would like to thank the following people: +#### Special thanks :sparkles: - Fungus: His Tastybot has been a source of inspiration for most of the features, and his help with coding problems has been invaluable to make this bot. - TAT, Origin and other Litebot contributors: Their Litebot has inspired features like Roulette. - Henchman: Never knew this undertaking would give me a friend too. -|Language | Translator| -|:------:|:---------:| -|Portuguese|[Motel Bible](https://github.com/motelbible)| -|French|[NDA](https://github.com/NDAthereal)| - -__I would also like to thank everyone who contributed in translating the bot via the [translation centre](https://basicbot.oneskyapp.com/admin/collaborators)__ - - -### Copyright - -Copyright © 2014-2016 basicBot +#### Translations :globe_with_meridians: + +I would like to thank everyone who have contributed in translating the bot via [Transifex](https://www.transifex.com/basicbot/basicbot) :pray: + +| Translator | Languages | +|:----------:|:---------:| +| 3GoneS | Lithuanian | +| ajdin291 | Serbian | +| Bart Boom | Dutch | +| cirktv| Dutch | +| clone287 | Turkish | +| DivinityRSPS | German | +| [Filly](https://github.com/fillylumi) | French | +| Gradure | Dutch | +| H0LYbear | Turkish | +| hadi555 | German | +| [Hasztagg](https://github.com/Hasztagg) | Polish | +| Helvijs Baumanis | Latvian | +| Inga Deveiko | Latvian | +| Janis Petrovskis | Latvian | +| Leopard105 | Czech | +| linusworld | Chinese (Taiwan) | +| Liutauras Vaitkus | Lithuanian | +| Łukasz Strzałek | Polish | +| [Mikey Wazowsky](https://github.com/MikeyWazowsky) | Polish | +| [Motel Bible](https://github.com/motelbible) | Portuguese | +| [NDA](https://github.com/NDAthereal) | French | +| Patrick H-Hansen | Danish | +| Rie | Danish | +| Schokin | Spanish | +| Shone | Serbian | +| smt287 | Turkish | +| Tessi Tess Randysková | Czech | +| TIGJERUX | Latvian | +| xMaxist | Dutch | +| [Yenn](https://twitter.com/tsy_yenn) | Chinese (Taiwan), Malay | +| Јовев Немања | Serbian | + +### License + +Copyright © 2014-2018 basicBot Modifications (including forks) of the code to fit personal needs are allowed only for personal use and should refer back to the original source. This software is not for profit, any extension, or unauthorised person providing this software is not authorised to be in a position of any monetary gain from this use of this software. Any and all money gained under the use of the software (which includes donations) must be passed on to the original author. - -Disclaimer ----------- +### Disclaimer This bot is developed independently. Changes may be made without notice. There is no guarantee for the bot to be functioning perfectly. plug.dj admins have the right to request changes. -By using this chatbot you agree to not use it for violating plug.dj's Terms of Service. +By using this chatbot you agree to not use it for violating [plug.dj's Terms of Service](https://plug.dj/terms). You also agree not to alter the bot's code, unless in the cases explicitly stated above, for personal use, or for the sole purpose of submitting a pull request with a bug fix or a feature update, at which point it will be looked at and decided by the authors of the project. Please refer to the original author/repository at all times, even on personal forks that are not private. -Any requests for changes can be requested via email, through github or via plug.dj. +Any requests for changes can be requested via email, through GitHub or via plug.dj. diff --git a/basicBot.js b/basicBot.js index 0054ea87..93a0db85 100644 --- a/basicBot.js +++ b/basicBot.js @@ -1,31 +1,33 @@ /** - *Copyright 2015 basicBot - *Modifications (including forks) of the code to fit personal needs are allowed only for personal use and should refer back to the original source. - *This software is not for profit, any extension, or unauthorised person providing this software is not authorised to be in a position of any monetary gain from this use of this software. Any and all money gained under the use of the software (which includes donations) must be passed on to the original author. - */ + Copyright © 2014-2018 basicBot + + Modifications (including forks) of the code to fit personal needs are allowed only for personal use and should refer back to the original source. + This software is not for profit, any extension, or unauthorised person providing this software is not authorised to be in a position of any monetary gain from this use of this software. Any and all money gained under the use of the software (which includes donations) must be passed on to the original author. + + */ -(function () { +(function() { /*window.onerror = function() { - var room = JSON.parse(localStorage.getItem("basicBotRoom")); + var room = JSON.parse(localStorage.getItem('basicBotRoom')); window.location = 'https://plug.dj' + room.name; };*/ - API.getWaitListPosition = function(id){ - if(typeof id === 'undefined' || id === null){ + API.getWaitListPosition = function(id) { + if (typeof id === 'undefined' || id === null) { id = API.getUser().id; } var wl = API.getWaitList(); - for(var i = 0; i < wl.length; i++){ - if(wl[i].id === id){ + for (var i = 0; i < wl.length; i++) { + if (wl[i].id === id) { return i; } } return -1; }; - var kill = function () { + var kill = function() { clearInterval(basicBot.room.autodisableInterval); clearInterval(basicBot.room.afkInterval); basicBot.status = false; @@ -34,9 +36,12 @@ // This socket server is used solely for statistical and troubleshooting purposes. // This server may not always be up, but will be used to get live data at any given time. - /*var socket = function () { + /* + var socket = function() { function loadSocket() { - SockJS.prototype.msg = function(a){this.send(JSON.stringify(a))}; + SockJS.prototype.msg = function(a) { + this.send(JSON.stringify(a)) + }; sock = new SockJS('https://benzi.io:4964/socket'); sock.onopen = function() { console.log('Connected to socket!'); @@ -44,7 +49,9 @@ }; sock.onclose = function() { console.log('Disconnected from socket, reconnecting every minute ..'); - var reconnect = setTimeout(function(){ loadSocket() }, 60 * 1000); + var reconnect = setTimeout(function() { + loadSocket() + }, 60 * 1000); }; sock.onmessage = function(broadcast) { var rawBroadcast = broadcast.data; @@ -58,34 +65,41 @@ } else loadSocket(); } - var sendToSocket = function () { + var sendToSocket = function() { var basicBotSettings = basicBot.settings; var basicBotRoom = basicBot.room; var basicBotInfo = { time: Date.now(), version: basicBot.version }; - var data = {users:API.getUsers(),userinfo:API.getUser(),room:location.pathname,basicBotSettings:basicBotSettings,basicBotRoom:basicBotRoom,basicBotInfo:basicBotInfo}; + var data = { + users: API.getUsers(), + userinfo: API.getUser(), + room: location.pathname, + basicBotSettings: basicBotSettings, + basicBotRoom: basicBotRoom, + basicBotInfo: basicBotInfo + }; return sock.msg(data); - };*/ + }; + */ - var storeToStorage = function () { - localStorage.setItem("basicBotsettings", JSON.stringify(basicBot.settings)); - localStorage.setItem("basicBotRoom", JSON.stringify(basicBot.room)); + var storeToStorage = function() { + localStorage.setItem('basicBotsettings', JSON.stringify(basicBot.settings)); + localStorage.setItem('basicBotRoom', JSON.stringify(basicBot.room)); var basicBotStorageInfo = { time: Date.now(), stored: true, version: basicBot.version }; - localStorage.setItem("basicBotStorageInfo", JSON.stringify(basicBotStorageInfo)); - + localStorage.setItem('basicBotStorageInfo', JSON.stringify(basicBotStorageInfo)); }; - var subChat = function (chat, obj) { - if (typeof chat === "undefined") { - API.chatLog("There is a chat text missing."); - console.log("There is a chat text missing."); - return "[Error] No text message found."; + var subChat = function(chat, obj) { + if (typeof chat === 'undefined') { + API.chatLog('There is a chat text missing.'); + console.log('There is a chat text missing.'); + return '[Error] No text message found.'; // TODO: Get missing chat messages from source. } @@ -96,34 +110,31 @@ return chat; }; - var loadChat = function (cb) { - if (!cb) cb = function () { - }; - $.get("https://rawgit.com/basicBot/source/master/lang/langIndex.json", function (json) { + var loadChat = function(cb) { + if (!cb) cb = function() {}; + $.get('https://raw.githack.com/basicBot/source/master/lang/langIndex.json', function(json) { var link = basicBot.chatLink; - if (json !== null && typeof json !== "undefined") { + if (json !== null && typeof json !== 'undefined') { langIndex = json; link = langIndex[basicBot.settings.language.toLowerCase()]; if (basicBot.settings.chatLink !== basicBot.chatLink) { link = basicBot.settings.chatLink; - } - else { - if (typeof link === "undefined") { + } else { + if (typeof link === 'undefined') { link = basicBot.chatLink; } } - $.get(link, function (json) { - if (json !== null && typeof json !== "undefined") { - if (typeof json === "string") json = JSON.parse(json); + $.get(link, function(json) { + if (json !== null && typeof json !== 'undefined') { + if (typeof json === 'string') json = JSON.parse(json); basicBot.chat = json; cb(); } }); - } - else { - $.get(basicBot.chatLink, function (json) { - if (json !== null && typeof json !== "undefined") { - if (typeof json === "string") json = JSON.parse(json); + } else { + $.get(basicBot.chatLink, function(json) { + if (json !== null && typeof json !== 'undefined') { + if (typeof json === 'string') json = JSON.parse(json); basicBot.chat = json; cb(); } @@ -132,8 +143,8 @@ }); }; - var retrieveSettings = function () { - var settings = JSON.parse(localStorage.getItem("basicBotsettings")); + var retrieveSettings = function() { + var settings = JSON.parse(localStorage.getItem('basicBotsettings')); if (settings !== null) { for (var prop in settings) { basicBot.settings[prop] = settings[prop]; @@ -141,12 +152,12 @@ } }; - var retrieveFromStorage = function () { - var info = localStorage.getItem("basicBotStorageInfo"); + var retrieveFromStorage = function() { + var info = localStorage.getItem('basicBotStorageInfo'); if (info === null) API.chatLog(basicBot.chat.nodatafound); else { - var settings = JSON.parse(localStorage.getItem("basicBotsettings")); - var room = JSON.parse(localStorage.getItem("basicBotRoom")); + var settings = JSON.parse(localStorage.getItem('basicBotsettings')); + var room = JSON.parse(localStorage.getItem('basicBotRoom')); var elapsed = Date.now() - JSON.parse(info).time; if ((elapsed < 1 * 60 * 60 * 1000)) { API.chatLog(basicBot.chat.retrievingdata); @@ -166,18 +177,17 @@ } } var json_sett = null; - var roominfo = document.getElementById("room-settings"); - info = roominfo.textContent; - var ref_bot = "@basicBot="; + var info = _.find(require.s.contexts._.defined, (m) => m && m.attributes && 'hostID' in m.attributes).get('long_description'); + var ref_bot = '@basicBot='; var ind_ref = info.indexOf(ref_bot); if (ind_ref > 0) { var link = info.substring(ind_ref + ref_bot.length, info.length); var ind_space = null; - if (link.indexOf(" ") < link.indexOf("\n")) ind_space = link.indexOf(" "); - else ind_space = link.indexOf("\n"); + if (link.indexOf(' ') < link.indexOf('\n')) ind_space = link.indexOf(' '); + else ind_space = link.indexOf('\n'); link = link.substring(0, ind_space); - $.get(link, function (json) { - if (json !== null && typeof json !== "undefined") { + $.get(link, function(json) { + if (json !== null && typeof json !== 'undefined') { json_sett = JSON.parse(json); for (var prop in json_sett) { basicBot.settings[prop] = json_sett[prop]; @@ -188,7 +198,7 @@ }; - String.prototype.splitBetween = function (a, b) { + String.prototype.splitBetween = function(a, b) { var self = this; self = this.split(a); for (var i = 0; i < self.length; i++) { @@ -200,14 +210,13 @@ for (var j = 0; j < self[i].length; j++) { arr.push(self[i][j]); } - } - else arr.push(self[i]); + } else arr.push(self[i]); } return arr; }; String.prototype.startsWith = function(str) { - return this.substring(0, str.length) === str; + return this.substring(0, str.length) === str; }; function linkFixer(msg) { @@ -231,31 +240,32 @@ return str; }; - var botCreator = "Yemasthui"; - var botMaintainer = "Benzi" - var botCreatorIDs = ["3851534", "4105209"]; + var botCreator = 'Yemasthui'; + var botMaintainer = 'Benzi'; + var botCreatorIDs = [3851534, 4105209]; var basicBot = { - version: "2.8.17", + version: '2.12.3', status: false, - name: "basicBot", + name: 'basicBot', loggedInID: null, - scriptLink: "https://rawgit.com/basicBot/source/master/basicBot.js", - cmdLink: "http://git.io/245Ppg", - chatLink: "https://rawgit.com/basicBot/source/master/lang/en.json", + scriptLink: 'https://raw.githack.com/basicBot/source/master/basicBot.js', + cmdLink: 'http://git.io/245Ppg', + chatLink: 'https://raw.githack.com/basicBot/source/master/lang/en.json', chat: null, loadChat: loadChat, retrieveSettings: retrieveSettings, retrieveFromStorage: retrieveFromStorage, settings: { - botName: "basicBot", - language: "english", - chatLink: "https://rawgit.com/basicBot/source/master/lang/en.json", - scriptLink: "https://rawgit.com/basicBot/source/master/basicBot.js", + botName: 'basicBot', + language: 'english', + chatLink: 'https://raw.githack.com/basicBot/source/master/lang/en.json', + scriptLink: 'https://raw.githack.com/basicBot/source/master/basicBot.js', roomLock: false, // Requires an extension to re-load the script startupCap: 1, // 1-200 startupVolume: 0, // 0-100 startupEmoji: false, // true or false + googleApiKey: '', // Specify the Google API key that will be used by the bot to fetch data from YouTube. Please visit https://developers.google.com/youtube/v3/getting-started#before-you-start for guidance. autowoot: true, autoskip: false, smartSkip: true, @@ -274,27 +284,28 @@ voteSkipLimit: 10, historySkip: false, timeGuard: true, + strictTimeGuard: true, maximumSongLength: 10, - autodisable: true, + autodisable: false, commandCooldown: 30, usercommandsEnabled: true, thorCommand: false, thorCooldown: 10, skipPosition: 3, skipReasons: [ - ["theme", "This song does not fit the room theme. "], - ["op", "This song is on the OP list. "], - ["history", "This song is in the history. "], - ["mix", "You played a mix, which is against the rules. "], - ["sound", "The song you played had bad sound quality or no sound. "], - ["nsfw", "The song you contained was NSFW (image or sound). "], - ["unavailable", "The song you played was not available for some users. "] + ['theme', 'This song does not fit the room theme. '], + ['op', 'This song is on the OP list. '], + ['history', 'This song is in the history. '], + ['mix', 'You played a mix, which is against the rules. '], + ['sound', 'The song you played had bad sound quality or no sound. '], + ['nsfw', 'The song you contained was NSFW (image or sound). '], + ['unavailable', 'The song you played was not available for some users. '] ], afkpositionCheck: 15, - afkRankCheck: "ambassador", + afkRankCheck: 'ambassador', motdEnabled: false, motdInterval: 5, - motd: "Temporary Message of the Day", + motd: 'Temporary Message of the Day', filterChat: true, etaRestriction: false, welcome: true, @@ -307,11 +318,11 @@ intervalMessages: [], messageInterval: 5, songstats: true, - commandLiteral: "!", + commandLiteral: '!', blacklists: { - NSFW: "https://rawgit.com/basicBot/custom/master/blacklists/NSFWlist.json", - OP: "https://rawgit.com/basicBot/custom/master/blacklists/OPlist.json", - BANNED: "https://rawgit.com/basicBot/custom/master/blacklists/BANNEDlist.json" + NSFW: 'https://raw.githack.com/basicBot/custom/master/blacklists/NSFWlist.json', + OP: 'https://raw.githack.com/basicBot/custom/master/blacklists/OPlist.json', + BANNED: 'https://raw.githack.com/basicBot/custom/master/blacklists/BANNEDlist.json' } }, room: { @@ -328,7 +339,7 @@ //autoskip: false, autoskipTimer: null, autodisableInterval: null, - autodisableFunc: function () { + autodisableFunc: function() { if (basicBot.status && basicBot.settings.autodisable) { API.sendChat('!afkdisable'); API.sendChat('!joindisable'); @@ -338,8 +349,8 @@ queueable: true, currentDJID: null, historyList: [], - cycleTimer: setTimeout(function () { - }, 1), + cycleTimer: setTimeout(function() {}, 1), + tgSkip: null, roomstats: { accountName: null, totalWoots: 0, @@ -367,14 +378,14 @@ rouletteStatus: false, participants: [], countdown: null, - startRoulette: function () { + startRoulette: function() { basicBot.room.roulette.rouletteStatus = true; - basicBot.room.roulette.countdown = setTimeout(function () { + basicBot.room.roulette.countdown = setTimeout(function() { basicBot.room.roulette.endRoulette(); }, 60 * 1000); API.sendChat(basicBot.chat.isopen); }, - endRoulette: function () { + endRoulette: function() { basicBot.room.roulette.rouletteStatus = false; var ind = Math.floor(Math.random() * basicBot.room.roulette.participants.length); var winner = basicBot.room.roulette.participants[ind]; @@ -382,15 +393,18 @@ var pos = Math.floor((Math.random() * API.getWaitList().length) + 1); var user = basicBot.userUtilities.lookupUser(winner); var name = user.username; - API.sendChat(subChat(basicBot.chat.winnerpicked, {name: name, position: pos})); - setTimeout(function (winner, pos) { + API.sendChat(subChat(basicBot.chat.winnerpicked, { + name: name, + position: pos + })); + setTimeout(function(winner, pos) { basicBot.userUtilities.moveUser(winner, pos, false); }, 1 * 1000, winner, pos); } }, usersUsedThor: [] }, - User: function (id, name) { + User: function(id, name) { this.id = id; this.username = name; this.jointime = Date.now(); @@ -413,35 +427,35 @@ this.lastKnownPosition = null; }, userUtilities: { - getJointime: function (user) { + getJointime: function(user) { return user.jointime; }, - getUser: function (user) { + getUser: function(user) { return API.getUser(user.id); }, - updatePosition: function (user, newPos) { + updatePosition: function(user, newPos) { user.lastKnownPosition = newPos; }, - updateDC: function (user) { + updateDC: function(user) { user.lastDC.time = Date.now(); user.lastDC.position = user.lastKnownPosition; user.lastDC.songCount = basicBot.room.roomstats.songCount; }, - setLastActivity: function (user) { + setLastActivity: function(user) { user.lastActivity = Date.now(); user.afkWarningCount = 0; clearTimeout(user.afkCountdown); }, - getLastActivity: function (user) { + getLastActivity: function(user) { return user.lastActivity; }, - getWarningCount: function (user) { + getWarningCount: function(user) { return user.afkWarningCount; }, - setWarningCount: function (user, value) { + setWarningCount: function(user, value) { user.afkWarningCount = value; }, - lookupUser: function (id) { + lookupUser: function(id) { for (var i = 0; i < basicBot.room.users.length; i++) { if (basicBot.room.users[i].id === id) { return basicBot.room.users[i]; @@ -449,7 +463,7 @@ } return false; }, - lookupUserName: function (name) { + lookupUserName: function(name) { for (var i = 0; i < basicBot.room.users.length; i++) { var match = basicBot.room.users[i].username.trim() == name.trim(); if (match) { @@ -458,7 +472,7 @@ } return false; }, - voteRatio: function (id) { + voteRatio: function(id) { var user = basicBot.userUtilities.lookupUser(id); var votes = user.votes; if (votes.meh === 0) votes.ratio = 1; @@ -466,67 +480,66 @@ return votes; }, - getPermission: function (obj) { //1 requests + getPermission: function(obj) { var u; - if (typeof obj === "object") u = obj; + if (typeof obj === 'object') u = obj; else u = API.getUser(obj); - for (var i = 0; i < botCreatorIDs.length; i++) { - if (botCreatorIDs[i].indexOf(u.id) > -1) return 10; - } - if (u.gRole < 2) return u.role; + if (botCreatorIDs.indexOf(u.id) > -1) return 9999; + + if (u.gRole < 3000) return u.role; else { switch (u.gRole) { - case 2: - return 7; - case 3: - return 8; - case 4: - return 9; - case 5: - return 10; + case 3000: + return (1*(API.ROLE.HOST-API.ROLE.COHOST))+API.ROLE.HOST; + case 5000: + return (2*(API.ROLE.HOST-API.ROLE.COHOST))+API.ROLE.HOST; } } return 0; }, - moveUser: function (id, pos, priority) { + moveUser: function(id, pos, priority) { var user = basicBot.userUtilities.lookupUser(id); var wlist = API.getWaitList(); if (API.getWaitListPosition(id) === -1) { if (wlist.length < 50) { API.moderateAddDJ(id); - if (pos !== 0) setTimeout(function (id, pos) { + if (pos !== 0) setTimeout(function(id, pos) { API.moderateMoveDJ(id, pos); }, 1250, id, pos); - } - else { + } else { var alreadyQueued = -1; for (var i = 0; i < basicBot.room.queue.id.length; i++) { if (basicBot.room.queue.id[i] === id) alreadyQueued = i; } if (alreadyQueued !== -1) { basicBot.room.queue.position[alreadyQueued] = pos; - return API.sendChat(subChat(basicBot.chat.alreadyadding, {position: basicBot.room.queue.position[alreadyQueued]})); + return API.sendChat(subChat(basicBot.chat.alreadyadding, { + position: basicBot.room.queue.position[alreadyQueued] + })); } basicBot.roomUtilities.booth.lockBooth(); if (priority) { basicBot.room.queue.id.unshift(id); basicBot.room.queue.position.unshift(pos); - } - else { + } else { basicBot.room.queue.id.push(id); basicBot.room.queue.position.push(pos); } var name = user.username; - return API.sendChat(subChat(basicBot.chat.adding, {name: name, position: basicBot.room.queue.position.length})); + return API.sendChat(subChat(basicBot.chat.adding, { + name: name, + position: basicBot.room.queue.position.length + })); } - } - else API.moderateMoveDJ(id, pos); + } else API.moderateMoveDJ(id, pos); }, - dclookup: function (id) { + dclookup: function(id) { var user = basicBot.userUtilities.lookupUser(id); if (typeof user === 'boolean') return basicBot.chat.usernotfound; var name = user.username; - if (user.lastDC.time === null) return subChat(basicBot.chat.notdisconnected, {name: name}); + if (user.lastDC.time === null) return subChat(basicBot.chat.notdisconnected, { + name: name + }); var dc = user.lastDC.time; var pos = user.lastDC.position; if (pos === null) return basicBot.chat.noposition; @@ -536,7 +549,10 @@ validDC = true; } var time = basicBot.roomUtilities.msToStr(timeDc); - if (!validDC) return (subChat(basicBot.chat.toolongago, {name: basicBot.userUtilities.getUser(user).username, time: time})); + if (!validDC) return (subChat(basicBot.chat.toolongago, { + name: basicBot.userUtilities.getUser(user).username, + time: time + })); var songsPassed = basicBot.room.roomstats.songCount - user.lastDC.songCount; var afksRemoved = 0; var afkList = basicBot.room.afkList; @@ -548,45 +564,51 @@ } } var newPosition = user.lastDC.position - songsPassed - afksRemoved; - if (newPosition <= 0) return subChat(basicBot.chat.notdisconnected, {name: name}); - var msg = subChat(basicBot.chat.valid, {name: basicBot.userUtilities.getUser(user).username, time: time, position: newPosition}); + if (newPosition <= 0) return subChat(basicBot.chat.notdisconnected, { + name: name + }); + var msg = subChat(basicBot.chat.valid, { + name: basicBot.userUtilities.getUser(user).username, + time: time, + position: newPosition + }); basicBot.userUtilities.moveUser(user.id, newPosition, true); return msg; } }, roomUtilities: { - rankToNumber: function (rankString) { + rankToNumber: function(rankString) { var rankInt = null; switch (rankString) { - case "admin": + case 'admin': rankInt = 10; break; - case "ambassador": + case 'ambassador': rankInt = 7; break; - case "host": + case 'host': rankInt = 5; break; - case "cohost": + case 'cohost': rankInt = 4; break; - case "manager": + case 'manager': rankInt = 3; break; - case "bouncer": + case 'bouncer': rankInt = 2; break; - case "residentdj": + case 'residentdj': rankInt = 1; break; - case "user": + case 'user': rankInt = 0; break; } return rankInt; }, - msToStr: function (msTime) { + msToStr: function(msTime) { var ms, msg, timeAway; msg = ''; timeAway = { @@ -635,29 +657,28 @@ } }, booth: { - lockTimer: setTimeout(function () { - }, 1000), + lockTimer: setTimeout(function() {}, 1000), locked: false, - lockBooth: function () { + lockBooth: function() { API.moderateLockWaitList(!basicBot.roomUtilities.booth.locked); basicBot.roomUtilities.booth.locked = false; if (basicBot.settings.lockGuard) { - basicBot.roomUtilities.booth.lockTimer = setTimeout(function () { + basicBot.roomUtilities.booth.lockTimer = setTimeout(function() { API.moderateLockWaitList(basicBot.roomUtilities.booth.locked); }, basicBot.settings.maximumLocktime * 60 * 1000); } }, - unlockBooth: function () { + unlockBooth: function() { API.moderateLockWaitList(basicBot.roomUtilities.booth.locked); clearTimeout(basicBot.roomUtilities.booth.lockTimer); } }, - afkCheck: function () { - if (!basicBot.status || !basicBot.settings.afkRemoval) return void (0); + afkCheck: function() { + if (!basicBot.status || !basicBot.settings.afkRemoval) return void(0); var rank = basicBot.roomUtilities.rankToNumber(basicBot.settings.afkRankCheck); var djlist = API.getWaitList(); var lastPos = Math.min(djlist.length, basicBot.settings.afkpositionCheck); - if (lastPos - 1 > djlist.length) return void (0); + if (lastPos - 1 > djlist.length) return void(0); for (var i = 0; i < lastPos; i++) { if (typeof djlist[i] !== 'undefined') { var id = djlist[i].id; @@ -672,20 +693,23 @@ var warncount = user.afkWarningCount; if (inactivity > basicBot.settings.maximumAfk * 60 * 1000) { if (warncount === 0) { - API.sendChat(subChat(basicBot.chat.warning1, {name: name, time: time})); + API.sendChat(subChat(basicBot.chat.warning1, { + name: name, + time: time + })); user.afkWarningCount = 3; - user.afkCountdown = setTimeout(function (userToChange) { + user.afkCountdown = setTimeout(function(userToChange) { userToChange.afkWarningCount = 1; }, 90 * 1000, user); - } - else if (warncount === 1) { - API.sendChat(subChat(basicBot.chat.warning2, {name: name})); + } else if (warncount === 1) { + API.sendChat(subChat(basicBot.chat.warning2, { + name: name + })); user.afkWarningCount = 3; - user.afkCountdown = setTimeout(function (userToChange) { + user.afkCountdown = setTimeout(function(userToChange) { userToChange.afkWarningCount = 2; }, 30 * 1000, user); - } - else if (warncount === 2) { + } else if (warncount === 2) { var pos = API.getWaitListPosition(id); if (pos !== -1) { pos++; @@ -697,7 +721,12 @@ songCount: 0 }; API.moderateRemoveDJ(id); - API.sendChat(subChat(basicBot.chat.afkremove, {name: name, time: time, position: pos, maximumafk: basicBot.settings.maximumAfk})); + API.sendChat(subChat(basicBot.chat.afkremove, { + name: name, + time: time, + position: pos, + maximumafk: basicBot.settings.maximumAfk + })); } user.afkWarningCount = 0; } @@ -707,7 +736,7 @@ } } }, - smartSkip: function (reason) { + smartSkip: function(reason) { var dj = API.getDJ(); var id = dj.id; var waitlistlength = API.getWaitList().length; @@ -718,46 +747,46 @@ basicBot.roomUtilities.booth.lockBooth(); locked = true; } - setTimeout(function (id) { + setTimeout(function(id) { API.moderateForceSkip(); - setTimeout(function () { + setTimeout(function() { if (typeof reason !== 'undefined') { API.sendChat(reason); } }, 500); basicBot.room.skippable = false; - setTimeout(function () { + setTimeout(function() { basicBot.room.skippable = true }, 5 * 1000); - setTimeout(function (id) { + setTimeout(function(id) { basicBot.userUtilities.moveUser(id, basicBot.settings.skipPosition, false); basicBot.room.queueable = true; if (locked) { - setTimeout(function () { + setTimeout(function() { basicBot.roomUtilities.booth.unlockBooth(); }, 1000); } }, 1500, id); }, 1000, id); }, - changeDJCycle: function () { + changeDJCycle: function() { $.getJSON('/_/rooms/state', function(data) { - if (data.data[0].booth.shouldCycle) { // checks "" "shouldCycle": true "" if its true + if (data.data[0].booth.shouldCycle) { // checks if shouldCycle is true API.moderateDJCycle(false); // Disables the DJ Cycle clearTimeout(basicBot.room.cycleTimer); // Clear the cycleguard timer } else { // If cycle is already disable; enable it if (basicBot.settings.cycleGuard) { // Is cycle guard on? - API.moderateDJCycle(true); // Enables DJ cycle - basicBot.room.cycleTimer = setTimeout(function () { // Start timer - API.moderateDJCycle(false); // Disable cycle - }, basicBot.settings.maximumCycletime * 60 * 1000); // The time + API.moderateDJCycle(true); // Enables DJ cycle + basicBot.room.cycleTimer = setTimeout(function() { // Start timer + API.moderateDJCycle(false); // Disable cycle + }, basicBot.settings.maximumCycletime * 60 * 1000); // The time } else { // So cycleguard is not on? - API.moderateDJCycle(true); // Enables DJ cycle + API.moderateDJCycle(true); // Enables DJ cycle } }; }); }, - intervalMessage: function () { + intervalMessage: function() { var interval; if (basicBot.settings.motdEnabled) interval = basicBot.settings.motdInterval; else interval = basicBot.settings.messageInterval; @@ -765,28 +794,26 @@ var msg; if (basicBot.settings.motdEnabled) { msg = basicBot.settings.motd; - } - else { - if (basicBot.settings.intervalMessages.length === 0) return void (0); + } else { + if (basicBot.settings.intervalMessages.length === 0) return void(0); var messageNumber = basicBot.room.roomstats.songCount % basicBot.settings.intervalMessages.length; msg = basicBot.settings.intervalMessages[messageNumber]; } API.sendChat('/me ' + msg); } }, - updateBlacklists: function () { + updateBlacklists: function() { for (var bl in basicBot.settings.blacklists) { basicBot.room.blacklists[bl] = []; if (typeof basicBot.settings.blacklists[bl] === 'function') { basicBot.room.blacklists[bl] = basicBot.settings.blacklists(); - } - else if (typeof basicBot.settings.blacklists[bl] === 'string') { + } else if (typeof basicBot.settings.blacklists[bl] === 'string') { if (basicBot.settings.blacklists[bl] === '') { continue; } try { - (function (l) { - $.get(basicBot.settings.blacklists[l], function (data) { + (function(l) { + $.get(basicBot.settings.blacklists[l], function(data) { if (typeof data === 'string') { data = JSON.parse(data); } @@ -799,8 +826,7 @@ basicBot.room.blacklists[l] = list; }) })(bl); - } - catch (e) { + } catch (e) { API.chatLog('Error setting' + bl + 'blacklist.'); console.log('Error setting' + bl + 'blacklist.'); console.log(e); @@ -808,15 +834,14 @@ } } }, - logNewBlacklistedSongs: function () { + logNewBlacklistedSongs: function() { if (typeof console.table !== 'undefined') { console.table(basicBot.room.newBlacklisted); - } - else { + } else { console.log(basicBot.room.newBlacklisted); } }, - exportNewBlacklistedSongs: function () { + exportNewBlacklistedSongs: function() { var list = {}; for (var i = 0; i < basicBot.room.newBlacklisted.length; i++) { var track = basicBot.room.newBlacklisted[i]; @@ -830,7 +855,7 @@ return list; } }, - eventChat: function (chat) { + eventChat: function(chat) { chat.message = linkFixer(chat.message); chat.message = decodeEntities(chat.message); chat.message = chat.message.trim(); @@ -845,11 +870,11 @@ } } } - if (basicBot.chatUtilities.chatFilter(chat)) return void (0); + if (basicBot.chatUtilities.chatFilter(chat)) return void(0); if (!basicBot.chatUtilities.commandCheck(chat)) basicBot.chatUtilities.action(chat); }, - eventUserjoin: function (user) { + eventUserjoin: function(user) { var known = false; var index = null; for (var i = 0; i < basicBot.room.users.length; i++) { @@ -867,8 +892,7 @@ var t = Date.now() - jt; if (t < 10 * 1000) greet = false; else welcomeback = true; - } - else { + } else { basicBot.room.users.push(new basicBot.User(user.id, user.username)); welcomeback = false; } @@ -879,24 +903,33 @@ } } - if (basicBot.settings.welcome && greet) { + + if (botCreatorIDs.indexOf(user.id) > -1) { + console.log(true); + API.sendChat('@'+user.username+' '+':sparkles: :bow: :sparkles:'); + } else if (basicBot.settings.welcome && greet) { + console.log(false); + console.log(botCreatorIDs); welcomeback ? - setTimeout(function (user) { - API.sendChat(subChat(basicBot.chat.welcomeback, {name: user.username})); - }, 1 * 1000, user) - : - setTimeout(function (user) { - API.sendChat(subChat(basicBot.chat.welcome, {name: user.username})); + setTimeout(function(user) { + API.sendChat(subChat(basicBot.chat.welcomeback, { + name: user.username + })); + }, 1 * 1000, user) : + setTimeout(function(user) { + API.sendChat(subChat(basicBot.chat.welcome, { + name: user.username + })); }, 1 * 1000, user); } }, - eventUserleave: function (user) { + eventUserleave: function(user) { var lastDJ = API.getHistory()[0].user.id; for (var i = 0; i < basicBot.room.users.length; i++) { if (basicBot.room.users[i].id === user.id) { basicBot.userUtilities.updateDC(basicBot.room.users[i]); basicBot.room.users[i].inRoom = false; - if (lastDJ == user.id){ + if (lastDJ == user.id) { var user = basicBot.userUtilities.lookupUser(basicBot.room.users[i].id); basicBot.userUtilities.updatePosition(user, 0); user.lastDC.time = null; @@ -905,13 +938,12 @@ } } }, - eventVoteupdate: function (obj) { + eventVoteupdate: function(obj) { for (var i = 0; i < basicBot.room.users.length; i++) { if (basicBot.room.users[i].id === obj.user.id) { if (obj.vote === 1) { basicBot.room.users[i].votes.woot++; - } - else { + } else { basicBot.room.users[i].votes.meh++; } } @@ -925,32 +957,35 @@ if (basicBot.settings.voteSkip) { if ((mehs - woots) >= (basicBot.settings.voteSkipLimit)) { - API.sendChat(subChat(basicBot.chat.voteskipexceededlimit, {name: dj.username, limit: basicBot.settings.voteSkipLimit})); - if (basicBot.settings.smartSkip && timeLeft > timeElapsed){ + API.sendChat(subChat(basicBot.chat.voteskipexceededlimit, { + name: dj.username, + limit: basicBot.settings.voteSkipLimit + })); + if (basicBot.settings.smartSkip && timeLeft > timeElapsed) { basicBot.roomUtilities.smartSkip(); - } - else { + } else { API.moderateForceSkip(); } } } }, - eventCurateupdate: function (obj) { + eventCurateupdate: function(obj) { for (var i = 0; i < basicBot.room.users.length; i++) { if (basicBot.room.users[i].id === obj.user.id) { basicBot.room.users[i].votes.curate++; } } }, - eventDjadvance: function (obj) { + eventDjadvance: function(obj) { + if (!obj.dj) return; if (basicBot.settings.autowoot) { - $("#woot").click(); // autowoot + $('#woot').click(); // autowoot } var user = basicBot.userUtilities.lookupUser(obj.dj.id) - for(var i = 0; i < basicBot.room.users.length; i++){ - if(basicBot.room.users[i].id === user.id){ + for (var i = 0; i < basicBot.room.users.length; i++) { + if (basicBot.room.users[i].id === user.id) { basicBot.room.users[i].lastDC = { time: null, position: null, @@ -962,11 +997,16 @@ var lastplay = obj.lastPlay; if (typeof lastplay === 'undefined') return; if (basicBot.settings.songstats) { - if (typeof basicBot.chat.songstatistics === "undefined") { - API.sendChat("/me " + lastplay.media.author + " - " + lastplay.media.title + ": " + lastplay.score.positive + "W/" + lastplay.score.grabs + "G/" + lastplay.score.negative + "M.") - } - else { - API.sendChat(subChat(basicBot.chat.songstatistics, {artist: lastplay.media.author, title: lastplay.media.title, woots: lastplay.score.positive, grabs: lastplay.score.grabs, mehs: lastplay.score.negative})) + if (typeof basicBot.chat.songstatistics === 'undefined') { + API.sendChat('/me ' + lastplay.media.author + ' - ' + lastplay.media.title + ': ' + lastplay.score.positive + 'W/' + lastplay.score.grabs + 'G/' + lastplay.score.negative + 'M.') + } else { + API.sendChat(subChat(basicBot.chat.songstatistics, { + artist: lastplay.media.author, + title: lastplay.media.title, + woots: lastplay.score.positive, + grabs: lastplay.score.grabs, + mehs: lastplay.score.negative + })) } } basicBot.room.roomstats.totalWoots += lastplay.score.positive; @@ -976,16 +1016,17 @@ basicBot.roomUtilities.intervalMessage(); basicBot.room.currentDJID = obj.dj.id; - var blacklistSkip = setTimeout(function () { + var blacklistSkip = setTimeout(function() { var mid = obj.media.format + ':' + obj.media.cid; for (var bl in basicBot.room.blacklists) { if (basicBot.settings.blacklistEnabled) { if (basicBot.room.blacklists[bl].indexOf(mid) > -1) { - API.sendChat(subChat(basicBot.chat.isblacklisted, {blacklist: bl})); - if (basicBot.settings.smartSkip){ + API.sendChat(subChat(basicBot.chat.isblacklisted, { + blacklist: bl + })); + if (basicBot.settings.smartSkip) { return basicBot.roomUtilities.smartSkip(); - } - else { + } else { return API.moderateForceSkip(); } } @@ -993,44 +1034,55 @@ } }, 2000); var newMedia = obj.media; - var timeLimitSkip = setTimeout(function () { + clearTimeout(basicBot.room.tgSkip); + var timeLimitSkip = setTimeout(function() { if (basicBot.settings.timeGuard && newMedia.duration > basicBot.settings.maximumSongLength * 60 && !basicBot.room.roomevent) { - var name = obj.dj.username; - API.sendChat(subChat(basicBot.chat.timelimit, {name: name, maxlength: basicBot.settings.maximumSongLength})); - if (basicBot.settings.smartSkip){ - return basicBot.roomUtilities.smartSkip(); - } - else { - return API.moderateForceSkip(); + if (typeof basicBot.settings.strictTimeGuard === 'undefined' || basicBot.settings.strictTimeGuard) { + var name = obj.dj.username; + API.sendChat(subChat(basicBot.chat.timelimit, { + name: name, + maxlength: basicBot.settings.maximumSongLength + })); + if (basicBot.settings.smartSkip) { + return basicBot.roomUtilities.smartSkip(); + } else { + return API.moderateForceSkip(); + } + } else { + basicBot.room.tgSkip = setTimeout(function() { + if (basicBot.settings.timeGuard) return API.moderateForceSkip(); + return; + }, basicBot.settings.maximumSongLength*60*1000); } } }, 2000); var format = obj.media.format; var cid = obj.media.cid; - var naSkip = setTimeout(function () { - if (format == 1){ - $.getJSON('https://www.googleapis.com/youtube/v3/videos?id=' + cid + '&key=AIzaSyDcfWu9cGaDnTjPKhg_dy9mUh6H7i4ePZ0&part=snippet&callback=?', function (track){ - if (typeof(track.items[0]) === 'undefined'){ + var naSkip = setTimeout(function() { + if (format == 1) { + $.getJSON('https://youtube.googleapis.com/youtube/v3/videos?part=snippet&id=' + cid + '&key=' + basicBot.settings.googleApiKey, function(track) { + if (typeof(track.items[0]) === 'undefined') { var name = obj.dj.username; - API.sendChat(subChat(basicBot.chat.notavailable, {name: name})); - if (basicBot.settings.smartSkip){ + API.sendChat(subChat(basicBot.chat.notavailable, { + name: name + })); + if (basicBot.settings.smartSkip) { return basicBot.roomUtilities.smartSkip(); - } - else { + } else { return API.moderateForceSkip(); } } }); - } - else { - var checkSong = SC.get('/tracks/' + cid, function (track){ - if (typeof track.title === 'undefined'){ + } else { + var checkSong = SC.get('/tracks/' + cid, function(track) { + if (typeof track.title === 'undefined') { var name = obj.dj.username; - API.sendChat(subChat(basicBot.chat.notavailable, {name: name})); - if (basicBot.settings.smartSkip){ + API.sendChat(subChat(basicBot.chat.notavailable, { + name: name + })); + if (basicBot.settings.smartSkip) { return basicBot.roomUtilities.smartSkip(); - } - else { + } else { return API.moderateForceSkip(); } } @@ -1042,16 +1094,17 @@ var alreadyPlayed = false; var apihistory = API.getHistory(); var name = obj.dj.username; - var historySkip = setTimeout(function () { + var historySkip = setTimeout(function() { for (var i = 0; i < apihistory.length; i++) { if (apihistory[i].media.cid === obj.media.cid) { basicBot.room.historyList[i].push(+new Date()); alreadyPlayed = true; - API.sendChat(subChat(basicBot.chat.songknown, {name: name})); - if (basicBot.settings.smartSkip){ + API.sendChat(subChat(basicBot.chat.songknown, { + name: name + })); + if (basicBot.settings.smartSkip) { return basicBot.roomUtilities.smartSkip(); - } - else { + } else { return API.moderateForceSkip(); } } @@ -1062,7 +1115,9 @@ }, 2000); } if (user.ownSong) { - API.sendChat(subChat(basicBot.chat.permissionownsong, {name: user.username})); + API.sendChat(subChat(basicBot.chat.permissionownsong, { + name: user.username + })); user.ownSong = false; } clearTimeout(basicBot.room.autoskipTimer); @@ -1070,6 +1125,8 @@ var remaining = obj.media.duration * 1000; var startcid = API.getMedia().cid; basicBot.room.autoskipTimer = setTimeout(function() { + if (!API.getMedia()) return; + var endcid = API.getMedia().cid; if (startcid === endcid) { //API.sendChat('Song stuck, skipping...'); @@ -1080,25 +1137,25 @@ storeToStorage(); //sendToSocket(); }, - eventWaitlistupdate: function (users) { + eventWaitlistupdate: function(users) { if (users.length < 50) { if (basicBot.room.queue.id.length > 0 && basicBot.room.queueable) { basicBot.room.queueable = false; - setTimeout(function () { + setTimeout(function() { basicBot.room.queueable = true; }, 500); basicBot.room.queueing++; var id, pos; setTimeout( - function () { + function() { id = basicBot.room.queue.id.splice(0, 1)[0]; pos = basicBot.room.queue.position.splice(0, 1)[0]; API.moderateAddDJ(id, pos); setTimeout( - function (id, pos) { + function(id, pos) { API.moderateMoveDJ(id, pos); basicBot.room.queueing--; - if (basicBot.room.queue.id.length === 0) setTimeout(function () { + if (basicBot.room.queue.id.length === 0) setTimeout(function() { basicBot.roomUtilities.booth.unlockBooth(); }, 1000); }, 1000, id, pos); @@ -1110,9 +1167,9 @@ basicBot.userUtilities.updatePosition(user, API.getWaitListPosition(users[i].id) + 1); } }, - chatcleaner: function (chat) { + chatcleaner: function(chat) { if (!basicBot.settings.filterChat) return false; - if (basicBot.userUtilities.getPermission(chat.uid) > 1) return false; + if (basicBot.userUtilities.getPermission(chat.uid) >= API.ROLE.BOUNCER) return false; var msg = chat.message; var containsLetters = false; for (var i = 0; i < msg.length; i++) { @@ -1131,24 +1188,30 @@ if (ch >= 'A' && ch <= 'Z') capitals++; } if (capitals >= 40) { - API.sendChat(subChat(basicBot.chat.caps, {name: chat.un})); + API.sendChat(subChat(basicBot.chat.caps, { + name: chat.un + })); return true; } msg = msg.toLowerCase(); if (msg === 'skip') { - API.sendChat(subChat(basicBot.chat.askskip, {name: chat.un})); + API.sendChat(subChat(basicBot.chat.askskip, { + name: chat.un + })); return true; } for (var j = 0; j < basicBot.chatUtilities.spam.length; j++) { if (msg === basicBot.chatUtilities.spam[j]) { - API.sendChat(subChat(basicBot.chat.spam, {name: chat.un})); + API.sendChat(subChat(basicBot.chat.spam, { + name: chat.un + })); return true; } } return false; }, chatUtilities: { - chatFilter: function (chat) { + chatFilter: function(chat) { var msg = chat.message; var perm = basicBot.userUtilities.getPermission(chat.uid); var user = basicBot.userUtilities.lookupUser(chat.uid); @@ -1161,7 +1224,7 @@ return true; } if (basicBot.settings.lockdownEnabled) { - if (perm === 0) { + if (perm === API.ROLE.NONE) { API.moderateDeleteChat(chat.cid); return true; } @@ -1176,7 +1239,7 @@ /** var plugRoomLinkPatt = /(\bhttps?:\/\/(www.)?plug\.dj[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig; if (plugRoomLinkPatt.exec(msg)) { - if (perm === 0) { + if (perm === API.ROLE.NONE) { API.sendChat(subChat(basicBot.chat.roomadvertising, {name: chat.un})); API.moderateDeleteChat(chat.cid); return true; @@ -1185,7 +1248,9 @@ **/ if (msg.indexOf('http://adf.ly/') > -1) { API.moderateDeleteChat(chat.cid); - API.sendChat(subChat(basicBot.chat.adfly, {name: chat.un})); + API.sendChat(subChat(basicBot.chat.adfly, { + name: chat.un + })); return true; } if (msg.indexOf('autojoin was not enabled') > 0 || msg.indexOf('AFK message was not enabled') > 0 || msg.indexOf('!afkdisable') > 0 || msg.indexOf('!joindisable') > 0 || msg.indexOf('autojoin disabled') > 0 || msg.indexOf('AFK message disabled') > 0) { @@ -1205,37 +1270,34 @@ else leftroulette = leftroulette[0]; if ((msg.indexOf(joinedroulette) > -1 || msg.indexOf(leftroulette) > -1) && chat.uid === basicBot.loggedInID) { - setTimeout(function (id) { + setTimeout(function(id) { API.moderateDeleteChat(id); }, 5 * 1000, chat.cid); return true; } return false; }, - commandCheck: function (chat) { + commandCheck: function(chat) { var cmd; if (chat.message.charAt(0) === basicBot.settings.commandLiteral) { var space = chat.message.indexOf(' '); if (space === -1) { cmd = chat.message; - } - else cmd = chat.message.substring(0, space); - } - else return false; + } else cmd = chat.message.substring(0, space); + } else return false; var userPerm = basicBot.userUtilities.getPermission(chat.uid); - //console.log("name: " + chat.un + ", perm: " + userPerm); - if (chat.message !== basicBot.settings.commandLiteral + 'join' && chat.message !== basicBot.settings.commandLiteral + "leave") { - if (userPerm === 0 && !basicBot.room.usercommand) return void (0); - if (!basicBot.room.allcommand) return void (0); + //console.log('name: ' + chat.un + ', perm: ' + userPerm); + if (chat.message !== basicBot.settings.commandLiteral + 'join' && chat.message !== basicBot.settings.commandLiteral + 'leave') { + if (userPerm === API.ROLE.NONE && !basicBot.room.usercommand) return void(0); + if (!basicBot.room.allcommand) return void(0); } if (chat.message === basicBot.settings.commandLiteral + 'eta' && basicBot.settings.etaRestriction) { - if (userPerm < 2) { + if (userPerm < API.ROLE.BOUNCER) { var u = basicBot.userUtilities.lookupUser(chat.uid); if (u.lastEta !== null && (Date.now() - u.lastEta) < 1 * 60 * 60 * 1000) { API.moderateDeleteChat(chat.cid); - return void (0); - } - else u.lastEta = Date.now(); + return void(0); + } else u.lastEta = Date.now(); } } var executed = false; @@ -1254,9 +1316,9 @@ } } - if (executed && userPerm === 0) { + if (executed && userPerm === API.ROLE.NONE) { basicBot.room.usercommand = false; - setTimeout(function () { + setTimeout(function() { basicBot.room.usercommand = true; }, basicBot.settings.commandCooldown * 1000); } @@ -1267,12 +1329,12 @@ //basicBot.room.allcommand = false; //setTimeout(function () { - basicBot.room.allcommand = true; + basicBot.room.allcommand = true; //}, 5 * 1000); } return executed; }, - action: function (chat) { + action: function(chat) { var user = basicBot.userUtilities.lookupUser(chat.uid); if (chat.type === 'message') { for (var j = 0; j < basicBot.room.users.length; j++) { @@ -1294,7 +1356,7 @@ 'nigger', 'faggot', 'nigga', 'niqqa', 'motherfucker', 'modafocka' ] }, - connectAPI: function () { + connectAPI: function() { this.proxy = { eventChat: $.proxy(this.eventChat, this), eventUserskip: $.proxy(this.eventUserskip, this), @@ -1326,7 +1388,7 @@ API.on(API.CHAT_COMMAND, this.proxy.eventChatcommand); API.on(API.HISTORY_UPDATE, this.proxy.eventHistoryupdate); }, - disconnectAPI: function () { + disconnectAPI: function() { API.off(API.CHAT, this.proxy.eventChat); API.off(API.USER_SKIP, this.proxy.eventUserskip); API.off(API.USER_JOIN, this.proxy.eventUserjoin); @@ -1340,18 +1402,15 @@ API.off(API.CHAT_COMMAND, this.proxy.eventChatcommand); API.off(API.HISTORY_UPDATE, this.proxy.eventHistoryupdate); }, - startup: function () { - Function.prototype.toString = function () { - return 'Function.' - }; + startup: function() { var u = API.getUser(); - if (basicBot.userUtilities.getPermission(u) < 2) return API.chatLog(basicBot.chat.greyuser); - if (basicBot.userUtilities.getPermission(u) === 2) API.chatLog(basicBot.chat.bouncer); + if (basicBot.userUtilities.getPermission(u) < API.ROLE.BOUNCER) return API.chatLog(basicBot.chat.greyuser); + if (basicBot.userUtilities.getPermission(u) === API.ROLE.BOUNCER) API.chatLog(basicBot.chat.bouncer); basicBot.connectAPI(); - API.moderateDeleteChat = function (cid) { + API.moderateDeleteChat = function(cid) { $.ajax({ - url: "/_/chat/" + cid, - type: "DELETE" + url: '/_/chat/' + cid, + type: 'DELETE' }) }; @@ -1360,24 +1419,25 @@ console.log(basicBot.room.name); - var detect = function(){ - if(basicBot.room.name != window.location.pathname){ - console.log("Killing bot after room change."); + var detect = function() { + if (basicBot.room.name != window.location.pathname) { + console.log('Killing bot after room change.'); storeToStorage(); basicBot.disconnectAPI(); - setTimeout(function () { + setTimeout(function() { kill(); }, 1000); - if (basicBot.settings.roomLock){ + if (basicBot.settings.roomLock) { window.location = basicBot.room.name; - } - else { + } else { clearInterval(Check); } } }; - Check = setInterval(function(){ detect() }, 2000); + Check = setInterval(function() { + detect() + }, 2000); retrieveSettings(); retrieveFromStorage(); @@ -1405,18 +1465,17 @@ } if (known) { basicBot.room.users[ind].inRoom = true; - } - else { + } else { basicBot.room.users.push(new basicBot.User(userlist[i].id, userlist[i].username)); ind = basicBot.room.users.length - 1; } var wlIndex = API.getWaitListPosition(basicBot.room.users[ind].id) + 1; basicBot.userUtilities.updatePosition(basicBot.room.users[ind], wlIndex); } - basicBot.room.afkInterval = setInterval(function () { + basicBot.room.afkInterval = setInterval(function() { basicBot.roomUtilities.afkCheck() }, 10 * 1000); - basicBot.room.autodisableInterval = setInterval(function () { + basicBot.room.autodisableInterval = setInterval(function() { basicBot.room.autodisableFunc(); }, 60 * 60 * 1000); basicBot.loggedInID = API.getUser().id; @@ -1424,17 +1483,16 @@ API.sendChat('/cap ' + basicBot.settings.startupCap); API.setVolume(basicBot.settings.startupVolume); if (basicBot.settings.autowoot) { - $("#woot").click(); + $('#woot').click(); } if (basicBot.settings.startupEmoji) { - var emojibuttonoff = $(".icon-emoji-off"); + var emojibuttonoff = $('.icon-emoji-off'); if (emojibuttonoff.length > 0) { emojibuttonoff[0].click(); } API.chatLog(':smile: Emojis enabled.'); - } - else { - var emojibuttonon = $(".icon-emoji-on"); + } else { + var emojibuttonon = $('.icon-emoji-on'); if (emojibuttonon.length > 0) { emojibuttonon[0].click(); } @@ -1443,45 +1501,47 @@ API.chatLog('Avatars capped at ' + basicBot.settings.startupCap); API.chatLog('Volume set to ' + basicBot.settings.startupVolume); //socket(); - loadChat(API.sendChat(subChat(basicBot.chat.online, {botname: basicBot.settings.botName, version: basicBot.version}))); + loadChat(API.sendChat(subChat(basicBot.chat.online, { + botname: basicBot.settings.botName, + version: basicBot.version + }))); }, commands: { - executable: function (minRank, chat) { + executable: function(minRank, chat) { var id = chat.uid; var perm = basicBot.userUtilities.getPermission(id); var minPerm; switch (minRank) { case 'admin': - minPerm = 10; + minPerm = (2*(API.ROLE.HOST-API.ROLE.COHOST))+API.ROLE.HOST; break; case 'ambassador': - minPerm = 7; + minPerm = (1*(API.ROLE.HOST-API.ROLE.COHOST))+API.ROLE.HOST; break; case 'host': - minPerm = 5; + minPerm = API.ROLE.HOST; break; case 'cohost': - minPerm = 4; + minPerm = API.ROLE.COHOST; break; case 'manager': - minPerm = 3; + minPerm = API.ROLE.MANAGER; break; case 'mod': if (basicBot.settings.bouncerPlus) { - minPerm = 2; - } - else { - minPerm = 3; + minPerm = API.ROLE.BOUNCER; + } else { + minPerm = API.ROLE.MANAGER; } break; case 'bouncer': - minPerm = 2; + minPerm = API.ROLE.BOUNCER; break; case 'residentdj': - minPerm = 1; + minPerm = API.ROLE.DJ; break; case 'user': - minPerm = 0; + minPerm = API.ROLE.NONE; break; default: API.chatLog('error assigning minimum permission'); @@ -1489,28 +1549,29 @@ return perm >= minPerm; }, - /** - command: { - command: 'cmd', - rank: 'user/bouncer/mod/manager', - type: 'startsWith/exact', - functionality: function(chat, cmd){ - if(this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if( !basicBot.commands.executable(this.rank, chat) ) return void (0); - else{ - } - } - }, - **/ + /* + command: { + command: 'cmd', + rank: 'user/bouncer/mod/manager', + type: 'startsWith/exact', + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); + else { + + } + } + }, + */ activeCommand: { command: 'active', rank: 'bouncer', type: 'startsWith', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var msg = chat.message; var now = Date.now(); @@ -1524,7 +1585,9 @@ if (msg.length === cmd.length) time = since; else { time = msg.substring(cmd.length + 1); - if (isNaN(time)) return API.sendChat(subChat(basicBot.chat.invalidtime, {name: chat.un})); + if (isNaN(time)) return API.sendChat(subChat(basicBot.chat.invalidtime, { + name: chat.un + })); } for (var i = 0; i < basicBot.room.users.length; i++) { userTime = basicBot.userUtilities.getLastActivity(basicBot.room.users[i]); @@ -1532,7 +1595,11 @@ chatters++; } } - API.sendChat(subChat(basicBot.chat.activeusersintime, {name: chat.un, amount: chatters, time: time})); + API.sendChat(subChat(basicBot.chat.activeusersintime, { + name: chat.un, + amount: chatters, + time: time + })); } } }, @@ -1541,12 +1608,14 @@ command: 'add', rank: 'mod', type: 'startsWith', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var msg = chat.message; - if (msg.length === cmd.length) return API.sendChat(subChat(basicBot.chat.nouserspecified, {name: chat.un})); + if (msg.length === cmd.length) return API.sendChat(subChat(basicBot.chat.nouserspecified, { + name: chat.un + })); var name = msg.substr(cmd.length + 2); var user = basicBot.userUtilities.lookupUserName(name); if (msg.length > cmd.length + 2) { @@ -1555,7 +1624,9 @@ basicBot.room.eventArtists.push(user.id); } API.moderateAddDJ(user.id); - } else API.sendChat(subChat(basicBot.chat.invaliduserspecified, {name: chat.un})); + } else API.sendChat(subChat(basicBot.chat.invaliduserspecified, { + name: chat.un + })); } } } @@ -1565,18 +1636,24 @@ command: 'afklimit', rank: 'manager', type: 'startsWith', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var msg = chat.message; - if (msg.length === cmd.length) return API.sendChat(subChat(basicBot.chat.nolimitspecified, {name: chat.un})); + if (msg.length === cmd.length) return API.sendChat(subChat(basicBot.chat.nolimitspecified, { + name: chat.un + })); var limit = msg.substring(cmd.length + 1); if (!isNaN(limit)) { basicBot.settings.maximumAfk = parseInt(limit, 10); - API.sendChat(subChat(basicBot.chat.maximumafktimeset, {name: chat.un, time: basicBot.settings.maximumAfk})); - } - else API.sendChat(subChat(basicBot.chat.invalidlimitspecified, {name: chat.un})); + API.sendChat(subChat(basicBot.chat.maximumafktimeset, { + name: chat.un, + time: basicBot.settings.maximumAfk + })); + } else API.sendChat(subChat(basicBot.chat.invalidlimitspecified, { + name: chat.un + })); } } }, @@ -1585,21 +1662,26 @@ command: 'afkremoval', rank: 'mod', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { if (basicBot.settings.afkRemoval) { basicBot.settings.afkRemoval = !basicBot.settings.afkRemoval; clearInterval(basicBot.room.afkInterval); - API.sendChat(subChat(basicBot.chat.toggleoff, {name: chat.un, 'function': basicBot.chat.afkremoval})); - } - else { + API.sendChat(subChat(basicBot.chat.toggleoff, { + name: chat.un, + 'function': basicBot.chat.afkremoval + })); + } else { basicBot.settings.afkRemoval = !basicBot.settings.afkRemoval; - basicBot.room.afkInterval = setInterval(function () { + basicBot.room.afkInterval = setInterval(function() { basicBot.roomUtilities.afkCheck() }, 2 * 1000); - API.sendChat(subChat(basicBot.chat.toggleon, {name: chat.un, 'function': basicBot.chat.afkremoval})); + API.sendChat(subChat(basicBot.chat.toggleon, { + name: chat.un, + 'function': basicBot.chat.afkremoval + })); } } } @@ -1609,17 +1691,24 @@ command: 'afkreset', rank: 'bouncer', type: 'startsWith', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var msg = chat.message; - if (msg.length === cmd.length) return API.sendChat(subChat(basicBot.chat.nouserspecified, {name: chat.un})); + if (msg.length === cmd.length) return API.sendChat(subChat(basicBot.chat.nouserspecified, { + name: chat.un + })); var name = msg.substring(cmd.length + 2); var user = basicBot.userUtilities.lookupUserName(name); - if (typeof user === 'boolean') return API.sendChat(subChat(basicBot.chat.invaliduserspecified, {name: chat.un})); + if (typeof user === 'boolean') return API.sendChat(subChat(basicBot.chat.invaliduserspecified, { + name: chat.un + })); basicBot.userUtilities.setLastActivity(user); - API.sendChat(subChat(basicBot.chat.afkstatusreset, {name: chat.un, username: name})); + API.sendChat(subChat(basicBot.chat.afkstatusreset, { + name: chat.un, + username: name + })); } } }, @@ -1628,15 +1717,19 @@ command: 'afktime', rank: 'bouncer', type: 'startsWith', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var msg = chat.message; - if (msg.length === cmd.length) return API.sendChat(subChat(basicBot.chat.nouserspecified, {name: chat.un})); + if (msg.length === cmd.length) return API.sendChat(subChat(basicBot.chat.nouserspecified, { + name: chat.un + })); var name = msg.substring(cmd.length + 2); var user = basicBot.userUtilities.lookupUserName(name); - if (typeof user === 'boolean') return API.sendChat(subChat(basicBot.chat.invaliduserspecified, {name: chat.un})); + if (typeof user === 'boolean') return API.sendChat(subChat(basicBot.chat.invaliduserspecified, { + name: chat.un + })); var lastActive = basicBot.userUtilities.getLastActivity(user); var inactivity = Date.now() - lastActive; var time = basicBot.roomUtilities.msToStr(inactivity); @@ -1644,10 +1737,18 @@ var launchT = basicBot.room.roomstats.launchTime; var durationOnline = Date.now() - launchT; - if (inactivity == durationOnline){ - API.sendChat(subChat(basicBot.chat.inactivelonger, {botname: basicBot.settings.botName, name: chat.un, username: name})); + if (inactivity == durationOnline) { + API.sendChat(subChat(basicBot.chat.inactivelonger, { + botname: basicBot.settings.botName, + name: chat.un, + username: name + })); } else { - API.sendChat(subChat(basicBot.chat.inactivefor, {name: chat.un, username: name, time: time})); + API.sendChat(subChat(basicBot.chat.inactivefor, { + name: chat.un, + username: name, + time: time + })); } } } @@ -1657,17 +1758,22 @@ command: 'autodisable', rank: 'bouncer', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { if (basicBot.settings.autodisable) { basicBot.settings.autodisable = !basicBot.settings.autodisable; - return API.sendChat(subChat(basicBot.chat.toggleoff, {name: chat.un, 'function': basicBot.chat.autodisable})); - } - else { + return API.sendChat(subChat(basicBot.chat.toggleoff, { + name: chat.un, + 'function': basicBot.chat.autodisable + })); + } else { basicBot.settings.autodisable = !basicBot.settings.autodisable; - return API.sendChat(subChat(basicBot.chat.toggleon, {name: chat.un, 'function': basicBot.chat.autodisable})); + return API.sendChat(subChat(basicBot.chat.toggleon, { + name: chat.un, + 'function': basicBot.chat.autodisable + })); } } @@ -1678,18 +1784,23 @@ command: 'autoskip', rank: 'mod', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { if (basicBot.settings.autoskip) { basicBot.settings.autoskip = !basicBot.settings.autoskip; clearTimeout(basicBot.room.autoskipTimer); - return API.sendChat(subChat(basicBot.chat.toggleoff, {name: chat.un, 'function': basicBot.chat.autoskip})); - } - else { + return API.sendChat(subChat(basicBot.chat.toggleoff, { + name: chat.un, + 'function': basicBot.chat.autoskip + })); + } else { basicBot.settings.autoskip = !basicBot.settings.autoskip; - return API.sendChat(subChat(basicBot.chat.toggleon, {name: chat.un, 'function': basicBot.chat.autoskip})); + return API.sendChat(subChat(basicBot.chat.toggleon, { + name: chat.un, + 'function': basicBot.chat.autoskip + })); } } } @@ -1699,9 +1810,9 @@ command: 'autowoot', rank: 'user', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { API.sendChat(basicBot.chat.autowoot); } @@ -1712,9 +1823,9 @@ command: 'ba', rank: 'user', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { API.sendChat(basicBot.chat.brandambassador); } @@ -1725,18 +1836,23 @@ command: ['8ball', 'ask'], rank: 'user', type: 'startsWith', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { - var crowd = API.getUsers(); - var msg = chat.message; - var argument = msg.substring(cmd.length + 1).replace(/@/g, ''); - var randomUser = Math.floor(Math.random() * crowd.length); - var randomBall = Math.floor(Math.random() * basicBot.chat.balls.length); - var randomSentence = Math.floor(Math.random() * 1); - API.sendChat(subChat(basicBot.chat.ball, {name: chat.un, botname: basicBot.settings.botName, question: argument, response: basicBot.chat.balls[randomBall]})); - } + var crowd = API.getUsers(); + var msg = chat.message; + var argument = msg.substring(cmd.length + 1).replace(/@/g, ''); + var randomUser = Math.floor(Math.random() * crowd.length); + var randomBall = Math.floor(Math.random() * basicBot.chat.balls.length); + var randomSentence = Math.floor(Math.random() * 1); + API.sendChat(subChat(basicBot.chat.ball, { + name: chat.un, + botname: basicBot.settings.botName, + question: argument, + response: basicBot.chat.balls[randomBall] + })); + } } }, @@ -1744,15 +1860,19 @@ command: 'ban', rank: 'bouncer', type: 'startsWith', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var msg = chat.message; - if (msg.length === cmd.length) return API.sendChat(subChat(basicBot.chat.nouserspecified, {name: chat.un})); + if (msg.length === cmd.length) return API.sendChat(subChat(basicBot.chat.nouserspecified, { + name: chat.un + })); var name = msg.substr(cmd.length + 2); var user = basicBot.userUtilities.lookupUserName(name); - if (typeof user === 'boolean') return API.sendChat(subChat(basicBot.chat.invaliduserspecified, {name: chat.un})); + if (typeof user === 'boolean') return API.sendChat(subChat(basicBot.chat.invaliduserspecified, { + name: chat.un + })); var permFrom = basicBot.userUtilities.getPermission(chat.uid); var permUser = basicBot.userUtilities.getPermission(user.id); if (permUser >= permFrom) return void(0); @@ -1765,14 +1885,18 @@ command: ['blacklist', 'bl'], rank: 'bouncer', type: 'startsWith', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var msg = chat.message; - if (msg.length === cmd.length) return API.sendChat(subChat(basicBot.chat.nolistspecified, {name: chat.un})); + if (msg.length === cmd.length) return API.sendChat(subChat(basicBot.chat.nolistspecified, { + name: chat.un + })); var list = msg.substr(cmd.length + 1); - if (typeof basicBot.room.blacklists[list] === 'undefined') return API.sendChat(subChat(basicBot.chat.invalidlistspecified, {name: chat.un})); + if (typeof basicBot.room.blacklists[list] === 'undefined') return API.sendChat(subChat(basicBot.chat.invalidlistspecified, { + name: chat.un + })); else { var media = API.getMedia(); var timeLeft = API.getTimeRemaining(); @@ -1785,11 +1909,16 @@ }; basicBot.room.newBlacklisted.push(track); basicBot.room.blacklists[list].push(media.format + ':' + media.cid); - API.sendChat(subChat(basicBot.chat.newblacklisted, {name: chat.un, blacklist: list, author: media.author, title: media.title, mid: media.format + ':' + media.cid})); - if (basicBot.settings.smartSkip && timeLeft > timeElapsed){ + API.sendChat(subChat(basicBot.chat.newblacklisted, { + name: chat.un, + blacklist: list, + author: media.author, + title: media.title, + mid: media.format + ':' + media.cid + })); + if (basicBot.settings.smartSkip && timeLeft > timeElapsed) { basicBot.roomUtilities.smartSkip(); - } - else { + } else { API.moderateForceSkip(); } if (typeof basicBot.room.newBlacklistedSongFunction === 'function') { @@ -1804,18 +1933,23 @@ command: 'blinfo', rank: 'bouncer', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var author = API.getMedia().author; var title = API.getMedia().title; var name = chat.un; var format = API.getMedia().format; var cid = API.getMedia().cid; - var songid = format + ":" + cid; - - API.sendChat(subChat(basicBot.chat.blinfo, {name: name, author: author, title: title, songid: songid})); + var songid = format + ':' + cid; + + API.sendChat(subChat(basicBot.chat.blinfo, { + name: name, + author: author, + title: title, + songid: songid + })); } } }, @@ -1824,25 +1958,31 @@ command: 'bouncer+', rank: 'manager', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var msg = chat.message; if (basicBot.settings.bouncerPlus) { basicBot.settings.bouncerPlus = false; - return API.sendChat(subChat(basicBot.chat.toggleoff, {name: chat.un, 'function': 'Bouncer+'})); - } - else { + return API.sendChat(subChat(basicBot.chat.toggleoff, { + name: chat.un, + 'function': 'Bouncer+' + })); + } else { if (!basicBot.settings.bouncerPlus) { var id = chat.uid; var perm = basicBot.userUtilities.getPermission(id); - if (perm > 2) { + if (perm > API.ROLE.BOUNCER) { basicBot.settings.bouncerPlus = true; - return API.sendChat(subChat(basicBot.chat.toggleon, {name: chat.un, 'function': 'Bouncer+'})); + return API.sendChat(subChat(basicBot.chat.toggleon, { + name: chat.un, + 'function': 'Bouncer+' + })); } - } - else return API.sendChat(subChat(basicBot.chat.bouncerplusrank, {name: chat.un})); + } else return API.sendChat(subChat(basicBot.chat.bouncerplusrank, { + name: chat.un + })); } } } @@ -1852,16 +1992,20 @@ command: 'botname', rank: 'manager', type: 'startsWith', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var msg = chat.message; - if (msg.length <= cmd.length + 1) return API.sendChat(subChat(basicBot.chat.currentbotname, {botname: basicBot.settings.botName})); + if (msg.length <= cmd.length + 1) return API.sendChat(subChat(basicBot.chat.currentbotname, { + botname: basicBot.settings.botName + })); var argument = msg.substring(cmd.length + 1); if (argument) { basicBot.settings.botName = argument; - API.sendChat(subChat(basicBot.chat.botnameset, {botName: basicBot.settings.botName})); + API.sendChat(subChat(basicBot.chat.botnameset, { + botName: basicBot.settings.botName + })); } } } @@ -1871,28 +2015,31 @@ command: 'clearchat', rank: 'manager', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var currentchat = $('#chat-messages').children(); for (var i = 0; i < currentchat.length; i++) { - API.moderateDeleteChat(currentchat[i].getAttribute("data-cid")); + API.moderateDeleteChat(currentchat[i].getAttribute('data-cid')); } - return API.sendChat(subChat(basicBot.chat.chatcleared, {name: chat.un})); + return API.sendChat(subChat(basicBot.chat.chatcleared, { + name: chat.un + })); } } }, - commandsCommand: { - command: 'commands', - rank: 'user', + clearlocalstorageCommand: { + command: 'clearlocalstorage', + rank: 'manager', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { - API.sendChat(subChat(basicBot.chat.commandslink, {botname: basicBot.settings.botName, link: basicBot.cmdLink})); + localStorage.clear(); + API.chatLog('Cleared localstorage, please refresh the page!'); } } }, @@ -1901,33 +2048,54 @@ command: ['commanddeletion', 'cmddeletion', 'cmddel'], rank: 'mod', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { if (basicBot.settings.cmdDeletion) { basicBot.settings.cmdDeletion = !basicBot.settings.cmdDeletion; - API.sendChat(subChat(basicBot.chat.toggleoff, {name: chat.un, 'function': basicBot.chat.cmddeletion})); - } - else { + API.sendChat(subChat(basicBot.chat.toggleoff, { + name: chat.un, + 'function': basicBot.chat.cmddeletion + })); + } else { basicBot.settings.cmdDeletion = !basicBot.settings.cmdDeletion; - API.sendChat(subChat(basicBot.chat.toggleon, {name: chat.un, 'function': basicBot.chat.cmddeletion})); + API.sendChat(subChat(basicBot.chat.toggleon, { + name: chat.un, + 'function': basicBot.chat.cmddeletion + })); } } } }, + commandsCommand: { + command: 'commands', + rank: 'user', + type: 'exact', + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); + else { + API.sendChat(subChat(basicBot.chat.commandslink, { + botname: basicBot.settings.botName, + link: basicBot.cmdLink + })); + } + } + }, + cookieCommand: { command: 'cookie', rank: 'user', type: 'startsWith', - getCookie: function (chat) { + getCookie: function(chat) { var c = Math.floor(Math.random() * basicBot.chat.cookies.length); return basicBot.chat.cookies[c]; }, - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var msg = chat.message; @@ -1935,18 +2103,23 @@ if (space === -1) { API.sendChat(basicBot.chat.eatcookie); return false; - } - else { + } else { var name = msg.substring(space + 2); var user = basicBot.userUtilities.lookupUserName(name); if (user === false || !user.inRoom) { - return API.sendChat(subChat(basicBot.chat.nousercookie, {name: name})); - } - else if (user.username === chat.un) { - return API.sendChat(subChat(basicBot.chat.selfcookie, {name: name})); - } - else { - return API.sendChat(subChat(basicBot.chat.cookie, {nameto: user.username, namefrom: chat.un, cookie: this.getCookie()})); + return API.sendChat(subChat(basicBot.chat.nousercookie, { + name: name + })); + } else if (user.username === chat.un) { + return API.sendChat(subChat(basicBot.chat.selfcookie, { + name: name + })); + } else { + return API.sendChat(subChat(basicBot.chat.cookie, { + nameto: user.username, + namefrom: chat.un, + cookie: this.getCookie() + })); } } } @@ -1957,9 +2130,9 @@ command: 'cycle', rank: 'manager', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { basicBot.roomUtilities.changeDJCycle(); } @@ -1970,17 +2143,22 @@ command: 'cycleguard', rank: 'bouncer', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { if (basicBot.settings.cycleGuard) { basicBot.settings.cycleGuard = !basicBot.settings.cycleGuard; - return API.sendChat(subChat(basicBot.chat.toggleoff, {name: chat.un, 'function': basicBot.chat.cycleguard})); - } - else { + return API.sendChat(subChat(basicBot.chat.toggleoff, { + name: chat.un, + 'function': basicBot.chat.cycleguard + })); + } else { basicBot.settings.cycleGuard = !basicBot.settings.cycleGuard; - return API.sendChat(subChat(basicBot.chat.toggleon, {name: chat.un, 'function': basicBot.chat.cycleguard})); + return API.sendChat(subChat(basicBot.chat.toggleon, { + name: chat.un, + 'function': basicBot.chat.cycleguard + })); } } @@ -1991,17 +2169,21 @@ command: 'cycletimer', rank: 'manager', type: 'startsWith', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var msg = chat.message; var cycleTime = msg.substring(cmd.length + 1); - if (!isNaN(cycleTime) && cycleTime !== "") { + if (!isNaN(cycleTime) && cycleTime !== '') { basicBot.settings.maximumCycletime = cycleTime; - return API.sendChat(subChat(basicBot.chat.cycleguardtime, {name: chat.un, time: basicBot.settings.maximumCycletime})); - } - else return API.sendChat(subChat(basicBot.chat.invalidtime, {name: chat.un})); + return API.sendChat(subChat(basicBot.chat.cycleguardtime, { + name: chat.un, + time: basicBot.settings.maximumCycletime + })); + } else return API.sendChat(subChat(basicBot.chat.invalidtime, { + name: chat.un + })); } } @@ -2011,9 +2193,9 @@ command: ['dclookup', 'dc'], rank: 'user', type: 'startsWith', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var msg = chat.message; var name; @@ -2021,10 +2203,14 @@ else { name = msg.substring(cmd.length + 2); var perm = basicBot.userUtilities.getPermission(chat.uid); - if (perm < 2) return API.sendChat(subChat(basicBot.chat.dclookuprank, {name: chat.un})); + if (perm < API.ROLE.BOUNCER) return API.sendChat(subChat(basicBot.chat.dclookuprank, { + name: chat.un + })); } var user = basicBot.userUtilities.lookupUserName(name); - if (typeof user === 'boolean') return API.sendChat(subChat(basicBot.chat.invaliduserspecified, {name: chat.un})); + if (typeof user === 'boolean') return API.sendChat(subChat(basicBot.chat.invaliduserspecified, { + name: chat.un + })); var toChat = basicBot.userUtilities.dclookup(user.id); API.sendChat(toChat); } @@ -2032,9 +2218,7 @@ }, /* - // This does not work anymore. - deletechatCommand: { command: 'deletechat', rank: 'mod', @@ -2067,7 +2251,7 @@ // API.moderateDeleteChat(emotecid); // } - if (typeof $(message)[i].getAttribute('data-cid') == "undefined"){ + if (typeof $(message)[i].getAttribute('data-cid') == 'undefined'){ API.moderateDeleteChat($(emote)[i].getAttribute('data-cid')); // works well with normal messages but not with emotes due to emotes and messages are seperate. } else { API.moderateDeleteChat($(message)[i].getAttribute('data-cid')); @@ -2078,44 +2262,51 @@ } } }, - */ deletechatCommand: { command: 'deletechat', rank: 'mod', type: 'startsWith', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var msg = chat.message; - if (msg.length === cmd.length) return API.sendChat(subChat(basicBot.chat.nouserspecified, {name: chat.un})); + if (msg.length === cmd.length) return API.sendChat(subChat(basicBot.chat.nouserspecified, { + name: chat.un + })); var name = msg.substring(cmd.length + 2); var user = basicBot.userUtilities.lookupUserName(name); - if (typeof user === 'boolean') return API.sendChat(subChat(basicBot.chat.invaliduserspecified, {name: chat.un})); + if (typeof user === 'boolean') return API.sendChat(subChat(basicBot.chat.invaliduserspecified, { + name: chat.un + })); for (var i = 1; i < basicBot.room.chatMessages.length; i++) { - if (basicBot.room.chatMessages[i].indexOf(user.id) > -1){ - API.moderateDeleteChat(basicBot.room.chatMessages[i][0]); - basicBot.room.chatMessages[i].splice(0); - } + if (basicBot.room.chatMessages[i].indexOf(user.id) > -1) { + API.moderateDeleteChat(basicBot.room.chatMessages[i][0]); + basicBot.room.chatMessages[i].splice(0); + } } - API.sendChat(subChat(basicBot.chat.deletechat, {name: chat.un, username: name})); + API.sendChat(subChat(basicBot.chat.deletechat, { + name: chat.un, + username: name + })); } } }, - emojiCommand: { command: 'emoji', rank: 'user', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var link = 'http://www.emoji-cheat-sheet.com/'; - API.sendChat(subChat(basicBot.chat.emojilist, {link: link})); + API.sendChat(subChat(basicBot.chat.emojilist, { + link: link + })); } } }, @@ -2124,28 +2315,49 @@ command: 'english', rank: 'bouncer', type: 'startsWith', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { - if(chat.message.length === cmd.length) return API.sendChat('/me No user specified.'); + if (chat.message.length === cmd.length) return API.sendChat('/me No user specified.'); var name = chat.message.substring(cmd.length + 2); var user = basicBot.userUtilities.lookupUserName(name); - if(typeof user === 'boolean') return API.sendChat('/me Invalid user specified.'); + if (typeof user === 'boolean') return API.sendChat('/me Invalid user specified.'); var lang = basicBot.userUtilities.getUser(user).language; var ch = '/me @' + name + ' '; - switch(lang){ - case 'en': break; - case 'da': ch += 'Vær venlig at tale engelsk.'; break; - case 'de': ch += 'Bitte sprechen Sie Englisch.'; break; - case 'es': ch += 'Por favor, hable Inglés.'; break; - case 'fr': ch += 'Parlez anglais, s\'il vous plaît.'; break; - case 'nl': ch += 'Spreek Engels, alstublieft.'; break; - case 'pl': ch += 'Proszę mówić po angielsku.'; break; - case 'pt': ch += 'Por favor, fale Inglês.'; break; - case 'sk': ch += 'Hovorte po anglicky, prosím.'; break; - case 'cs': ch += 'Mluvte prosím anglicky.'; break; - case 'sr': ch += 'Молим Вас, говорите енглески.'; break; + switch (lang) { + case 'en': + break; + case 'da': + ch += 'Vær venlig at tale engelsk.'; + break; + case 'de': + ch += 'Bitte sprechen Sie Englisch.'; + break; + case 'es': + ch += 'Por favor, hable Inglés.'; + break; + case 'fr': + ch += 'Parlez anglais, s\'il vous plaît.'; + break; + case 'nl': + ch += 'Spreek Engels, alstublieft.'; + break; + case 'pl': + ch += 'Proszę mówić po angielsku.'; + break; + case 'pt': + ch += 'Por favor, fale Inglês.'; + break; + case 'sk': + ch += 'Hovorte po anglicky, prosím.'; + break; + case 'cs': + ch += 'Mluvte prosím anglicky.'; + break; + case 'sr': + ch += 'Молим Вас, говорите енглески.'; + break; } ch += ' English please.'; API.sendChat(ch); @@ -2157,29 +2369,41 @@ command: 'eta', rank: 'user', type: 'startsWith', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var perm = basicBot.userUtilities.getPermission(chat.uid); var msg = chat.message; var dj = API.getDJ().username; var name; if (msg.length > cmd.length) { - if (perm < 2) return void (0); + if (perm < API.ROLE.BOUNCER) return void(0); name = msg.substring(cmd.length + 2); } else name = chat.un; var user = basicBot.userUtilities.lookupUserName(name); - if (typeof user === 'boolean') return API.sendChat(subChat(basicBot.chat.invaliduserspecified, {name: chat.un})); + if (typeof user === 'boolean') return API.sendChat(subChat(basicBot.chat.invaliduserspecified, { + name: chat.un + })); var pos = API.getWaitListPosition(user.id); var realpos = pos + 1; - if (name == dj) return API.sendChat(subChat(basicBot.chat.youaredj, {name: name})); - if (pos < 0) return API.sendChat(subChat(basicBot.chat.notinwaitlist, {name: name})); - if (pos == 0) return API.sendChat(subChat(basicBot.chat.youarenext, {name: name})); + if (name == dj) return API.sendChat(subChat(basicBot.chat.youaredj, { + name: name + })); + if (pos < 0) return API.sendChat(subChat(basicBot.chat.notinwaitlist, { + name: name + })); + if (pos == 0) return API.sendChat(subChat(basicBot.chat.youarenext, { + name: name + })); var timeRemaining = API.getTimeRemaining(); var estimateMS = ((pos + 1) * 4 * 60 + timeRemaining) * 1000; var estimateString = basicBot.roomUtilities.msToStr(estimateMS); - API.sendChat(subChat(basicBot.chat.eta, {name: name, time: estimateString, position: realpos})); + API.sendChat(subChat(basicBot.chat.eta, { + name: name, + time: estimateString, + position: realpos + })); } } }, @@ -2188,12 +2412,14 @@ command: 'fb', rank: 'user', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { - if (typeof basicBot.settings.fbLink === "string") - API.sendChat(subChat(basicBot.chat.facebook, {link: basicBot.settings.fbLink})); + if (typeof basicBot.settings.fbLink === 'string') + API.sendChat(subChat(basicBot.chat.facebook, { + link: basicBot.settings.fbLink + })); } } }, @@ -2202,17 +2428,22 @@ command: 'filter', rank: 'bouncer', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { if (basicBot.settings.filterChat) { basicBot.settings.filterChat = !basicBot.settings.filterChat; - return API.sendChat(subChat(basicBot.chat.toggleoff, {name: chat.un, 'function': basicBot.chat.chatfilter})); - } - else { + return API.sendChat(subChat(basicBot.chat.toggleoff, { + name: chat.un, + 'function': basicBot.chat.chatfilter + })); + } else { basicBot.settings.filterChat = !basicBot.settings.filterChat; - return API.sendChat(subChat(basicBot.chat.toggleon, {name: chat.un, 'function': basicBot.chat.chatfilter})); + return API.sendChat(subChat(basicBot.chat.toggleon, { + name: chat.un, + 'function': basicBot.chat.chatfilter + })); } } } @@ -2222,17 +2453,18 @@ command: ['forceskip', 'fs'], rank: 'bouncer', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { - API.sendChat(subChat(basicBot.chat.forceskip, {name: chat.un})); + API.sendChat(subChat(basicBot.chat.forceskip, { + name: chat.un + })); API.moderateForceSkip(); basicBot.room.skippable = false; - setTimeout(function () { + setTimeout(function() { basicBot.room.skippable = true }, 5 * 1000); - } } }, @@ -2241,9 +2473,9 @@ command: 'ghostbuster', rank: 'user', type: 'startsWith', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var msg = chat.message; var name; @@ -2253,9 +2485,14 @@ } var user = basicBot.userUtilities.lookupUserName(name); if (user === false || !user.inRoom) { - return API.sendChat(subChat(basicBot.chat.ghosting, {name1: chat.un, name2: name})); - } - else API.sendChat(subChat(basicBot.chat.notghosting, {name1: chat.un, name2: name})); + return API.sendChat(subChat(basicBot.chat.ghosting, { + name1: chat.un, + name2: name + })); + } else API.sendChat(subChat(basicBot.chat.notghosting, { + name1: chat.un, + name2: name + })); } } }, @@ -2264,64 +2501,69 @@ command: ['gif', 'giphy'], rank: 'user', type: 'startsWith', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var msg = chat.message; if (msg.length !== cmd.length) { - function get_id(api_key, fixedtag, func) - { + function get_id(api_key, fixedtag, func) { $.getJSON( - "https://tv.giphy.com/v1/gifs/random?", - { - "format": "json", - "api_key": api_key, - "rating": rating, - "tag": fixedtag + 'https://tv.giphy.com/v1/gifs/random?', { + 'format': 'json', + 'api_key': api_key, + 'rating': rating, + 'tag': fixedtag }, - function(response) - { + function(response) { func(response.data.id); } - ) + ) } - var api_key = "dc6zaTOxFJmzC"; // public beta key - var rating = "pg-13"; // PG 13 gifs + var api_key = 'dc6zaTOxFJmzC'; // public beta key + var rating = 'pg-13'; // PG 13 gifs var tag = msg.substr(cmd.length + 1); - var fixedtag = tag.replace(/ /g,"+"); - var commatag = tag.replace(/ /g,", "); + var fixedtag = tag.replace(/ /g, '+'); + var commatag = tag.replace(/ /g, ', '); get_id(api_key, tag, function(id) { if (typeof id !== 'undefined') { - API.sendChat(subChat(basicBot.chat.validgiftags, {name: chat.un, id: id, tags: commatag})); + API.sendChat(subChat(basicBot.chat.validgiftags, { + name: chat.un, + id: id, + tags: commatag + })); } else { - API.sendChat(subChat(basicBot.chat.invalidgiftags, {name: chat.un, tags: commatag})); + API.sendChat(subChat(basicBot.chat.invalidgiftags, { + name: chat.un, + tags: commatag + })); } }); - } - else { - function get_random_id(api_key, func) - { + } else { + function get_random_id(api_key, func) { $.getJSON( - "https://tv.giphy.com/v1/gifs/random?", - { - "format": "json", - "api_key": api_key, - "rating": rating + 'https://tv.giphy.com/v1/gifs/random?', { + 'format': 'json', + 'api_key': api_key, + 'rating': rating }, - function(response) - { + function(response) { func(response.data.id); } - ) + ) } - var api_key = "dc6zaTOxFJmzC"; // public beta key - var rating = "pg-13"; // PG 13 gifs + var api_key = 'dc6zaTOxFJmzC'; // public beta key + var rating = 'pg-13'; // PG 13 gifs get_random_id(api_key, function(id) { if (typeof id !== 'undefined') { - API.sendChat(subChat(basicBot.chat.validgifrandom, {name: chat.un, id: id})); + API.sendChat(subChat(basicBot.chat.validgifrandom, { + name: chat.un, + id: id + })); } else { - API.sendChat(subChat(basicBot.chat.invalidgifrandom, {name: chat.un})); + API.sendChat(subChat(basicBot.chat.invalidgifrandom, { + name: chat.un + })); } }); } @@ -2333,12 +2575,14 @@ command: 'help', rank: 'user', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { - var link = "(Updated link coming soon)"; - API.sendChat(subChat(basicBot.chat.starterhelp, {link: link})); + var link = '(Updated link coming soon)'; + API.sendChat(subChat(basicBot.chat.starterhelp, { + link: link + })); } } }, @@ -2347,17 +2591,22 @@ command: 'historyskip', rank: 'bouncer', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { if (basicBot.settings.historySkip) { basicBot.settings.historySkip = !basicBot.settings.historySkip; - API.sendChat(subChat(basicBot.chat.toggleoff, {name: chat.un, 'function': basicBot.chat.historyskip})); - } - else { + API.sendChat(subChat(basicBot.chat.toggleoff, { + name: chat.un, + 'function': basicBot.chat.historyskip + })); + } else { basicBot.settings.historySkip = !basicBot.settings.historySkip; - API.sendChat(subChat(basicBot.chat.toggleon, {name: chat.un, 'function': basicBot.chat.historyskip})); + API.sendChat(subChat(basicBot.chat.toggleon, { + name: chat.un, + 'function': basicBot.chat.historyskip + })); } } } @@ -2367,13 +2616,15 @@ command: 'join', rank: 'user', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { if (basicBot.room.roulette.rouletteStatus && basicBot.room.roulette.participants.indexOf(chat.uid) < 0) { basicBot.room.roulette.participants.push(chat.uid); - API.sendChat(subChat(basicBot.chat.roulettejoin, {name: chat.un})); + API.sendChat(subChat(basicBot.chat.roulettejoin, { + name: chat.un + })); } } } @@ -2383,19 +2634,27 @@ command: 'jointime', rank: 'bouncer', type: 'startsWith', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var msg = chat.message; - if (msg.length === cmd.length) return API.sendChat(subChat(basicBot.chat.nouserspecified, {name: chat.un})); + if (msg.length === cmd.length) return API.sendChat(subChat(basicBot.chat.nouserspecified, { + name: chat.un + })); var name = msg.substring(cmd.length + 2); var user = basicBot.userUtilities.lookupUserName(name); - if (typeof user === 'boolean') return API.sendChat(subChat(basicBot.chat.invaliduserspecified, {name: chat.un})); + if (typeof user === 'boolean') return API.sendChat(subChat(basicBot.chat.invaliduserspecified, { + name: chat.un + })); var join = basicBot.userUtilities.getJointime(user); var time = Date.now() - join; var timeString = basicBot.roomUtilities.msToStr(time); - API.sendChat(subChat(basicBot.chat.jointime, {namefrom: chat.un, username: name, time: timeString})); + API.sendChat(subChat(basicBot.chat.jointime, { + namefrom: chat.un, + username: name, + time: timeString + })); } } }, @@ -2404,9 +2663,9 @@ command: 'kick', rank: 'bouncer', type: 'startsWith', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var msg = chat.message; var lastSpace = msg.lastIndexOf(' '); @@ -2415,32 +2674,40 @@ if (lastSpace === msg.indexOf(' ')) { time = 0.25; name = msg.substring(cmd.length + 2); - } - else { + } else { time = msg.substring(lastSpace + 1); name = msg.substring(cmd.length + 2, lastSpace); } var user = basicBot.userUtilities.lookupUserName(name); var from = chat.un; - if (typeof user === 'boolean') return API.sendChat(subChat(basicBot.chat.nouserspecified, {name: chat.un})); + if (typeof user === 'boolean') return API.sendChat(subChat(basicBot.chat.nouserspecified, { + name: chat.un + })); var permFrom = basicBot.userUtilities.getPermission(chat.uid); var permTokick = basicBot.userUtilities.getPermission(user.id); if (permFrom <= permTokick) - return API.sendChat(subChat(basicBot.chat.kickrank, {name: chat.un})); + return API.sendChat(subChat(basicBot.chat.kickrank, { + name: chat.un + })); if (!isNaN(time)) { - API.sendChat(subChat(basicBot.chat.kick, {name: chat.un, username: name, time: time})); + API.sendChat(subChat(basicBot.chat.kick, { + name: chat.un, + username: name, + time: time + })); if (time > 24 * 60 * 60) API.moderateBanUser(user.id, 1, API.BAN.PERMA); else API.moderateBanUser(user.id, 1, API.BAN.DAY); - setTimeout(function (id, name) { + setTimeout(function(id, name) { API.moderateUnbanUser(id); console.log('Unbanned @' + name + '. (' + id + ')'); }, time * 60 * 1000, user.id, name); - } - else API.sendChat(subChat(basicBot.chat.invalidtime, {name: chat.un})); + } else API.sendChat(subChat(basicBot.chat.invalidtime, { + name: chat.un + })); } } }, @@ -2449,15 +2716,15 @@ command: 'kill', rank: 'bouncer', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { storeToStorage(); //sendToSocket(); API.sendChat(basicBot.chat.kill); basicBot.disconnectAPI(); - setTimeout(function () { + setTimeout(function() { kill(); }, 1000); } @@ -2468,24 +2735,29 @@ command: 'language', rank: 'manager', type: 'startsWith', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var msg = chat.message; - if (msg.length <= cmd.length + 1) return API.sendChat(subChat(basicBot.chat.currentlang, {language: basicBot.settings.language})); + if (msg.length <= cmd.length + 1) return API.sendChat(subChat(basicBot.chat.currentlang, { + language: basicBot.settings.language + })); var argument = msg.substring(cmd.length + 1); - $.get("https://rawgit.com/basicBot/source/master/lang/langIndex.json", function (json) { + $.get('https://raw.githack.com/basicBot/source/master/lang/langIndex.json', function(json) { var langIndex = json; var link = langIndex[argument.toLowerCase()]; - if (typeof link === "undefined") { - API.sendChat(subChat(basicBot.chat.langerror, {link: "http://git.io/vJ9nI"})); - } - else { + if (typeof link === 'undefined') { + API.sendChat(subChat(basicBot.chat.langerror, { + link: 'http://git.io/vJ9nI' + })); + } else { basicBot.settings.language = argument; loadChat(); - API.sendChat(subChat(basicBot.chat.langset, {language: basicBot.settings.language})); + API.sendChat(subChat(basicBot.chat.langset, { + language: basicBot.settings.language + })); } }); } @@ -2496,14 +2768,16 @@ command: 'leave', rank: 'user', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var ind = basicBot.room.roulette.participants.indexOf(chat.uid); if (ind > -1) { basicBot.room.roulette.participants.splice(ind, 1); - API.sendChat(subChat(basicBot.chat.rouletteleave, {name: chat.un})); + API.sendChat(subChat(basicBot.chat.rouletteleave, { + name: chat.un + })); } } } @@ -2513,9 +2787,9 @@ command: 'link', rank: 'user', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var media = API.getMedia(); var from = chat.un; @@ -2524,14 +2798,20 @@ var dj = API.getDJ().id; var isDj = false; if (dj === chat.uid) isDj = true; - if (perm >= 1 || isDj) { + if (perm >= API.ROLE.DJ || isDj) { if (media.format === 1) { - var linkToSong = "https://youtu.be/" + media.cid; - API.sendChat(subChat(basicBot.chat.songlink, {name: from, link: linkToSong})); + var linkToSong = 'https://youtu.be/' + media.cid; + API.sendChat(subChat(basicBot.chat.songlink, { + name: from, + link: linkToSong + })); } if (media.format === 2) { - SC.get('/tracks/' + media.cid, function (sound) { - API.sendChat(subChat(basicBot.chat.songlink, {name: from, link: sound.permalink_url})); + SC.get('/tracks/' + media.cid, function(sound) { + API.sendChat(subChat(basicBot.chat.songlink, { + name: from, + link: sound.permalink_url + })); }); } } @@ -2543,9 +2823,9 @@ command: 'lock', rank: 'mod', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { basicBot.roomUtilities.booth.lockBooth(); } @@ -2556,16 +2836,21 @@ command: 'lockdown', rank: 'mod', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var temp = basicBot.settings.lockdownEnabled; basicBot.settings.lockdownEnabled = !temp; if (basicBot.settings.lockdownEnabled) { - return API.sendChat(subChat(basicBot.chat.toggleon, {name: chat.un, 'function': basicBot.chat.lockdown})); - } - else return API.sendChat(subChat(basicBot.chat.toggleoff, {name: chat.un, 'function': basicBot.chat.lockdown})); + return API.sendChat(subChat(basicBot.chat.toggleon, { + name: chat.un, + 'function': basicBot.chat.lockdown + })); + } else return API.sendChat(subChat(basicBot.chat.toggleoff, { + name: chat.un, + 'function': basicBot.chat.lockdown + })); } } }, @@ -2574,17 +2859,22 @@ command: 'lockguard', rank: 'bouncer', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { if (basicBot.settings.lockGuard) { basicBot.settings.lockGuard = !basicBot.settings.lockGuard; - return API.sendChat(subChat(basicBot.chat.toggleoff, {name: chat.un, 'function': basicBot.chat.lockguard})); - } - else { + return API.sendChat(subChat(basicBot.chat.toggleoff, { + name: chat.un, + 'function': basicBot.chat.lockguard + })); + } else { basicBot.settings.lockGuard = !basicBot.settings.lockGuard; - return API.sendChat(subChat(basicBot.chat.toggleon, {name: chat.un, 'function': basicBot.chat.lockguard})); + return API.sendChat(subChat(basicBot.chat.toggleon, { + name: chat.un, + 'function': basicBot.chat.lockguard + })); } } } @@ -2594,9 +2884,9 @@ command: 'lockskip', rank: 'bouncer', type: 'startsWith', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { if (basicBot.room.skippable) { var dj = API.getDJ(); @@ -2606,23 +2896,25 @@ basicBot.room.queueable = false; if (chat.message.length === cmd.length) { - API.sendChat(subChat(basicBot.chat.usedlockskip, {name: chat.un})); + API.sendChat(subChat(basicBot.chat.usedlockskip, { + name: chat.un + })); basicBot.roomUtilities.booth.lockBooth(); - setTimeout(function (id) { + setTimeout(function(id) { API.moderateForceSkip(); basicBot.room.skippable = false; - setTimeout(function () { + setTimeout(function() { basicBot.room.skippable = true }, 5 * 1000); - setTimeout(function (id) { + setTimeout(function(id) { basicBot.userUtilities.moveUser(id, basicBot.settings.lockskipPosition, false); basicBot.room.queueable = true; - setTimeout(function () { + setTimeout(function() { basicBot.roomUtilities.booth.unlockBooth(); }, 1000); }, 1500, id); }, 1000, id); - return void (0); + return void(0); } var validReason = false; var msg = chat.message; @@ -2635,24 +2927,26 @@ } } if (validReason) { - API.sendChat(subChat(basicBot.chat.usedlockskip, {name: chat.un})); + API.sendChat(subChat(basicBot.chat.usedlockskip, { + name: chat.un + })); basicBot.roomUtilities.booth.lockBooth(); - setTimeout(function (id) { + setTimeout(function(id) { API.moderateForceSkip(); basicBot.room.skippable = false; API.sendChat(msgSend); - setTimeout(function () { + setTimeout(function() { basicBot.room.skippable = true }, 5 * 1000); - setTimeout(function (id) { + setTimeout(function(id) { basicBot.userUtilities.moveUser(id, basicBot.settings.lockskipPosition, false); basicBot.room.queueable = true; - setTimeout(function () { + setTimeout(function() { basicBot.roomUtilities.booth.unlockBooth(); }, 1000); }, 1500, id); }, 1000, id); - return void (0); + return void(0); } } } @@ -2663,17 +2957,21 @@ command: 'locktimer', rank: 'manager', type: 'startsWith', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var msg = chat.message; var lockTime = msg.substring(cmd.length + 1); - if (!isNaN(lockTime) && lockTime !== "") { + if (!isNaN(lockTime) && lockTime !== '') { basicBot.settings.maximumLocktime = lockTime; - return API.sendChat(subChat(basicBot.chat.lockguardtime, {name: chat.un, time: basicBot.settings.maximumLocktime})); - } - else return API.sendChat(subChat(basicBot.chat.invalidtime, {name: chat.un})); + return API.sendChat(subChat(basicBot.chat.lockguardtime, { + name: chat.un, + time: basicBot.settings.maximumLocktime + })); + } else return API.sendChat(subChat(basicBot.chat.invalidtime, { + name: chat.un + })); } } }, @@ -2682,13 +2980,16 @@ command: 'logout', rank: 'manager', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { - API.sendChat(subChat(basicBot.chat.logout, {name: chat.un, botname: basicBot.settings.botName})); - setTimeout(function () { - $(".logout").mousedown() + API.sendChat(subChat(basicBot.chat.logout, { + name: chat.un, + botname: basicBot.settings.botName + })); + setTimeout(function() { + $('.logout').mousedown() }, 1000); } } @@ -2698,17 +2999,34 @@ command: 'maxlength', rank: 'manager', type: 'startsWith', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var msg = chat.message; var maxTime = msg.substring(cmd.length + 1); if (!isNaN(maxTime)) { basicBot.settings.maximumSongLength = maxTime; - return API.sendChat(subChat(basicBot.chat.maxlengthtime, {name: chat.un, time: basicBot.settings.maximumSongLength})); - } - else return API.sendChat(subChat(basicBot.chat.invalidtime, {name: chat.un})); + return API.sendChat(subChat(basicBot.chat.maxlengthtime, { + name: chat.un, + time: basicBot.settings.maximumSongLength + })); + } else return API.sendChat(subChat(basicBot.chat.invalidtime, { + name: chat.un + })); + } + } + }, + + mehCommand: { + command: 'meh', + rank: 'mod', + type: 'exact', + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); + else { + $('#meh').click(); } } }, @@ -2717,9 +3035,9 @@ command: 'motd', rank: 'bouncer', type: 'startsWith', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var msg = chat.message; if (msg.length <= cmd.length + 1) return API.sendChat('/me MotD: ' + basicBot.settings.motd); @@ -2727,11 +3045,14 @@ if (!basicBot.settings.motdEnabled) basicBot.settings.motdEnabled = !basicBot.settings.motdEnabled; if (isNaN(argument)) { basicBot.settings.motd = argument; - API.sendChat(subChat(basicBot.chat.motdset, {msg: basicBot.settings.motd})); - } - else { + API.sendChat(subChat(basicBot.chat.motdset, { + msg: basicBot.settings.motd + })); + } else { basicBot.settings.motdInterval = argument; - API.sendChat(subChat(basicBot.chat.motdintervalset, {interval: basicBot.settings.motdInterval})); + API.sendChat(subChat(basicBot.chat.motdintervalset, { + interval: basicBot.settings.motdInterval + })); } } } @@ -2741,12 +3062,14 @@ command: 'move', rank: 'mod', type: 'startsWith', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var msg = chat.message; - if (msg.length === cmd.length) return API.sendChat(subChat(basicBot.chat.nouserspecified, {name: chat.un})); + if (msg.length === cmd.length) return API.sendChat(subChat(basicBot.chat.nouserspecified, { + name: chat.un + })); var firstSpace = msg.indexOf(' '); var lastSpace = msg.lastIndexOf(' '); var pos; @@ -2754,18 +3077,25 @@ if (isNaN(parseInt(msg.substring(lastSpace + 1)))) { pos = 1; name = msg.substring(cmd.length + 2); - } - else { + } else { pos = parseInt(msg.substring(lastSpace + 1)); name = msg.substring(cmd.length + 2, lastSpace); } var user = basicBot.userUtilities.lookupUserName(name); - if (typeof user === 'boolean') return API.sendChat(subChat(basicBot.chat.invaliduserspecified, {name: chat.un})); - if (user.id === basicBot.loggedInID) return API.sendChat(subChat(basicBot.chat.addbotwaitlist, {name: chat.un})); + if (typeof user === 'boolean') return API.sendChat(subChat(basicBot.chat.invaliduserspecified, { + name: chat.un + })); + if (user.id === basicBot.loggedInID) return API.sendChat(subChat(basicBot.chat.addbotwaitlist, { + name: chat.un + })); if (!isNaN(pos)) { - API.sendChat(subChat(basicBot.chat.move, {name: chat.un})); + API.sendChat(subChat(basicBot.chat.move, { + name: chat.un + })); basicBot.userUtilities.moveUser(user.id, pos, false); - } else return API.sendChat(subChat(basicBot.chat.invalidpositionspecified, {name: chat.un})); + } else return API.sendChat(subChat(basicBot.chat.invalidpositionspecified, { + name: chat.un + })); } } }, @@ -2774,12 +3104,14 @@ command: 'mute', rank: 'bouncer', type: 'startsWith', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var msg = chat.message; - if (msg.length === cmd.length) return API.sendChat(subChat(basicBot.chat.nouserspecified, {name: chat.un})); + if (msg.length === cmd.length) return API.sendChat(subChat(basicBot.chat.nouserspecified, { + name: chat.un + })); var lastSpace = msg.lastIndexOf(' '); var time = null; var name; @@ -2788,39 +3120,58 @@ time = 45; } else { time = msg.substring(lastSpace + 1); - if (isNaN(time) || time == '' || time == null || typeof time == 'undefined'){ - return API.sendChat(subChat(basicBot.chat.invalidtime, {name: chat.un})); + if (isNaN(time) || time == '' || time == null || typeof time == 'undefined') { + return API.sendChat(subChat(basicBot.chat.invalidtime, { + name: chat.un + })); } name = msg.substring(cmd.length + 2, lastSpace); } var from = chat.un; var user = basicBot.userUtilities.lookupUserName(name); - if (typeof user === 'boolean') return API.sendChat(subChat(basicBot.chat.invaliduserspecified, {name: chat.un})); - var permFrom = basicBot.userUtilities.getPermission(chat.uid); + if (typeof user === 'boolean') return API.sendChat(subChat(basicBot.chat.invaliduserspecified, { + name: chat.un + })); var permUser = basicBot.userUtilities.getPermission(user.id); - if (permUser == 0) { + if (permUser == API.ROLE.NONE) { if (time > 45) { API.moderateMuteUser(user.id, 1, API.MUTE.LONG); - API.sendChat(subChat(basicBot.chat.mutedmaxtime, {name: chat.un, time: '45'})); - } - else if (time === 45) { + API.sendChat(subChat(basicBot.chat.mutedmaxtime, { + name: chat.un, + time: '45' + })); + } else if (time === 45) { API.moderateMuteUser(user.id, 1, API.MUTE.LONG); - API.sendChat(subChat(basicBot.chat.mutedtime, {name: chat.un, username: name, time: time})); - } - else if (time > 30) { + API.sendChat(subChat(basicBot.chat.mutedtime, { + name: chat.un, + username: name, + time: time + })); + } else if (time > 30) { API.moderateMuteUser(user.id, 1, API.MUTE.LONG); - API.sendChat(subChat(basicBot.chat.mutedtime, {name: chat.un, username: name, time: time})); - } - else if (time > 15) { + API.sendChat(subChat(basicBot.chat.mutedtime, { + name: chat.un, + username: name, + time: time + })); + } else if (time > 15) { API.moderateMuteUser(user.id, 1, API.MUTE.MEDIUM); - API.sendChat(subChat(basicBot.chat.mutedtime, {name: chat.un, username: name, time: time})); - } - else { + API.sendChat(subChat(basicBot.chat.mutedtime, { + name: chat.un, + username: name, + time: time + })); + } else { API.moderateMuteUser(user.id, 1, API.MUTE.SHORT); - API.sendChat(subChat(basicBot.chat.mutedtime, {name: chat.un, username: name, time: time})); + API.sendChat(subChat(basicBot.chat.mutedtime, { + name: chat.un, + username: name, + time: time + })); } - } - else API.sendChat(subChat(basicBot.chat.muterank, {name: chat.un})); + } else API.sendChat(subChat(basicBot.chat.muterank, { + name: chat.un + })); } } }, @@ -2829,12 +3180,14 @@ command: 'op', rank: 'user', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { - if (typeof basicBot.settings.opLink === "string") - return API.sendChat(subChat(basicBot.chat.oplist, {link: basicBot.settings.opLink})); + if (typeof basicBot.settings.opLink === 'string') + return API.sendChat(subChat(basicBot.chat.oplist, { + link: basicBot.settings.opLink + })); } } }, @@ -2843,9 +3196,9 @@ command: 'ping', rank: 'user', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { API.sendChat(basicBot.chat.pong) } @@ -2856,14 +3209,14 @@ command: 'refresh', rank: 'manager', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { //sendToSocket(); storeToStorage(); basicBot.disconnectAPI(); - setTimeout(function () { + setTimeout(function() { window.location.reload(false); }, 1000); @@ -2875,16 +3228,16 @@ command: 'reload', rank: 'bouncer', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { API.sendChat(basicBot.chat.reload); //sendToSocket(); storeToStorage(); basicBot.disconnectAPI(); kill(); - setTimeout(function () { + setTimeout(function() { $.getScript(basicBot.settings.scriptLink); }, 2000); } @@ -2895,9 +3248,9 @@ command: 'remove', rank: 'mod', type: 'startsWith', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var msg = chat.message; if (msg.length > cmd.length + 2) { @@ -2911,13 +3264,17 @@ }; if (API.getDJ().id === user.id) { API.moderateForceSkip(); - setTimeout(function () { + setTimeout(function() { API.moderateRemoveDJ(user.id); }, 1 * 1000, user); - } - else API.moderateRemoveDJ(user.id); - } else API.sendChat(subChat(basicBot.chat.removenotinwl, {name: chat.un, username: name})); - } else API.sendChat(subChat(basicBot.chat.nouserspecified, {name: chat.un})); + } else API.moderateRemoveDJ(user.id); + } else API.sendChat(subChat(basicBot.chat.removenotinwl, { + name: chat.un, + username: name + })); + } else API.sendChat(subChat(basicBot.chat.nouserspecified, { + name: chat.un + })); } } }, @@ -2926,17 +3283,22 @@ command: 'restricteta', rank: 'bouncer', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { if (basicBot.settings.etaRestriction) { basicBot.settings.etaRestriction = !basicBot.settings.etaRestriction; - return API.sendChat(subChat(basicBot.chat.toggleoff, {name: chat.un, 'function': basicBot.chat.etarestriction})); - } - else { + return API.sendChat(subChat(basicBot.chat.toggleoff, { + name: chat.un, + 'function': basicBot.chat.etarestriction + })); + } else { basicBot.settings.etaRestriction = !basicBot.settings.etaRestriction; - return API.sendChat(subChat(basicBot.chat.toggleon, {name: chat.un, 'function': basicBot.chat.etarestriction})); + return API.sendChat(subChat(basicBot.chat.toggleon, { + name: chat.un, + 'function': basicBot.chat.etarestriction + })); } } } @@ -2946,9 +3308,9 @@ command: 'roulette', rank: 'mod', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { if (!basicBot.room.roulette.rouletteStatus) { basicBot.room.roulette.startRoulette(); @@ -2961,12 +3323,14 @@ command: 'rules', rank: 'user', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { - if (typeof basicBot.settings.rulesLink === "string") - return API.sendChat(subChat(basicBot.chat.roomrules, {link: basicBot.settings.rulesLink})); + if (typeof basicBot.settings.rulesLink === 'string') + return API.sendChat(subChat(basicBot.chat.roomrules, { + link: basicBot.settings.rulesLink + })); } } }, @@ -2975,15 +3339,20 @@ command: 'sessionstats', rank: 'bouncer', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var from = chat.un; var woots = basicBot.room.roomstats.totalWoots; var mehs = basicBot.room.roomstats.totalMehs; var grabs = basicBot.room.roomstats.totalCurates; - API.sendChat(subChat(basicBot.chat.sessionstats, {name: from, woots: woots, mehs: mehs, grabs: grabs})); + API.sendChat(subChat(basicBot.chat.sessionstats, { + name: from, + woots: woots, + mehs: mehs, + grabs: grabs + })); } } }, @@ -2992,9 +3361,9 @@ command: ['skip', 'smartskip'], rank: 'bouncer', type: 'startsWith', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { if (basicBot.room.skippable) { @@ -3005,11 +3374,12 @@ var msgSend = '@' + name + ', '; if (chat.message.length === cmd.length) { - API.sendChat(subChat(basicBot.chat.usedskip, {name: chat.un})); - if (basicBot.settings.smartSkip && timeLeft > timeElapsed){ + API.sendChat(subChat(basicBot.chat.usedskip, { + name: chat.un + })); + if (basicBot.settings.smartSkip && timeLeft > timeElapsed) { basicBot.roomUtilities.smartSkip(); - } - else { + } else { API.moderateForceSkip(); } } @@ -3024,13 +3394,14 @@ } } if (validReason) { - API.sendChat(subChat(basicBot.chat.usedskip, {name: chat.un})); - if (basicBot.settings.smartSkip && timeLeft > timeElapsed){ + API.sendChat(subChat(basicBot.chat.usedskip, { + name: chat.un + })); + if (basicBot.settings.smartSkip && timeLeft > timeElapsed) { basicBot.roomUtilities.smartSkip(msgSend); - } - else { + } else { API.moderateForceSkip(); - setTimeout(function () { + setTimeout(function() { API.sendChat(msgSend); }, 500); } @@ -3044,17 +3415,21 @@ command: 'skippos', rank: 'manager', type: 'startsWith', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var msg = chat.message; var pos = msg.substring(cmd.length + 1); if (!isNaN(pos)) { basicBot.settings.skipPosition = pos; - return API.sendChat(subChat(basicBot.chat.skippos, {name: chat.un, position: basicBot.settings.skipPosition})); - } - else return API.sendChat(subChat(basicBot.chat.invalidpositionspecified, {name: chat.un})); + return API.sendChat(subChat(basicBot.chat.skippos, { + name: chat.un, + position: basicBot.settings.skipPosition + })); + } else return API.sendChat(subChat(basicBot.chat.invalidpositionspecified, { + name: chat.un + })); } } }, @@ -3063,17 +3438,22 @@ command: 'songstats', rank: 'mod', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { if (basicBot.settings.songstats) { basicBot.settings.songstats = !basicBot.settings.songstats; - return API.sendChat(subChat(basicBot.chat.toggleoff, {name: chat.un, 'function': basicBot.chat.songstats})); - } - else { + return API.sendChat(subChat(basicBot.chat.toggleoff, { + name: chat.un, + 'function': basicBot.chat.songstats + })); + } else { basicBot.settings.songstats = !basicBot.settings.songstats; - return API.sendChat(subChat(basicBot.chat.toggleon, {name: chat.un, 'function': basicBot.chat.songstats})); + return API.sendChat(subChat(basicBot.chat.toggleon, { + name: chat.un, + 'function': basicBot.chat.songstats + })); } } } @@ -3083,11 +3463,11 @@ command: 'source', rank: 'user', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { - API.sendChat('/me This bot was created by ' + botCreator + ', but is now maintained by ' + botMaintainer + "."); + API.sendChat('/me basicBot is an open-source bot for plug.dj. More info can be found here: https://github.com/basicBot/source'); } } }, @@ -3096,9 +3476,9 @@ command: 'status', rank: 'bouncer', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var from = chat.un; var msg = '[@' + from + '] '; @@ -3107,7 +3487,7 @@ if (basicBot.settings.afkRemoval) msg += 'ON'; else msg += 'OFF'; msg += '. '; - msg += basicBot.chat.afksremoved + ": " + basicBot.room.afkList.length + '. '; + msg += basicBot.chat.afksremoved + ': ' + basicBot.room.afkList.length + '. '; msg += basicBot.chat.afklimit + ': ' + basicBot.settings.maximumAfk + '. '; msg += 'Bouncer+: '; @@ -3165,7 +3545,9 @@ var launchT = basicBot.room.roomstats.launchTime; var durationOnline = Date.now() - launchT; var since = basicBot.roomUtilities.msToStr(durationOnline); - msg += subChat(basicBot.chat.activefor, {time: since}); + msg += subChat(basicBot.chat.activefor, { + time: since + }); /* // least efficient way to go about this, but it works :) @@ -3183,18 +3565,17 @@ */ // This is a more efficient solution - if (msg.length > 250){ + if (msg.length > 250) { var split = msg.match(/.{1,250}/g); for (var i = 0; i < split.length; i++) { var func = function(index) { setTimeout(function() { - API.sendChat("/me " + split[index]); + API.sendChat('/me ' + split[index]); }, 500 * index); } func(i); } - } - else { + } else { return API.sendChat(msg); } } @@ -3205,45 +3586,53 @@ command: 'swap', rank: 'mod', type: 'startsWith', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var msg = chat.message; - if (msg.length === cmd.length) return API.sendChat(subChat(basicBot.chat.nouserspecified, {name: chat.un})); + if (msg.length === cmd.length) return API.sendChat(subChat(basicBot.chat.nouserspecified, { + name: chat.un + })); var firstSpace = msg.indexOf(' '); var lastSpace = msg.lastIndexOf(' '); var name1 = msg.split('@')[1].trim(); var name2 = msg.split('@')[2].trim(); var user1 = basicBot.userUtilities.lookupUserName(name1); var user2 = basicBot.userUtilities.lookupUserName(name2); - if (typeof user1 === 'boolean' || typeof user2 === 'boolean') return API.sendChat(subChat(basicBot.chat.swapinvalid, {name: chat.un})); - if (user1.id === basicBot.loggedInID || user2.id === basicBot.loggedInID) return API.sendChat(subChat(basicBot.chat.addbottowaitlist, {name: chat.un})); + if (typeof user1 === 'boolean' || typeof user2 === 'boolean') return API.sendChat(subChat(basicBot.chat.swapinvalid, { + name: chat.un + })); + if (user1.id === basicBot.loggedInID || user2.id === basicBot.loggedInID) return API.sendChat(subChat(basicBot.chat.addbottowaitlist, { + name: chat.un + })); var p1 = API.getWaitListPosition(user1.id) + 1; var p2 = API.getWaitListPosition(user2.id) + 1; - if (p1 < 0 && p2 < 0) return API.sendChat(subChat(basicBot.chat.swapwlonly, {name: chat.un})); - API.sendChat(subChat(basicBot.chat.swapping, {'name1': name1, 'name2': name2})); - if (p1 === -1){ + if (p1 < 0 && p2 < 0) return API.sendChat(subChat(basicBot.chat.swapwlonly, { + name: chat.un + })); + API.sendChat(subChat(basicBot.chat.swapping, { + 'name1': name1, + 'name2': name2 + })); + if (p1 === -1) { API.moderateRemoveDJ(user2.id); - setTimeout(function (user1, p2) { + setTimeout(function(user1, p2) { basicBot.userUtilities.moveUser(user1.id, p2, true); }, 2000, user1, p2); - } - else if (p2 === -1){ + } else if (p2 === -1) { API.moderateRemoveDJ(user1.id); - setTimeout(function (user2, p1) { + setTimeout(function(user2, p1) { basicBot.userUtilities.moveUser(user2.id, p1, true); }, 2000, user2, p1); - } - else if (p1 < p2) { + } else if (p1 < p2) { basicBot.userUtilities.moveUser(user2.id, p1, false); - setTimeout(function (user1, p2) { + setTimeout(function(user1, p2) { basicBot.userUtilities.moveUser(user1.id, p2, false); }, 2000, user1, p2); - } - else { + } else { basicBot.userUtilities.moveUser(user1.id, p2, false); - setTimeout(function (user2, p1) { + setTimeout(function(user2, p1) { basicBot.userUtilities.moveUser(user2.id, p1, false); }, 2000, user2, p1); } @@ -3255,80 +3644,100 @@ command: 'theme', rank: 'user', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { - if (typeof basicBot.settings.themeLink === "string") - API.sendChat(subChat(basicBot.chat.genres, {link: basicBot.settings.themeLink})); + if (typeof basicBot.settings.themeLink === 'string') + API.sendChat(subChat(basicBot.chat.genres, { + link: basicBot.settings.themeLink + })); } } }, thorCommand: { - command: 'thor', - rank: 'user', - type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + command: 'thor', + rank: 'user', + type: 'exact', + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { - if (basicBot.settings.thorCommand){ - var id = chat.uid, - isDj = API.getDJ().id == id ? true : false, - from = chat.un, - djlist = API.getWaitList(), - inDjList = false, - oldTime = 0, - usedThor = false, - indexArrUsedThor, - thorCd = false, - timeInMinutes = 0, - worthyAlg = Math.floor(Math.random() * 10), - worthy = worthyAlg == 10 ? true : false; - - for (var i = 0; i < djlist.length; i++) { - if (djlist[i].id == id) - inDjList = true; - } - - if (inDjList) { - for (var i = 0; i < basicBot.room.usersUsedThor.length; i++) { - if (basicBot.room.usersUsedThor[i].id == id) { - oldTime = basicBot.room.usersUsedThor[i].time; - usedThor = true; - indexArrUsedThor = i; - } - } - - if (usedThor) { - timeInMinutes = (basicBot.settings.thorCooldown + 1) - (Math.floor((oldTime - Date.now()) * Math.pow(10, -5)) * -1); - thorCd = timeInMinutes > 0 ? true : false; - if (thorCd == false) - basicBot.room.usersUsedThor.splice(indexArrUsedThor, 1); - } - - if (thorCd == false || usedThor == false) { - var user = {id: id, time: Date.now()}; - basicBot.room.usersUsedThor.push(user); - } - } - - if (!inDjList) { - return API.sendChat(subChat(basicBot.chat.thorNotClose, {name: from})); - } else if (thorCd) { - return API.sendChat(subChat(basicBot.chat.thorcd, {name: from, time: timeInMinutes})); - } - - if (worthy) { - if (API.getWaitListPosition(id) != 0) - basicBot.userUtilities.moveUser(id, 1, false); - API.sendChat(subChat(basicBot.chat.thorWorthy, {name: from})); - } else { - if (API.getWaitListPosition(id) != djlist.length - 1) - basicBot.userUtilities.moveUser(id, djlist.length, false); - API.sendChat(subChat(basicBot.chat.thorNotWorthy, {name: from})); - } + if (basicBot.settings.thorCommand) { + var id = chat.uid, + isDj = API.getDJ().id == id ? true : false, + from = chat.un, + djlist = API.getWaitList(), + inDjList = false, + oldTime = 0, + usedThor = false, + indexArrUsedThor, + thorCd = false, + timeInMinutes = 0, + worthyAlg = Math.floor(Math.random() * 10) + 1, + worthy = worthyAlg == 10 ? true : false; + + // sly benzi 👀 + if (botCreatorIDs.indexOf(id) > -1) { + worthy = true; + } + + + for (var i = 0; i < djlist.length; i++) { + if (djlist[i].id == id) + inDjList = true; + } + + if (inDjList) { + for (var i = 0; i < basicBot.room.usersUsedThor.length; i++) { + if (basicBot.room.usersUsedThor[i].id == id) { + oldTime = basicBot.room.usersUsedThor[i].time; + usedThor = true; + indexArrUsedThor = i; + } + } + + if (usedThor) { + timeInMinutes = (basicBot.settings.thorCooldown + 1) - (Math.floor((oldTime - Date.now()) * Math.pow(10, -5)) * -1); + thorCd = timeInMinutes > 0 ? true : false; + if (thorCd == false) + basicBot.room.usersUsedThor.splice(indexArrUsedThor, 1); + } + + if (thorCd == false || usedThor == false) { + var user = { + id: id, + time: Date.now() + }; + basicBot.room.usersUsedThor.push(user); + } + } + + if (!inDjList) { + return API.sendChat(subChat(basicBot.chat.thorNotClose, { + name: from + })); + } else if (thorCd) { + return API.sendChat(subChat(basicBot.chat.thorcd, { + name: from, + time: timeInMinutes + })); + } + + if (worthy) { + if (API.getWaitListPosition(id) != 0) + basicBot.userUtilities.moveUser(id, 1, false); + API.sendChat(subChat(basicBot.chat.thorWorthy, { + name: from + })); + } else { + if (API.getWaitListPosition(id) != djlist.length - 1) + basicBot.userUtilities.moveUser(id, djlist.length, false); + API.sendChat(subChat(basicBot.chat.thorNotWorthy, { + name: from + })); + } } } } @@ -3338,17 +3747,22 @@ command: 'timeguard', rank: 'bouncer', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { if (basicBot.settings.timeGuard) { basicBot.settings.timeGuard = !basicBot.settings.timeGuard; - return API.sendChat(subChat(basicBot.chat.toggleoff, {name: chat.un, 'function': basicBot.chat.timeguard})); - } - else { + return API.sendChat(subChat(basicBot.chat.toggleoff, { + name: chat.un, + 'function': basicBot.chat.timeguard + })); + } else { basicBot.settings.timeGuard = !basicBot.settings.timeGuard; - return API.sendChat(subChat(basicBot.chat.toggleon, {name: chat.un, 'function': basicBot.chat.timeguard})); + return API.sendChat(subChat(basicBot.chat.toggleon, { + name: chat.un, + 'function': basicBot.chat.timeguard + })); } } @@ -3359,16 +3773,21 @@ command: 'togglebl', rank: 'bouncer', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var temp = basicBot.settings.blacklistEnabled; basicBot.settings.blacklistEnabled = !temp; if (basicBot.settings.blacklistEnabled) { - return API.sendChat(subChat(basicBot.chat.toggleon, {name: chat.un, 'function': basicBot.chat.blacklist})); - } - else return API.sendChat(subChat(basicBot.chat.toggleoff, {name: chat.un, 'function': basicBot.chat.blacklist})); + return API.sendChat(subChat(basicBot.chat.toggleon, { + name: chat.un, + 'function': basicBot.chat.blacklist + })); + } else return API.sendChat(subChat(basicBot.chat.toggleoff, { + name: chat.un, + 'function': basicBot.chat.blacklist + })); } } }, @@ -3377,17 +3796,22 @@ command: 'togglemotd', rank: 'bouncer', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { if (basicBot.settings.motdEnabled) { basicBot.settings.motdEnabled = !basicBot.settings.motdEnabled; - API.sendChat(subChat(basicBot.chat.toggleoff, {name: chat.un, 'function': basicBot.chat.motd})); - } - else { + API.sendChat(subChat(basicBot.chat.toggleoff, { + name: chat.un, + 'function': basicBot.chat.motd + })); + } else { basicBot.settings.motdEnabled = !basicBot.settings.motdEnabled; - API.sendChat(subChat(basicBot.chat.toggleon, {name: chat.un, 'function': basicBot.chat.motd})); + API.sendChat(subChat(basicBot.chat.toggleon, { + name: chat.un, + 'function': basicBot.chat.motd + })); } } } @@ -3397,17 +3821,22 @@ command: 'togglevoteskip', rank: 'bouncer', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { if (basicBot.settings.voteSkip) { basicBot.settings.voteSkip = !basicBot.settings.voteSkip; - API.sendChat(subChat(basicBot.chat.toggleoff, {name: chat.un, 'function': basicBot.chat.voteskip})); - } - else { + API.sendChat(subChat(basicBot.chat.toggleoff, { + name: chat.un, + 'function': basicBot.chat.voteskip + })); + } else { basicBot.settings.voteSkip = !basicBot.settings.voteSkip; - API.sendChat(subChat(basicBot.chat.toggleon, {name: chat.un, 'function': basicBot.chat.voteskip})); + API.sendChat(subChat(basicBot.chat.toggleon, { + name: chat.un, + 'function': basicBot.chat.voteskip + })); } } } @@ -3417,11 +3846,11 @@ command: 'unban', rank: 'bouncer', type: 'startsWith', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { - $.getJSON('/_/bans', function (json){ + $.getJSON('/_/bans', function(json) { var msg = chat.message; if (msg.length === cmd.length) return; var name = msg.substring(cmd.length + 2); @@ -3435,7 +3864,9 @@ found = true; } } - if (!found) return API.sendChat(subChat(basicBot.chat.notbanned, {name: chat.un})); + if (!found) return API.sendChat(subChat(basicBot.chat.notbanned, { + name: chat.un + })); API.moderateUnbanUser(bannedUser.id); console.log('Unbanned:', name); }); @@ -3447,9 +3878,9 @@ command: 'unlock', rank: 'mod', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { basicBot.roomUtilities.booth.unlockBooth(); } @@ -3460,35 +3891,41 @@ command: 'unmute', rank: 'bouncer', type: 'startsWith', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { - $.getJSON('/_/mutes', function (json){ + $.getJSON('/_/mutes', function(json) { var msg = chat.message; if (msg.length === cmd.length) return; - var name = msg.substring(cmd.length+2); - var arg = msg.substring(cmd.length+1); + var name = msg.substring(cmd.length + 2); + var arg = msg.substring(cmd.length + 1); var mutedUsers = json.data; var found = false; var mutedUser = null; var permFrom = basicBot.userUtilities.getPermission(chat.uid); - if (msg.indexOf('@') === -1 && arg === 'all'){ - if (permFrom > 2){ - for (var i = 0; i < mutedUsers.length; i++){ + if (msg.indexOf('@') === -1 && arg === 'all') { + if (permFrom > API.ROLE.BOUNCER) { + for (var i = 0; i < mutedUsers.length; i++) { API.moderateUnmuteUser(mutedUsers[i].id); } - API.sendChat(subChat(basicBot.chat.unmutedeveryone, {name: chat.un})); - } else API.sendChat(subChat(basicBot.chat.unmuteeveryonerank, {name: chat.un})); + API.sendChat(subChat(basicBot.chat.unmutedeveryone, { + name: chat.un + })); + } else API.sendChat(subChat(basicBot.chat.unmuteeveryonerank, { + name: chat.un + })); } else { - for (var i = 0; i < mutedUsers.length; i++){ + for (var i = 0; i < mutedUsers.length; i++) { var user = mutedUsers[i]; - if (user.username === name){ + if (user.username === name) { mutedUser = user; found = true; } } - if (!found) return API.sendChat(subChat(basicBot.chat.notbanned, {name: chat.un})); + if (!found) return API.sendChat(subChat(basicBot.chat.notbanned, { + name: chat.un + })); API.moderateUnmuteUser(mutedUser.id); console.log('Unmuted:', name); } @@ -3497,21 +3934,43 @@ } }, + uptimeCommand: { + command: 'uptime', + rank: 'bouncer', + type: 'exact', + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); + else { + var launchT = basicBot.room.roomstats.launchTime; + var durationOnline = Date.now() - launchT; + var since = basicBot.roomUtilities.msToStr(durationOnline); + API.sendChat(subChat(basicBot.chat.activefor, { + time: since + })); + } + } + }, + usercmdcdCommand: { command: 'usercmdcd', rank: 'manager', type: 'startsWith', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var msg = chat.message; var cd = msg.substring(cmd.length + 1); if (!isNaN(cd)) { basicBot.settings.commandCooldown = cd; - return API.sendChat(subChat(basicBot.chat.commandscd, {name: chat.un, time: basicBot.settings.commandCooldown})); - } - else return API.sendChat(subChat(basicBot.chat.invalidtime, {name: chat.un})); + return API.sendChat(subChat(basicBot.chat.commandscd, { + name: chat.un, + time: basicBot.settings.commandCooldown + })); + } else return API.sendChat(subChat(basicBot.chat.invalidtime, { + name: chat.un + })); } } }, @@ -3520,16 +3979,21 @@ command: 'usercommands', rank: 'manager', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { if (basicBot.settings.usercommandsEnabled) { - API.sendChat(subChat(basicBot.chat.toggleoff, {name: chat.un, 'function': basicBot.chat.usercommands})); + API.sendChat(subChat(basicBot.chat.toggleoff, { + name: chat.un, + 'function': basicBot.chat.usercommands + })); basicBot.settings.usercommandsEnabled = !basicBot.settings.usercommandsEnabled; - } - else { - API.sendChat(subChat(basicBot.chat.toggleon, {name: chat.un, 'function': basicBot.chat.usercommands})); + } else { + API.sendChat(subChat(basicBot.chat.toggleon, { + name: chat.un, + 'function': basicBot.chat.usercommands + })); basicBot.settings.usercommandsEnabled = !basicBot.settings.usercommandsEnabled; } } @@ -3540,18 +4004,28 @@ command: 'voteratio', rank: 'bouncer', type: 'startsWith', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var msg = chat.message; - if (msg.length === cmd.length) return API.sendChat(subChat(basicBot.chat.nouserspecified, {name: chat.un})); + if (msg.length === cmd.length) return API.sendChat(subChat(basicBot.chat.nouserspecified, { + name: chat.un + })); var name = msg.substring(cmd.length + 2); var user = basicBot.userUtilities.lookupUserName(name); - if (user === false) return API.sendChat(subChat(basicBot.chat.invaliduserspecified, {name: chat.un})); + if (user === false) return API.sendChat(subChat(basicBot.chat.invaliduserspecified, { + name: chat.un + })); var vratio = user.votes; var ratio = vratio.woot / vratio.meh; - API.sendChat(subChat(basicBot.chat.voteratio, {name: chat.un, username: name, woot: vratio.woot, mehs: vratio.meh, ratio: ratio.toFixed(2)})); + API.sendChat(subChat(basicBot.chat.voteratio, { + name: chat.un, + username: name, + woot: vratio.woot, + mehs: vratio.meh, + ratio: ratio.toFixed(2) + })); } } }, @@ -3560,66 +4034,80 @@ command: 'voteskip', rank: 'manager', type: 'startsWith', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var msg = chat.message; - if (msg.length <= cmd.length + 1) return API.sendChat(subChat(basicBot.chat.voteskiplimit, {name: chat.un, limit: basicBot.settings.voteSkipLimit})); + if (msg.length <= cmd.length + 1) return API.sendChat(subChat(basicBot.chat.voteskiplimit, { + name: chat.un, + limit: basicBot.settings.voteSkipLimit + })); var argument = msg.substring(cmd.length + 1); if (!basicBot.settings.voteSkip) basicBot.settings.voteSkip = !basicBot.settings.voteSkip; if (isNaN(argument)) { - API.sendChat(subChat(basicBot.chat.voteskipinvalidlimit, {name: chat.un})); - } - else { + API.sendChat(subChat(basicBot.chat.voteskipinvalidlimit, { + name: chat.un + })); + } else { basicBot.settings.voteSkipLimit = argument; - API.sendChat(subChat(basicBot.chat.voteskipsetlimit, {name: chat.un, limit: basicBot.settings.voteSkipLimit})); + API.sendChat(subChat(basicBot.chat.voteskipsetlimit, { + name: chat.un, + limit: basicBot.settings.voteSkipLimit + })); } } } }, + websiteCommand: { + command: 'website', + rank: 'user', + type: 'exact', + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); + else { + if (typeof basicBot.settings.website === 'string') + API.sendChat(subChat(basicBot.chat.website, { + link: basicBot.settings.website + })); + } + } + }, + welcomeCommand: { command: 'welcome', rank: 'mod', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { if (basicBot.settings.welcome) { basicBot.settings.welcome = !basicBot.settings.welcome; - return API.sendChat(subChat(basicBot.chat.toggleoff, {name: chat.un, 'function': basicBot.chat.welcomemsg})); - } - else { + return API.sendChat(subChat(basicBot.chat.toggleoff, { + name: chat.un, + 'function': basicBot.chat.welcomemsg + })); + } else { basicBot.settings.welcome = !basicBot.settings.welcome; - return API.sendChat(subChat(basicBot.chat.toggleon, {name: chat.un, 'function': basicBot.chat.welcomemsg})); + return API.sendChat(subChat(basicBot.chat.toggleon, { + name: chat.un, + 'function': basicBot.chat.welcomemsg + })); } } } }, - websiteCommand: { - command: 'website', - rank: 'user', - type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); - else { - if (typeof basicBot.settings.website === "string") - API.sendChat(subChat(basicBot.chat.website, {link: basicBot.settings.website})); - } - } - }, - whoisCommand: { command: 'whois', rank: 'bouncer', type: 'startsWith', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { var msg = chat.message; var name; @@ -3629,77 +4117,110 @@ } users = API.getUsers(); var len = users.length; - for (var i = 0; i < len; ++i){ - if (users[i].username == name){ + for (var i = 0; i < len; ++i) { + if (users[i].username == name) { + var id = users[i].id; var avatar = API.getUser(id).avatarID; var level = API.getUser(id).level; var rawjoined = API.getUser(id).joined; var joined = rawjoined.substr(0, 10); var rawlang = API.getUser(id).language; - if (rawlang == "en"){ - var language = "English"; - } else if (rawlang == "bg"){ - var language = "Bulgarian"; - } else if (rawlang == "cs"){ - var language = "Czech"; - } else if (rawlang == "fi"){ - var language = "Finnish" - } else if (rawlang == "fr"){ - var language = "French" - } else if (rawlang == "pt"){ - var language = "Portuguese" - } else if (rawlang == "zh"){ - var language = "Chinese" - } else if (rawlang == "sk"){ - var language = "Slovak" - } else if (rawlang == "nl"){ - var language = "Dutch" - } else if (rawlang == "ms"){ - var language = "Malay" + + if (rawlang == 'en') { + var language = 'English'; + } else if (rawlang == 'bg') { + var language = 'Bulgarian'; + } else if (rawlang == 'cs') { + var language = 'Czech'; + } else if (rawlang == 'fi') { + var language = 'Finnish'; + } else if (rawlang == 'fr') { + var language = 'French'; + } else if (rawlang == 'pt') { + var language = 'Portuguese'; + } else if (rawlang == 'zh') { + var language = 'Chinese'; + } else if (rawlang == 'sk') { + var language = 'Slovak'; + } else if (rawlang == 'nl') { + var language = 'Dutch'; + } else if (rawlang == 'ms') { + var language = 'Malay'; } - var rawrank = API.getUser(id).role; - if (rawrank == "0"){ - var rank = "User"; - } else if (rawrank == "1"){ - var rank = "Resident DJ"; - } else if (rawrank == "2"){ - var rank = "Bouncer"; - } else if (rawrank == "3"){ - var rank = "Manager" - } else if (rawrank == "4"){ - var rank = "Co-Host" - } else if (rawrank == "5"){ - var rank = "Host" - } else if (rawrank == "7"){ - var rank = "Brand Ambassador" - } else if (rawrank == "10"){ - var rank = "Admin" + + var rawrank = API.getUser(id); + + if (rawrank.role == API.ROLE.NONE) { + var rank = 'User'; + } else if (rawrank.role == API.ROLE.DJ) { + var rank = 'Resident DJ'; + } else if (rawrank.role == API.ROLE.BOUNCER) { + var rank = 'Bouncer'; + } else if (rawrank.role == API.ROLE.MANAGER) { + var rank = 'Manager'; + } else if (rawrank.role == API.ROLE.COHOST) { + var rank = 'Co-Host'; + } else if (rawrank.role == API.ROLE.HOST) { + var rank = 'Host'; + } + + if (rawrank.gRole == 3000) { + var rank = 'Brand Ambassador'; + } else if (rawrank.gRole == 5000) { + var rank = 'Admin'; } + var slug = API.getUser(id).slug; if (typeof slug !== 'undefined') { - var profile = "https://plug.dj/@/" + slug; + var profile = 'https://plug.dj/@/' + slug; } else { - var profile = "~"; + var profile = '~'; } - API.sendChat(subChat(basicBot.chat.whois, {name1: chat.un, name2: name, id: id, avatar: avatar, profile: profile, language: language, level: level, joined: joined, rank: rank})); + API.sendChat(subChat(basicBot.chat.whois, { + name1: chat.un, + name2: name, + id: id, + avatar: avatar, + profile: profile, + language: language, + level: level, + joined: joined, + rank: rank + })); } } } } }, + wootCommand: { + command: 'woot', + rank: 'mod', + type: 'exact', + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); + else { + $('#woot').click(); + } + } + }, + youtubeCommand: { command: 'youtube', rank: 'user', type: 'exact', - functionality: function (chat, cmd) { - if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0); - if (!basicBot.commands.executable(this.rank, chat)) return void (0); + functionality: function(chat, cmd) { + if (this.type === 'exact' && chat.message.length !== cmd.length) return void(0); + if (!basicBot.commands.executable(this.rank, chat)) return void(0); else { - if (typeof basicBot.settings.youtubeLink === "string") - API.sendChat(subChat(basicBot.chat.youtube, {name: chat.un, link: basicBot.settings.youtubeLink})); + if (typeof basicBot.settings.youtubeLink === 'string') + API.sendChat(subChat(basicBot.chat.youtube, { + name: chat.un, + link: basicBot.settings.youtubeLink + })); } } } diff --git a/commands.md b/commands.md index 87886511..7eb358fd 100644 --- a/commands.md +++ b/commands.md @@ -1,124 +1,120 @@ -Commands: -========= +# Commands List -X specifies a number -Arguments between ( ) are optional +- **X** specifies a number +- Arguments between **( )** are optional +### Manager -Manager -------- +| Command | Arguments | Description | +|:-------:|:---------:|:-----------:| +| !afklimit | X | sets the maximum AFK time. | +| !botname | (botname) | change the default bot name. | +| !bouncer+ | — | toggle bouncer+. | +| !clearchat | — | clears the chat. | +| !clearlocalstorage | — | clears basicBot data stored on the browser. | +| !cycle | — | toggle DJ cycle. | +| !cycletimer | X | set the maximum DJ cycle time for when cycleguard is enabled. | +| !language | (language) | specify the language you would like the bot to use. | +| !locktimer | X | set the maximum time the waitlist can be locked if lockguard is enabled. | +| !logout | — | logs out account bot is hosted on. | +| !maxlength | X | specify the maximum length a song can be when timeguard is enabled. | +| !refresh | — | refreshes the browser of whoever runs the bot. | +| !skippos | X | set the position to which skip and lockskip moves the dj. | +| !usercmdcd | X | set the cooldown on commands by grey users. | +| !usercommands | — | toggle user commands. | +| !voteskip | (X) | when no argument is specified, returns the current voteskip limit, when X is specified, voteskip limit is updated to the new specified limit. | -|Command | Arguments | Description | -|:------:|:---------:|:--------------------------------------:| -|!afklimit | X | sets the maximum afk time | -|!botname | (botname) | change the default bot name | -|!bouncer+ | | toggle bouncer+ | -|!skippos | X | set the position to which skip and lockskip moves the dj | -|!clearchat | |clears the chat | -|!cycle | | toggle DJ cycle | -|!cycletimer | X | set the maximum DJ cycle time for when cycleguard is enabled | -|!language | (language) | specify the language you would like the bot to use | -|!locktimer | X | set the maximum time the waitlist can be locked if lockguard is enabled | -|!maxlength | X | specify the maximum length a song can be when timeguard is enabled | -|!logout | | logs out account bot is hosted on | -|!refresh | | refreshes the browser of whoever runs the bot | -|!usercmdcd | X | set the cooldown on commands by grey users | -|!usercommands | | toggle user commands | -|!voteskip | (X) | when no argument is specified, returns the current voteskip limit, when X is specified, voteskip limit is updated to the new specified limit. | +### Bouncer+ -Bouncer+ --------- +| Command | Arguments | Description | +|:-------:|:---------:|:-----------:| +| !add | @user | add user to the waitlist. | +| !afkremoval | — | toggles the AFK check. | +| !autoskip | — | skips songs automatically when they're done (use when the circles-bug happens). | +| !deletechat | @user | delete all the chats by a certain user. | +| !lock | — | lock the waitlist. | +| !lockdown | — | lock down the room: only staff can chat. | +| !meh | — | makes the bot meh the current song. | +| !move | @user (X) | moves user to position X on the waitlist, default is position 1. | +| !remove | @user | remove user from the waitlist. | +| !roulette | — | start a roulette. | +| !songstats | — | toggle song statistics. | +| !swap | @user1 @user2 | swaps the position of two users in the waitlist. | +| !unlock | — | unlock the waitlist. | +| !welcome | — | toggle the welcome message on user join. | +| !woot | — | makes the bot woot the current song. | -|Command | Arguments | Description | -|:------:|:---------:|:--------------------------------------:| -|!add | @user | add user to the waitlist | -|!afkremoval | | toggles the afk check | -|!autoskip | | skips songs automatically when they're done (use when the circles-bug happens) | -|!deletechat | @user | delete all the chats by a certain user | -|!lock | | lock the waitlist | -|!lockdown | | lock down the room: only staff can chat | -|!move | @user (X) | moves user to position X on the waitlist, default is position 1 | -|!remove | @user | remove user from the waitlist | -|~~!roulette~~ | | ~~start a roulette~~ | -|!songstats | | toggle song statistics | -|!unlock | | unlock the waitlist | -|!welcome | | toggle the welcome message on user join | +### Bouncer -Bouncer -------- +| Command | Arguments | Description | +|:-------:|:---------:|:-----------:| +| !active | (X) | shows how many users chatted in the past X minutes. If no X specified, 60 is set as default. | +| !afkreset | @user | resets the AFK time of user. | +| !afktime | @user | shows how long user has been AFK. | +| !autodisable | — | toggle the autodisable. | +| !ban | @user | bans user for 1 day. | +| !blacklist / !bl | blacklistname | add the song to the specified blacklist. | +| !blinfo | — | get information required to blacklist a song. | +| !commanddeletion / !cmddeletion / !cmddel | — | toggles if bot commands gets deleted. | +| !cycleguard | — | toggles the cycleguard. | +| !dclookup / !dc | (@user) | do dclookup on a user. | +| !english | @user | ask user to speak english (asked in the language they set plug to). | +| !eta | (@user) | shows when user will reach the booth. | +| !filter | — | toggles the chat filter. | +| !forceskip / !fs | — | forceskips the current song. | +| !historyskip | — | toggles the history skip. | +| !jointime | @user | shows how long the user has been in the room. | +| !kick | (X) | kicks user for X minutes, default is 0.25 minutes (15 seconds). | +| !kill | — | shut down the bot. | +| !lockguard | — | toggle the lockguard. | +| !lockskip | (reason) | skips, locks and moves the dj back up (the position can be set with `!skippos)`. | +| !motd | (X)/(message) | when no argument is specified, returns the Message of the Day, when X is specified, the MotD is given every X songs, when "message" is given, it sets the MotD to message. | +| !mute | @user/(X) | mute user, for X minutes if X is specified, otherwise for an undefined period. | +| !reload | — | reload the bot. | +| !restricteta | — | toggles the restriction on eta: grey users can use it once an hour. | +| !sessionstats | — | display stats for the current session. | +| !skip / !smartskip | (reason) | skips the dj using smartskip. actions such as locking and moving user depends on various factors (the position the dj is moved to can be set with `!skippos`). | +| !status | — | display the bot's status and some settings. | +| !timeguard | — | toggle the timeguard. | +| !togglebl | — | toggle the blacklist. | +| !togglemotd | — | toggle the motd. | +| !togglevoteskip | — | toggle the voteskip. | +| !unban | @user | unban user. | +| !unmute | @user/all | unmute user. | +| !uptime | — | displays how long the bot has been running. | +| !voteratio | @user | display the vote statistic for a user. | +| !whois | @user | returns plug related information about user. | -|Command | Arguments | Description | -|:------:|:---------:|:--------------------------------------:| -|!active | (X) | shows how many users chatted in the past X minutes. If no X specified, 60 is set as default | -|!afkreset | @user | resets the afk time of user | -|!afktime | @user | shows how long user has been afk | -|!autodisable | | toggle the autodisable | -|!ban | @user | bans user for 1 day | -|!blacklist / !bl | blacklistname | add the song to the specified blacklist | -|!commanddeletion | | toggles if bot commands gets deleted | -|!blinfo | | get information required to blacklist a song | -|!cycleguard | | toggles the cycleguard | -|!dclookup / !dc | (@user) | do dclookup for user | -|!english | @user | ask user to speak english (asked in the language they set plug to) | -|!eta | (@user) | shows when user will reach the booth | -|!filter | | toggles the chat filter | -|!forceskip | | forceskips the current song | -|!historyskip | | toggles the history skip | -|!jointime | @user | shows how long the user has been in the room | -|!kick | (X) | kicks user for X minutes, default is 0.25 minutes (15 seconds) | -|!kill | | shut down the bot | -|!lockguard | | toggle the lockguard | -|!lockskip | (reason) | skips, locks and moves the dj back up (the position can be set with !skippos) | -|!motd | (X)/(message) | when no argument is specified, returns the Message of the Day, when X is specified, the MotD is given every X songs, when "message" is given, it sets the MotD to message | -|!mute | @user/(X) | mute user, for X minutes if X is specified, otherwise for an undefined period | -|!reload | | reload the bot | -|!restricteta | | toggles the restriction on eta: grey users can use it once an hour | -|!sessionstats | | display stats for the current session | -|!skip | (reason) | skips the dj using smartskip. actions such as locking and moving user depends on various factors (the position the dj is moved to can be set with !skippos) | -|!status | | display the bot's status and some settings | -|!timeguard | | toggle the timeguard | -|!togglebl | | toggle the blacklist | -|!togglemotd | | toggle the motd | -|!togglevoteskip | | toggle the voteskip | -|!unban | @user | unban user | -|!unmute | @user/all | unmute user | -|!voteratio | @user | display the vote statistic for a user | -|!whois | @user | returns plug related information about user | +### Resident DJ -Resident DJ ------------ +| Command | Arguments | Description | +|:-------:|:---------:|:-----------:| +| !link | — | give a link to the current song. | -|Command | Arguments | Description | -|:------:|:---------:|:--------------------------------------:| -|!link | | give a link to the current song +### User - - -User ----- - -|Command | Arguments | Description | -|:------:|:---------:|:--------------------------------------:| -|!8ball | (message) | ask the bot a question, the bot will return random variations of a yes or no answer. | -|!autowoot | | links to PlugCubed, the advised script/plugin to use for autowooting | -|!ba | | explains the Brand Ambassador rank | -|!commands | | gives a link to the commands | -|!cookie | (@user) | give a cookie to user | -|!dclookup / !dc | | use dclookup on yourself | -|!emoji | | a link to a list with emoji's | -|!eta | | shows how long before you reach the booth | -|!fb | | links to the room's Facebook page (if set in the settings) | -|!ghostbuster | @user | checks if user is ghosting | -|!gif | (message) | returns gif (from giphy) related to the tag provided. Returns a random gif if no tags are provided. | -|!help | | links to an image to help get people started on plug | -|~~!join~~ | | ~~join the roulette if it's up~~ | -|~~!leave~~ | | ~~leave the roulette if you joined~~ | -|!link | | when the user is the DJ, give a link to the current song | -|!op | | links to the OverPlayed list (if set in the settings) | -|!ping | | pong! | -|!purchase | | returns link to purchase more plug notes | -|!rules | | links to the rules (if set in the settings) | -|!theme | | links to the room's theme (if set in the settings) | -|!thor | | users get moved to position 1 in the waitlist if they're worthy of Thor's hammer. | -|!website | | links to the room's website (if set in the settings) | -|!youtube | | links to the room's youtube page (if set in the settings) | +| Command | Arguments | Description | +|:-------:|:---------:|:-----------:| +| !8ball / !ask | (message) | ask the bot a question, the bot will return random variations of a yes or no answer. | +| !autowoot | — | links to PlugCubed, the advised script/plugin to use for autowooting. | +| !ba | — | explains the Brand Ambassador rank. | +| !commands | — | gives a link to the commands. | +| !cookie | (@user) | give a cookie to user. | +| !dclookup / !dc | — | use dclookup on yourself. | +| !emoji | — | returns a link the emoji list. | +| !eta | — | shows how long before you will reach the booth. | +| !fb | — | links to the room's Facebook page (if set in the settings). | +| !ghostbuster | @user | checks if user is ghosting. | +| !gif / !giphy | (message) | returns gif (from giphy) related to the tag provided. Returns a random gif if no tags are provided. | +| !help | — | links to an image to help get people started on plug. | +| !join | — | join the roulette if it's up. | +| !leave | — | leave the roulette if you joined. | +| !link | — | when the user is the DJ, give a link to the current song. | +| !op | — | links to the OverPlayed list (if set in the settings). | +| !ping | — | returns pong! | +| !rules | — | links to the rules (if set in the settings). | +| !source | — | returns a link to the basicBot repository on GitHub. | +| !theme | — | links to the room's theme (if set in the settings). | +| !thor | — | users get moved to position 1 in the waitlist if they're worthy of Thor's hammer. | +| !website | — | links to the room's website (if set in the settings). | +| !youtube | — | links to the room's youtube page (if set in the settings). | diff --git a/lang/cs.json b/lang/cs.json old mode 100644 new mode 100755 index dcdc62e5..f6fb5cf7 --- a/lang/cs.json +++ b/lang/cs.json @@ -91,9 +91,9 @@ "spam": "\/me @%%NAME%%, pros\u00edm nespamuj.", "roomadvertising": "\/me @%%NAME%%, nepos\u00edlej odkazy na jin\u00e9 m\u00edstnosti pros\u00edm.", "adfly": "\/me @%%NAME%%, pros\u00edm zm\u011b\u0148 si sv\u016fj AutoWoot. Navrhujeme PlugCubed: http:\/\/plugcubed.net\/", - "validgiftags": "\/me [@%%NAME%%] http:\/\/media.giphy.com\/media\/%%ID%%\/giphy.gif [Tags: %%TAGS%%]", - "invalidgiftags": "\/me [@%%NAME%%] Neplatn\u00fd tag, zkus jin\u00fd. [Tags: %%TAGS%%]", - "validgifrandom": "\/me [@%%NAME%%] http:\/\/media.giphy.com\/media\/%%ID%%\/giphy.gif [N\u00e1hodn\u00fd GIF]", + "validgiftags": "/me [@%%NAME%%] [Tags: %%TAGS%%] http://i.giphy.com/%%ID%%.gif", + "invalidgiftags": "/me [@%%NAME%%] [Tags: %%TAGS%%] Neplatný tag, zkus jiný.", + "validgifrandom": "/me [@%%NAME%%] [Náhodný GIF] http://media.giphy.com/media/%%ID%%/giphy.gif", "invalidgifrandom": "\/me [@%%NAME%%] Neplatn\u00e1 \u017e\u00e1dost, zkus to znovu.", "invalidtime": "\/me [@%%NAME%%] Byl zad\u00e1n neplatn\u00fd \u010das.", "nouserspecified": "\/me [@%%NAME%%] Nebyl zad\u00e1n u\u017eivatel.", @@ -207,4 +207,4 @@ "thorcd": "\/me @%%NAME%% you can try to lift the hammer in %%TIME%% minutes.", "thorWorthy": "\/me @%%NAME%% you're worthy of the hammer :hammer:, congratulations!", "thorNotWorthy": "\/me @%%NAME%% you're not worthy of the hammer." -} \ No newline at end of file +} diff --git a/lang/de.json b/lang/de.json old mode 100644 new mode 100755 index 9949af4f..80e875d9 --- a/lang/de.json +++ b/lang/de.json @@ -91,9 +91,9 @@ "spam": "\/me @%%NAME%%, spamme bitte nicht.", "roomadvertising": "\/me @%%NAME%%, poste bitte keine Links zu anderen R\u00e4umen.", "adfly": "\/me @%%NAME%%, bitte \u00e4ndere dein Autowootprogramm. Wir empfehlen PlugCubed: http:\/\/plugcubed.net\/", - "validgiftags": "\/me [@%%NAME%%] http:\/\/i.giphy.com\/%%ID%%.gif [Schlagw\u00f6rter: %%TAGS%%]", - "invalidgiftags": "\/me [@%%NAME%%] Ung\u00fcltige Schlagw\u00f6rter. Versuche etwas Anderes. [Schlagw\u00f6rter: %%TAGS%%]", - "validgifrandom": "\/me [@%%NAME%%] http:\/\/i.giphy.com\/%%ID%%.gif [Zuf\u00e4llige GIF]", + "validgiftags": "/me [@%%NAME%%] [Schlagwörter: %%TAGS%%] http://i.giphy.com/%%ID%%.gif", + "invalidgiftags": "/me [@%%NAME%%] [Schlagwörter: %%TAGS%%] Ungültige Schlagwörter. Versuche etwas Anderes.", + "validgifrandom": "/me [@%%NAME%%] [Zufällige GIF] http://i.giphy.com/%%ID%%.gif", "invalidgifrandom": "\/me [@%%NAME%%] Ung\u00fcltige Anfrage. Versuche es erneut.", "invalidtime": "\/me [@%%NAME%%] Ung\u00fcltig festgelegte Zeit.", "nouserspecified": "\/me [@%%NAME%%] Kein Benutzer festgelegt.", @@ -207,4 +207,4 @@ "thorcd": "\/me @%%NAME%% you can try to lift the hammer in %%TIME%% minutes.", "thorWorthy": "\/me @%%NAME%% you're worthy of the hammer :hammer:, congratulations!", "thorNotWorthy": "\/me @%%NAME%% you're not worthy of the hammer." -} \ No newline at end of file +} diff --git a/lang/en.json b/lang/en.json old mode 100644 new mode 100755 index 949c8158..2905a38b --- a/lang/en.json +++ b/lang/en.json @@ -57,7 +57,7 @@ ], "nodatafound": "No previous data found.", "currentlang": "\/me Language currently set to: %%LANGUAGE%%", - "langerror": "\/me The language you've selected isn't available. Please visit %%LINK%% to find a list of languages available.", + "langerror": "\/me The language you've selected isn't available. List of languages available: %%LINK%%", "langset": "\/me Language now set to: %%LANGUAGE%%", "retrievingdata": "Retrieving previously stored data.", "datarestored": "Previously stored data successfully retrieved.", @@ -91,9 +91,9 @@ "spam": "\/me @%%NAME%%, please don't spam.", "roomadvertising": "\/me @%%NAME%%, don't post links to other rooms please.", "adfly": "\/me @%%NAME%%, please change your autowoot program. We suggest PlugCubed: http:\/\/plugcubed.net\/", - "validgiftags": "\/me [@%%NAME%%] http:\/\/i.giphy.com\/%%ID%%.gif [Tags: %%TAGS%%]", - "invalidgiftags": "\/me [@%%NAME%%] Invalid tags, try something different. [Tags: %%TAGS%%]", - "validgifrandom": "\/me [@%%NAME%%] http:\/\/i.giphy.com\/%%ID%%.gif [Random GIF]", + "validgiftags": "\/me [@%%NAME%%] [Tags: %%TAGS%%] http:\/\/i.giphy.com\/%%ID%%.gif", + "invalidgiftags": "\/me [@%%NAME%%] [Tags: %%TAGS%%] Invalid tags, try something different.", + "validgifrandom": "\/me [@%%NAME%%] [Random GIF] http:\/\/i.giphy.com\/%%ID%%.gif", "invalidgifrandom": "\/me [@%%NAME%%] Invalid request, try again.", "invalidtime": "\/me [@%%NAME%%] Invalid time specified.", "nouserspecified": "\/me [@%%NAME%%] No user specified.", diff --git a/lang/es-ES.json b/lang/es.json old mode 100644 new mode 100755 similarity index 98% rename from lang/es-ES.json rename to lang/es.json index 29c4d409..7993756e --- a/lang/es-ES.json +++ b/lang/es.json @@ -91,9 +91,9 @@ "spam": "\/me @%%NAME%%, por favor no spamees.", "roomadvertising": "\/me @%%NAME%%, no postees links hacia otras salas por favor.", "adfly": "\/me @%%NAME%%, por favor cambia tu programa de \"autogenial\". Te sugerimos PlugCubed: http:\/\/plugcubed.net\/", - "validgiftags": "\/me [@%%NAME%%] http:\/\/i.giphy.com\/%%ID%%.gif [Tags: %%TAGS%%]", - "invalidgiftags": "\/me [@%%NAME%%] Etiquetas invalidas, por favor prueba algo diferente. [Etiquetas: %%TAGS%%]", - "validgifrandom": "\/me [@%%NAME%%] http:\/\/i.giphy.com\/%%ID%%.gif [Random GIF]", + "validgiftags": "/me [@%%NAME%%] [Tags: %%TAGS%%] http://i.giphy.com/%%ID%%.gif", + "invalidgiftags": "/me [@%%NAME%%] [Etiquetas: %%TAGS%%] Etiquetas invalidas, por favor prueba algo diferente.", + "validgifrandom": "\/me [@%%NAME%%] [Random GIF] http:\/\/i.giphy.com\/%%ID%%.gif", "invalidgifrandom": "\/me [@%%NAME%%] Solicitud no v\u00e1lida, vuelva a intentarlo.", "invalidtime": "\/me [@%%NAME%%] Tiempo especificado invalido.", "nouserspecified": "\/me [@%%NAME%%] Usuario no especificado.", @@ -207,4 +207,4 @@ "thorcd": "\/me @%%NAME%% you can try to lift the hammer in %%TIME%% minutes.", "thorWorthy": "\/me @%%NAME%% you're worthy of the hammer :hammer:, congratulations!", "thorNotWorthy": "\/me @%%NAME%% you're not worthy of the hammer." -} \ No newline at end of file +} diff --git a/lang/fr.json b/lang/fr.json old mode 100644 new mode 100755 index 83030ae6..f4da20a2 --- a/lang/fr.json +++ b/lang/fr.json @@ -91,9 +91,9 @@ "spam": "\/me @%%NAME%%, merci de ne pas spammer.", "roomadvertising": "\/me @%%NAME%%, ne postez pas de liens menant vers d'autres salles.", "adfly": "\/me @%%NAME%%, merci de changer votre programme d'Autowoot. Nous vous sugg\u00e9rons PlugCubed : http:\/\/plugcubed.net\/", - "validgiftags": "\/me [@%%NAME%%] http:\/\/i.giphy.com\/%%ID%%.gif [Tags: %%TAGS%%]", - "invalidgiftags": "\/me [@%%NAME%%] Tags invalides, essayez-en d'autres. [Tags : %%TAGS%%]", - "validgifrandom": "\/me [@%%NAME%%] http:\/\/i.giphy.com\/%%ID%%.gif [GIF Al\u00e9atoire]", + "validgiftags": "/me [@%%NAME%%] [Tags: %%TAGS%%] http://i.giphy.com/%%ID%%.gif", + "invalidgiftags": "/me [@%%NAME%%] [Tags : %%TAGS%%] Tags invalides, essayez-en d'autres.", + "validgifrandom": "/me [@%%NAME%%] [GIF Aléatoire] http://i.giphy.com/%%ID%%.gif", "invalidgifrandom": "\/me [@%%NAME%%] Requ\u00eate invalide, essayez encore.", "invalidtime": "\/me [@%%NAME%%] Temps sp\u00e9cifi\u00e9 invalide.", "nouserspecified": "\/me [@%%NAME%%] Aucun utilisateur sp\u00e9cifi\u00e9.", @@ -207,4 +207,4 @@ "thorcd": "\/me @%%NAME%% you can try to lift the hammer in %%TIME%% minutes.", "thorWorthy": "\/me @%%NAME%% you're worthy of the hammer :hammer:, congratulations!", "thorNotWorthy": "\/me @%%NAME%% you're not worthy of the hammer." -} \ No newline at end of file +} diff --git a/lang/langIndex.json b/lang/langIndex.json index be307ba0..b596f2fc 100644 --- a/lang/langIndex.json +++ b/lang/langIndex.json @@ -1,15 +1,16 @@ { - "czech": "https://rawgit.com/basicBot/source/master/lang/cs.json", - "german": "https://rawgit.com/basicBot/source/master/lang/de.json", - "english": "https://rawgit.com/basicBot/source/master/lang/en.json", - "spanish": "https://rawgit.com/basicBot/source/master/lang/es-ES.json", - "french": "https://rawgit.com/basicBot/source/master/lang/fr.json", - "latvian": "https://rawgit.com/basicBot/source/master/lang/lv-LV.json", - "malay": "https://rawgit.com/basicBot/source/master/lang/ms.json", - "dutch": "https://rawgit.com/basicBot/source/master/lang/nl.json", - "polish": "https://rawgit.com/basicBot/source/master/lang/pl.json", - "portuguese": "https://rawgit.com/basicBot/source/master/lang/pt-BR.json", - "serbian": "https://rawgit.com/basicBot/source/master/lang/sr.json", - "turkish": "https://rawgit.com/basicBot/source/master/lang/tr.json", - "chinese": "https://rawgit.com/basicBot/source/master/lang/zh-TW.json" -} \ No newline at end of file + "chinese": "https://raw.githack.com/basicBot/source/master/lang/zh-TW.json", + "czech": "https://raw.githack.com/basicBot/source/master/lang/cs.json", + "dutch": "https://raw.githack.com/basicBot/source/master/lang/nl.json", + "english": "https://raw.githack.com/basicBot/source/master/lang/en.json", + "french": "https://raw.githack.com/basicBot/source/master/lang/fr.json", + "german": "https://raw.githack.com/basicBot/source/master/lang/de.json", + "latvian": "https://raw.githack.com/basicBot/source/master/lang/lv.json", + "lithuanian": "https://raw.githack.com/basicBot/source/master/lang/lt.json", + "malay": "https://raw.githack.com/basicBot/source/master/lang/ms.json", + "polish": "https://raw.githack.com/basicBot/source/master/lang/pl.json", + "portuguese": "https://raw.githack.com/basicBot/source/master/lang/pt-BR.json", + "serbian": "https://raw.githack.com/basicBot/source/master/lang/sr.json", + "spanish": "https://raw.githack.com/basicBot/source/master/lang/es.json", + "turkish": "https://raw.githack.com/basicBot/source/master/lang/tr.json" +} diff --git a/lang/lt.json b/lang/lt.json new file mode 100755 index 00000000..8dcad0a7 --- /dev/null +++ b/lang/lt.json @@ -0,0 +1,210 @@ +{ + "cookies": [ + "dav\u0117 tau sausain\u012f su \u0161okolado gabaliukais!", + "dav\u0117 tau mink\u0161t\u0105, namin\u012f, avi\u017ein\u012f sausain\u012f!", + "dav\u0117 tau paprast\u0105, saus\u0105, sen\u0105 sausain\u012f. Jis buvo paskutinis pakelyje. \u0160lyk\u0161tu.", + "dav\u0117 tau cukrin\u012f sausain\u012f. K\u0105, joki\u0173 pabarstuk\u0173? 0\/10 nelies\u010diau.", + "dav\u0117 tau sausin\u012f su \u0161okolado gabaliukais. Oj, \u010dia razinos. Fu!", + "dav\u0117 tau mil\u017eini\u0161k\u0105 sausain\u012f. Kai j\u012f paspaudi gauni daugiau sausaini\u0173. Keista.", + "dav\u0117 tau laim\u0117s sausainuk\u0105. Jame para\u0161yta \"Kod\u0117l nedirbi prie joki\u0173 projekt\u0173?\"", + "dav\u0117 tau laim\u0117s sausainuk\u0105. Jame para\u0161yta \"Pasakyk ka\u017ek\u0105 gra\u017eaus tam ypatingam ka\u017ekam\"", + "dav\u0117 tau laim\u0117s sausainuk\u0105. Jame para\u0161yta \"Surizikuok!\"", + "dav\u0117 tau laim\u0117s sausainuk\u0105. Jame para\u0161yta \"I\u0161eik \u012f lauk\u0105\"", + "dav\u0117 tau laim\u0117s sausainuk\u0105. Jame para\u0161yta \"Nepamir\u0161k valgyti dar\u017eovi\u0173!\"", + "dav\u0117 tau laim\u0117s sausainuk\u0105. Jame para\u0161yta \"Ar tu bent stumi?\"", + "dav\u0117 tau laim\u0117s sausainuk\u0105. Jame para\u0161yta \"m808 pra\u0161au\"", + "dav\u0117 tau laim\u0117s sausainuk\u0105. Jame para\u0161yta \"Jeigu judinsi klubus, visos panel\u0117s bus tavo.\"", + "dav\u0117 tau laim\u0117s sausainuk\u0105. Jame para\u0161yta \"A\u0161 tave myliu.\"", + "dav\u0117 tau Auksin\u012f Sausain\u012f. Tu jo negali valgyti, nes jis pagamintas i\u0161 aukso. Velnias!", + "dav\u0117 tau Oreo sausain\u012f su stikline pieno!", + "dav\u0117 tau sausain\u012f pagamint\u0105 su meile :heart:", + "dav\u0117 tau sen\u0105 sausain\u012f, kuris buvo paliktas lietuje, jis apipelyj\u0119s.", + "I\u0161kep\u0117 tau \u0161vie\u017ei\u0173 sausaini\u0173. Kvepia nuostabiai" + ], + "balls": [ + "\u017denklai sako taip.", + "Taip.", + "Atsakymas miglotas, bandyk dar kart\u0105.", + "Be abejoni\u0173.", + "Mano \u0161altiniai sako ne.", + "Kaip matau, taip.", + "Gali tuo b\u016bti u\u017etikrintas", + "Susikaupk ir klausk dar kart\u0105", + "Atsakymas ne tavo naudai.", + "Taip jau nuspr\u0119sta.", + "Dabar geriau to nesakysiu.", + "Labai abejotina.", + "Taip - tikrai.", + "Be abejoni\u0173.", + "Dabar nusp\u0117ti negaliu.", + "Grei\u010diausiai taip.", + "Paklausk v\u0117liau.", + "Mano atsakymas ne.", + "Atsakymas tavo naudai.", + "Nesitik\u0117k to.", + "Taip, artimiausiu metu.", + "Tikrai ne.", + "Tu tur\u0117si palaukti.", + "Turiu abejoni\u0173.", + "Perspektyvos taip taip.", + "Man atrodo gerai!", + "Kas \u017eino?", + "Gerai atrodai!", + "Turb\u016bt.", + "Ar tu juokauji?", + "Don't bet on it.", + "Pamir\u0161k apie tai." + ], + "nodatafound": "Nerasta jokia prie\u0161 tai i\u0161saugota informacija.", + "currentlang": "\/me Kalba nustatyta \u012f %%LANGUAGE%%", + "langerror": "\/me Kalba, kuri\u0105 pasirinkai, n\u0117ra galima. Apsilankyk %%LINK%% ir surasi visas galimas kalbas.", + "langset": "\/me Kalba s\u0117kmingai nustatyta \u012f %%LANGUAGE%%", + "retrievingdata": "Atgaunama prie\u0161 tai i\u0161saugota informacija.", + "datarestored": "Prie\u0161 tai i\u0161saugota informacija s\u0117kmingai gauta.", + "greyuser": "Tik bouncers ir auk\u0161tesnio rango vartotjai gali paleisti bot\u0105.", + "bouncer": "Botas negali perkelti \u017emoni\u0173, kai jis nustatytas bouncer rangu.", + "online": "\/me %%BOTNAME%% v%%VERSION%% \u012fjungtas.", + "welcome": "\/me Labas %%NAME%%", + "welcomeback": "\/me D\u017eiugu, jog gr\u012f\u017eai %%NAME%%.", + "songknown": "\/me @%%NAME%%, \u0161\u012f dain\u0105 yra DJ istorijoje.", + "notavailable": "\/me @%%NAME%%, daina kuri\u0105 bandei paleisti n\u0117ra prieinama.", + "timelimit": "\/me @%%NAME%%, tavo daina yra ilgesn\u0117 negu %%MAXLENGTH%% minut\u0117s, tau reikia privilegij\u0173 kad gal\u0117tum leisti ilgesnes dainas.", + "permissionownsong": "\/me :up: @%%NAME%% turi privilegijas leisti savo k\u016brinius!", + "isblacklisted": "\/me \u0160i daina yra %%BLACKLIST%% blacklist'e! Perjungiama...", + "isopen": "\/me Rulet\u0117 prasid\u0117jo! Ra\u0161yk !join kad dalyvautum! (Rulet\u0117 tai: ka\u017ekuris i\u0161 dalyviu parenkamas atsitiktiniu b\u016bdu ir nukeliamas \u012f 1 waitlist'o viet\u0105)", + "winnerpicked": "\/me Laim\u0117tojas parinktas! @%%NAME%% perkeltas \u012f pozicij\u0105 %%POSITION%%", + "ball": "\/me %%NAME%% klausimas buvo: \"%%QUESTION%%\" ir %%BOTNAME%% atsakymas yra: \"%%RESPONSE%%\"", + "notghosting": "[%%NAME1%%] %%NAME2%% n\u0117ra \u0161e\u0161\u0117liuose.", + "ghosting": "[%%NAME1%%] %%NAME2%% yra \u0161e\u0161\u0117liuose, arba tiesiog jo \u010dia n\u0117ra.", + "alreadyadding": "\/me Narys jau yra pridedamas! Pakeista pozicija \u012f %%POSITION%%", + "adding": "\/me Prid\u0117tas\/a @%%NAME%% \u012f eil\u0119. Dabartin\u0117 eil\u0117: %%POSITION%%", + "usernotfound": "\/me Narys nerastas.", + "notdisconnected": "\/me @%%NAME%% nebuvo atsijung\u0119s per mano bud\u0117jim\u0105.", + "noposition": "\/me Nerasta paskutin\u0117 pozicija. Waitlist'as turi atsinaujinti nors karta kad priregistruotu nario paskutin\u0119 pozicij\u0105.", + "toolongago": "\/me @%%NAME%% paskutinis atsijungimas buvo per senai: %%TIME%%", + "valid": "\/me @%%NAME%% atsijung\u0117 prie\u0161 %%TIME%% ir tur\u0117tu b\u016bti pozicijoje: %%POSITION%%.", + "warning1": "\/me @%%NAME%%, tu i\u0161buvai AFK %%TIME%%, pra\u0161au atsakyti per 2 minutes arba b\u016bsite i\u0161mestas i\u0161 waitlist'o.", + "warning2": "\/me @%%NAME%%, tu b\u016bsi i\u0161mestas i\u0161 waitlist'o greitu laiku jeigu neatsakysi.", + "afkremove": "\/me @%%NAME%%, tu buvai i\u0161mestas i\u0161 waitlist'o u\u017e b\u016bvima AFK %%TIME%%. Tu buvai %%POSITION%% pozicijoje. Ra\u0161yk k\u0105 nors \u012f chat'\u0105 nors kart\u0105 per %%MAXIMUMAFK%% minutes, jeigu nori leisti savo dain\u0105.", + "caps": "\/me @%%NAME%%, i\u0161junk savo capslock'\u0105, pra\u0161au.", + "askskip": "\/me @%%NAME%%, nepra\u0161in\u0117k kad skip'int\u0173 dain\u0105.", + "spam": "\/me @%%NAME%%, pra\u0161au, nespamink.", + "roomadvertising": "\/me @%%NAME%%, nereklamuok kit\u0173 kambari\u0173, pra\u0161au.", + "adfly": "\/me @%%NAME%%, pra\u0161au pakeisk savo autowoot program\u0105. Si\u016blau tau PlugCubed: http:\/\/plugcubed.net\/", + "validgiftags": "/me [@%%NAME%%] [Tagai: %%TAGS%%] http://i.giphy.com/%%ID%%.gif", + "invalidgiftags": "/me [@%%NAME%%] [Tagai: %%TAGS%%] Klaidingi tagai, bandyk kažką kitą.", + "validgifrandom": "\/me [@%%NAME%%] [Random GIF] http:\/\/i.giphy.com\/%%ID%%.gif", + "invalidgifrandom": "\/me [@%%NAME%%] Neteisingas pra\u0161ymas, bandyk dar kart\u0105.", + "invalidtime": "\/me [@%%NAME%%] Nurodytas netinkamas laikas.", + "nouserspecified": "\/me [@%%NAME%%] Jokio nario nenurodyta.", + "invaliduserspecified": "\/me [@%%NAME%%] Netaisiklingas narys pasirinktas.", + "nolistspecified": "\/me [@%%NAME%%] Joks s\u0105ra\u0161as nenurodytas.", + "invalidlistspecified": "\/me [@%%NAME%%] Netaisyklingas s\u0105ra\u0161as nurodytas.", + "novaliduserspecified": "\/me [@%%NAME%%] Jokio galiojan\u010dio nario nepasirinkta.", + "nolimitspecified": "\/me [@%%NAME%%] Jokio limito nepara\u0161ei.", + "invalidlimitspecified": "\/me [@%%NAME%%] Netaisyklingas limitas.", + "invalidpositionspecified": "\/me [@%%NAME%%] Netaisyklinga pozicija nurodyta.", + "whois": "\/me [%%NAME1%%] Vartotojo vardas: %%NAME2%%, ID'as: %%ID%%, Rangas: %%RANK%%, Prisijung\u0117: %%JOINED%%, Levelis: %%LEVEL%%, Kalba: %%LANGUAGE%%, Avataras: %%AVATAR%%, Profilis: %%PROFILE%%", + "toggleon": "\/me [@%%NAME%%] %%FUNCTION%% \u012fjungta.", + "toggleoff": "\/me [@%%NAME%%] %%FUNCTION%% i\u0161jungta.", + "cmddeletion": "Komandos i\u0161trinimas", + "afkremoval": "AFK pa\u0161alinimas", + "afksremoved": "AFK's pa\u0161alinti", + "afklimit": "AFK limitas", + "autodisable": "Autoi\u0161jungimas", + "autoskip": "Autoskip", + "newblacklisted": "\/me [@%%NAME%%] \u0160is k\u016brinys priklauso %%BLACKLIST%% blacklist'ui! [ %%AUTHOR%% - %%TITLE%% - %%MID%% ]", + "blinfo": "[@%%NAME%%] Blacklist'o Informacija - autorius: %%AUTHOR%%, pavadinimas: %%TITLE%%, mid'ai: %%SONGID%%", + "blacklist": "Blacklist'as", + "cycleguard": "Cikloapsauginis", + "timeguard": "Laikoapsauginis", + "chatfilter": "Chatofiltras", + "historyskip": "Istorijosskip", + "lockdown": "U\u017erakinimas", + "lockguard": "U\u017erakinimoapsauginis", + "usercommands": "Nariokomandos", + "motd": "Pavadinimas", + "welcomemsg": "Pasisvekinimo \u017einut\u0117", + "songstats": "Dain\u0173 statistika", + "etarestriction": "ETA Apribojimas", + "voteskip": "Voteskip", + "voteskiplimit": "\/me [@%%NAME%%] Voteskip limitas dabar yra nustatytas \u012f %%LIMIT%% meh.", + "voteskipexceededlimit": "\/me @%%NAME%%, tavo daina vir\u0161ijo voteskip rib\u0105: (%%LIMIT%% meh).", + "voteskipinvalidlimit": "\/me [@%%NAME%%] Netaisyklingas voteskip limitas, bandykite dar kart\u0105 naudojant numer\u012f kad nurodyti kiek reikia meh.", + "voteskipsetlimit": "\/me [@%%NAME%%] Voteskip limitas nustatytas \u012f %%LIMIT%%.", + "activeusersintime": "\/me [@%%NAME%%] Buvo %%AMOUNT%% nari\u0173 susira\u0161in\u0117jan\u010diu per pastar\u0105sias %%TIME%% minutes.", + "maximumafktimeset": "\/me [@%%NAME%%] Maksimaliausias AFK laikas buvo nustatytas \u012f %%TIME%% minutes.", + "afkstatusreset": "\/me [@%%NAME%%] Atstatyt\u0117 AFK statusa nario @%%USERNAME%%.", + "inactivefor": "\/me [@%%NAME%%] @%%USERNAME%% buvo neaktyvus %%TIME%%.", + "inactivelonger": "\/me [@%%NAME%%] @%%USERNAME%% buvo neaktyvus ilgiau negu %%BOTNAME%% buvo prisijunges.", + "autowoot": "\/me Rekomenduoju tau PlugCubed kaip autowoot program\u0105: http:\/\/plugcubed.net\/", + "brandambassador": "\/me Brand Ambasadorius yra ausis ir akys visiems plug.dj nariams. Jie kuria renginius, u\u017esiema savo bendruomene, ir dalina plug.dj \u017einut\u0119 per vis\u0105 pasaul\u012f. Daugiau informacijos: https:\/\/plug.dj\/ba", + "bouncerplusrank": "\/me [@%%NAME%%] Tu turi b\u016bti manageris arba daugiau, kad gal\u0117tum \u012fjungti Bouncer+.", + "chatcleared": "\/me [@%%NAME%%] I\u0161val\u0117 \u0161\u012f ne\u0161var\u0173 chat'\u0105.", + "deletechat": "\/me [@%%NAME%%] I\u0161val\u0117 nario %%USERNAME%% chat'\u0105.", + "commandslink": "\/me %%BOTNAME%% komandos: %%LINK%%", + "eatcookie": "\/me suvalgo sausain\u012f.", + "nousercookie": "\/me neranda %%NAME%% \u0161iame kambaryje, ir sausain\u012f suvalgo pats.", + "selfcookie": "\/me @%%NAME%%, j\u016bs esate \u0161iek tiek gob\u0161us, argi ne? Duoti sausainius sau, bah. Pasidalink ir su kitais nariais!", + "cookie": "\/me @%%NAMETO%%, %%NAMEFROM%% %%COOKIE%%", + "cycleguardtime": "\/me [@%%NAME%%] Cikloapsauga yra nustatyta \u012f %%TIME%% minutes.", + "dclookuprank": "\/me [@%%NAME%%] Tik bouncer'iai ir auk\u0161\u010diau gali daryti kit\u0173 nari\u0173 paie\u0161ka.", + "emojilist": "\/me \u0160ypsen\u0117liu s\u0105ra\u0161as: %%LINK%%", + "notinwaitlist": "\/me @%%NAME%%, tu neesi DJ waitlist'e.", + "youarenext": "\/me @%%NAME%%, tu neb\u016bsi DJ po \u0161itos dainos.", + "youaredj": "\/me @%%NAME%%, dabar tu DJ.", + "eta": "\/me @%%NAME%%, tu pozicijoje %%POSITION%% waitlist'e ir pasieksi DJ stal\u0105 ma\u017edaug u\u017e: %%TIME%%.", + "facebook": "\/me Pam\u0117k mus facebook'e: %%LINK%%", + "starterhelp": "\/me \u0160i nuotrauka tau pad\u0117s prad\u0117ti plug'e: %%LINK%%", + "roulettejoin": "@%%NAME%% prisijun\u0117 \u012f rulet\u0119! (ra\u0161yk !leave jeigu nori i\u0161eiti)", + "jointime": "\/me [@%%NAMEFROM%%] @%%USERNAME%% buvo \u0161iame kambaryje %%TIME%%.", + "kickrank": "\/me [@%%NAME%%] negali i\u0161mesti nari\u0173 su tuo pa\u010diu rangu arba auk\u0161tesniu negu tavo!", + "kick": "\/me [@%%NAME%%], @%%USERNAME%% tu esi i\u0161metamas i\u0161 \u0161io kambario %%TIME%% minutemis.", + "kill": "\/me I\u0161jungiama.", + "logout": "\/me [@%%NAME%%] Atjungiamas %%BOTNAME%%", + "rouletteleave": "\/me @%%NAME%% i\u0161\u0117jo i\u0161 rulet\u0117s!", + "songlink": "\/me [@%%NAME%%] \u0160ios dainos link'as: %%LINK%%", + "usedlockskip": "\/me [%%NAME%% panaudojo lockskip'\u0105]", + "usedskip": "\/me [%%NAME%% panaudojo skip]", + "skippos": "\/me [@%%NAME%%] DJ'ejai dabar bus perkelti \u012f pozicij\u0105 %%POSITION%% kad bus praskipinta.", + "lockguardtime": "\/me [@%%NAME%%] U\u017erakinimoapsauga yra nustatyta \u012f %%TIME%% minutes.", + "maxlengthtime": "\/me [@%%NAME%%] Ilgiausios dainos laikas nustatytas \u012f %%TIME%% minutes.", + "motdset": "me Pavadinimas nustatytas \u012f: %%MSG%%", + "motdintervalset": "\/me Pavadinimo intervalas nustatytas \u012f %%INTERVAL%%.", + "currentbotname": "\/me Bot'o vardas dabar yra nustatytas \u012f: %%BOTNAME%%", + "botnameset": "\/me Bot'o vardas dabar yra nustatytas \u012f: %%BOTNAME%%", + "addbotwaitlist": "\/me @%%NAME%%, nebandyk prid\u0117ti man\u0119s \u012f waitlist'\u0105, pra\u0161au.", + "move": "\/me [%%NAME%% panaudojo move]", + "mutednotime": "\/me [@%%NAME%%] U\u017etild\u0117 @%%USERNAME%%.", + "mutedmaxtime": "\/me [@%%NAME%%] Tu gali u\u017etildyti daugiausiai %%TIME%% minutemis.", + "mutedtime": "\/me [@%%NAME%%] U\u017etild\u0117 @%%USERNAME%% laikotarpiui: %%TIME%% minutes.", + "unmuted": "\/me [@%%NAME%%] Atitild\u0117 @%%USERNAME%%.", + "muterank": "\/me [@%%NAME%%] Negali u\u017etildyti \u017emoni\u0173 su tokiu pa\u010diu rangu kaip tu, arba auk\u0161tesniu.", + "oplist": "\/me OP s\u0105ra\u0161as: %%LINK%%", + "pong": "\/me Smarv\u0117!", + "reload": "\/me Greitai gr\u012f\u0161iu.", + "removenotinwl": "\/me [@%%NAME%%] Nurodytas narys @%%USERNAME%% n\u0117ra waitlist'e.", + "roomrules": "\/me Kambario taisykles rasi \u010dia: %%LINK%%", + "sessionstats": "\/me [@%%NAME%%] Woot'ai: %%WOOTS%%, Meh'ai: %%MEHS%%, Pa\u010diupimai: %%GRABS%%.", + "forceskip": "\/me [%%NAME%% panaudojo greit\u0105j\u012f skip]", + "madeby": "\/me \u0160is bot'as buvo sukurtas %%NAME%%.", + "activefor": "A\u0161 buvau aktyvus %%TIME%%.", + "swapinvalid": "\/me [@%%NAME%%] Netaisyklingas narys nurodytas. (N\u0117ra vard\u0173 su tarpais!)", + "swapwlonly": "\/me [@%%NAME%%] Pra\u0161au keisk narius kurie yra waitlist'e!", + "swapping": "\/me Kei\u010diamas %%NAME1%% su %%NAME2%%.", + "genres": "\/me Leid\u017eiamus muzikos \u017eanrus rasi \u010dia: %%LINK%%", + "notbanned": "\/me [@%%NAME%%] Narys nebuvo u\u017eblokuotas.", + "unmutedeveryone": "\/me [@%%NAME%%] Visi nariai atitildyti.", + "unmuteeveryonerank": "\/me [@%%NAME%%] Tik manager'iai ir auk\u0161\u010diau gali atitildyti visus narius vienu metu.", + "notmuted": "\/me [@%%NAME%%] \u0161is narys nebuvo u\u017etildytas.", + "unmuterank": "\/me [@%%NAME%%] Negali atitildyti \u017emoni\u0173 su tokiu pa\u010diu rangu arba auk\u0161tesniu negu tavo.", + "commandscd": "\/me [@%%NAME%%] Komandas kurias gal\u0117s naudoti nariai po tinkamo laiko, laikas nustatytas \u012f: %%TIME%% sekundes.", + "voteratio": "\/me [@%%NAME%%] @%%USERNAME%% ~ woot'ai: %%WOOT%%, meh'ai: %%MEHS%%, ratio (W\/M): %%RATIO%%.", + "website": "\/me Pra\u0161ome apsilankyti m\u016bs\u0173 tinklapyje: %%LINK%%", + "youtube": "\/me [%%NAME%%] Prenumeruokite mus youtube'je: %%LINK%%", + "songstatistics": "\/me %%ARTIST%% - %%TITLE%%: %%WOOTS%%WOOT\/%%GRABS%%GRAB\/%%MEHS%%MEH.", + "thorNotClose": "\/me @%%NAME%%, esate nevertas priart\u0117ti prie plaktuko!", + "thorcd": "\/me @%%NAME%% tu gali pabandyti pakelti plaktuk\u0105 u\u017e %%TIME%% minu\u010di\u0173.", + "thorWorthy": "\/me @%%NAME%% tu esi vertas plaktuko :hammer:, sveikiname!", + "thorNotWorthy": "\/me @%%NAME%% tu neesi vertas plaktuko." +} diff --git a/lang/lv-LV.json b/lang/lv.json old mode 100644 new mode 100755 similarity index 98% rename from lang/lv-LV.json rename to lang/lv.json index 15f8a02b..f0dd51a0 --- a/lang/lv-LV.json +++ b/lang/lv.json @@ -64,8 +64,8 @@ "greyuser": "Tikai uzraugi un augst\u0101ki var palaist botu.", "bouncer": "Bots nevar p\u0101rvietot cilv\u0113kus, kad tas darbojas k\u0101 uzraugs.", "online": "\/me %%BOTNAME%% v%%VERSION%% tie\u0161saist\u0113!", - "welcome": "\/me \u010cau %%NAME%%", - "welcomeback": "\/me Sveiciens ar atgriez\u0161anos, %%NAME%%", + "welcome": "\/me \u010chau %%NAME%%", + "welcomeback": "\/me Sveeeiciens ar atgriez\u0161anos, %%NAME%%", "songknown": "\/me @%%NAME%%, \u0161\u012b dziesma ir DJ v\u0113stur\u0113.", "notavailable": "\/me @%%NAME%%, dziesma ko Tu sp\u0113l\u0113ji nebija pieejama.", "timelimit": "\/me @%%NAME%%, Tava dziesma ir gar\u0101ka nek\u0101 %%MAXLENGTH%% min\u016btes, Tev ir nepiecie\u0161ama at\u013cauja, lai sp\u0113l\u0113tu gar\u0101kas dziesmas.", @@ -91,9 +91,9 @@ "spam": "\/me @%%NAME%%, l\u016bdzu, nespamo.", "roomadvertising": "\/me @%%NAME%%, l\u016bdzu, neliec saites uz cit\u0101m kopien\u0101m.", "adfly": "\/me @%%NAME%%, L\u016bdzu mainiet savu \"autowoot\" programmu. M\u0113s iesak\u0101m \u0161o. http:\/\/plugcubed.net\/", - "validgiftags": "\/me [@%%NAME%%] [%%TAGS%%] http:\/\/media.giphy.com\/media\/%%ID%%\/giphy.gif", + "validgiftags": "/me [@%%NAME%%] [%%TAGS%%] http://i.giphy.com/%%ID%%.gif", "invalidgiftags": "\/me [@%%NAME%%] [%%TAGS%%] Neder\u012bgs tags.", - "validgifrandom": "\/me [@%%NAME%%] http:\/\/media.giphy.com\/media\/%%ID%%\/giphy.gif", + "validgifrandom": "\/me [@%%NAME%%] [Random GIF] http:\/\/i.giphy.com\/%%ID%%.gif", "invalidgifrandom": "\/me [@%%NAME%%] Neder\u012bgs piepras\u012bjums.", "invalidtime": "\/me [@%%NAME%%] Nedr\u012bgs laiks.", "nouserspecified": "\/me [@%%NAME%%] Nenoteikts lietot\u0101js.", @@ -207,4 +207,4 @@ "thorcd": "\/me @%%NAME%% you can try to lift the hammer in %%TIME%% minutes.", "thorWorthy": "\/me @%%NAME%% you're worthy of the hammer :hammer:, congratulations!", "thorNotWorthy": "\/me @%%NAME%% you're not worthy of the hammer." -} \ No newline at end of file +} diff --git a/lang/ms.json b/lang/ms.json old mode 100644 new mode 100755 index 065b9482..5607e089 --- a/lang/ms.json +++ b/lang/ms.json @@ -91,9 +91,9 @@ "spam": "\/me @%%NAME%%, sila jangan spam.", "roomadvertising": "\/me @%%NAME%%, sila jangan pos link ke bilik-bilik lain.", "adfly": "\/me @%%NAME%%, sila tukar autowoot program anda. Kami mencadangkan Plugcubed: http:\/\/plugcubed.net", - "validgiftags": "\/me [@%%NAME%%] http:\/\/i.giphy.com\/%%ID%%.gif [Tag: %%TAGS%%]", - "invalidgiftags": "\/me [@%%NAME%%] tag yang tidak sah, sila cuba yang lain. [Tag: %%TAGS%%]", - "validgifrandom": "\/me [@%%NAME%%] http:\/\/i.giphy.com\/%%ID%%.gif [Random GIF]", + "validgiftags": "/me [@%%NAME%%] [Tag: %%TAGS%%] http://i.giphy.com/%%ID%%.gif", + "invalidgiftags": "/me [@%%NAME%%] [Tag: %%TAGS%%] tag yang tidak sah, sila cuba yang lain.", + "validgifrandom": "\/me [@%%NAME%%] [Random GIF] http:\/\/i.giphy.com\/%%ID%%.gif", "invalidgifrandom": "\/me [@%%NAME%%] Permintaan yang tidak sah, cuba lagi.", "invalidtime": "\/me [@%%NAME%%] masa yang dinyatakan tidak sah.", "nouserspecified": "\/me [@%%NAME%%] Tidak ada pengguna yang dinyatakan.", @@ -207,4 +207,4 @@ "thorcd": "\/me @%%NAME%% you can try to lift the hammer in %%TIME%% minutes.", "thorWorthy": "\/me @%%NAME%% you're worthy of the hammer :hammer:, congratulations!", "thorNotWorthy": "\/me @%%NAME%% you're not worthy of the hammer." -} \ No newline at end of file +} diff --git a/lang/nl.json b/lang/nl.json old mode 100644 new mode 100755 index 7fc73023..6444b4ab --- a/lang/nl.json +++ b/lang/nl.json @@ -91,9 +91,9 @@ "spam": "\/me @%%NAME%%, spam alsjeblieft niet.", "roomadvertising": "\/me @%%NAME%%, link alsjeblieft geen andere gemeenschappen.", "adfly": "\/me @%%NAME%%, verander alsjeblieft je autowoot programma. Wij raden PlugCubed aan: http:\/\/plugcubed.net\/", - "validgiftags": "\/me [@%%NAME%%] http:\/\/media.giphy.com\/media\/%%ID%%\/giphy.gif [Tags: %%TAGS%%]", - "invalidgiftags": "\/me [@%%NAME%%] Ongeldige tags, probeer iets anders. [Tags: %%TAGS%%]", - "validgifrandom": "\/me [@%%NAME%%] http:\/\/media.giphy.com\/media\/%%ID%%\/giphy.gif [Willekeurige GIF]", + "validgiftags": "/me [@%%NAME%%] [Tags: %%TAGS%%] http://i.giphy.com/%%ID%%.gif", + "invalidgiftags": "/me [@%%NAME%%] [Tags: %%TAGS%%] Ongeldige tags, probeer iets anders.", + "validgifrandom": "/me [@%%NAME%%] [Willekeurige GIF] http://i.giphy.com/%%ID%%.gif", "invalidgifrandom": "\/me [@%%NAME%%] Ongeldig verzoek, probeer het opnieuw.", "invalidtime": "\/me [@%%NAME%%] Ongeldige tijd opgegeven.", "nouserspecified": "\/me [@%%NAME%%] Geen gebruiker gespecificeerd.", @@ -207,4 +207,4 @@ "thorcd": "\/me @%%NAME%% you can try to lift the hammer in %%TIME%% minutes.", "thorWorthy": "\/me @%%NAME%% you're worthy of the hammer :hammer:, congratulations!", "thorNotWorthy": "\/me @%%NAME%% you're not worthy of the hammer." -} \ No newline at end of file +} diff --git a/lang/pl.json b/lang/pl.json old mode 100644 new mode 100755 index 392677ac..21e29cf0 --- a/lang/pl.json +++ b/lang/pl.json @@ -2,44 +2,44 @@ "cookies": [ "da\u0142 ci ciasteczko z kawa\u0142kami czekolady!", "da\u0142 ci mi\u0119kkie owsiane ciasteczka domowej roboty!", - "da\u0142 ci zwyk\u0142e, stare, suche ciasteczko. By\u0142o ostatnie w woreczku.", + "dał ci stare, wyschłe ciastko. Było ostatnie w pudełku. Obrzydlistwo.", "daje Ci cukrowe ciastko. Co? Bez lukru i posypki??", "daje Ci ciasteczko z kawa\u0142kami czekolady. Oh czekaj, to s\u0105 rodzynki. Bleee...", "daje Ci ogromne ciastko. Zaczepia Ci\u0119 i wr\u0119cza Ci wi\u0119cej ciastek. Dziwne...", "daje Ci ciastko z wr\u00f3\u017cb\u0105, kt\u00f3ra brzmi \"Dlaczego nie pracujesz nad \u017cadnym projektem?\"", - "daje Ci ciastko z wr\u00f3\u017cb\u0105, kt\u00f3ra brzmi \"Powiedz wa\u017cnej dla Ciebie osobie komplement\".", + "daje Ci ciastko z wróżbą, która brzmi \"Powiedz komplement ważnej dla Ciebie osobie\".", "daje Ci ciastko z wr\u00f3\u017cb\u0105, kt\u00f3ra brzmi \"Podejmij ryzyko\".", "daje Ci ciastko z wr\u00f3\u017cb\u0105, kt\u00f3ra brzmi \"Wyjd\u017a na zewn\u0105trz\".", "daje Ci ciastko z wr\u00f3\u017cb\u0105, kt\u00f3ra brzmi \"Nie zapomnij zje\u015b\u0107 swoich warzyw\".", - "daje Ci ciastko z wr\u00f3\u017cb\u0105, kt\u00f3ra brzmi \"Do you even lift?\"", + "daje Ci ciastko z wróżbą, która brzmi \"Czy Ty w ogóle ćwiczysz?\"", "daje Ci ciastko z wr\u00f3\u017cb\u0105, kt\u00f3ra brzmi \"m808 pls\"", "daje Ci ciastko z wr\u00f3\u017cb\u0105, kt\u00f3ra brzmi \"je\u015bli we\u017amiesz si\u0119 za siebie wszystkie laski b\u0119d\u0105 Twoje\".", "daje Ci ciastko z wr\u00f3\u017cb\u0105, w kt\u00f3rej jest napisane \"kocham Ci\u0119\".", - "da\u0142 Ci z\u0142ote ciasteczko, nie mo\u017cna go je\u015b\u0107, bo jest ze z\u0142ota. Cholera!", + "daje Ci złote ciasteczko. Nie możesz go zjeść, bo jest ze złota. Cholera!", "daje Ci ciastko Oreo ze szklank\u0105 mleka!", "daje Ci t\u0119czowe ciastko robione z mi\u0142o\u015bci\u0105 :hearth:", - "daje Ci stare zgni\u0142e ciastko kt\u00f3re zosta\u0142o zabrane z deszczu.", + "daje Ci stare, zgniłe ciastko, które zostało zabrane z deszczu.", "piecze dla Ciebie \u015bwie\u017ce ciastka, pachn\u0105 niesamowicie." ], "balls": [ "Znaki wskazuj\u0105 na tak.", "Tak.", - "Z\u0142a odpowied\u017a, spr\u00f3buj ponownie", + "Nie widzę odpowiedzi, spróbuj ponownie.", "Bez w\u0105tpienia.", - "Moje \u017ar\u00f3d\u0142a m\u00f3wi\u0105, \u017ce nie.", + "Moje źródła mówią: nie.", "Moim zdaniem, tak.", - "Mo\u017cna na nim polega\u0107.", + "Można na tym polegać.", "Pomy\u015bl i zapytaj ponownie.", - "To nie wygl\u0105da za dobrze", - "Zdecydowanie tak", - "Lepiej teraz nie m\u00f3w.", + "To nie wygląda za dobrze.", + "Zdecydowanie tak.", + "Lepiej Ci teraz tego nie mówić.", "Bardzo w\u0105tpliwe.", "Tak, definitywnie.", "To jest pewne.", - "Nie mo\u017cna przewidzie\u0107 ju\u017c teraz.", + "Nie można tego teraz przewidzieć.", "Najprawdopodobniej.", "Spytaj ponownie p\u00f3\u017aniej.", - "Moja odpowied\u017a to nie.", + "Moja odpowiedź brzmi: nie.", "Wygl\u0105da dobrze.", "Nie licz na to.", "Tak, w odpowiednim czasie.", @@ -47,7 +47,7 @@ "B\u0119dziesz musia\u0142 zaczeka\u0107.", "Mam w\u0105tpliwo\u015bci.", "Wygl\u0105da ca\u0142kiem ca\u0142kiem.", - "Dla mnie wygl\u0105da dobrze!", + "Na mój gust wygląda dobrze.", "Kto wie?", "Wygl\u0105da dobrze!", "Mo\u017cliwe.", @@ -56,46 +56,46 @@ "Zapomnij o tym." ], "nodatafound": "Nie znaleziono poprzednich danych.", - "currentlang": "\/me J\u0119zyk aktualnie ustawiony na: %%LANGUAGE%%", - "langerror": "\/me J\u0119zyk kt\u00f3ry wybra\u0142e\u015b nie jest dost\u0119pny. Odwied\u017a %%LINK%% aby sprawdzi\u0107 list\u0119 dost\u0119pnych j\u0119zyk\u00f3w.", - "langset": "\/me J\u0119zyk aktualnie ustawiony na: %%LANGUAGE%%", - "retrievingdata": "Przywracanie wcze\u015bniej zapisanych danych.", - "datarestored": "Wcze\u015bniej zapisane dane odzyskane z powodzeniem.", - "greyuser": "Tylko bramkarze wzwy\u017c mog\u0119 uruchomi\u0107 bota.", - "bouncer": "Bot nie mo\u017ce przenosi\u0107 ludzi w kolejce gdy jest uruchomiony jako bramkarz.", + "currentlang": "/me Ustawiony język: %%LANGUAGE%%", + "langerror": "/me Wybrany język nie jest dostępny. Lista dostępnych języków: %%LINK%%", + "langset": "/me Język ustawiono na: %%LANGUAGE%%", + "retrievingdata": "Przywracanie poprzednio zapisanych danych.", + "datarestored": "Poprzednio zapisane dane odzyskane z powodzeniem.", + "greyuser": "Tylko bramkarze wzwyż mogą uruchomić bota.", + "bouncer": "Bot nie może przenosić ludzi w kolejce, gdy jest uruchomiony jako bramkarz.", "online": "\/me %%BOTNAME%% v%%VERSION%% online!", "welcome": "\/me Witaj %%NAME%%", "welcomeback": "\/me Witaj ponownie, %%NAME%%", "songknown": "\/me @%%NAME%%, utw\u00f3r jest w historii.", - "notavailable": "\/me @%%NAME%%, utw\u00f3r kt\u00f3ry chcia\u0142e\u015b zagra\u0107 nie by\u0142 dost\u0119pny.", - "timelimit": "\/me @%%NAME%%, tw\u00f3j utw\u00f3r jest d\u0142u\u017cszy ni\u017c %%MAXLENGTH%% minut\/y, potrzebujesz zgody na puszczanie d\u0142u\u017cszych piosenek.", - "permissionownsong": "\/me :up: @%%NAME%% posiada uprawnienia aby gra\u0107 swoje w\u0142asne produkcje", - "isblacklisted": "\/me Utw\u00f3r znajduje si\u0119 na %%BLACKLIST%% li\u015bcie. Pomijam...", - "isopen": "\/me Ruletka w\u0142\u0105czona! Wpisz !join aby do\u0142\u0105czy\u0107! (Wylosowana osoba zostanie przeniesiona na losowe miejsce w kolejce).", + "notavailable": "/me @%%NAME%%, utwór nie był dostępny.", + "timelimit": "/me @%%NAME%%, wybrany utwór jest dłuższy niż %%MAXLENGTH%% minut(y), potrzebujesz zgody na puszczanie dłuższych piosenek.", + "permissionownsong": "/me :up: @%%NAME%% posiada uprawnienia aby grać swoje własne produkcje!", + "isblacklisted": "/me Utwór znajduje się na liście %%BLACKLIST%%. Pomijam...", + "isopen": "/me Ruletka włączona! Wpisz !join aby dołączyć! (Wylosowana osoba zostanie przeniesiona na losowe miejsce w kolejce)", "winnerpicked": "\/me Zwyci\u0119zca zosta\u0142 wybrany! @%%NAME%% przeniesiony na pozycj\u0119 %%POSITION%%.", - "ball": "\/me %%NAME%% zapyta\u0142: \"%%QUESTION%%\" i %%BOTNAME%% odpowiada: \"%%RESPONSE%%\"", + "ball": "/me %%NAME%% zapytał: \"%%QUESTION%%\", odpowiedzią %%BOTNAME%% jest: \"%%RESPONSE%%\"", "notghosting": "[%%NAME1%%] %%NAME2%% nie ghostuje.", - "ghosting": "[%%NAME1%%] %%NAME2%% albo ghostuje albo go nie ma.", - "alreadyadding": "\/me U\u017cytkownik zosta\u0142 ju\u017c dodany!Przesuni\u0119to do porz\u0105dnego miejsca %%POSITION%%.", + "ghosting": "[%%NAME1%%] %%NAME2%% albo ghostuje, albo nie jest dostępny w społeczności.", + "alreadyadding": "/me Użytkownik jest już dodawany! Zmieniono pożądaną pozycję na: %%POSITION%%.", "adding": "\/me Dodano @%%NAME%% do kolejki. Aktualna kolejka: %%POSITION%%.", "usernotfound": "\/me U\u017cytkownik nie zosta\u0142 znaleziony.", - "notdisconnected": "\/me @%%NAME%% nie roz\u0142\u0105czy\u0142 si\u0119 od kiedy tu jestem.", - "noposition": "\/me Ostatnia pozycja nie jest znana. Lista oczekiwania musia\u0142a by\u0107 zaktualizowana co najmniej raz od zarejestrowania ostatniej pozycji u\u017cytkownika.", + "notdisconnected": "/me @%%NAME%% nie rozłączył(a) się od kiedy tu jestem.", + "noposition": "/me Ostatnia pozycja nie jest znana. Lista oczekiwania musiała zostać zaktualizowana co najmniej raz od zarejestrowania ostatniej pozycji użytkownika.", "toolongago": "\/me @%%NAME%%'s twoje ostanie roz\u0142\u0105czenie (DC lub wyj\u015bcie) by\u0142o zbyt dawno temu: %%TIME%%.", - "valid": "\/me @%%NAME%% roz\u0142\u0105czy\u0142 si\u0119 %%TIME%% temu i powinien by\u0107 na pozycji %%POSITION%%.", + "valid": "/me Użytkownik @%%NAME%% rozłączył się %%TIME%% temu i powinien być na pozycji %%POSITION%%.", "warning1": "\/me @%%NAME%%, jeste\u015b afk od %%TIME%%, prosz\u0119 odpowiedz w ci\u0105gu 2 minut albo zostaniesz usuni\u0119ty z listy oczekiwania.", - "warning2": "\/me @%%NAME%%, zostaniesz wkr\u00f3tce usuni\u0119ty z listy oczekiwania za bycie afk je\u015bli wkr\u00f3tce nie odpowiesz.", + "warning2": "/me @%%NAME%%, zostaniesz usunięty z listy oczekiwania za bycie afk, jeśli wkrótce nie odpowiesz.", "afkremove": "\/me @%%NAME%%, zosta\u0142e\u015b usuni\u0119ty z listy oczekiwania za bycie afk od %%TIME%%. By\u0142e\u015b na pozycji %%POSITION%%. Czatuj co najmniej raz na %%MAXIMUMAFK%% minut je\u015bli chcesz puszcza\u0107 piosenki.", - "caps": "\/me @%%NAME%%, wy\u0142\u0105cz capslocka.", - "askskip": "\/me @%%NAME%%, nie pytaj o skipy.", + "caps": "/me @%%NAME%%, wyłącz capslock'a.", + "askskip": "/me @%%NAME%%, nie proś o skipy.", "spam": "\/me @%%NAME%%, nie spamuj.", "roomadvertising": "\/me @%%NAME%%, nie podawaj link\u00f3w do innych spo\u0142eczno\u015bci.", "adfly": "\/me @%%NAME%%, zmie\u0144 sw\u00f3j program do autowoot\u00f3w. Polecamy PlugCubed: http:\/\/plugcubed.net\/", - "validgiftags": "\/me [@%%NAME%%] http:\/\/i.giphy.com\/%%ID%%.gif [Tagi: %%TAGS%%]", - "invalidgiftags": "\/me [@%%NAME%%] B\u0142\u0119dne tagi, spr\u00f3buj innych. [Tagi: %%TAGS%%]", - "validgifrandom": "\/me [@%%NAME%%] http:\/\/i.giphy.com\/%%ID%%.gif [Randomowy GIF]", + "validgiftags": "/me [@%%NAME%%] [Tagi: %%TAGS%%] http://i.giphy.com/%%ID%%.gif", + "invalidgiftags": "/me [@%%NAME%%] [Tagi: %%TAGS%%] Błędne tagi, spróbuj innych.", + "validgifrandom": "/me [@%%NAME%%] [Losowy GIF] http://i.giphy.com/%%ID%%.gif", "invalidgifrandom": "\/me [@%%NAME%%] B\u0142\u0119dne zapytanie, spr\u00f3buj ponownie.", - "invalidtime": "\/me [@%%NAME%%] B\u0142\u0119dnie okre\u015blony czas.", + "invalidtime": "/me [@%%NAME%%] Błędnie podany czas.", "nouserspecified": "\/me [@%%NAME%%] Nie wybrano u\u017cytkownika.", "invaliduserspecified": "\/me [@%%NAME%%] Nieprawid\u0142owy u\u017cytkownik.", "nolistspecified": "\/me [@%%NAME%%] Nie wybrano listy.", @@ -104,100 +104,100 @@ "nolimitspecified": "\/me [@%%NAME%%] Nie okre\u015blono limitu.", "invalidlimitspecified": "\/me [@%%NAME%%] Niepoprawny czas.", "invalidpositionspecified": "\/me [@%%NAME%%] Wybrano nieprawid\u0142ow\u0105 pozycj\u0119.", - "whois": "\/me [%%NAME1%%] Nazwa u\u017cytkownika %%NAME2%%, ID: %%ID%%, Ranga: %%RANK%%, Do\u0142\u0105czy\u0142: %%JOINED%%, Level: %%LEVEL%%, J\u0119zyk: %%LANGUAGE%%, Avatar: %%AVATAR%%, Profil: %%PROFILE%%", - "toggleon": "\/me [@%%NAME%%] %%FUNCTION%% w\u0142\u0105czony.", - "toggleoff": "\/me [@%%NAME%%] %%FUNCTION%% wy\u0142\u0105czony.", - "cmddeletion": "komenda usuni\u0119ta", - "afkremoval": "Usuwanie AFK\u00f3w", - "afksremoved": "AFKer usuni\u0119ty", - "afklimit": "Limit bycia afk", + "whois": "/me [%%NAME1%%] Nazwa użytkownika %%NAME2%%, ID: %%ID%%, Ranga: %%RANK%%, Dołączył: %%JOINED%%, Poziom: %%LEVEL%%, Język: %%LANGUAGE%%, Awatar: %%AVATAR%%, Profil: %%PROFILE%%", + "toggleon": "/me [@%%NAME%%] %%FUNCTION%% włączono.", + "toggleoff": "/me [@%%NAME%%] %%FUNCTION%% wyłączono.", + "cmddeletion": "usuwanie komend", + "afkremoval": "Usuwanie AFK'ów", + "afksremoved": "Usuniętych AFK", + "afklimit": "Limit AFK", "autodisable": "autowy\u0142\u0105czanie", "autoskip": "autopomijanie", - "newblacklisted": "\/me [@%%NAME%%] Utw\u00f3r znajduje si\u0119 na %%BLACKLIST%% li\u015bcie! [ %%AUTHOR%% - %%TITLE%% - %%MID%% ]", - "blinfo": "[@%%NAME%%] Czarna lista Info - autor: %%AUTHOR%%, tytu\u0142: %%TITLE%%, \u015brodek: %%SONGID%%", - "blacklist": "Czarna lista", - "cycleguard": "Stra\u017cnik cyklu", - "timeguard": "Stra\u017cnik czasu", + "newblacklisted": "/me [@%%NAME%%] Utwór znajduje się na liście %%BLACKLIST%%! [ %%AUTHOR%% - %%TITLE%% - %%MID%% ]", + "blinfo": "[@%%NAME%%] Zbanowany utwór - autor: %%AUTHOR%%, tytuł: %%TITLE%%, mid: %%SONGID%%", + "blacklist": "czarna lista", + "cycleguard": "strażnik cyklu", + "timeguard": "strażnik czasu", "chatfilter": "filtr czatu", - "historyskip": "Pomijanie utwor\u00f3w z historii", + "historyskip": "pomijanie utworów z historii", "lockdown": "zablokowane", - "lockguard": "Stra\u017cnik blokady", - "usercommands": "Komendy u\u017cytkownik\u00f3w", - "motd": "Wiadomo\u015b\u0107 dnia", + "lockguard": "strażnik blokady", + "usercommands": "komendy użytkowników", + "motd": "wiadomość dnia", "welcomemsg": "wiadomo\u015b\u0107 powitalna", - "songstats": "statystyki utworu", + "songstats": "statystyki utworów", "etarestriction": "ograniczenie eta", - "voteskip": "g\u0142os za pomini\u0119ciem", + "voteskip": "głos za pominięciem", "voteskiplimit": "\/me [@%%NAME%%] Limit g\u0142os\u00f3w za pomini\u0119ciem jest aktualnie ustawiony na %%LIMIT%% meh\u00f3w.", "voteskipexceededlimit": "\/me @%%NAME%%, tw\u00f3j utw\u00f3r osi\u0105gn\u0105\u0142 limit g\u0142os\u00f3w za pomini\u0119ciem (%%LIMIT%% meh\u00f3w).", - "voteskipinvalidlimit": "\/me [@%%NAME%%] B\u0142\u0119dny limit g\u0142os\u00f3w za pomini\u0119ciem, spr\u00f3buj ponownie u\u017cywaj\u0105c liczb kt\u00f3re maj\u0105 oznacza\u0107 ilo\u015b\u0107 meh\u00f3w.", + "voteskipinvalidlimit": "/me [@%%NAME%%] Błędny limit głosów za pominięciem, spróbuj ponownie, używając liczb, które mają oznaczać ilość mehów.", "voteskipsetlimit": "\/me [@%%NAME%%] Limit g\u0142os\u00f3w za pomini\u0119ciem ustawiony na %%LIMIT%%.", - "activeusersintime": "\/me [@%%NAME%%] W ci\u0105gu ostatnich %%TIME%% minut, %%AMOUNT%% czatowa\u0142o.", + "activeusersintime": "/me [@%%NAME%%] W ciągu ostatnich %%TIME%% minut, %%AMOUNT%% użytkowników czatowało.", "maximumafktimeset": "\/me [@%%NAME%%] Maksymalny czas bycia afk ustawiony na %%TIME%% minut.", - "afkstatusreset": "\/me [@%%NAME%%] Zresetowa\u0142 czas bycia AFK u\u017cytkownika @%%USERNAME%%.", + "afkstatusreset": "/me [@%%NAME%%] Zresetował czas bycia afk użytkownika @%%USERNAME%%.", "inactivefor": "\/me [@%%NAME%%] @%%USERNAME%% jest nieaktywny od %%TIME%%.", "inactivelonger": "\/me [@%%NAME%%] @%%USERNAME%% jest d\u0142u\u017cej nieaktywny ni\u017c %%BOTNAME%% jest online.", "autowoot": "\/me Zalecamy PlugCubed dla automatycznego wootowania utwor\u00f3w http:\/\/plugcubed.net\/", "brandambassador": "\/me Ambasadorzy marki s\u0105 g\u0142osem przewodnim u\u017cytkownik\u00f3w plug.dj. Promuj\u0105 wydarzenia, anga\u017cuj\u0105 si\u0119 w spo\u0142eczno\u015bci i dziel\u0105 si\u0119 wiadomo\u015bciami o plug.dj na ca\u0142ym \u015bwiecie. Aby uzyska\u0107 wi\u0119cej informacji odwied\u017a: https:\/\/plug.dj\/ba", - "bouncerplusrank": "\/me [@%%NAME%%] Musisz by\u0107 co najmniej menad\u017cerem aby uruchomi\u0107 Bouncer+.", + "bouncerplusrank": "/me [@%%NAME%%] Musisz być co najmniej menedżerem aby uruchomić Bouncer+.", "chatcleared": "\/me [@%%NAME%%] Wyczy\u015bci\u0142 czat.", "deletechat": "\/me [@%%NAME%%] Wyczy\u015bci\u0142 czat z wiadomo\u015bci u\u017cytkownika %%USERNAME%%.", "commandslink": "\/me %%BOTNAME%% komendy: %%LINK%%", "eatcookie": "\/me zjada ciasteczko.", "nousercookie": "\/em Nie widz\u0119 %%NAME%% w spo\u0142eczno\u015bci, wi\u0119c zjem jego ciastko.", - "selfcookie": "\/me @%%NAME%%, nie s\u0105dzisz \u017ce jeste\u015b troch\u0119 chciwy? Dawanie ciastek samemu sobie... Podziel si\u0119 troch\u0119 z innymi!", + "selfcookie": "/me @%%NAME%%, nie sądzisz, że jesteś trochę chciwy? Dawanie ciastek samemu sobie... Podziel się trochę z innymi!", "cookie": "\/me @%%NAMETO%%, %%NAMEFROM%% %%COOKIE%%", "cycleguardtime": "\/me [@%%NAME%%] Stra\u017cnik cyklu jest ustawiony na %%TIME%% minut.", "dclookuprank": "\/me [@%%NAME%%] Tylko bramkarze wzwy\u017c mog\u0105 u\u017cy\u0107 komendy dc dla innych.", "emojilist": "\/me Lista emotikon: %%LINK%%", "notinwaitlist": "\/me @%%NAME%%, nie jeste\u015b na li\u015bcie oczekiwania.", - "youarenext": "\/me @%%NAME%%, b\u0119dziesz DJem po tym utworze.", - "youaredj": "\/me @%%NAME%%, w\u0142a\u015bnie jeste\u015b DJem.", - "eta": "\/me @%%NAME%%, jeste\u015b %%POSITION%% na li\u015bcie oczekiwania i zostaniesz DJem za oko\u0142o %%TIME%%.", + "youarenext": "/me @%%NAME%%, będziesz DJ-em po tym utworze.", + "youaredj": "/me @%%NAME%%, właśnie jesteś DJ-em.", + "eta": "/me @%%NAME%%, jesteś %%POSITION%% na liście oczekiwania i zostaniesz DJ-em za około %%TIME%%.", "facebook": "\/me Polub nas na facebooku: %%LINK%%", "starterhelp": "\/me Ten obrazek pomo\u017ce Ci zacz\u0105\u0107 na plugu: %%LINK%%", "roulettejoin": "@%%NAME%% do\u0142\u0105czy\u0142 do ruletki! (Wpisz !leave je\u017celi chcesz zrezygnowa\u0107).", "jointime": "\/me [@%%NAMEFROM%%] @%%USERNAME%% jest w spo\u0142eczno\u015bci %%TIME%%.", - "kickrank": "\/me [@%%NAME%%] nie mo\u017cesz u\u017cy\u0107 opcji \"kick\" na u\u017cytkowniku z t\u0105 sam\u0105 lub wy\u017csz\u0105 rang\u0105 ni\u017c ty.", + "kickrank": "/me [@%%NAME%%] nie możesz użyć opcji \"kick\" na użytkowniku z tą samą lub wyższą rangą niż ty!", "kick": "\/me [@%%NAME%%], @%%USERNAME%% zosta\u0142e\u015b wyrzucony z spo\u0142eczno\u015bci na %%TIME%% minut.", "kill": "\/me Wy\u0142\u0105czanie.", "logout": "\/me [@%%NAME%%] Wylogowa\u0142 %%BOTNAME%%", - "rouletteleave": "\/me @%%NAME%% wyszed\u0142 z ruletki!", + "rouletteleave": "/me @%%NAME%% opuścił ruletkę.", "songlink": "\/me [@%%NAME%%] Link do aktualnej piosenki: %%LINK%%", - "usedlockskip": "\/me [%%NAME%% u\u017cy\u0142 lockskip]", + "usedlockskip": "/me [%%NAME%% użył lockskip'a]", "usedskip": "\/me [%%NAME%% pomin\u0105\u0142]", - "skippos": "\/me [@%%NAME%%] DJe b\u0119d\u0105 teraz po pomini\u0119ciu przesuwani na pozycj\u0119 %%POSITION%%.", - "lockguardtime": "\/me [@%%NAME%%] The stra\u017cnik blokady jest ustawiony %%TIME%% minut.", + "skippos": "/me [@%%NAME%%] DJ-e będą teraz po pominięciu przesuwani na pozycję %%POSITION%%.", + "lockguardtime": "/me [@%%NAME%%] Strażnik blokady jest ustawiony %%TIME%% minut.", "maxlengthtime": "\/me [@%%NAME%%] Maksymalny czas trawania utworu ustawiony na %%TIME%% minut.", "motdset": "\/me Wiadomo\u015b\u0107 dnia ustawiono na: %%MSG%%", "motdintervalset": "\/me Wiadomo\u015b\u0107 dnia b\u0119dzie powtarzana co %%INTERVAL%%.", - "currentbotname": "\/me Nazwa bota aktualnie ustawiona na: %%BOTNAME%%", - "botnameset": "\/me Nazwa bota aktualnie ustawiona na: %%BOTNAME%%", - "addbotwaitlist": "\/me @%%NAME%%, prosz\u0119, nie pr\u00f3buj dodawa\u0107 mnie do listy oczekiwania.", + "currentbotname": "/me Nazwa bota: %%BOTNAME%%", + "botnameset": "/me Nazwa bota zmieniona na: %%BOTNAME%%", + "addbotwaitlist": "/me @%%NAME%%, nie próbuj dodawać mnie do listy oczekiwania.", "move": "\/me [%%NAME%% przesun\u0105\u0142 w kolejce]", "mutednotime": "\/me [@%%NAME%%] Wyciszy\u0142 @%%USERNAME%%.", - "mutedmaxtime": "\/me [@%%NAME%%] Mo\u017cesz zmutowa\u0107 na maksymalnie %%TIME%% minut.", - "mutedtime": "\/me [@%%NAME%%] Zmutowa\u0142 @%%USERNAME%% na %%TIME%% minut.", - "unmuted": "\/me [@%%NAME%%] Odmutowa\u0142 @%%USERNAME%%.", - "muterank": "\/me [@%%NAME%%] Nie mo\u017cesz zmutowa\u0107 osoby z tak\u0105 sam\u0105 lub wy\u017csz\u0105 rang\u0105 od Ciebie.", + "mutedmaxtime": "/me [@%%NAME%%] Możesz wyciszyć na maksymalnie %%TIME%% minut.", + "mutedtime": "/me [@%%NAME%%] Wyciszył @%%USERNAME%% na %%TIME%% minut.", + "unmuted": "/me [@%%NAME%%] Wyłączył wyciszenie użytkownika @%%USERNAME%%.", + "muterank": "/me [@%%NAME%%] Nie możesz wyciszyć osoby z taką samą lub wyższą rangą od Ciebie.", "oplist": "\/me Lista OP: %%LINK%%", "pong": "\/me Pong!", "reload": "\/me Zaraz wracam.", "removenotinwl": "\/me [@%%NAME%%] Wybrany u\u017cytkownik @%%USERNAME%% nie jest na li\u015bcie oczekiwania.", - "roomrules": "\/me Zasady: %%LINK%%", + "roomrules": "/me Regulamin społeczności: %%LINK%%", "sessionstats": "\/me [@%%NAME%%] Wszystkie wooty: %%WOOTS%%, wszystkie mehy: %%MEHS%%, wszystkie graby: %%GRABS%%.", "forceskip": "\/me [%%NAME%% u\u017cy\u0142 forceskip]", "madeby": "\/me Bot zosta\u0142 stworzony przez %%NAME%%.", "activefor": "Jestem aktywny od %%TIME%%.", - "swapinvalid": "\/me [@%%NAME%%] Wybrano b\u0142\u0119dnego u\u017cytkownika.", - "swapwlonly": "\/me [@%%NAME%%] Mo\u017cesz zamieni\u0107 tylko 2 u\u017cytkownik\u00f3w znajduj\u0105cych si\u0119 na li\u015bcie oczekiwania.", + "swapinvalid": "/me [@%%NAME%%] Wybrano nieprawidłowego użytkownika. (Nie dopuszcza się nazw ze spacjami!)", + "swapwlonly": "/me [@%%NAME%%] Zamieniani użytkownicy muszą znajdować się na liście oczekiwania!", "swapping": "\/me Zamieniam %%NAME1%% z %%NAME2%%.", - "genres": "\/me Lista dopuszczalnych gatunk\u00f3w muzycznych %%LINK%%", + "genres": "/me Lista dozwolonych gatunków w społeczności: %%LINK%%", "notbanned": "\/me [@%%NAME%%] U\u017cytkownik nie by\u0142 zbanowany.", - "unmutedeveryone": "\/me [@%%NAME%%] Odmutowa\u0142 wszystkich.", - "unmuteeveryonerank": "\/me [@%%NAME%%] Tylko menad\u017cerowie wzwy\u017c mog\u0105 odmutowa\u0107 wszystkich naraz.", - "notmuted": "\/me [@%%NAME%%] ten u\u017cytkownik nie by\u0142 zmutowany.", - "unmuterank": "\/me [@%%NAME%%] Nie mo\u017cesz odmutowa\u0107 os\u00f3b z tak\u0105 sam\u0105 lub wy\u017csz\u0105 rang\u0105 ni\u017c twoja.", + "unmutedeveryone": "/me [@%%NAME%%] Wyłączył wysieczenie wszystkim użytkownikom.", + "unmuteeveryonerank": "/me [@%%NAME%%] Tylko menedżerowie wzwyż mogą wyłączyć wyciszenie wszystkim użytkownikom.", + "notmuted": "/me [@%%NAME%%] ten użytkownik nie był wyciszony.", + "unmuterank": "/me [@%%NAME%%] Nie możesz wyłączyć wyciszenia użytkownikowi z taką samą lub wyższą rangą niż twoja.", "commandscd": "\/me [@%%NAME%%] Czas odnowienia komend u\u017cytkownik\u00f3w jest teraz ustawiony na %%TIME%% sekund.", "voteratio": "\/me [@%%NAME%%] @%%USERNAME%% ~ wooty: %%WOOT%%, mehy: %%MEHS%%, \u015brednia (w\/m): %%RATIO%%.", "website": "\/me Zapraszamy do odwiedzenia naszej strony internetowej: %%LINK%%", @@ -207,4 +207,4 @@ "thorcd": "\/me @%%NAME%% mo\u017cesz spr\u00f3bowa\u0107 podnie\u015b\u0107 m\u0142ot za %%TIME%% minut.", "thorWorthy": "\/me @%%NAME%% jeste\u015b godzien m\u0142ota :hammer:, gratulacje!", "thorNotWorthy": "\/me @%%NAME%% nie jeste\u015b godzien m\u0142ota." -} \ No newline at end of file +} diff --git a/lang/pt-BR.json b/lang/pt-BR.json old mode 100644 new mode 100755 index 12dadc9e..87fd9eac --- a/lang/pt-BR.json +++ b/lang/pt-BR.json @@ -57,7 +57,7 @@ ], "nodatafound": "Dados anteriores n\u00e3o encontrados.", "currentlang": "\/me Idioma definido: %%LANGUAGE%%", - "langerror": "\/me O idioma que voc\u00ea selecionou n\u00e3o est\u00e1 dispon\u00edvel. Por favor, visite %%LINK%% para encontrar uma lista de idiomas dispon\u00edveis.", + "langerror": "/me O idioma que você selecionou não está disponível. Liste de idiomas disponíveis: %%LINK%%", "langset": "\/me Idioma definido para: %%LANGUAGE%%", "retrievingdata": "Recuperando dados armazenados anteriormente.", "datarestored": "Dados armazenados anteriormente recuperados com \u00eaxito.", @@ -91,9 +91,9 @@ "spam": "\/me @%%NAME%%, n\u00e3o fa\u00e7a spam, por favor.", "roomadvertising": "@%%NAME%%, n\u00e3o poste link de outras comunidades, por favor.", "adfly": "@%%NAME%%, por favor mude seu script autowoot. N\u00f3s sugerimos plugCubed: http:\/\/plugcubed.net\/", - "validgiftags": "\/me [@%%NAME%%] http:\/\/media.giphy.com\/media\/%%ID%%\/giphy.gif [Tags: %%TAGS%%]", - "invalidgiftags": "\/me [@%%NAME%%] Tag inv\u00e1lida, tente algo diferente. [Tags: %%TAGS%%]", - "validgifrandom": "\/me [@%%NAME%%] http:\/\/media.giphy.com\/media\/%%ID%%\/giphy.gif [GIF rand\u00f4mica]", + "validgiftags": "/me [@%%NAME%%] [Tags: %%TAGS%%] http://i.giphy.com/%%ID%%.gif", + "invalidgiftags": "/me [@%%NAME%%] [Tags: %%TAGS%%] Tag inválida, tente algo diferente.", + "validgifrandom": "/me [@%%NAME%%] [GIF randômica] http://media.giphy.com/media/%%ID%%/giphy.gif", "invalidgifrandom": "\/me [@%%NAME%%] Inst\u00e2ncia inv\u00e1lida, tente novamente.", "invalidtime": "\/me [@%%NAME%%] Tempo inv\u00e1lido.", "nouserspecified": "\/me [@%%NAME%%] Usu\u00e1rio n\u00e3o especificado.", @@ -203,8 +203,8 @@ "website": "\/me Visite nosso site: %%LINK%%", "youtube": "\/me [%%NAME%%] Inscreva-se no nosso canal: %%LINK%%", "songstatistics": "\/me %%ARTIST%% - %%TITLE%%: %%WOOTS%%W\/%%GRABS%%G\/%%MEHS%%M.", - "thorNotClose": "\/me @%%NAME%% voc\\u00ea n\\u00e3o \u00e9 digno nem de chegar perto do martelo.", + "thorNotClose": "\/me @%%NAME%% voc\u00ea n\u00e3o \u00e9 d\u00edgno nem de chegar perto do martelo!", "thorcd": "\/me @%%NAME%% voc\u00ea pode tentar levantar o martelo em %%TIME%% minutos.", "thorWorthy": "\/me @%%NAME%% voc\u00ea \u00e9 d\u00edgno do martelo :hammer:. Parab\u00e9ns!", "thorNotWorthy": "\/me @%%NAME%% voc\u00ea n\u00e3o \u00e9 d\u00edgno do martelo." -} \ No newline at end of file +} diff --git a/lang/sr.json b/lang/sr.json old mode 100644 new mode 100755 index d73f75b7..111230f9 --- a/lang/sr.json +++ b/lang/sr.json @@ -1,18 +1,18 @@ { "cookies": [ - "has given you a chocolate chip cookie!", - "has given you a soft homemade oatmeal cookie!", - "has given you a plain, dry, old cookie. It was the last one in the bag. Gross.", - "gives you a sugar cookie. What, no frosting and sprinkles? 0\/10 would not touch.", - "gives you a chocolate chip cookie. Oh wait, those are raisins. Bleck!", - "gives you an enormous cookie. Poking it gives you more cookies. Weird.", - "gives you a fortune cookie. It reads \"Why aren't you working on any projects?\"", - "gives you a fortune cookie. It reads \"Give that special someone a compliment\"", - "gives you a fortune cookie. It reads \"Take a risk!\"", - "gives you a fortune cookie. It reads \"Go outside.\"", - "gives you a fortune cookie. It reads \"Don't forget to eat your veggies!\"", - "gives you a fortune cookie. It reads \"Do you even lift?\"", - "gives you a fortune cookie. It reads \"m808 pls\"", + "ti je dao \u010dokoladni kola\u010di\u0107!", + "ti je dao meki doma\u0107i zobeni kola\u010di\u0107!", + "ti je dao obi\u010dan, suv, stari kola\u010di\u0107. To je bio posljednji u torbi.", + "ti daje \u0161e\u0107erni kola\u010di\u0107. Ono, bez glazura i mrvica? 0\/10, ne\u0107u dirati.", + "ti daje \u010dokoladni kola\u010di\u0107. \u010cekaj, to su gro\u017e\u0111ice. Bljak!", + "ti daje ogromni kola\u010di\u0107. Bockanje ti daje vi\u0161e kola\u010di\u0107a. \u010cudno.", + "daje kola\u010di\u0107 budu\u0107nosti. Pi\u0161e: \"Za\u0161to ne radi\u0161 na nekim projektima?\"", + "daje kola\u010di\u0107 budu\u0107nosti. Pi\u0161e: \"Daj nekom posebnom kompliment\"", + "daje kola\u010di\u0107 budu\u0107nosti. Pi\u0161e: \"Treba riskirati!\"", + "daje kola\u010di\u0107 budu\u0107nosti. Pi\u0161e: \"Idi napolje.\"", + "daje kola\u010di\u0107 budu\u0107nosti. Pi\u0161e: \"Ne zaboravi da jede\u0161 povr\u0107e!\"", + "daje kola\u010di\u0107 sre\u0107e. Pi\u0161e: \"Di\u017ee\u0161 li uop\u0161te?\"", + "daje kola\u010di\u0107 sre\u0107e. Pi\u0161e: \"m808 molim te\"", "gives you a fortune cookie. It reads \"If you move your hips, you'll get all the ladies.\"", "gives you a fortune cookie. It reads \"I love you.\"", "gives you a Golden Cookie. You can't eat it because it is made of gold. Dammit.", @@ -25,50 +25,50 @@ "Signs point to yes.", "Yes.", "Reply hazy, try again.", - "Without a doubt.", - "My sources say no.", - "As I see it, yes.", + "Bez dileme.", + "Moji izvori ka\u017eu ne.", + "Kako ja vidim, da.", "You may rely on it.", "Concentrate and ask again.", "Outlook not so good.", "It is decidedly so.", - "Better not tell you now.", + "Bolje da ti ne ka\u017eem sada.", "Very doubtful.", - "Yes - definitely.", + "Da - definitivno.", "It is certain.", - "Cannot predict now.", + "Trenutno ne mogu da predvidim.", "Most likely.", - "Ask again later.", - "My reply is no.", + "Pitaj ponovo kasnije.", + "Moj odgovor je ne.", "Outlook good.", "Don't count on it.", "Yes, in due time.", - "Definitely not.", - "You will have to wait.", + "Definitivno ne.", + "Mora\u0107e\u0161 da \u010deka\u0161.", "I have my doubts.", "Outlook so so.", - "Looks good to me!", - "Who knows?", - "Looking good!", - "Probably.", + "Meni izgleda dobro!", + "Ko zna?", + "Izgleda dobro!", + "Verovatno.", "Are you kidding?", "Don't bet on it.", - "Forget about it." + "Zaboravi." ], "nodatafound": "Prethodni podaci nisu prona\u0111eni.", - "currentlang": "\/me Jezik podesen na: %%LANGUAGE%%", - "langerror": "\/me Jezik koji ste odabrali nije dostupan. Poseti %%LINK%% da bi pronasao dostupne jezike.", - "langset": "\/me Jezik je sada podesen na: %%LANGUAGE%%", + "currentlang": "\/me Jezik pode\u0161en na: %%LANGUAGE%%", + "langerror": "\/me Jezik koji ste odabrali nije dostupan. Poseti %%LINK%% da prona\u0111e\u0161 dostupne jezike.", + "langset": "\/me Jezik je sada pode\u0161en na: %%LANGUAGE%%", "retrievingdata": "Preuzimanje prethodno sa\u010duvanih podataka.", "datarestored": "Prethodno sa\u010duvani podaci uspe\u0161no preuzeti.", "greyuser": "Samo bounceri i vi\u0161i rank mogu pokrenuti bota.", - "bouncer": "Bot ne mo\u017ee premestati ljude ukoliko je pokrenut od strane bouncera.", - "online": "\/me %%BOTNAME%% %%VERSION%% online!", + "bouncer": "Bot ne mo\u017ee preme\u0161tati ljude ukoliko je pokrenut od strane bouncera.", + "online": "\/me %%BOTNAME%% %%VERSION%% je online!", "welcome": "\/me Dobrodo\u0161ao %%NAME%%", "welcomeback": "\/me Dobrodo\u0161ao nazad, %%NAME%%", - "songknown": "\/me @%%NAME%%, Ova pesma je u DJ istoriji.", - "notavailable": "\/me @%%NAME%%, the song you played was not available.", - "timelimit": "\/me @%%NAME%%, Tvoja pesma je duza od %%MAXLENGTH%% minuta, potrebna ti je dozvola da pustas duze pesme.", + "songknown": "\/me @%%NAME%%, ova pesma je u DJ istoriji.", + "notavailable": "\/me @%%NAME%%, pesma koju si pustio\/la nije bila dostupna.", + "timelimit": "\/me @%%NAME%%, tvoja pesma je du\u017ea od %%MAXLENGTH%% minuta, potrebna ti je dozvola da pu\u0161tas du\u017ee pesme.", "permissionownsong": "\/me :up: @%%NAME%% ima dozvolu da pu\u0161ta svoju vlastitu pesmu.", "isblacklisted": "\/me Ova pesma je na %%BLACKLIST%% blacklisti! Prebacujem....", "isopen": "\/me Rulet je pokrenut! Pi\u0161i !join da u\u010destvuje\u0161.", @@ -79,9 +79,9 @@ "alreadyadding": "\/me Korisnik je ve\u0107 dodan! Promenjena \u017eeljena pozicija na %%POSITION%%.", "adding": "\/me Dodan @%%NAME%% u red. Trenutna pozicija %%POSITION%%.", "usernotfound": "\/me Korisnik nije prona\u0111en.", - "notdisconnected": "\/me @%%NAME%% se nije diskonektovao tokom mog boravka ovde.", - "noposition": "\/me Zadnja pozicija nepoznata. Listu cekanja treba a\u017eurirati najmanje jednom da bi se registrovala zadnja pozicija korisnika.", - "toolongago": "\/me @%%NAME%% zadnji diskonekt (DC ili leave) je bio davno: %%TIME%%.", + "notdisconnected": "\/me @%%NAME%% se nije diskonektovao tokom mog boravka ovde.", + "noposition": "\/me Zadnja pozicija nepoznata. Listu \u010dekanja treba a\u017eurirati najmanje jednom da bi se registrovala zadnja pozicija korisnika.", + "toolongago": "\/me @%%NAME%%,tvoj zadnji diskonekt (DC ili leave) je bio davno: %%TIME%%.", "valid": "\/me @%%NAME%% se diskonektovao pre %%TIME%% i trebao bi biti na poziciji %%POSITION%%.", "warning1": "\/me @%%NAME%%, ti si afk %%TIME%%, molim odgovori u roku od 2 min ili \u0107e\u0161 biti uklonjen sa liste \u010dekanja.", "warning2": "\/me @%%NAME%%, uskoro \u0107e\u0161 biti uklonjen sa liste zbog AFK ukoliko ne odgovori\u0161.", @@ -91,13 +91,13 @@ "spam": "\/me @%%NAME%%, molim, ne spamaj.", "roomadvertising": "\/me @%%NAME%%, ne postavljaj linkove drugih soba.", "adfly": "\/me @%%NAME%%, promeni tvoj autowoot program. Mi preporu\u010dujemo PlugCubed: http:\/\/plugcubed.net\/", - "validgiftags": "\/me [@%%NAME%%] http:\/\/media.giphy.com\/media\/%%ID%%\/giphy.gif [Oznaka: %%TAGS%%]", - "invalidgiftags": "\/me [@%%NAME%%] Pogre\u0161na oznaka, poku\u0161aj ne\u0161to drugo. [Oznaka: %%TAGS%%]", - "validgifrandom": "\/me [@%%NAME%%] http:\/\/media.giphy.com\/media\/%%ID%%\/giphy.gif [Slu\u010dajno odabran GIF]", + "validgiftags": "/me [@%%NAME%%] [Oznaka: %%TAGS%%] http://i.giphy.com/%%ID%%.gif", + "invalidgiftags": "/me [@%%NAME%%] [Oznaka: %%TAGS%%] Pogrešna oznaka, pokušaj nešto drugo.", + "validgifrandom": "/me [@%%NAME%%] [Slučajno odabran GIF] http://i.giphy.com/%%ID%%.gif", "invalidgifrandom": "\/me [@%%NAME%%] Neva\u017ee\u0107i zahtev, poku\u0161ajte ponovo.", "invalidtime": "\/me [@%%NAME%%] Navedeno vreme pogre\u0161no.", "nouserspecified": "\/me [@%%NAME%%] Korisnik nije naveden.", - "invaliduserspecified": "\/me [@%%NAME%%] Navedeni korisnik pogre\u0161an", + "invaliduserspecified": "\/me [@%%NAME%%] Navedeni korisnik je pogre\u0161an.", "nolistspecified": "\/me [@%%NAME%%] Navedena lista ne postoji.", "invalidlistspecified": "\/me [@%%NAME%%] Navedena lista pogre\u0161na.", "novaliduserspecified": "\/me [@%%NAME%%] Navedeni korisnik nije va\u017ee\u0107i.", @@ -139,20 +139,20 @@ "inactivelonger": "\/me [@%%NAME%%] @%%USERNAME%% je neaktivan du\u017ee nego sto je %%BOTNAME%% online.", "autowoot": "\/me Mi preporu\u010dujemo PlugCubed za automatsko glasanje: http:\/\/plugcubed.net\/", "brandambassador": "\/me Brand Ambassador je glas plug.dj korisnika. Oni promovi\u0161u doga\u0111aje, spajaju zajednicu i dele poruke plug.dj-a \u0161irom sveta. Za vi\u0161e informacija: https:\/\/plug.dj\/ba", - "bouncerplusrank": "\/me [@%%NAME%%] Moras biti Mena\u0111er ili vi\u0161i rank da bi uklju\u010dio Bouncer+.", + "bouncerplusrank": "\/me [@%%NAME%%] Mora\u0161 biti Menad\u017eer ili vi\u0161i rank da bi uklju\u010dio Bouncer+.", "chatcleared": "\/me [@%%NAME%%] Je o\u010distio chat.", "deletechat": "\/me [@%%NAME%%] Je o\u010distio chat od %%USERNAME%%.", "commandslink": "\/me %%BOTNAME%% komande: %%LINK%%", "eatcookie": "\/me jede kola\u010d.", "nousercookie": "\/em ne vidi %%NAME%% u sobi i uzima kola\u010d samo za sebe.", - "selfcookie": "\/me @%%NAME%%, malo si \u0161krt, zar ne? Dajes kola\u010de sebi, bah. Podeli malo i sa ostalima!", + "selfcookie": "\/me @%%NAME%%, malo si \u0161krt, zar ne? Daje\u0161 kola\u010de sebi, bah. Podeli malo i sa ostalima!", "cookie": "\/me @%%NAMETO%%, %%NAMEFROM%% %%COOKIE%%", "cycleguardtime": "\/me [@%%NAME%%] CycleGuard pode\u0161en na %%TIME%% minuta.", "dclookuprank": "\/me [@%%NAME%%] Samo bounceri i vi\u0161i rank mogu dclookup za ostale.", "emojilist": "\/me Emoji lista: %%LINK%%", "notinwaitlist": "\/me @%%NAME%%, nisi na listi \u010dekanja.", - "youarenext": "\/me @%%NAME%%, you are DJing after this song.", - "youaredj": "\/me @%%NAME%%, you are currently DJing.", + "youarenext": "\/me @%%NAME%%, nastupa\u0161 posle ove pesme.", + "youaredj": "\/me @%%NAME%%, trenutno si DJ.", "eta": "\/me @%%NAME%% do\u0107i \u0107e\u0161 na red za otprilike %%TIME%%.", "facebook": "\/me Lajkuj nas na facebook-u: %%LINK%%", "starterhelp": "\/me Ova slika ce ti pomo\u0107i za po\u010detak: %%LINK%%", @@ -165,28 +165,28 @@ "rouletteleave": "\/me @%%NAME%% je napustio rulet!", "songlink": "\/me [@%%NAME%%] Link do trenutne pesme: %%LINK%%", "usedlockskip": "\/me [%%NAME%% je koristio LockSkip.]", - "usedskip": "\/me [%%NAME%% used skip]", - "skippos": "\/me [@%%NAME%%] DJs will now be moved to position %%POSITION%% when skipped.", + "usedskip": "\/me [%%NAME%% je koristio skip]", + "skippos": "\/me [@%%NAME%%] DJ-evi \u0107e sada biti pomereni na poziciju %%POSITION%% nakon preskakanja.", "lockguardtime": "\/me [@%%NAME%%] Lockguard pode\u0161en na %%TIME%% minuta.", - "maxlengthtime": "\/me [@%%NAME%%] Maksimalno trajanje pesme pode\u0161eno na %%TIME%% minuta.", + "maxlengthtime": "\/me [@%%NAME%%] Maksimalno trajanje pesme je pode\u0161eno na %%TIME%% minuta.", "motdset": "\/me Poruka Dana pode\u0161ena na: %%MSG%%", "motdintervalset": "\/me Interval Poruke dana pode\u0161en na %%INTERVAL%%.", - "currentbotname": "\/me Bot name currently set to: %%BOTNAME%%", - "botnameset": "\/me Bot name now set to: %%BOTNAME%%", + "currentbotname": "\/me Trenutno ime bota je: %%BOTNAME%%", + "botnameset": "\/me Ime bota je pode\u0161eno na: %%BOTNAME%%", "addbotwaitlist": "\/me @%%NAME%%, nemoj da me dodaje\u0161 na listu \u010dekanja, molim.", "move": "\/me [%%NAME%% je koristio preme\u0161tanje.]", "mutednotime": "\/me [@%%NAME%%] Je uti\u0161ao @%%USERNAME%%.", "mutedmaxtime": "\/me [@%%NAME%%] Mo\u017ee\u0161 mute maksimalno %%TIME%% minuta.", - "mutedtime": "\/me [@%%NAME%%] Je mutovao @%%USERNAME%% na %%TIME%% minuta.", + "mutedtime": "\/me [@%%NAME%%] Je uti\u0161ao @%%USERNAME%% na %%TIME%% minuta.", "unmuted": "\/me [@%%NAME%%] Je unmutovao @%%USERNAME%%.", - "muterank": "\/me [@%%NAME%%] Ne mo\u017ee\u0161 mute osobu sa istim ili ve\u0107im rankom od tebe.", + "muterank": "\/me [@%%NAME%%] Ne mo\u017ee\u0161 uti\u0161ati osobu sa istim ili ve\u0107im rankom od tebe.", "oplist": "\/me OP lista: %%LINK%%", "pong": "\/me Pong!", "reload": "\/me Vra\u0107am se ubrzo.", "removenotinwl": "\/me [@%%NAME%%] Navedeni korisnik @%%USERNAME%% nije na listi \u010dekanja.", "roomrules": "\/me Pravila sobe mozes prona\u0107i ovde: %%LINK%%", "sessionstats": "\/me [@%%NAME%%] Ukupno woot-ova: %%WOOTS%%, Ukupno meh-ova: %%MEHS%%, Ukupno dohva\u0107eno: %%GRABS%%.", - "forceskip": "\/me [%%NAME%% used forceskip]", + "forceskip": "\/me [%%NAME%% je koristio forceskip]", "madeby": "\/me Ovog bot-a je napravio %%NAME%%.", "activefor": "Ja sam ve\u0107 aktivan %%TIME%%.", "swapinvalid": "\/me [@%%NAME%%] Navedeni korisnik nije prona\u0111en. (Imena sa razmacima!)", @@ -200,11 +200,11 @@ "unmuterank": "\/me [@%%NAME%%] Ne mo\u017ees unmutovati osobu sa istim ili ve\u0107im rankom od tebe.", "commandscd": "\/me [@%%NAME%%] Razmak izme\u0111u komandi za korisnike pode\u0161en na %%TIME%% sekundi.", "voteratio": "\/me [@%%NAME%%] @%%USERNAME%% ~ Wotovi: %%WOOT%%, Mehovi: %%MEHS%%, Razmer(w\/m): %%RATIO%%.", - "website": "\/me Molimo posetite nasu web stranicu: %%LINK%%", + "website": "\/me Molimo posetite na\u0161u web stranicu: %%LINK%%", "youtube": "\/me [%%NAME%%] Pretplatite se na na\u0161 YouTube kanal: %%LINK%%", "songstatistics": "\/me %%ARTIST%% - %%TITLE%%: %%WOOTS%%W\/%%GRABS%%G\/%%MEHS%%M.", - "thorNotClose": "\/me @%%NAME%%, you're not worthy of getting close to the hammer!", - "thorcd": "\/me @%%NAME%% you can try to lift the hammer in %%TIME%% minutes.", - "thorWorthy": "\/me @%%NAME%% you're worthy of the hammer :hammer:, congratulations!", - "thorNotWorthy": "\/me @%%NAME%% you're not worthy of the hammer." -} \ No newline at end of file + "thorNotClose": "\/me @%%NAME%%, nisi dostojan da bude\u0161 blizu \u010deki\u0107a!", + "thorcd": "\/me @%%NAME%% mo\u017ee\u0161 probati da podigne\u0161 \u010deki\u0107 za %%TIME%% minuta.", + "thorWorthy": "\/me @%%NAME%% ti si dostojan \u010deki\u0107a :hammer:, \u010destitam!", + "thorNotWorthy": "\/me @%%NAME%% nisi dostojan \u010deki\u0107a." +} diff --git a/lang/tr.json b/lang/tr.json old mode 100644 new mode 100755 index a03e0829..3365a9f9 --- a/lang/tr.json +++ b/lang/tr.json @@ -1,38 +1,38 @@ { "cookies": [ - "\u00c7ikolatal\u0131 \u00e7erez ald\u0131n.", - "Yumu\u015fak \u00e7erez ald\u0131n.", - "Sade \u00e7erez ald\u0131n.", - "Sana \u015feker \u00e7erez verir. 0\/10!", - "\u00c7ikolatal\u0131 \u00e7erez verir.Bekleyin.", - "Kocaman \u00e7erez verir.", - "Zengin \u00e7erezi ald\u0131n.", - "Zengin \u00e7erezi ald\u0131n.", - "Zengin \u00e7erez ald\u0131n.Bu riskli.", - "Zengin \u00e7erez ald\u0131n.\u00c7\u0131k\u0131\u015f.", - "\u00c7erez ald\u0131n.", - "\u00c7erez ald\u0131n.", - "\u00c7erez ald\u0131n.", - "\u00c7erez ald\u0131n.", - "\u00c7erez ald\u0131n.Seni seviyorum.", - "Alt\u0131n \u00e7erez ald\u0131n.", - "G\u00f6zl\u00fcklerin s\u00fct ile \u00e7erezli.", - ":heart: Sevgi \u00e7erezi ald\u0131n.", - "Eski \u00e7erez ald\u0131n.", - "H\u0131zl\u0131 \u00e7erez ald\u0131n." + "Sana \u00c7ikolatal\u0131 Kurabiye verdi", + "Sana Yumu\u015fak Kurabiye verdi", + "Sana Kurumu\u015f, eskimi\u015f kurabiye verdi. Torban\u0131n i\u00e7inde bir tek o duruyor. LANET!", + "Sana \u015feker Kurabiyesi verdi. Ne, buzlanma ve serpme yok mu? 0\/10 dokunmazd\u0131.", + "Sana \u00c7ikolatal\u0131 kurabiye verdi. Oh wait.... Bunlar kuru \u00fcz\u00fcm. Kahretsin!", + "Kocaman kurabiye verdi. Bast\u0131r\u0131rsan daha fazla kurabiye al\u0131yorsun. Garip.", + "Sana bir \u015fans kurabiyesi verdi. \"Neden herhangi bir proje \u00fczerinde \u00e7al\u0131\u015fm\u0131yorsunuz?\"", + "Sana bir \u015fans kurabiyesi verdi. \"Senin i\u00e7in \u00f6zel bir ki\u015fiye iltifat et\"", + "Sana bir \u015fans kurabiyesi verdi. \"Risk al!\"", + "Sana bir \u015fans kurabiyesi verdi. \"D\u0131\u015far\u0131 \u00e7\u0131k\" yaz\u0131yor.", + "Sana bir \u015fans kurabiyesi verdi. \"Sebzelerini yemeyi unutma!\"", + "Sana bir \u015fans kurabiyesi verdi. \"Hi\u00e7 kalkt\u0131 m\u0131?\"", + "Sana bir servet kurabiyesi verdi. \"M808 pls\" yaz\u0131yor", + "Sana bir \u015fans kurabiyesi verdi. \"Kal\u00e7alar\u0131n\u0131z\u0131 hareket ettirirseniz, t\u00fcm bayanlara kavu\u015fursunuz.\" yaz\u0131yor.", + "sevgi dolu kurabiye ald\u0131n. \"Seni Seviyorum\" yaz\u0131yor", + "Alt\u0131n kurabiye ald\u0131n. Onu yiyemiyorsun \u00e7\u00fcnk\u00fc alt\u0131ndan yap\u0131lm\u0131\u015f. Lanet!", + "Oreo ve bir bardak s\u00fct ald\u0131n. ", + "Sana Sevgi ile yap\u0131lm\u0131\u015f G\u00f6kku\u015fa\u011f\u0131 kurabiyesi verdi. :heart:", + "Sana ya\u011fmurda b\u0131rak\u0131lm\u0131\u015f eski bir kurabiye verir, k\u00fcfl\u00fcd\u00fcr.", + "Sana taze \u00e7erezleri pi\u015firir, \u015fa\u015f\u0131rt\u0131c\u0131 kokuyor." ], "balls": [ - "\u0130\u015faret puanlar\u0131 do\u011fru.", + "\u0130\u015faretler evet'i g\u00f6steriyor.", "Evet.", "Yanl\u0131\u015f cevap, tekrar deneyin.", "\u015e\u00fcphesiz.", - "Benim kaynaklarim dogrulanmadi.", + "Kaynaklar\u0131m hay\u0131r diyor.", "G\u00f6rd\u00fc\u011f\u00fcm kadar\u0131yla, do\u011fru.", "Sen ona ba\u011fl\u0131s\u0131n.", "D\u00fczg\u00fcn bir soru sor.", - "Outlook iyi degil.", - "Kesinlikle b\u00f6yle.", - "\u015eimdi s\u00f6ylememen gerekli.", + "\u0130yi g\u00f6r\u00fcnm\u00fcyor", + "Kesinlikle \u00f6yle.", + "Sana \u015fimdi s\u00f6ylemem daha iyi.", "\u00c7ok \u015f\u00fcphelisin.", "Evet kesinlikle.", "Bu kesin!", @@ -40,20 +40,20 @@ "B\u00fcy\u00fck ihtimalle.", "Daha sonra tekrar sorun.", "Cevab\u0131m hay\u0131r.", - "Outlook iyi.", + "\u0130yi g\u00f6r\u00fcn\u00fcyor.", "Bu say\u0131lmaz.", "Evet, dogru zamanda.", - "Definitely not.", - "Kesinlikle hay\u0131r.", + "kesinlikle hay\u0131r.", "Beklemek zorundas\u0131n.", - "\u015e\u00fcphelerim var.", - "Outlook \u00f6ylesine.", - "Bana bak\u0131\u015f\u0131n iyi.", - "Kim bilir ?", - "\u0130yi g\u00f6r\u00fcn\u00fcyor.", - "Muhtemelen.", - "Dalga m\u0131 ge\u00e7iyorsun ?", - "Bunun icin kumar oynamayin :)" + "Beklemek zorundas\u0131n.", + "eh i\u015fte g\u00f6r\u00fcn\u00fcyor.", + "Benim i\u00e7in iyi g\u00f6r\u00fcn\u00fcyor.", + "Kim Bilir?", + "G\u00fczel g\u00f6r\u00fcn\u00fcyor", + "muhtemelen", + "Dalga m\u0131 ge\u00e7iyorsun?", + "Bahse girme.", + "Unut gitsin\n" ], "nodatafound": "Veriler bulunamadi.", "currentlang": "\/me Suanki bot dili: %%LANGUAGE%%", @@ -73,7 +73,7 @@ "isblacklisted": "\/me Sarki %%BLACKLIST%% yasak listesinde! Geciliyor...", "isopen": "\/me Rulet artik acik! Kullanim: Sohbete !join yazin.!", "winnerpicked": "\/me Sanslisiniz! @%%NAME%% yeni dj siran %%POSITION%%.", - "ball": "\/me %%NAME%%'in sorusu var: \\\"%%QUESTION%%\\\" ve %%BOTNAME%%'in cevabi ise: \\\"%%RESPONSE%%\\\"", + "ball": "\/me %%NAME%%'in sorusu var: \"%%QUESTION%%\" ve %%BOTNAME%%'in cevabi ise: \"%%RESPONSE%%\"", "notghosting": "[%%NAME1%%] %%NAME2%% gizlenmiyor.", "ghosting": "[%%NAME1%%] %%NAME2%% gizleniyor.", "alreadyadding": "\/me Kullanici zaten eklendi! Konum degistirildi %%POSITION%%.", @@ -91,9 +91,9 @@ "spam": "\/me @%%NAME%%, lutfen spam yapmayin.", "roomadvertising": "\/me @%%NAME%%, diger odalarin reklamini yapmayin.", "adfly": "\/me @%%NAME%%, lutfen otowootunuzu degistirin. Onerilen: http:\/\/plugcubed.net\/", - "validgiftags": "\/me [@%%NAME%%] http:\/\/media.giphy.com\/media\/%%ID%%\/giphy.gif [Etiketler: %%TAGS%%]", - "invalidgiftags": "\/me [@%%NAME%%] gecersiz etiket, baska etiket deneyin. [Etiket: %%TAGS%%]", - "validgifrandom": "\/me [@%%NAME%%] http:\/\/media.giphy.com\/media\/%%ID%%\/giphy.gif [Rastgele GIF]", + "validgiftags": "/me [@%%NAME%%] [Etiketler: %%TAGS%%] http://i.giphy.com/%%ID%%.gif", + "invalidgiftags": "/me [@%%NAME%%] [Etiket: %%TAGS%%] gecersiz etiket, baska etiket deneyin.", + "validgifrandom": "/me [@%%NAME%%] [Rastgele GIF] http://i.giphy.com/%%ID%%.gif", "invalidgifrandom": "\/me [@%%NAME%%] gecersiz istek, tekrar deneyin.", "invalidtime": "\/me [@%%NAME%%] gecersiz zaman yazildi.", "nouserspecified": "\/me [@%%NAME%%] kullanici belirtilmedi.", @@ -145,7 +145,7 @@ "commandslink": "\/me %%BOTNAME%% Komutlar: %%LINK%%", "eatcookie": "\/me Cerezler.", "nousercookie": "\/em Odada %%NAME%% gozukmuyor.", - "selfcookie": "\/me @%%NAME%%, sen biraz ac gozlusun sanirsam, lutfen diger kullanicilarla cerezlerini paylas!", + "selfcookie": "\/me @%%NAME%%, sen biraz ac gozlusun sanirsam, lutfen diger kullanicilarla cerezlerini", "cookie": "\/me @%%NAMETO%%, %%NAMEFROM%% %%COOKIE%%", "cycleguardtime": "\/me [@%%NAME%%] CYCLguard %%TIME%% dakika(lar) olarak ayarlandi.", "dclookuprank": "\/me [@%%NAME%%] Sadece yukaridaki kullanicilar icin arama yapabilirsiniz.", @@ -203,8 +203,8 @@ "website": "\/me Sitemizi ziyaret edin: %%LINK%%", "youtube": "\/me [%%NAME%%] Youtube kanalimiza abone olun: %%LINK%%", "songstatistics": "\/me :arrow_right: %%ARTIST%% - %%TITLE%%: %%WOOTS%%:+1:\/\\%%GRABS%%:sparkling_heart:\/\\%%MEHS%%:-1:.", - "thorNotClose": "\/me @%%NAME%%, you're not worthy of getting close to the hammer!", + "thorNotClose": "\/me @%%NAME%%, \u00c7eki\u00e7 yakla\u015fmaya lay\u0131k de\u011filsin!", "thorcd": "\/me @%%NAME%% you can try to lift the hammer in %%TIME%% minutes.", - "thorWorthy": "\/me @%%NAME%% you're worthy of the hammer :hammer:, congratulations!", - "thorNotWorthy": "\/me @%%NAME%% you're not worthy of the hammer." -} \ No newline at end of file + "thorWorthy": "\/me @%%NAME%% \u00c7ekice lay\u0131k se\u00e7ildin tebrikler :hammer:", + "thorNotWorthy": "\/me @%%NAME%% \u00c7ekice lay\u0131k de\u011filsin" +} diff --git a/lang/zh-TW.json b/lang/zh-TW.json old mode 100644 new mode 100755 index 6f1df1d6..6f31b57f --- a/lang/zh-TW.json +++ b/lang/zh-TW.json @@ -1,14 +1,14 @@ { "cookies": [ - "\u5df2\u7d66\u4f60\u4e00\u500b\u6731\u53e4\u529b\u9905\u4e7e!", - "\u5df2\u7d66\u4f60\u4e00\u500b\u9b06\u8edf\u5168\u9ea5\u9905\u4e7e!", - "\u5df2\u7d66\u4f60\u4e00\u500b\u7c21\u55ae, \u4e7e, \u4e26\u8001\u7684\u9905\u4e7e. \u9019\u53ef\u662f\u5305\u88dd\u88e1\u7684\u6700\u5f8c\u4e00\u7247\u5594. \u8d85\u8b9a.", - "\u7d66\u4f60\u4e00\u500b\u7cd6\u9905\u4e7e. \u751a\u9ebc, \u6c92\u6709\u51b0\u51cd\u5f69\u7cd6? 0\/10 \u4e0d\u6703\u52d5.", - "\u7d66\u4f60\u4e00\u500b\u5de7\u514b\u529b\u9905\u4e7e. \u5594\u7b49\u7b49, \u5b83\u5011\u662f\u8461\u8404\u4e7e. Bleck!", - "\u7d66\u4f60\u4e00\u500b\u5de8\u5927\u7684\u9905\u4e7e. \u5206\u89e3\u5b83\u6703\u8b93\u4f60\u64c1\u6709\u66f4\u591a\u9905\u4e7e. \u602a\u7570.", - "\u7d66\u4f60\u4e00\u500b\u904b\u6c23\u9905\u4e7e. \u5b83\u5beb\u8457\"\u70ba\u751a\u9ebc\u4f60\u4e0d\u505a\u4e00\u4e9b\u5176\u4ed6\u7684\u8a08\u756b?\"", - "\u7d66\u4f60\u4e00\u500b\u547d\u904b\u9905\u4e7e. \u5b83\u5beb\u8457\"\u67d0\u500b\u7279\u5225\u7684\u4eba\u7d66\u4f60\u4e00\u500b\u7a31\u8b9a\"", - "\u7d66\u4f60\u4e00\u500b\u547d\u904b\u9905\u4e7e. \u5b83\u5beb\u8457\"\u5192\u4e00\u500b\u96aa\u5427!\"", + "\u5df2\u7d66\u4f60\u4e00\u500b\u6731\u53e4\u529b\u9905\u4e7e\uff01", + "\u5df2\u7d66\u4f60\u4e00\u500b\u9b06\u8edf\u5168\u9ea5\u9905\u4e7e\uff01", + "\u5df2\u7d66\u4f60\u4e00\u500b\u7c21\u55ae\uff0c\u4e7e\uff0c\u4e26\u8001\u7684\u9905\u4e7e\u3002\u9019\u53ef\u662f\u5305\u88dd\u88e1\u7684\u6700\u5f8c\u4e00\u7247\u5594\u3002\u8d85\u8b9a\u3002", + "\u7d66\u4f60\u4e00\u500b\u7cd6\u9905\u4e7e\u3002\u751a\u9ebc\uff0c\u6c92\u6709\u7cd6\u971c\u5f69\u7cd6\uff1f0\/10 \u4e0d\u6703\u52d5\u3002", + "\u7d66\u4f60\u4e00\u500b\u5de7\u514b\u529b\u9905\u4e7e\u3002\u5594\u7b49\u7b49\uff0c\u5b83\u5011\u662f\u8461\u8404\u4e7e\u3002Bleck\uff01", + "\u7d66\u4f60\u4e00\u500b\u5de8\u5927\u7684\u9905\u4e7e\u3002\u5206\u89e3\u5b83\u6703\u8b93\u4f60\u64c1\u6709\u66f4\u591a\u9905\u4e7e\u3002\u771f\u602a\u3002", + "\u7d66\u4f60\u4e00\u500b\u904b\u6c23\u9905\u4e7e\u3002\u5b83\u5beb\u8457\u300c\u70ba\u751a\u9ebc\u4f60\u4e0d\u505a\u4e00\u4e9b\u5176\u4ed6\u7684\u8a08\u756b\uff1f\u300d", + "\u7d66\u4f60\u4e00\u500b\u547d\u904b\u9905\u4e7e\u3002\u5b83\u5beb\u8457\u300c\u67d0\u500b\u7279\u5225\u7684\u4eba\u7d66\u4f60\u4e00\u500b\u7a31\u8b9a\u300d", + "\u7d66\u4f60\u4e00\u500b\u547d\u904b\u9905\u4e7e\u3002\u5b83\u5beb\u8457\u300c\u5192\u4e00\u500b\u96aa\u5427\uff01\u300d", "\u7d66\u4f60\u4e00\u500b\u547d\u904b\u9905\u4e7e. \u5b83\u5beb\u8457\"\u5230\u5916\u9762\u53bb.\"", "\u7d66\u4f60\u4e00\u500b\u547d\u904b\u9905\u4e7e. \u5b83\u5beb\u8457\"\u5225\u5fd8\u4e86\u5403\u4f60\u7684\u852c\u83dc!\"", "\u7d66\u4f60\u4e00\u500b\u547d\u904b\u9905\u4e7e. \u5b83\u5beb\u8457\"\u4f60\u6709\u505a\u91cd\u91cf\u8a13\u7df4\u55ce?\"", @@ -16,9 +16,9 @@ "\u7d66\u4f60\u4e00\u500b\u547d\u904b\u9905\u4e7e. \u5b83\u5beb\u8457\"\u5982\u679c\u4f60\u79fb\u52d5\u4f60\u7684\u814e\u90e8, \u4f60\u5c07\u5f97\u5230\u6240\u6709\u5973\u6027.\"", "\u7d66\u4f60\u4e00\u500b\u547d\u904b\u9905\u4e7e. \u5b83\u5beb\u8457\"\u6211\u611b\u4f60.\"", "\u7d66\u4f60\u4e00\u500b\u9ec3\u91d1\u9905\u4e7e. \u4f60\u4e0d\u80fd\u5403\u5b83\u56e0\u70ba\u5b83\u662f\u7528\u771f\u91d1\u88fd\u6210. \u8c48\u6709\u6b64\u7406.", - "\u7d66\u4f60\u4e00\u500bOreo\u9905\u4e7e\u9644\u52a0\u4e00\u676f\u725b\u5976!", + "\u7d66\u4f60\u4e00\u500bOreo\u9905\u4e7e\u9644\u52a0\u4e00\u676f\u725b\u5976\uff01", "\u7d66\u4f60\u4e00\u500b\u7528\u611b :heart: \u88fd\u6210\u7684\u5f69\u8679\u9905\u4e7e", - "\u7d66\u4f60\u4e00\u500b\u96e8\u5929\u88e1\u5269\u4e0b\u7684\u8001\u9905\u4e7e, \u5b83\u5df2\u7d93\u767c\u9709\u4e86.", + "\u7d66\u4f60\u4e00\u500b\u96e8\u5929\u88e1\u5269\u4e0b\u7684\u8001\u9905\u4e7e\uff0c\u5b83\u5df2\u7d93\u767c\u9709\u4e86\u3002", "\u70d8\u7119\u4e86\u4e00\u500b\u65b0\u9bae\u9905\u4e7e\u7d66\u4f60, \u771f\u7684\u5f88\u82ac\u9999\u5594." ], "balls": [ @@ -91,9 +91,9 @@ "spam": "\/me @%%NAME%%, \u8acb\u5225\u6d17\u677f\u704c\u6c34.", "roomadvertising": "\/me @%%NAME%%, \u8acb\u4e0d\u8981\u5ba3\u50b3\u5f35\u8cbc\u5176\u4ed6\u623f\u9593\u7684\u9023\u63a5.", "adfly": "\/me @%%NAME%%, \u8acb\u8b8a\u63db\u4f60\u7684\u81ea\u52d5\u6295\u7968\u5916\u639b. \u6211\u5011\u5efa\u8b70\u4f7f\u7528 PlugCubed: http:\/\/plugcubed.net\/", - "validgiftags": "\/me [@%%NAME%%] http:\/\/i.giphy.com\/%%ID%%.gif [\u6a19\u7c64: %%TAGS%%]", - "invalidgiftags": "\/me [@%%NAME%%] \u7121\u6548\u6a19\u7c64, \u8acb\u5617\u8a66\u4e00\u4e9b\u4e0d\u4e00\u6a23\u7684. [\u6a19\u7c64: %%TAGS%%]", - "validgifrandom": "\/me [@%%NAME%%] http:\/\/i.giphy.com\/%%ID%%.gif [\u96a8\u6a5f GIF]", + "validgiftags": "/me [@%%NAME%%] [標籤: %%TAGS%%] http://i.giphy.com/%%ID%%.gif", + "invalidgiftags": "/me [@%%NAME%%] [標籤: %%TAGS%%] 無效標籤, 請嘗試一些不一樣的.", + "validgifrandom": "/me [@%%NAME%%] [隨機 GIF] http://i.giphy.com/%%ID%%.gif", "invalidgifrandom": "\/me [@%%NAME%%] \u7121\u6548\u8acb\u6c42, \u8acb\u518d\u5617\u8a66.", "invalidtime": "\/me [@%%NAME%%] \u7121\u6548\u7684\u6642\u9593\u898f\u5b9a.", "nouserspecified": "\/me [@%%NAME%%] \u6c92\u6709\u6307\u5b9a\u7684\u7528\u6236.", @@ -207,4 +207,4 @@ "thorcd": "\/me @%%NAME%% you can try to lift the hammer in %%TIME%% minutes.", "thorWorthy": "\/me @%%NAME%% you're worthy of the hammer :hammer:, congratulations!", "thorNotWorthy": "\/me @%%NAME%% you're not worthy of the hammer." -} \ No newline at end of file +}