This repository was archived by the owner on Apr 20, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.js
More file actions
executable file
·117 lines (98 loc) · 4.07 KB
/
app.js
File metadata and controls
executable file
·117 lines (98 loc) · 4.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
const Discord = require('discord.js');
const client = new Discord.Client();
const gamedig = require('gamedig');
const cron = require('cron');
var fs = require('fs');
try {
var config = require('./config.json');
}catch(e){
console.log("Missing or unfilled values in config.json!\nWritting correct config.json...");
var tempConfig = {
"token": "",
"prefix": "",
"ownerID": "",
"discordServers": [
{
"id": 0,
"name": "",
"servers": [
{
"name" : "server name",
"ip": "1.1.1.1",
"game": "game"
}
]
}
]
};
fs.writeFileSync('./config.json', JSON.stringify(tempConfig, null, 4), (err) => {console.log(err)});
process.exit(0);
}
console.log("Querying servers...");
var serversStatus = {};
var playerlist;
config.discordServers.forEach(function(discordServer, i) {
//serversStatus.server[i].id = discordServer.serverid;
//console.log(`Querying servers for Discord server ${discordServer.id} (${discordServer.name})`);
discordServer.servers.forEach(function(server, o) {
Gamedig.query({
type: server.game,
host: server.ip
}).then((state) => {
console.log(`Server ${server.ip} (${server.name}) is online. Discord server: ${discordServer.id} (${discordServer.name})`);
serverstat = state;
console.log(state);
}).catch((error) => {
console.log(`Server ${server.ip} (${server.name}) is offine. Discord server: ${discordServer.id} (${discordServer.name})`);
});
});
});
client.login(config.token);
client.on('ready', () => {
console.log('I am ready!');
});
var cronJob = cron.job("* * * * *", function(){
config.discordServers.forEach(function(discordServer, i) {
//serversStatus.server[i].id = discordServer.serverid;
console.log(`Querying servers for Discord server ${discordServer.id} (${discordServer.name})`);
discordServer.servers.forEach(function(server, o) {
Gamedig.query({
type: server.game,
port: server.port,
host: server.ip
}).then((state) => {
console.log(`${server.ip} (${server.name}) is online for Discord ${discordServer.name}`);
serverstat = state;
}).catch((error) => {
console.log(`${server.ip} (${server.name}) is offine for Discord ${discordServer.name}`);
});
});
});
});
cronJob.start();
client.on('message', (message) => {
if (!message.content.startsWith(config.prefix) || message.author.bot) return;
if (message.content.startsWith(config.prefix + 'prefix') && message.member.id == config.ownerID) {
let newPrefix = message.content.split(' ').slice(1, 2)[0];
config.prefix = newPrefix;
fs.writeFile('./config.json', JSON.stringify(config), (err) => console.error);
message.channel.send('Prefix has been changed to ' + config.prefix);
}
if (message.content.startsWith(config.prefix + 'server')) {
const embed = new Discord.RichEmbed()
.setDescription("[" + serverstat.name +"](steam://connect/"+serverstat.query.host+":" + serverstat.query.port +")")
.addField("IP", serverstat.query.host, true)
.addField("Gamemode", serverstat.raw.game, true)
.addField("Map", serverstat.map, true)
.addField("Players", serverstat.players.length + "/" + serverstat.maxplayers, true);
message.channel.send({embed});
}
if (message.content.startsWith(config.prefix + 'info')) {
const embed = new Discord.RichEmbed()
.setTitle("Server Info Bot Statistics")
.addField("Memory Usage", ((process.memoryUsage().heapUsed / 1024 / 1024).toFixed(2)) + " MB", true)
.addField("Discord.js","v" + Discord.version,true)
.setFooter("created by nickthegamer5","https://cdn.discordapp.com/avatars/177939422468243457/55dda02364bf2d5d710126b6b1b972e1.jpg?size=128");
message.channel.send({embed});
}
});