re-added files with secrets removed
This commit is contained in:
parent
20b4252dc5
commit
15968f9e94
219
mapinfo.js
Normal file
219
mapinfo.js
Normal file
@ -0,0 +1,219 @@
|
|||||||
|
// #54F018 (5566487)
|
||||||
|
|
||||||
|
const config = require("./mapinfo.json");
|
||||||
|
|
||||||
|
const discord = require("discord.js");
|
||||||
|
const srcds = require("srcds-info");
|
||||||
|
const mysql = require("mysql");
|
||||||
|
const rcon = require("srcds-rcon");
|
||||||
|
|
||||||
|
const client = new discord.Client();
|
||||||
|
|
||||||
|
const database = mysql.createConnection({
|
||||||
|
host : "",
|
||||||
|
user : "",
|
||||||
|
password : "",
|
||||||
|
database : ""
|
||||||
|
});
|
||||||
|
|
||||||
|
const remotecon = rcon({
|
||||||
|
address: '',
|
||||||
|
password: ''
|
||||||
|
});
|
||||||
|
|
||||||
|
var recentStats = [];
|
||||||
|
var currentStats = [];
|
||||||
|
|
||||||
|
var recentMessage = 0;
|
||||||
|
var updateMessage = false;
|
||||||
|
|
||||||
|
function loadServerStats() {
|
||||||
|
if (config.servers) {
|
||||||
|
config.servers.map((server, index) => {
|
||||||
|
database.query("SELECT serverName, currentMap, numPlayers, maxPlayers FROM servers WHERE id=" + index, (error, result) => {
|
||||||
|
if (error) {
|
||||||
|
console.error(error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (result) {
|
||||||
|
currentStats[index] = [];
|
||||||
|
currentStats[index].serverName = result[0].serverName;
|
||||||
|
currentStats[index].currentMap = result[0].currentMap;
|
||||||
|
currentStats[index].numPlayers = result[0].numPlayers;
|
||||||
|
currentStats[index].maxPlayers = result[0].maxPlayers;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateServerStats() {
|
||||||
|
if (config.servers) {
|
||||||
|
config.servers.map((server, index) => {
|
||||||
|
var query = srcds(server.adress, server.port);
|
||||||
|
|
||||||
|
query.info((error, result) => {
|
||||||
|
query.close();
|
||||||
|
|
||||||
|
if (error) {
|
||||||
|
if (error == "Error: Request timed out")
|
||||||
|
return;
|
||||||
|
|
||||||
|
console.error(error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (result) {
|
||||||
|
recentStats[index] = [];
|
||||||
|
recentStats[index].abbr = server.abbr;
|
||||||
|
recentStats[index].adress = server.adress;
|
||||||
|
recentStats[index].port = server.port;
|
||||||
|
|
||||||
|
recentStats[index].serverName = result.serverName;
|
||||||
|
recentStats[index].currentMap = result.map;
|
||||||
|
recentStats[index].numPlayers = result.numPlayers;
|
||||||
|
recentStats[index].maxPlayers = result.maxPlayers;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
if (recentStats.length) {
|
||||||
|
recentStats.map((stats, index) => {
|
||||||
|
database.query("UPDATE servers SET serverName=?, currentMap=?, numPlayers=?, maxPlayers=? WHERE id=" + index, [stats.serverName, stats.currentMap, stats.numPlayers, stats.maxPlayers]);
|
||||||
|
|
||||||
|
if (!currentStats[index] || currentStats[index].serverName != stats.serverName)
|
||||||
|
updateMessage = true;
|
||||||
|
|
||||||
|
if (!currentStats[index] || currentStats[index].currentMap != stats.currentMap)
|
||||||
|
updateMessage = true;
|
||||||
|
|
||||||
|
if (!currentStats[index] || currentStats[index].numPlayers != stats.numPlayers)
|
||||||
|
updateMessage = true;
|
||||||
|
|
||||||
|
if (!currentStats[index] || currentStats[index].maxPlayers != stats.maxPlayers)
|
||||||
|
updateMessage = true;
|
||||||
|
|
||||||
|
currentStats[index] = stats;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (updateMessage) {
|
||||||
|
updateMessage = false;
|
||||||
|
|
||||||
|
var embedMessage = new discord.RichEmbed();
|
||||||
|
|
||||||
|
if (currentStats.length) {
|
||||||
|
currentStats.map((stats, index) => {
|
||||||
|
embedMessage.addField("__" + stats.serverName + "__", "**" + stats.currentMap + " (" + stats.numPlayers + "/" + stats.maxPlayers + ")**");//steam://connect/" + stats.adress + ":" + stats.port);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
var channel = client.channels.get(config.channel_serverinfo);
|
||||||
|
if (channel) {
|
||||||
|
var infoMessage = channel.messages.get(recentMessage);
|
||||||
|
if (infoMessage) {
|
||||||
|
infoMessage.edit("", {embed: embedMessage});
|
||||||
|
} else {
|
||||||
|
console.log("Couldn't find previous message, find another bot message.");
|
||||||
|
|
||||||
|
var foundMessage = false;
|
||||||
|
|
||||||
|
channel.fetchMessages().then(messages => {
|
||||||
|
console.log("\tFound " + messages.size + " previous messages");
|
||||||
|
|
||||||
|
Promise.all(messages.map((curMessage, index) => {
|
||||||
|
if (!foundMessage && curMessage.client == client)
|
||||||
|
{
|
||||||
|
console.log("\t\tFound previous bot message");
|
||||||
|
|
||||||
|
foundMessage = true;
|
||||||
|
recentMessage = curMessage.id;
|
||||||
|
}
|
||||||
|
})).then(() => {
|
||||||
|
if (!foundMessage)
|
||||||
|
{
|
||||||
|
console.log("\t\tUnable to find previous bot message, sending new message!");
|
||||||
|
|
||||||
|
channel.send("", {embed: embedMessage}).then(message => {recentMessage = message.id});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateClientGame() {
|
||||||
|
}
|
||||||
|
|
||||||
|
client.on("ready", () => {
|
||||||
|
loadServerStats();
|
||||||
|
client.user.setActivity('Zombie Escape');
|
||||||
|
setInterval(updateClientGame, 300000);
|
||||||
|
setInterval(updateServerStats, 10000);
|
||||||
|
});
|
||||||
|
|
||||||
|
client.on('message', message => {
|
||||||
|
|
||||||
|
var rcon_channel = client.channels.get(config.channel_rcon);
|
||||||
|
|
||||||
|
if (message.channel.id === config.channel_adminchat) {
|
||||||
|
if (!(message.author.bot)){
|
||||||
|
remotecon.connect().then(() => {
|
||||||
|
remotecon.command('sm_printtoadminchat "{0}" "{1}"'.formatUnicorn(message.author.username, message.content)).then(() => {
|
||||||
|
remotecon.disconnect()
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// } else if (message.channel.id === config.channel_livechat) {
|
||||||
|
// if (!(message.author.bot)){
|
||||||
|
// remotecon.connect().then(() => {
|
||||||
|
// remotecon.command('sm_printtoallchat "{0}" "{1}"'.formatUnicorn(message.author.username, message.content)).then(() => {
|
||||||
|
// remotecon.disconnect()
|
||||||
|
// });
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
} else if (message.channel.id === config.channel_rcon) {
|
||||||
|
if (!(message.author.bot)){
|
||||||
|
remotecon.connect().then(() => {
|
||||||
|
remotecon.command(message.content).then(response => rcon_channel.send(`${response}`, {code: true, split: true})).then(() => {
|
||||||
|
remotecon.disconnect()
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else if (message.isMentioned(client.user)) {
|
||||||
|
message.reply('Hello!');
|
||||||
|
} else if (message.channel.id === config.channel_tech) {
|
||||||
|
if (!(message.author.bot)){
|
||||||
|
if (message.content.startsWith("!activity")){
|
||||||
|
message.channel.send('Changing activity to "{0}"'.formatUnicorn(message.content.substr(10)));
|
||||||
|
client.user.setActivity(message.content.substr(10));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
String.prototype.formatUnicorn = String.prototype.formatUnicorn ||
|
||||||
|
function () {
|
||||||
|
"use strict";
|
||||||
|
var str = this.toString();
|
||||||
|
if (arguments.length) {
|
||||||
|
var t = typeof arguments[0];
|
||||||
|
var key;
|
||||||
|
var args = ("string" === t || "number" === t) ?
|
||||||
|
Array.prototype.slice.call(arguments)
|
||||||
|
: arguments[0];
|
||||||
|
|
||||||
|
for (key in args) {
|
||||||
|
str = str.replace(new RegExp("\\{" + key + "\\}", "gi"), args[key]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return str;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
client.login("");
|
28
mapinfo.json
Normal file
28
mapinfo.json
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
"channel_adminchat": "",
|
||||||
|
"channel_livechat": "",
|
||||||
|
"channel_serverinfo": "",
|
||||||
|
"channel_rcon": "",
|
||||||
|
"channel_tech": "",
|
||||||
|
"channel_jenkins": "",
|
||||||
|
"message_serverinfo": "",
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"abbr": "CSS-ZE",
|
||||||
|
"adress": "",
|
||||||
|
"port": 27015
|
||||||
|
},{
|
||||||
|
"abbr": "CSS-TRAINING",
|
||||||
|
"adress": "",
|
||||||
|
"port": 28015
|
||||||
|
},{
|
||||||
|
"abbr": "CSS-ZR",
|
||||||
|
"adress": "",
|
||||||
|
"port": 27016
|
||||||
|
},{
|
||||||
|
"abbr": "CSS-MG",
|
||||||
|
"adress": "",
|
||||||
|
"port": 27017
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user