Advertisement
Guest User

Untitled

a guest
Mar 18th, 2018
265
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.63 KB | None | 0 0
  1. registerPlugin({
  2. name: 'Top Channel',
  3. version: '1.0',
  4. description: 'This script will add servergroups to the client upon the given hours.',
  5. author: 'R3flex <r3flexmlg@gmail.com>',
  6. vars: {
  7. ignoredGroups: {
  8. title: 'Ignored Group.',
  9. type: 'array',
  10. vars: [
  11. {
  12. name: 'ignoredGroup',
  13. indent: 1,
  14. title: 'Group to be ignored:',
  15. type: 'string',
  16. placeholder: '8'
  17. }
  18. ]
  19. },
  20. drankingChannel: {
  21. title: 'TOP 10 ranking channel ID.',
  22. type: 'number',
  23. placeholder: 'Where to display ranking?'
  24. },
  25. etopChannelRecords: {
  26. title: 'How many records to display.',
  27. type: 'number',
  28. placeholder: '10'
  29. },
  30. recordaNameColor: {
  31. title: 'Nicks Color',
  32. type: 'string',
  33. placeholder: '#FFF'
  34. },
  35. recordbTimeColor: {
  36. title: 'Time Color',
  37. type: 'string',
  38. placeholder: '#FFF'
  39. },
  40. recordcFormatColor: {
  41. title: 'Format Color',
  42. type: 'string',
  43. placeholder: '#FFF'
  44. }
  45.  
  46.  
  47. }
  48. }, function main(sinusbot, config) {
  49.  
  50. var Channel = config.drankingChannel;
  51.  
  52. var db = require('db');
  53. var event = require('event');
  54. var store = require('store');
  55. var engine = require('engine');
  56. var backend = require('backend');
  57. var helpers = require('helpers');
  58.  
  59. var channelDB = [];
  60. var botsList = [];
  61.  
  62. var dbc = db.connect({ driver: 'mysql', host: '127.0.0.1', username: 'root', password: 'xxxxx', database: 'Ranking2' }, function(err) {
  63. if (err) { engine.log(err); }
  64. });
  65.  
  66. function channelTOP(time) {
  67.  
  68. if (config.ignoredGroups) {
  69. var all_users = backend.getClients();
  70. all_users.forEach(function(user) {
  71. if (!isNotInServerGroup(user.getServerGroups(), config.ignoredGroups)) {
  72. botsList.push(user.uid());
  73. }
  74. });
  75. }
  76.  
  77. dbc.query('SELECT * FROM user ORDER BY count DESC', function select(err, res) {
  78.  
  79. res.forEach(function(row) {
  80. var rowuid = helpers.toString(row.uuid);
  81. var rownick = helpers.toString(row.name);
  82. var rowczas = helpers.toString(row.count);
  83.  
  84. channelDB.push({
  85. nick: rownick,
  86. time: rowczas,
  87. uid: rowuid
  88. });
  89. });
  90. });
  91.  
  92. var s = "";
  93. if (channelDB.length > 0) {
  94. var limit = config.etopChannelRecords;
  95. for(var counter = 0; counter < limit; counter++) {
  96. if (!contains(botsList, channelDB[counter].uid)) {
  97. 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]';
  98. s += xyz;
  99. } else {
  100. limit++;
  101. }
  102. }
  103. var clean_s = s;
  104.  
  105. var zxc = '[list=1]' + clean_s + '[/list]';
  106. sinusbot.channelUpdate(Channel, {description : zxc});
  107.  
  108. }
  109. }
  110. setInterval(channelTOP, 10000);
  111.  
  112. function flusher(time) {
  113. channelDB.length = 0;
  114. botsList.length = 0;
  115. }
  116. setInterval(flusher, 20000);
  117.  
  118. function isNotInServerGroup(user_servergroups, servergroup_id) {
  119.  
  120. for (var i = 0; i < servergroup_id.length; i++) {
  121.  
  122. for(var count = 0; count < user_servergroups.length; count++) {
  123.  
  124. if(user_servergroups[count].id() == servergroup_id[i].ignoredGroup) {
  125.  
  126. return false;
  127.  
  128. }
  129.  
  130. }
  131. }
  132. return true;
  133.  
  134.  
  135. }
  136.  
  137. function contains(a, obj) {
  138. var i = a.length;
  139. while (i--) {
  140. if (a[i] === obj) {
  141. return true;
  142. }
  143. }
  144. return false;
  145. }
  146.  
  147. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement