Skip to content

Commit b284b00

Browse files
authored
Merge pull request #100 from HttpRafa/master
Added TPS
2 parents b1847de + a2c595c commit b284b00

29 files changed

+248
-60
lines changed

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,4 +68,7 @@ local.properties
6868
# Scala IDE specific (Scala & Java development for Eclipse)
6969
.cache-main
7070
.scala_dependencies
71-
.worksheet
71+
.worksheet
72+
73+
#idea
74+
.idea

client/index.html

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,8 @@ <h1 class="mt-5" id="home_header">Select a server from the menu</h1>
7979
<div class="container" id="serverContainer" style="display: none;">
8080
<h1 class="mt-4" id="serverTitle"></h1>
8181

82-
<div class="row p-3">
83-
<div class="col-sm-3 mb-2">
82+
<div class="row p-2">
83+
<div class="col-sm-3">
8484
<div class="card">
8585
<div class="card-body">
8686
<h5 class="card-title" id="players_online">Players Online</h5>
@@ -91,7 +91,7 @@ <h5 class="card-title" id="players_online">Players Online</h5>
9191
</div>
9292
</div>
9393
</div>
94-
<div class="col-sm-3 mb-2">
94+
<div class="col-sm-3">
9595
<div class="card">
9696
<div class="card-body">
9797
<h5 class="card-title" id="cpu_title">CPU</h5>
@@ -102,7 +102,7 @@ <h5 class="card-title" id="cpu_title">CPU</h5>
102102
</div>
103103
</div>
104104
</div>
105-
<div class="col-sm-3 mb-2">
105+
<div class="col-sm-3">
106106
<div class="card">
107107
<div class="card-body">
108108
<h5 class="card-title" id="ram_title">RAM</h5>
@@ -113,19 +113,32 @@ <h5 class="card-title" id="ram_title">RAM</h5>
113113
</div>
114114
</div>
115115
</div>
116-
<div class="col-sm-3 mb-2">
116+
<div class="col-sm-3">
117117
<div class="card">
118118
<div class="card-body">
119-
<p class="card-text">
120-
<span id="user_title">Logged as</span>
121-
<span id="loggedUsernameLabel">Unknown</span>
122-
(<span id="loggedUserTypeLabel">Unknown</span>)
123-
</p>
124-
<button type="button" class="btn btn-danger btn-sm" id="deleteServerButton">Delete server</button>
119+
<h5 class="card-title" id="tps_title">TPS</h5>
120+
<p class="card-text"><span id="tps">0</span> Ticks / <span id="maxTps">0</span> Ticks</p>
121+
<div class="progress flat-progressbar">
122+
<div class="progress-bar progress-bar-striped progress-bar-animated" role="progressbar" style="width: 0%;" id="TpsProgressBar"></div>
123+
</div>
125124
</div>
126125
</div>
127126
</div>
128127
</div>
128+
<div class="row p-2 mb-2">
129+
<div class="col-sm-9">
130+
<div class="card">
131+
<div class="card-body">
132+
<span id="user_title">Logged as</span>&nbsp;<span id="loggedUsernameLabel">Unknown</span>&nbsp;(<span id="loggedUserTypeLabel">Unknown</span>)
133+
</div>
134+
</div>
135+
</div>
136+
<div class="col-sm-3">
137+
<div class="card">
138+
<button type="button" class="btn btn-danger btn-sm" id="deleteServerButton">Delete server</button>
139+
</div>
140+
</div>
141+
</div>
129142

130143
<div class="card mb-2">
131144
<div class="card-body overflow-auto text-light bg-dark console" id="consoleTextArea"></div>

client/scripts/WebConsole.js

Lines changed: 43 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
55
*/
66

77
/**
8-
* Global variables
9-
*/
10-
var persistenceManager = new WebConsolePersistenceManager();
11-
var connectionManager = new WebConsoleManager();
12-
var lang;
13-
var autoPasswordCompleted = false; //When true, saved password was used. If a 401 is received, then saved password is not correct
14-
var statusCommandsInterval = -1;
15-
var commandHistoryIndex = -1; //Saves current command history index. -1 when not browsing history.
8+
* Global variables
9+
*/
10+
const persistenceManager = new WebConsolePersistenceManager();
11+
const connectionManager = new WebConsoleManager();
12+
let lang;
13+
let autoPasswordCompleted = false; //When true, saved password was used. If a 401 is received, then saved password is not correct
14+
let statusCommandsInterval = -1;
15+
let commandHistoryIndex = -1; //Saves current command history index. -1 when not browsing history.
1616

