finished ish

This commit is contained in:
Expand 2023-09-25 17:32:07 +10:00
parent 33a5815b35
commit 3bd14546e1
4 changed files with 52 additions and 40 deletions

BIN
bun.lockb

Binary file not shown.

View file

@ -1,59 +1,71 @@
console.log("starting monitor - use nohup to daemonize"); console.log("starting monitor - use nohup to daemonize");
const got = require("got"); const got = require("got");
const Gamedig = require('gamedig'); const mcs = require('node-mcstatus');
let serverstatus = 0 let serverstatus = 0
runevery15seconds(1) runevery15seconds(1)
function runevery15seconds(i) { function runevery15seconds(i) {
setTimeout(() => { 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', { const host = `${process.env.MCADDRESS}`;
"method":"POST", const port = process.env.PORT;
"headers": {"Content-Type": "application/json"}, const options = { query: true };
"body": JSON.stringify(params)
}) // The `port` argument is optional and defaults
.then(res=> console.log(res)) // to 25565. The `options` argument is optional.
.catch(err => console.error(err)); mcs.statusJava(host, port, options)
} .then((result) => {
serverstatus = 1 if(!result.online && serverstatus == 1){
console.log("offline")
}).catch((error: any) => { var params = {
console.log("Server is offline"); username: "MC-monitor",
console.log(error) avatar_url: "https://i.kym-cdn.com/photos/images/newsfeed/001/338/171/d12.jpg",
if( serverstatus == 1){ content: "Server is Offline <@247288496442703872>",
}
fetch(`${process.env.WEBHOOK}`, {
"method":"POST",
"headers": {"Content-Type": "application/json"},
"body": JSON.stringify(params)
})
.then(res=> console.log(res))
.catch(err => console.error(err));
serverstatus = 0
}else if(result.online && serverstatus == 0) {
console.log("Online")
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(`${process.env.WEBHOOK}`, {
"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) => {
var params = { var params = {
username: "MC-monitor", username: "MC-monitor",
avatar_url: "https://i.kym-cdn.com/photos/images/newsfeed/001/338/171/d12.jpg", avatar_url: "https://i.kym-cdn.com/photos/images/newsfeed/001/338/171/d12.jpg",
content: "Server is Offline <@247288496442703872>", content: "Checking service is Offline",
} }
console.log(error) console.log(error)
fetch('https://discord.com/api/webhooks/1155727545724047400/IvcXVXZNpX10fwHhPaIZQ6OYl5XJ2f0iFoBhrYnKtGYHWR2_SMHruXyhcIZR8IsY8P8V', { fetch(`${process.env.WEBHOOK}`, {
"method":"POST", "method":"POST",
"headers": {"Content-Type": "application/json"}, "headers": {"Content-Type": "application/json"},
"body": JSON.stringify(params) "body": JSON.stringify(params)
}) })
.then(res=> console.log(res)) .then(res=> console.log(res))
.catch(err => console.error(err)); .catch(err => console.error(err));
} })
serverstatus = 0 runevery15seconds(++i)
}, process.env.CHECK_TIMER)
});
runevery15seconds(++i);
}, 5000)
} }

Binary file not shown.

View file

@ -9,7 +9,7 @@
"typescript": "^5.0.0" "typescript": "^5.0.0"
}, },
"dependencies": { "dependencies": {
"gamedig": "^4.1.0", "got": "^13.0.0",
"got": "^13.0.0" "node-mcstatus": "^1.1.0"
} }
} }