116 lines
3.2 KiB
JavaScript
116 lines
3.2 KiB
JavaScript
|
import * as os from "os";
|
||
|
var mode = 0;
|
||
|
var logs = [];
|
||
|
var rightView = [0, 1, 2, 3, 4, 5, 6];
|
||
|
var info = [[], []];
|
||
|
export function setMode(type) {
|
||
|
mode = type;
|
||
|
}
|
||
|
export function updateLog() {
|
||
|
if (mode)
|
||
|
return;
|
||
|
let templogs = logs;
|
||
|
console.clear();
|
||
|
const columns = process.stdout.columns;
|
||
|
const rows = process.stdout.rows;
|
||
|
const vertSplit = Math.round(rows / 4);
|
||
|
for (var i = 0; i < vertSplit; i++) {
|
||
|
process.stdout.cursorTo(Math.round(columns / 2), i);
|
||
|
process.stdout.clearLine();
|
||
|
process.stdout.write(`|`);
|
||
|
}
|
||
|
for (var i = 0; i < columns; i++) {
|
||
|
process.stdout.cursorTo(i + 1, vertSplit);
|
||
|
process.stdout.write(`=`);
|
||
|
}
|
||
|
process.stdout.cursorTo(0, 0);
|
||
|
process.stdout.write("Players:");
|
||
|
const games = info[0];
|
||
|
var pointer = 0;
|
||
|
for (i = 0; i < games.length; i++) {
|
||
|
process.stdout.cursorTo(0, pointer + 1);
|
||
|
process.stdout.write(`\x1b[46mGameName: \x1b[1m${games[i].name}\x1b[0m`);
|
||
|
const players = games[i].players;
|
||
|
for (var j = 0; j < players.length; j++) {
|
||
|
process.stdout.cursorTo(0, pointer + 2);
|
||
|
process.stdout.write(`--Name: \x1b[1m${players[j].name}\x1b[0m -\x1b[1m ID:${players[j].id}\x1b[0m`);
|
||
|
pointer++;
|
||
|
}
|
||
|
pointer++;
|
||
|
}
|
||
|
if (templogs.length > Math.round(3 * rows / 4) - 3) {
|
||
|
templogs.splice(0, logs.length - Math.round(3 * rows / 4) + 2);
|
||
|
}
|
||
|
for (var i = 0; i < templogs.length; i++) {
|
||
|
process.stdout.cursorTo(0, vertSplit + 1 + i);
|
||
|
process.stdout.write(`${templogs[i]}${os.EOL}`);
|
||
|
}
|
||
|
}
|
||
|
export function log(string, color) {
|
||
|
if (mode)
|
||
|
return console.log(string);
|
||
|
if (string == undefined)
|
||
|
return;
|
||
|
var prefix = '';
|
||
|
switch (color) {
|
||
|
case "reset":
|
||
|
prefix = "\x1b[0m";
|
||
|
break;
|
||
|
case "bright":
|
||
|
prefix = "\x1b[1m";
|
||
|
break;
|
||
|
case "dim":
|
||
|
prefix = "\x1b[2m";
|
||
|
break;
|
||
|
case "underscore":
|
||
|
prefix = "\x1b[4m";
|
||
|
break;
|
||
|
case "reverse":
|
||
|
prefix = "\x1b[7m";
|
||
|
break;
|
||
|
case "FgBlack":
|
||
|
prefix = "\x1b[30m";
|
||
|
break;
|
||
|
case "FgRed":
|
||
|
prefix = "\x1b[31m";
|
||
|
break;
|
||
|
case "FgGreen":
|
||
|
prefix = "\x1b[32m";
|
||
|
break;
|
||
|
case "FgYellow":
|
||
|
prefix = "\x1b[33m";
|
||
|
break;
|
||
|
case "FgBlue":
|
||
|
prefix = "\x1b[34m";
|
||
|
break;
|
||
|
case "FgMagenta":
|
||
|
prefix = "\x1b[35m";
|
||
|
break;
|
||
|
case "FgCyan":
|
||
|
prefix = "\x1b[36m";
|
||
|
break;
|
||
|
case "FgWhite":
|
||
|
prefix = "\x1b[37m";
|
||
|
break;
|
||
|
}
|
||
|
// BgBlack = "\x1b[40m"
|
||
|
// BgRed = "\x1b[41m"
|
||
|
// BgGreen = "\x1b[42m"
|
||
|
// BgYellow = "\x1b[43m"
|
||
|
// BgBlue = "\x1b[44m"
|
||
|
// BgMagenta = "\x1b[45m"
|
||
|
// BgCyan = "\x1b[46m"
|
||
|
// BgWhite = "\x1b[47m"
|
||
|
const newString = prefix + string + "\x1b[0m";
|
||
|
logs.push(newString);
|
||
|
updateLog();
|
||
|
}
|
||
|
export function setInfo(players) {
|
||
|
if (mode)
|
||
|
return false;
|
||
|
if (players != undefined) {
|
||
|
info[0] = players;
|
||
|
updateLog();
|
||
|
}
|
||
|
}
|