Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const Discord = require('discord.js');
- const fetch = require('node-fetch');
- const querystring = require('querystring');
- const Rcon = require('rcon');
- var unirest = require('unirest'); // npm install unirest
- var logger = require('winston'); // npm install winston
- const client = new Discord.Client();
- var prefix = '!';
- var seeding = true;
- var seeded = false;
- var channel = "602054337065254912";
- var channel2 = "602084241055940608";
- var liveThreshold = 40;
- var seedThreshold = 4;
- var playerCount = 0;
- const trim = (str, max) => (str.length > max ? `${str.slice(0, max - 3)}...` : str);
- var timeSeed = Date.now();
- var timeSeeded = Date.now();
- var id = "2028012";
- client.once('ready', () => {
- console.log('Ready!');
- });
- client.login('eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbiI6Ijk3NjdiNWM4NGYxZGMxYWMiLCJpYXQiOjE1NjM1ODc0MzcsIm5iZiI6MTU2MzU4NzQzNywiaXNzIjoiaHR0cHM6Ly93d3cuYmF0dGxlbWV0cmljcy5jb20iLCJzdWIiOiJ1cm46dXNlcjoxNTM1MzAifQ.bDEzgtBnvw7wB3JZBTgn2O960u8mKGydJOU5anFEJuo');
- var delay = 0.5; //in minutes
- delay = delay * 1000 * 60;
- var intervalID = client.setInterval(func, delay);
- var postMsg = "";
- function serverInfo(postMsg) {
- var generalChannel = client.channels.get(channel) // Replace with known channel ID
- console.log("https://api.battlemetrics.com//servers/" + id);
- unirest.get("https://api.battlemetrics.com//servers/" + id)
- .end(function (result) {
- var json = JSON.parse(JSON.stringify(result.body));
- if (result.status != 200) {
- message.reply("An error occurred while trying to make the API request!");
- } else {
- console.log(json);
- generalChannel.send("**Server Information**:\n" +
- "\tServer name: " + json.data.attributes.name + "\n" +
- "\tServer IP: " + json.data.attributes.ip + "\n" +
- "\tMap: " + json.data.attributes.details.map + "\n" +
- //"\tNextMap: " + json.data.attributes("squad:showNextMap") + "\n" +
- "\tPlayers: " + json.data.attributes.players + "\n" +
- "\tMax Players: " + json.data.attributes.maxPlayers + "\n" +
- "\tServer Rank: " + json.data.attributes.rank + "\n" +
- "\tStatus: " + json.data.attributes.status + "\n" +
- postMsg + "\n");
- }
- });
- console.log("nextmap")
- unirest.post("https://api.battlemetrics.com//servers/" + id + "/command")
- .header('Authorization', 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbiI6Ijk3NjdiNWM4NGYxZGMxYWMiLCJpYXQiOjE1NjM1ODc0MzcsIm5iZiI6MTU2MzU4NzQzNywiaXNzIjoiaHR0cHM6Ly93d3cuYmF0dGxlbWV0cmljcy5jb20iLCJzdWIiOiJ1cm46dXNlcjoxNTM1MzAifQ.bDEzgtBnvw7wB3JZBTgn2O960u8mKGydJOU5anFEJuo')
- .header('Accept', 'application/json')
- .header('Content-Type', 'application/json')
- .send({
- "data": {
- "type": "rconCommand",
- "attributes": {
- "command": "squad:showNextMap",
- "options": {}
- }
- }
- })
- .end(function (result) {
- console.log("log 2 **** " + result.body)
- var json = JSON.stringify(result.body);
- console.log("log 3 **** " + json);
- generalChannel.send(json.map);
- });
- }
- function func() {
- var generalChannel = client.channels.get(channel) // Replace with known channel ID
- //generalChannel.send("Hello, world!")
- unirest.get("https://api.battlemetrics.com//servers/" + id)
- .end(function (result) {
- var json = JSON.parse(JSON.stringify(result.body));
- if (result.status != 200) {
- message.reply("An error occurred while trying to make the API request!");
- } else {
- var statChannel = client.channels.get(channel2)
- const embed = new Discord.RichEmbed()
- .setTitle("**Server Information**")
- .setColor(0x00AE86)
- .setDescription("\tServer name: " + json.data.attributes.name + "\n" +
- "\tServer IP: " + json.data.attributes.ip + "\n" +
- "\tMap: " + json.data.attributes.details.map + "\n" +
- "\tPlayers: " + json.data.attributes.players + "\n" +
- "\tMax Players: " + json.data.attributes.maxPlayers + "\n" +
- "\tServer Rank: " + json.data.attributes.rank + "\n" +
- "\tStatus: " + json.data.attributes.status + "\n")
- .setThumbnail("https://gamepedia.cursecdn.com/squad_gamepedia/0/04/Narva_Minimap_Alpha_V10.jpg?version=912c2c18c81563ecabe6e01d1da0d225")
- statChannel.fetchMessage("602089231958933524")
- .then(message => message.edit({ embed }));
- console.log(json);
- playerCount = json.data.attributes.players;
- if (playerCount < liveThreshold && playerCount > seedThreshold) {
- if (seeding == false) {
- serverInfo("\n**Server is Seeding**");
- //generalChannel.send("\n**Server is Seeding**");
- seeding = true
- timeSeed = Date.now();
- }
- }
- if (playerCount >= liveThreshold) {
- if (seeding == true) {
- timeSeeded = Date.now();
- var timeToSeed = Math.round((timeSeeded - timeSeed)/60000);
- serverInfo("\n**Server is Seeded**\n" +
- "Seeded in [" + timeToSeed + "] minutes");
- //generalChannel.send("\n**Server is Seeded**");
- seeding = false
- }
- }
- if (playerCount <= seedThreshold) {
- if (seeding == true) {
- var timeToSeed = Math.round((timeSeeded - timeSeed) / 60000);
- serverInfo("\n**Server stopped Seeding**\n" +
- "Seeded for [" + timeToSeed + "] minutes");
- seeding = false
- }
- }
- }
- });
- }
- var pleb = "Hiizki";
- client.on('message', message => {
- var generalChannel = client.channels.get(channel)
- if (!message.content.startsWith(prefix) || message.author.bot) return;
- const args = message.content.slice(prefix.length).split(/ +/);
- const command = args.shift().toLowerCase();
- switch(command) {
- case 'id':
- id = args[0];
- serverInfo(postMsg);
- break;
- case 'server':
- var query = args[0];
- serverInfo(postMsg);
- break;
- case 'pleb':
- generalChannel.send(pleb + " is a pleb");
- break;
- case 'plebset':
- pleb = args;
- generalChannel.send("New pleb is " + pleb);
- break;
- case 'seed':
- if (playerCount < liveThreshold && playerCount > seedThreshold) {
- serverInfo("\n**Server is Seeding**");
- }
- if (playerCount >= liveThreshold) {
- serverInfo("\n**Server is Seeded**");
- }
- if (playerCount <= seedThreshold) {
- serverInfo("\n**Server is not Seeded**");
- }
- break;
- case 'seedthreshold':
- seedThreshold = args[0];
- generalChannel.send("Seed threshold is " + seedThreshold);
- break;
- case 'livethreshold':
- //if (parseInt(args[0]) != NaN && args[0] >= 20 && args[0] <=70) {
- liveThreshold = args[0];
- generalChannel.send("Live threshold is " + liveThreshold);
- //} else {
- // generalChannel.send(args[0] + " is invalid, please enter a number between 20 and 70");
- //}
- break;
- case 'help':
- generalChannel.send("**List of bot commands:**\n" +
- "!id - Switch current server ID\n" +
- "!server - Poll current server stats\n" +
- "!pleb - troll hiizki\n" +
- "!plebset - not needed as pleb default is satisfactory\n" +
- "!seedthreshold - set the threshold for seeding to occur: Value: " + seedThreshold + "\n" +
- "!livethreshold - set the threshold for server to be live - Value: " + liveThreshold + "\n" +
- "!help - duh");
- break;
- }
- });
- client.login('NjAxOTU2NDEwMzA1MTUwOTk3.XTJ1_g.RlZUrwV_t4v2qFK9cqGzZkVqvbU')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement