From 8ebac6a33d50c1c4ba4bc99ab2fac625aba7e969 Mon Sep 17 00:00:00 2001
From: Carlos <28845529+mesacarlos@users.noreply.github.com>
Date: Sat, 22 Feb 2020 17:33:20 +0100
Subject: [PATCH] Implemented READLOGFILE server-side
---
client/scripts/WebConsole.js | 2 +-
phrases.properties | 7 +++-
phrases_cs.properties | 5 ++-
phrases_en.properties | 5 ++-
phrases_es.properties | 7 +++-
phrases_fr.properties | 5 ++-
phrases_pt.properties | 7 +++-
phrases_ru.properties | 7 +++-
phrases_zh.properties | 7 +++-
plugin.yml | 2 +-
pom.xml | 2 +-
.../websocket/command/CommandFactory.java | 1 +
.../websocket/command/ReadLogFileCommand.java | 42 +++++++++++++++++++
13 files changed, 83 insertions(+), 16 deletions(-)
create mode 100644 src/com/mesacarlos/webconsole/websocket/command/ReadLogFileCommand.java
diff --git a/client/scripts/WebConsole.js b/client/scripts/WebConsole.js
index 7cd6d1b..fcdb804 100644
--- a/client/scripts/WebConsole.js
+++ b/client/scripts/WebConsole.js
@@ -155,7 +155,7 @@ function writeToWebConsole(msg){
//Append datetime if enabled
if(persistenceManager.getSetting("dateTimePrefix"))
- msg = "[" + new Date().toLocaleString() + "] " + msg;
+ msg = "[" + new Date().toLocaleTimeString() + "] " + msg;
$("#consoleTextArea").append(msg + "
");
diff --git a/phrases.properties b/phrases.properties
index fcabf39..4b8c955 100644
--- a/phrases.properties
+++ b/phrases.properties
@@ -20,7 +20,7 @@ cpu-usage-message = Usage is {0}%
# ExecCommand.java
cmd-executed-console = [WebConsole] {0} executed "{1}".
-#LogInCommand.java
+# LogInCommand.java
login-sucessful-message = Logged in
login-sucessful-console = [WebConsole] Successfully logged in from {0}
login-failed-message = Incorrect password, try again
@@ -35,4 +35,7 @@ ram-usage-message = {0} free, {1} used, {2} maximum memory
# WebConsoleCommand.java
webconsole-version = WebConsole version {0}.
webconsole-no-connections = There are no logged in WebConsole connections now.
-webconsole-active-connections = Connected to WebConsole from:
\ No newline at end of file
+webconsole-active-connections = Connected to WebConsole from:
+
+# ReadLogFileCommand.java
+log-read-error = Error trying to read latest.log file
\ No newline at end of file
diff --git a/phrases_cs.properties b/phrases_cs.properties
index df8f7c4..95a9eaf 100644
--- a/phrases_cs.properties
+++ b/phrases_cs.properties
@@ -35,4 +35,7 @@ ram-usage-message = {0} volné, {1} použité, {2} maximální paměti
# WebConsoleCommand.java
webconsole-version = WebConsole verze {0}.
webconsole-no-connections = Nejsou žádné WebConsole připojení.
-webconsole-active-connections = Připojeno k WebConsole z:
\ No newline at end of file
+webconsole-active-connections = Připojeno k WebConsole z:
+
+# ReadLogFileCommand.java
+log-read-error = Chyba při čtení souboru latest.log
\ No newline at end of file
diff --git a/phrases_en.properties b/phrases_en.properties
index 284e558..4b8c955 100644
--- a/phrases_en.properties
+++ b/phrases_en.properties
@@ -35,4 +35,7 @@ ram-usage-message = {0} free, {1} used, {2} maximum memory
# WebConsoleCommand.java
webconsole-version = WebConsole version {0}.
webconsole-no-connections = There are no logged in WebConsole connections now.
-webconsole-active-connections = Connected to WebConsole from:
\ No newline at end of file
+webconsole-active-connections = Connected to WebConsole from:
+
+# ReadLogFileCommand.java
+log-read-error = Error trying to read latest.log file
\ No newline at end of file
diff --git a/phrases_es.properties b/phrases_es.properties
index d1c74ae..037dc40 100644
--- a/phrases_es.properties
+++ b/phrases_es.properties
@@ -20,7 +20,7 @@ cpu-usage-message = En uso {0}%
# ExecCommand.java
cmd-executed-console = [WebConsole] {0} ejecutó "{1}".
-#LogInCommand.java
+# LogInCommand.java
login-sucessful-message = Sesión iniciada
login-sucessful-console = [WebConsole] Sesión iniciada con éxito desde {0}
login-failed-message = Contraña incorrecta, inténtalo de nuevo
@@ -35,4 +35,7 @@ ram-usage-message = Memoria: {0} libre, {1} usada, {2} maxima
# WebConsoleCommand.java
webconsole-version = WebConsole version {0}.
webconsole-no-connections = No hay ninguna conexión activa a WebConsole en este momento.
-webconsole-active-connections = Conectado a WebConsole desde:
\ No newline at end of file
+webconsole-active-connections = Conectado a WebConsole desde:
+
+# ReadLogFileCommand.java
+log-read-error = Error leyendo el fichero latest.log
\ No newline at end of file
diff --git a/phrases_fr.properties b/phrases_fr.properties
index 5de66c4..d919165 100644
--- a/phrases_fr.properties
+++ b/phrases_fr.properties
@@ -35,4 +35,7 @@ ram-usage-message = {0} gratuit, {1} utilisé, {2} mémoire maximale
# WebConsoleCommand.java
webconsole-version = version WebConsole {0}.
webconsole-no-connections = Aucune connexion WebConsole n'est connectée maintenant.
-webconsole-active-connections = Connecté à WebConsole depuis:
\ No newline at end of file
+webconsole-active-connections = Connecté à WebConsole depuis:
+
+# ReadLogFileCommand.java
+log-read-error = Erreur lors de la lecture du fichier latest.log
\ No newline at end of file
diff --git a/phrases_pt.properties b/phrases_pt.properties
index 4f1120e..5fd5215 100644
--- a/phrases_pt.properties
+++ b/phrases_pt.properties
@@ -20,7 +20,7 @@ cpu-usage-message = Consumindo {0}%
# ExecCommand.java
cmd-executed-console = [WebConsole] {0} executou "{1}".
-#LogInCommand.java
+# LogInCommand.java
login-sucessful-message = Você foi autênticado.
login-sucessful-console = [WebConsole] {0} acabou de se conectar.
login-failed-message = Senha incorreta, porfavor, contate algum responsável.
@@ -35,4 +35,7 @@ ram-usage-message = Disponível: {0}, Consumo de RAM: {1} / {2}
# WebConsoleCommand.java
webconsole-version = WebConsole versão {0}.
webconsole-no-connections = Atualmente não tem nenhum usuário conectado.
-webconsole-active-connections = Atualmente temos:
\ No newline at end of file
+webconsole-active-connections = Atualmente temos:
+
+# ReadLogFileCommand.java
+log-read-error = Erro ao ler o arquivo latest.log
\ No newline at end of file
diff --git a/phrases_ru.properties b/phrases_ru.properties
index 63de952..742535d 100644
--- a/phrases_ru.properties
+++ b/phrases_ru.properties
@@ -20,7 +20,7 @@ cpu-usage-message = Использование {0}%
# ExecCommand.java
cmd-executed-console = [WebConsole] {0} выполнил "{1}".
-#LogInCommand.java
+# LogInCommand.java
login-sucessful-message = Войти в систему
login-sucessful-console = [WebConsole] Успешно вошел в систему с {0}
login-failed-message = Неверный пароль, попробуйте еще раз
@@ -35,4 +35,7 @@ ram-usage-message = {0} свободно, {1} используется, {2} ма
# WebConsoleCommand.java
webconsole-version = Версия WebConsole {0}.
webconsole-no-connections = В настоящее время нет подключений к WebConsole.
-webconsole-active-connections = Подключен к веб-консоли из :
\ No newline at end of file
+webconsole-active-connections = Подключен к веб-консоли из :
+
+# ReadLogFileCommand.java
+log-read-error = ошибка чтения последнего latest.log
\ No newline at end of file
diff --git a/phrases_zh.properties b/phrases_zh.properties
index 9ec0480..f2db8b8 100644
--- a/phrases_zh.properties
+++ b/phrases_zh.properties
@@ -20,7 +20,7 @@ cpu-usage-message = 已使用 {0}%
# ExecCommand.java
cmd-executed-console = [網站控制台] {0} 執行 '{1}'.
-#LogInCommand.java
+# LogInCommand.java
login-sucessful-message = 登錄
login-sucessful-console = [網站控制台] 成功登錄 {0}
login-failed-message = 密碼不正確,請重試
@@ -35,4 +35,7 @@ ram-usage-message = 空閒{0} , 已使用{1} , 最大內存{2}
# WebConsoleCommand.java
webconsole-version = 網站控制台版本 {0}.
webconsole-no-connections = 現在沒有連接登錄網站控制台。
-webconsole-active-connections = 從以下位置連接到網站控制台:
\ No newline at end of file
+webconsole-active-connections = 從以下位置連接到網站控制台:
+
+# ReadLogFileCommand.java
+log-read-error = 读取Latest.log文件时出错
\ No newline at end of file
diff --git a/plugin.yml b/plugin.yml
index 382761b..0f925a8 100644
--- a/plugin.yml
+++ b/plugin.yml
@@ -1,7 +1,7 @@
name: WebConsole
main: com.mesacarlos.webconsole.WebConsole
api-version: 1.13
-version: 1.4
+version: 1.5
description: WebSockets-based web console
author: Carlos Mesa
commands:
diff --git a/pom.xml b/pom.xml
index d189ba3..e4df249 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
4.0.0
WebConsole
WebConsole
- 1.4
+ 1.5
src
diff --git a/src/com/mesacarlos/webconsole/websocket/command/CommandFactory.java b/src/com/mesacarlos/webconsole/websocket/command/CommandFactory.java
index 85c04cc..f9426dc 100644
--- a/src/com/mesacarlos/webconsole/websocket/command/CommandFactory.java
+++ b/src/com/mesacarlos/webconsole/websocket/command/CommandFactory.java
@@ -11,6 +11,7 @@ public class CommandFactory {
commands.put("PLAYERS", new PlayersCommand());
commands.put("CPUUSAGE", new CpuUsageCommand());
commands.put("RAMUSAGE", new RamUsageCommand());
+ commands.put("READLOGFILE", new ReadLogFileCommand());
return commands;
}
}
\ No newline at end of file
diff --git a/src/com/mesacarlos/webconsole/websocket/command/ReadLogFileCommand.java b/src/com/mesacarlos/webconsole/websocket/command/ReadLogFileCommand.java
new file mode 100644
index 0000000..41e70f8
--- /dev/null
+++ b/src/com/mesacarlos/webconsole/websocket/command/ReadLogFileCommand.java
@@ -0,0 +1,42 @@
+package com.mesacarlos.webconsole.websocket.command;
+
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.Arrays;
+import java.util.List;
+
+import org.bukkit.Bukkit;
+import org.java_websocket.WebSocket;
+
+import com.mesacarlos.webconsole.util.Internationalization;
+import com.mesacarlos.webconsole.websocket.WSServer;
+import com.mesacarlos.webconsole.websocket.response.ConsoleOutput;
+
+public class ReadLogFileCommand implements WSCommand{
+
+ @Override
+ public void execute(WSServer wsServer, WebSocket conn, String params) {
+ String log = null;
+ try {
+ log = new String(Files.readAllBytes(Paths.get("logs/latest.log")), StandardCharsets.UTF_8);
+ List newLineChars = Arrays.asList('\n', '\r');
+
+ while(newLineChars.contains(log.charAt(log.length()-1)))
+ log = log.substring(0, log.length() - 1);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ if(log == null) {
+ Bukkit.getLogger().info(Internationalization.getPhrase("log-read-error"));
+ return;
+ }
+
+ wsServer.sendToClient(conn,
+ new ConsoleOutput(log)
+ );
+ }
+
+}
\ No newline at end of file