mc-server-monitor/index.ts
2023-09-25 16:32:11 +10:00

59 lines
2.2 KiB
TypeScript

console.log("starting monitor - use nohup to daemonize");
const got = require("got");
const Gamedig = require('gamedig');
let serverstatus = 0
runevery15seconds(1)
function runevery15seconds(i) {
setTimeout(() => {
Gamedig.query({
type: 'minecraft',
host: 'mc.emre-personal.net',
port: 25565,
debug: true,
socketTimeout: 3000
}).then((state) => {
console.log(state);
if(serverstatus == 0){
var params = {
username: "MC-monitor",
avatar_url: "https://i.kym-cdn.com/photos/images/newsfeed/001/338/171/d12.jpg",
content: "Server is back online",
}
fetch('https://discord.com/api/webhooks/1155727545724047400/IvcXVXZNpX10fwHhPaIZQ6OYl5XJ2f0iFoBhrYnKtGYHWR2_SMHruXyhcIZR8IsY8P8V', {
"method":"POST",
"headers": {"Content-Type": "application/json"},
"body": JSON.stringify(params)
})
.then(res=> console.log(res))
.catch(err => console.error(err));
}
serverstatus = 1
}).catch((error: any) => {
console.log("Server is offline");
console.log(error)
if( serverstatus == 1){
var params = {
username: "MC-monitor",
avatar_url: "https://i.kym-cdn.com/photos/images/newsfeed/001/338/171/d12.jpg",
content: "Server is Offline <@247288496442703872>",
}
console.log(error)
fetch('https://discord.com/api/webhooks/1155727545724047400/IvcXVXZNpX10fwHhPaIZQ6OYl5XJ2f0iFoBhrYnKtGYHWR2_SMHruXyhcIZR8IsY8P8V', {
"method":"POST",
"headers": {"Content-Type": "application/json"},
"body": JSON.stringify(params)
})
.then(res=> console.log(res))
.catch(err => console.error(err));
}
serverstatus = 0
});
runevery15seconds(++i);
}, 5000)
}