1717
/**
1818
* Load list of servers in file servers.json
@@ -61,10 +61,10 @@ function openServer(serverName){
6161
connectionManager.loadConnection(serverName);
6262

6363
//Load saved messages
64-
var i;
65-
var messages = connectionManager.activeConnection.messages;
64+
let i;
65+
const messages = connectionManager.activeConnection.messages;
6666
for(i = 0; i < messages.length; i++){
67-
if(messages[i].status != 401){
67+
if(messages[i].status !== 401){
6868
onWebSocketsMessage(messages[i]);
6969
}
7070
}
@@ -88,7 +88,7 @@ function onWebSocketsMessage(message){
8888
$("#loggedUserTypeLabel").text(message.as);
8989

9090
//Disable command bar if user is viewer
91-
if(message.as.toLowerCase() == "viewer"){
91+
if(message.as.toLowerCase() === "viewer"){
9292
$("#commandInput").prop("disabled", true);
9393
$("#sendCommandButton").prop("disabled", true);
9494
}
@@ -106,7 +106,7 @@ function onWebSocketsMessage(message){
106106
break;
107107
case 401:
108108
//Waiting for login. Show password modal or retrieve password
109-
var savedPwd = persistenceManager.getServer(connectionManager.activeConnection.serverName).serverPassword;
109+
const savedPwd = persistenceManager.getServer(connectionManager.activeConnection.serverName).serverPassword;
110110
if(typeof savedPwd !== "undefined" && !autoPasswordCompleted){
111111
connectionManager.sendPassword(savedPwd);
112112
autoPasswordCompleted = true;
@@ -127,13 +127,17 @@ function onWebSocketsMessage(message){
127127
//RAM Usage
128128
writeRamInfo(message.free, message.used, message.max);
129129
break;
130+
case 1003:
131+
//Server TPS
132+
writeTpsInfo(message.tps, 20);
133+
break;
130134
default:
131135
console.log('Unknown server response:');
132136
}
133137
console.log(message);
134138

135139
//Add interval for Players, CPU and RAM info, if not set
136-
if(statusCommandsInterval == -1 && message.status !== 401){
140+
if(statusCommandsInterval === -1 && message.status !== 401){
137141
statusCommandsInterval = setInterval(function(){
138142
connectionManager.askForInfo();
139143
}, 2500);
@@ -144,8 +148,8 @@ function onWebSocketsMessage(message){
144148
* Write to console
145149
*/
146150
function writeToWebConsole(msg, time){
147-
var isScrolledDown = document.getElementById("consoleTextArea").scrollHeight - document.getElementById("consoleTextArea").scrollTop - 40 == $("#consoleTextArea").height();
148-
151+
const isScrolledDown = document.getElementById("consoleTextArea").scrollHeight - document.getElementById("consoleTextArea").scrollTop - 40 === $("#consoleTextArea").height();
152+
149153
//Write to div, replacing < to &lt; (to avoid XSS) and replacing new line to br.
150154
msg = msg.replace(/</g, "&lt;");
151155
msg = msg.replace(/(?:\r\n|\r|\n)/g, "<br>");
@@ -209,7 +213,7 @@ function writeToWebConsole(msg, time){
209213
$("#consoleTextArea").append(msg + "<br>");
210214

211215
if(isScrolledDown){
212-
var textarea = document.getElementById('consoleTextArea');
216+
const textarea = document.getElementById('consoleTextArea');
213217
textarea.scrollTop = textarea.scrollHeight;
214218
}
215219
}
@@ -220,8 +224,8 @@ function writeToWebConsole(msg, time){
220224
function writePlayerInfo(connected, maximum){
221225
$("#connectedPlayers").text(connected);
222226
$("#maxPlayers").text(maximum);
223-
224-
var percent = (connected/maximum)*100;
227+
228+
const percent = (connected / maximum) * 100;
225229
$("#playerProgressBar").width(percent + "%");
226230
}
227231

@@ -240,16 +244,30 @@ function writeCpuInfo(usage){
240244
function writeRamInfo(free, used, total){
241245
$("#usedRam").text(used);
242246
$("#totalRam").text(total);
243-
244-
var percent = (used/total)*100;
247+
248+
const percent = (used / total) * 100;
245249
$("#RamProgressBar").width(percent + "%");
246250
}
247251

252+
/**
253+
* Fill TPS info card
254+
*/
255+
function writeTpsInfo(tps, max){
256+
if(tps > 20) {
257+
tps = 20;
258+
}
259+
$("#tps").text(tps);
260+
$("#maxTps").text(max);
261+
262+
const percent = (tps / max) * 100;
263+
$("#TpsProgressBar").width(percent + "%");
264+
}
265+
248266
/**
249267
* Called from WebConsoleConnector only.
250268
*/
251269
function closedConnection(serverName){
252-
if(connectionManager.activeConnection.serverName == serverName){
270+
if(connectionManager.activeConnection.serverName === serverName){
253271
//Disable command input and button
254272
$("#commandInput").prop("disabled", true);
255273
$("#sendCommandButton").prop("disabled", true);
@@ -288,13 +306,13 @@ function updateServerList(){
288306
$('.servermenuitem').remove();
289307

290308
//Add all servers
291-
var servers = persistenceManager.getAllServers();
292-
for(var i = 0; i < servers.length; i++){
309+
const servers = persistenceManager.getAllServers();
310+
for(let i = 0; i < servers.length; i++){
293311
$('#ServerListDropDown').append('<a class="dropdown-item servermenuitem" href="#" onclick="openServer(\'' + servers[i].serverName + '\')">' + servers[i].serverName.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"").replace(/"/g,"") + '</a>');
294312
}
295313

296314
//Show a "no servers" message when no servers are added
297-
if(servers.length == 0){
315+
if(servers.length === 0){
298316
$('#ServerListDropDown').append('<a class="dropdown-item servermenuitem disabled" href="#" id="noServersAdded">No servers added</a>');
299317
}
300318
}

client/scripts/WebConsoleManager.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,11 @@ class WebConsoleManager {
9797
command: "RAMUSAGE",
9898
token: this.activeConnection.token,
9999
});
100+
101+
this.activeConnection.sendToServer({
102+
command: "TPS",
103+
token: this.activeConnection.token,
104+
});
100105
}
101106

102107
/**

phrases.properties

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ players-message = Connected {0} players for a maximum of {1}
3434
# RamUsageCommand.java
3535
ram-usage-message = {0} free, {1} used, {2} maximum memory
3636

37+
# TpsCommand.java
38+
tps-message = {0} ticks from {1}
39+
3740
# WebConsoleCommand.java
3841
webconsole-version = WebConsole version {0}.
3942
webconsole-no-connections = There are no logged in WebConsole connections now.

phrases_cs.properties

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ players-message = Je připojeno {0} hráčů z maxima {1}
3434
# RamUsageCommand.java
3535
ram-usage-message = {0} volné, {1} použité, {2} maximální paměti
3636

37+
# TpsCommand.java
38+
tps-message = {0} ticks from {1}
39+
3740
# WebConsoleCommand.java
3841
webconsole-version = WebConsole verze {0}.
3942
webconsole-no-connections = Nejsou žádné WebConsole připojení.

phrases_de.properties

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ players-message = {0} von {1} Spieler sind verbunden.
3434
# RamUsageCommand.java
3535
ram-usage-message = {0} frei, {1} benutzt, {2} maximal
3636

37+
# TpsCommand.java
38+
tps-message = {0} ticks von {1}
39+
3740
# WebConsoleCommand.java
3841
webconsole-version = Die WebConsole Version ist {0}.
3942
webconsole-no-connections = Aktuell ist niemand mit der WebConsole verbunden

phrases_en.properties

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ players-message = Connected {0} players for a maximum of {1}
3434
# RamUsageCommand.java
3535
ram-usage-message = {0} free, {1} used, {2} maximum memory
3636

37+
# TpsCommand.java
38+
tps-message = {0} ticks from {1}
39+
3740
# WebConsoleCommand.java
3841
webconsole-version = WebConsole version {0}.
3942
webconsole-no-connections = There are no logged in WebConsole connections now.

phrases_es.properties

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ players-message = Actualmente conectados {0} jugadores de un máximo de {1}
3434
# RamUsageCommand.java
3535
ram-usage-message = Memoria: {0} libre, {1} usada, {2} maxima
3636

37+
# TpsCommand.java
38+
tps-message = {0} ticks from {1}
39+
3740
# WebConsoleCommand.java
3841
webconsole-version = WebConsole version {0}.
3942
webconsole-no-connections = No hay ninguna conexión activa a WebConsole en este momento.

phrases_fr.properties

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ players-message = Joueurs {0} connectés pour un maximum de {1}
3434
# RamUsageCommand.java
3535
ram-usage-message = {0} gratuit, {1} utilisé, {2} mémoire maximale
3636

37+
# TpsCommand.java
38+
tps-message = {0} ticks from {1}
39+
3740
# WebConsoleCommand.java
3841
webconsole-version = version WebConsole {0}.
3942
webconsole-no-connections = Aucune connexion WebConsole n'est connectée maintenant.

0 commit comments

Comments
 (0)