Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- registerPlugin({
- name: 'Top Channel',
- version: '1.0',
- description: 'This script will add servergroups to the client upon the given hours.',
- author: 'R3flex <r3flexmlg@gmail.com>',
- vars: {
- ignoredGroups: {
- title: 'Ignored Group.',
- type: 'array',
- vars: [
- {
- name: 'ignoredGroup',
- indent: 1,
- title: 'Group to be ignored:',
- type: 'string',
- placeholder: '8'
- }
- ]
- },
- drankingChannel: {
- title: 'TOP 10 ranking channel ID.',
- type: 'number',
- placeholder: 'Where to display ranking?'
- },
- etopChannelRecords: {
- title: 'How many records to display.',
- type: 'number',
- placeholder: '10'
- },
- recordaNameColor: {
- title: 'Nicks Color',
- type: 'string',
- placeholder: '#FFF'
- },
- recordbTimeColor: {
- title: 'Time Color',
- type: 'string',
- placeholder: '#FFF'
- },
- recordcFormatColor: {
- title: 'Format Color',
- type: 'string',
- placeholder: '#FFF'
- }
- }
- }, function main(sinusbot, config) {
- var Channel = config.drankingChannel;
- var db = require('db');
- var event = require('event');
- var store = require('store');
- var engine = require('engine');
- var backend = require('backend');
- var helpers = require('helpers');
- var channelDB = [];
- var botsList = [];
- var dbc = db.connect({ driver: 'mysql', host: '127.0.0.1', username: 'root', password: 'xxxxx', database: 'Ranking2' }, function(err) {
- if (err) { engine.log(err); }
- });
- function channelTOP(time) {
- if (config.ignoredGroups) {
- var all_users = backend.getClients();
- all_users.forEach(function(user) {
- if (!isNotInServerGroup(user.getServerGroups(), config.ignoredGroups)) {
- botsList.push(user.uid());
- }
- });
- }
- dbc.query('SELECT * FROM user ORDER BY count DESC', function select(err, res) {
- res.forEach(function(row) {
- var rowuid = helpers.toString(row.uuid);
- var rownick = helpers.toString(row.name);
- var rowczas = helpers.toString(row.count);
- channelDB.push({
- nick: rownick,
- time: rowczas,
- uid: rowuid
- });
- });
- });
- var s = "";
- if (channelDB.length > 0) {
- var limit = config.etopChannelRecords;
- for(var counter = 0; counter < limit; counter++) {
- if (!contains(botsList, channelDB[counter].uid)) {
- var xyz = '[*]' + '[SIZE=14][COLOR='+config.recordaNameColor+'][B]' + channelDB[counter].nick + '[/B][/COLOR][/SIZE]' + '[SIZE=12][B] ' + Math.floor(channelDB[counter].time/3600/24) + ' [COLOR='+config.recordbTimeColor+']Days[/COLOR] ' + Math.floor((channelDB[counter].time%86400)/3600) + ' [COLOR='+config.recordcFormatColor+']Hours[/COLOR] ' + Math.floor((channelDB[counter].time%3600)/60) + ' [COLOR=#FF6A6A]Minutes[/COLOR][/B][/SIZE]';
- s += xyz;
- } else {
- limit++;
- }
- }
- var clean_s = s;
- var zxc = '[list=1]' + clean_s + '[/list]';
- sinusbot.channelUpdate(Channel, {description : zxc});
- }
- }
- setInterval(channelTOP, 10000);
- function flusher(time) {
- channelDB.length = 0;
- botsList.length = 0;
- }
- setInterval(flusher, 20000);
- function isNotInServerGroup(user_servergroups, servergroup_id) {
- for (var i = 0; i < servergroup_id.length; i++) {
- for(var count = 0; count < user_servergroups.length; count++) {
- if(user_servergroups[count].id() == servergroup_id[i].ignoredGroup) {
- return false;
- }
- }
- }
- return true;
- }
- function contains(a, obj) {
- var i = a.length;
- while (i--) {
- if (a[i] === obj) {
- return true;
- }
- }
- return false;
- }
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement