· 5 years ago · Oct 18, 2020, 05:30 PM
1registerPlugin({
2 requiredModules: ['http'],
3 name: 'World of Tanks Players Online',
4 version: '0.0.1',
5 description: 'Desplay player count on selected server groups',
6 author: 'icarusSB',
7 vars: [{
8 name: 'region',
9 title: 'Region',
10 type: 'select',
11 options: ['RU','EU','NA','ASIA']
12 },{
13 name: 'apikey',
14 title: 'WG API key (get one at https://developers.wargaming.net)',
15 type: 'string'
16 },{
17 name: 'tsChannel',
18 title: 'Channel to display info',
19 type: 'channel'
20 },{
21 name: 'updatePeriod',
22 title: 'Update Period (mins)',
23 type: 'number',
24 placeholder: '1'
25 }]
26},
27function(sinusbot, config) {
28 var backend = require('backend');
29 var engine = require('engine');
30 var http = require('http');
31 var regionArr = ['ru','eu','com','asia'];
32 var apiURL = "https://api.worldoftanks.";
33 var region = regionArr[config.region];
34 var apikey = "?application_id="+config.apikey;
35 var output;
36 var servers = {
37 "503":"AU","502":"HK",
38 "303":"NA",
39 "EU1":"EU1","EU2":"EU2",
40 "RU1":"RU1","RU2":"RU2","RU3":"RU3","RU4":"RU4","RU5":"RU5",
41 "RU6":"RU6","RU7":"RU7","RU8":"RU8","RU9":"RU9","RU10":"RU10"};
42
43 setInterval(function(){
44 output = "[b]Server Population:[/b]";
45 var totalPop = 0;
46 http.simpleRequest({
47 method: 'GET',
48 timeout: 60000,
49 url: apiURL+region+'/wgn/servers/info/'+apikey+'&language=en&game=wot'
50 },
51 function (error, serverResponse) {
52 var serverData = JSON.parse(serverResponse.data);
53 for (i in serverData.data.wot){
54 totalPop = totalPop + serverData.data.wot[i].players_online;
55 output+= "\n[b]"+servers[serverData.data.wot[i].server] + ":[/b] " + serverData.data.wot[i].players_online;
56 }
57 output += "\n[b]Total Population: [/b]" + totalPop;
58 backend.getChannelByID(config.tsChannel).setDescription(output);
59 });
60 }, config.updatePeriod * 60000);
61});
62