const {spawn} = require('child_process');
module.exports = function (user) {
function update() {
const list = spawn('./etwolf-serverlist');
let buffer = '';
list.stdout.on('data', data => {
buffer += data;
});
list.on('close', code => {
if (code !== 0) {
return;
}
let count = 0;
buffer.split("\n\n").forEach(info => {
const cVars = info.matchAll(/^([^:]+): (.+)$/mg);
for (let cVar of cVars) {
if (cVar[1] === 'protocol' && cVar[2] === '84') {
const pc = info.match(/^\d+ [1-9]\d{0,2} "[^"]+"$/mg);
if (pc !== null) {
count += pc.length;
}
break;
}
}
});
if (count > 0) {
const formatted = String(count).replace(/(?<!\..*)(\d)(?=(?:\d{3})+(?:\.|$))/g, '$1,');
user.setActivity(`${formatted} ET players`, { type: 'WATCHING' }).catch(error => {
console.warn(error);
});
} else {
user.setActivity(null).catch(error => {
console.warn(error);
});
}
});
}
setInterval(update, 60 * 15 * 1000);
update();
};