mirror of
https://github.com/clusterio/clusterio.git
synced 2026-11-12 07:04:52 +09:00
42 lines
1.4 KiB
JavaScript
42 lines
1.4 KiB
JavaScript
const needle = require("needle");
|
|
|
|
console.log("/silent-command game.print('UPSdisplay enabled')");
|
|
|
|
setInterval(function(){
|
|
console.log("/silent-command game.write_file('UPSdisplay.txt', game.tick, true, 0)");
|
|
},1000);
|
|
var config = {};
|
|
process.stdin.setEncoding('utf8');
|
|
let historicalTicks = [];
|
|
process.stdin.on('readable', () => {
|
|
var chunk = process.stdin.read();
|
|
if (chunk !== null && !isNaN(chunk) && !chunk.includes("{")){
|
|
// console.log("Tick: " + chunk);
|
|
historicalTicks[historicalTicks.length] = {tick:Number(chunk), timestamp:Date.now()};
|
|
if(historicalTicks.length > 30){
|
|
historicalTicks.shift(); // delete last element in array (position 0);
|
|
}
|
|
} else {
|
|
config = JSON.parse(chunk);
|
|
}
|
|
});
|
|
process.stdin.on('end', () => {
|
|
process.stdout.write('end');
|
|
});
|
|
|
|
// Post average UPS
|
|
setInterval(function(){
|
|
if(historicalTicks && historicalTicks[0]){
|
|
let timePeriod = historicalTicks[historicalTicks.length-1].timestamp - historicalTicks[0].timestamp;
|
|
let ticksInPeriod = historicalTicks[historicalTicks.length-1].tick - historicalTicks[0].tick;
|
|
let UPS = Math.round(ticksInPeriod / (timePeriod/1000));
|
|
// console.log("UPS: " + UPS);
|
|
try{
|
|
needle.post(config.masterIP+':'+config.masterPort+'/api/editSlaveMeta', {slaveID: config.unique, password: config.clientPassword, meta: {UPS:UPS}}, function(err, resp) {
|
|
// success?
|
|
});
|
|
} catch (err){
|
|
console.log(err);
|
|
}
|
|
}
|
|
}, 10000); |