UNPKG

lavaclient

Version:

A simple, easy-to-use, and flexible lavalink client for node.js

42 lines 3.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Penalties = void 0; class Penalties { node; tracksStuck = 0; tracksFailed = 0; loadsFailed = 0; loadsAttempted = 0; constructor(node) { this.node = node; } clear() { this.tracksStuck = 0; this.tracksFailed = 0; this.loadsFailed = 0; this.loadsAttempted = 0; } calculate() { const stats = this.node.ws.stats; if (!this.node.ws.active || !stats) { return Number.MAX_SAFE_INTEGER; } if (this.loadsAttempted > 0 && this.loadsAttempted === this.loadsFailed) { return Number.MAX_SAFE_INTEGER; } let penalties = 0; penalties += stats.playingPlayers; penalties += 1.05 ** (stats.cpu.systemLoad * 100) * 10 - 10; if (stats.frameStats) { const calc = (n) => 1.03 ** ((n / 3000) * 500) * 600 - 600; penalties += calc(stats.frameStats.deficit); penalties += calc(stats.frameStats.nulled) * 2; } penalties += this.tracksStuck * 100 - 100; penalties += this.tracksFailed * 100 - 100; penalties += this.loadsFailed > 0 ? this.loadsFailed / this.loadsAttempted : 0; return penalties; } } exports.Penalties = Penalties; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVuYWx0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbHVzdGVyL3BlbmFsdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBOEJBLE1BQWEsU0FBUztJQVNHO0lBUnJCLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFFaEIsWUFBWSxHQUFHLENBQUMsQ0FBQztJQUVqQixXQUFXLEdBQUcsQ0FBQyxDQUFDO0lBRWhCLGNBQWMsR0FBRyxDQUFDLENBQUM7SUFFbkIsWUFBcUIsSUFBVTtRQUFWLFNBQUksR0FBSixJQUFJLENBQU07SUFBRyxDQUFDO0lBRW5DLEtBQUs7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsU0FBUztRQUNMLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2hDLE9BQU8sTUFBTSxDQUFDLGdCQUFnQixDQUFDO1NBQ2xDO1FBR0QsSUFBSSxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDckUsT0FBTyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7U0FDbEM7UUFHRCxJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDbEIsU0FBUyxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUM7UUFDbEMsU0FBUyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFFNUQsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFO1lBQ2xCLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDO1lBQ25FLFNBQVMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM1QyxTQUFTLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ2xEO1FBRUQsU0FBUyxJQUFJLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUMxQyxTQUFTLElBQUksSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQzNDLFNBQVMsSUFBSSxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFHL0UsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztDQUNKO0FBL0NELDhCQStDQyJ9