Added TPS

This commit is contained in:
HttpRafa
2022-01-08 23:32:57 +01:00
parent b1847debbb
commit 045c154f6c
35 changed files with 777 additions and 48 deletions

View File

@ -0,0 +1,47 @@
package es.mesacarlos.webconsole.websocket.command;
//------------------------------
//
// This class was developed by Rafael K.
// On 1/8/2022 at 10:22 PM
// In the project WebConsole
//
//------------------------------
import es.mesacarlos.webconsole.util.Internationalization;
import es.mesacarlos.webconsole.websocket.WSServer;
import es.mesacarlos.webconsole.websocket.response.Tps;
import org.java_websocket.WebSocket;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class TpsCommand implements WSCommand {
@Override
public void execute(WSServer wsServer, WebSocket conn, String params) {
try {
double tps = getTps()[0];
wsServer.sendToClient(conn, new Tps(Internationalization.getPhrase("tps-message", tps), tps));
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* @return Current server Tps
*/
public double[] getTps() throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, IllegalAccessException, NoSuchFieldException {
Class<?> minecraftServerClass = Class.forName("net.minecraft.server.MinecraftServer");
Method getServerMethod = minecraftServerClass.getDeclaredMethod("getServer");
Object serverInstance = getServerMethod.invoke(null);
Field recentTpsField = serverInstance.getClass().getField("recentTps");
double[] recentTps = (double[]) recentTpsField.get(serverInstance);
for (int i = 0; i < recentTps.length; i++) {
recentTps[i] = Math.round(recentTps[i]);
}
return recentTps;
}
}