Added parameter on 1000 response, added MC info cmd and more changes
This commit is contained in:
parent
2e238027bb
commit
94a8831495
@ -11,9 +11,9 @@ Dont worry about privacy or security: all data is stored in your browser offline
|
||||
* Command history: Use up/down arrow keys to browse the command history, like in the real console.
|
||||
* Colors supported, for both Windows and Linux hosts. (Colors are represented different in each platform).
|
||||
* Real-time connected players, machine CPU and server RAM usage information.
|
||||
* Capable of keep connected to more than one server to keep retrieving console log in the background for them.
|
||||
* English, Spanish and Russian (thanks to Stashenko) supported.
|
||||
* Free and updated regularly.
|
||||
* And many more!
|
||||
* Free ,updated regularly, and many more!
|
||||
|
||||

|
||||
|
||||
|
3
client/README_AFTER_UPGRADE.txt
Normal file
3
client/README_AFTER_UPGRADE.txt
Normal file
@ -0,0 +1,3 @@
|
||||
If you are having issues with client not connecting and throwing random errors after a upgrade,
|
||||
please force client reload on your browser by pressing Ctrl+F5 to reload the whole page.
|
||||
This issue happens sometimes due to browsers caching JavaScript code.
|
@ -210,7 +210,7 @@
|
||||
<!-- Webpage footer -->
|
||||
<footer class="footer mt-auto py-3">
|
||||
<div class="container">
|
||||
<span class="text-muted">WebConsole v1.2 - <a href="https://github.com/mesacarlos/WebConsole">GitHub</a></span>
|
||||
<span class="text-muted">WebConsole v1.3 - <a href="https://github.com/mesacarlos/WebConsole">GitHub</a></span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
@ -220,11 +220,11 @@
|
||||
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
|
||||
|
||||
<!-- WebConsole JS Scripts -->
|
||||
<script src="scripts/WebConsoleLanguage.js"></script>
|
||||
<script src="scripts/WebConsoleConnector.js"></script>
|
||||
<script src="scripts/WebConsoleManager.js"></script>
|
||||
<script src="scripts/WebConsolePersistenceManager.js"></script>
|
||||
<script src="scripts/WebConsole.js"></script>
|
||||
<script src="scripts/WebConsoleJqueryHandler.js"></script>
|
||||
<script src="scripts/WebConsoleLanguage.js?v=1.3"></script>
|
||||
<script src="scripts/WebConsoleConnector.js?v=1.3"></script>
|
||||
<script src="scripts/WebConsoleManager.js?v=1.3"></script>
|
||||
<script src="scripts/WebConsolePersistenceManager.js?v=1.3"></script>
|
||||
<script src="scripts/WebConsole.js?v=1.3"></script>
|
||||
<script src="scripts/WebConsoleJqueryHandler.js?v=1.3"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,6 +1,10 @@
|
||||
name: WebConsole
|
||||
main: com.mesacarlos.webconsole.WebConsole
|
||||
version: 1.2
|
||||
version: 1.3
|
||||
description: WebSockets-based web console
|
||||
author: Carlos Mesa
|
||||
commands:
|
||||
commands:
|
||||
WebConsole:
|
||||
description: Shows version and active connections of WebConsole
|
||||
permission: webconsole.webconsole
|
||||
usage: /WebConsole
|
2
pom.xml
2
pom.xml
@ -4,7 +4,7 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>WebConsole</groupId>
|
||||
<artifactId>WebConsole</artifactId>
|
||||
<version>1.2</version>
|
||||
<version>1.3</version>
|
||||
<build>
|
||||
<sourceDirectory>src</sourceDirectory>
|
||||
<plugins>
|
||||
|
@ -17,8 +17,9 @@ import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.java_websocket.server.DefaultSSLWebSocketServerFactory;
|
||||
|
||||
import com.mesacarlos.webconsole.minecraft.WebConsoleCommand;
|
||||
import com.mesacarlos.webconsole.util.LogFilter;
|
||||
import com.mesacarlos.webconsole.websockets.WSServer;
|
||||
import com.mesacarlos.webconsole.websocket.WSServer;
|
||||
|
||||
public class WebConsole extends JavaPlugin {
|
||||
FileConfiguration config = this.getConfig();
|
||||
@ -31,15 +32,20 @@ public class WebConsole extends JavaPlugin {
|
||||
public void onEnable() {
|
||||
createConfig();
|
||||
|
||||
//Start WebSocket Server
|
||||
try {
|
||||
startWS();
|
||||
} catch (Exception e) {
|
||||
Bukkit.getLogger().warning("Error occured while starting WebSockets Server.");
|
||||
Bukkit.getLogger().warning("Error occured while starting WebSocket Server.");
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
|
||||
//This filter is used to read the whole console.
|
||||
Filter f = new LogFilter(getWSServer());
|
||||
((org.apache.logging.log4j.core.Logger) LogManager.getRootLogger()).addFilter(f);
|
||||
|
||||
//Register /WebConsole command
|
||||
getCommand("WebConsole").setExecutor(new WebConsoleCommand(this.getDescription().getVersion()));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -1,19 +0,0 @@
|
||||
package com.mesacarlos.webconsole.command;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.java_websocket.WebSocket;
|
||||
|
||||
import com.mesacarlos.webconsole.json.Players;
|
||||
import com.mesacarlos.webconsole.websockets.WSServer;
|
||||
|
||||
public class PlayersCommand implements WSCommand{
|
||||
|
||||
@Override
|
||||
public void execute(WSServer wsServer, WebSocket conn, String params) {
|
||||
int connectedPlayers = Bukkit.getOnlinePlayers().size();
|
||||
int maxPlayers = Bukkit.getMaxPlayers();
|
||||
|
||||
wsServer.sendToClient(conn, new Players("Currently " + connectedPlayers + " connected players for a maximum of " + maxPlayers, connectedPlayers, maxPlayers));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
package com.mesacarlos.webconsole.minecraft;
|
||||
|
||||
import java.net.InetSocketAddress;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import com.mesacarlos.webconsole.util.LoginManager;
|
||||
|
||||
public class WebConsoleCommand implements CommandExecutor {
|
||||
private String version;
|
||||
|
||||
public WebConsoleCommand(String version) {
|
||||
this.version = version;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
StringBuilder msg = new StringBuilder();
|
||||
|
||||
msg.append("WebConsole version " + version + ".\n");
|
||||
ArrayList<InetSocketAddress> connections = LoginManager.getInstance().getLoggedInUsers();
|
||||
|
||||
if (connections.isEmpty()) {
|
||||
msg.append("There are no logged in WebConsole connections now.");
|
||||
} else {
|
||||
msg.append("Connected to WebConsole from:\n");
|
||||
for (int i = 0; i < connections.size(); i++) {
|
||||
InetSocketAddress connection = connections.get(i);
|
||||
msg.append(connection.toString());
|
||||
if(i+1 < connections.size())
|
||||
msg.append("\n");
|
||||
}
|
||||
}
|
||||
|
||||
sender.sendMessage(msg.toString());
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
@ -7,7 +7,7 @@ import org.apache.logging.log4j.core.LogEvent;
|
||||
import org.apache.logging.log4j.core.Logger;
|
||||
import org.apache.logging.log4j.message.Message;
|
||||
|
||||
import com.mesacarlos.webconsole.websockets.WSServer;
|
||||
import com.mesacarlos.webconsole.websocket.WSServer;
|
||||
|
||||
public class LogFilter implements Filter{
|
||||
private WSServer wsServer;
|
||||
|
@ -2,10 +2,9 @@ package com.mesacarlos.webconsole.util;
|
||||
|
||||
import java.net.InetSocketAddress;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class LoginManager {
|
||||
private List<InetSocketAddress> loggedInUsers = new ArrayList<InetSocketAddress>();
|
||||
private ArrayList<InetSocketAddress> loggedInUsers = new ArrayList<InetSocketAddress>();
|
||||
private static LoginManager instance;
|
||||
|
||||
private LoginManager() {}
|
||||
@ -27,4 +26,8 @@ public class LoginManager {
|
||||
public boolean isLoggedIn(InetSocketAddress address) {
|
||||
return loggedInUsers.contains(address);
|
||||
}
|
||||
|
||||
public ArrayList<InetSocketAddress> getLoggedInUsers() {
|
||||
return loggedInUsers;
|
||||
}
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
package com.mesacarlos.webconsole.websockets;
|
||||
package com.mesacarlos.webconsole.websocket;
|
||||
|
||||
import java.net.InetSocketAddress;
|
||||
import java.util.Collection;
|
||||
@ -10,14 +10,14 @@ import org.java_websocket.handshake.ClientHandshake;
|
||||
import org.java_websocket.server.WebSocketServer;
|
||||
|
||||
import com.mesacarlos.webconsole.WebConsole;
|
||||
import com.mesacarlos.webconsole.command.CommandFactory;
|
||||
import com.mesacarlos.webconsole.command.WSCommand;
|
||||
import com.mesacarlos.webconsole.json.ConsoleOutput;
|
||||
import com.mesacarlos.webconsole.json.JSONOutput;
|
||||
import com.mesacarlos.webconsole.json.LoginRequired;
|
||||
import com.mesacarlos.webconsole.json.Processed;
|
||||
import com.mesacarlos.webconsole.json.UnknownCommand;
|
||||
import com.mesacarlos.webconsole.util.LoginManager;
|
||||
import com.mesacarlos.webconsole.websocket.command.CommandFactory;
|
||||
import com.mesacarlos.webconsole.websocket.command.WSCommand;
|
||||
import com.mesacarlos.webconsole.websocket.response.ConsoleOutput;
|
||||
import com.mesacarlos.webconsole.websocket.response.JSONOutput;
|
||||
import com.mesacarlos.webconsole.websocket.response.LoginRequired;
|
||||
import com.mesacarlos.webconsole.websocket.response.Processed;
|
||||
import com.mesacarlos.webconsole.websocket.response.UnknownCommand;
|
||||
|
||||
public class WSServer extends WebSocketServer {
|
||||
private HashMap<String, WSCommand> commands = CommandFactory.getCommandsHashMap();
|
@ -1,4 +1,4 @@
|
||||
package com.mesacarlos.webconsole.command;
|
||||
package com.mesacarlos.webconsole.websocket.command;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package com.mesacarlos.webconsole.command;
|
||||
package com.mesacarlos.webconsole.websocket.command;
|
||||
|
||||
import java.lang.management.ManagementFactory;
|
||||
|
||||
@ -9,8 +9,8 @@ import javax.management.ObjectName;
|
||||
|
||||
import org.java_websocket.WebSocket;
|
||||
|
||||
import com.mesacarlos.webconsole.json.CpuUsage;
|
||||
import com.mesacarlos.webconsole.websockets.WSServer;
|
||||
import com.mesacarlos.webconsole.websocket.WSServer;
|
||||
import com.mesacarlos.webconsole.websocket.response.CpuUsage;
|
||||
|
||||
public class CpuUsageCommand implements WSCommand {
|
||||
|
@ -1,4 +1,4 @@
|
||||
package com.mesacarlos.webconsole.command;
|
||||
package com.mesacarlos.webconsole.websocket.command;
|
||||
|
||||
import java.util.concurrent.ExecutionException;
|
||||
|
||||
@ -6,7 +6,7 @@ import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.ConsoleCommandSender;
|
||||
import org.java_websocket.WebSocket;
|
||||
|
||||
import com.mesacarlos.webconsole.websockets.WSServer;
|
||||
import com.mesacarlos.webconsole.websocket.WSServer;
|
||||
|
||||
public class ExecCommand implements WSCommand {
|
||||
|
@ -1,12 +1,12 @@
|
||||
package com.mesacarlos.webconsole.command;
|
||||
package com.mesacarlos.webconsole.websocket.command;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.java_websocket.WebSocket;
|
||||
|
||||
import com.mesacarlos.webconsole.json.LoginRequired;
|
||||
import com.mesacarlos.webconsole.json.Processed;
|
||||
import com.mesacarlos.webconsole.util.LoginManager;
|
||||
import com.mesacarlos.webconsole.websockets.WSServer;
|
||||
import com.mesacarlos.webconsole.websocket.WSServer;
|
||||
import com.mesacarlos.webconsole.websocket.response.LoginRequired;
|
||||
import com.mesacarlos.webconsole.websocket.response.Processed;
|
||||
|
||||
public class LogInCommand implements WSCommand {
|
||||
|
@ -0,0 +1,27 @@
|
||||
package com.mesacarlos.webconsole.websocket.command;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.java_websocket.WebSocket;
|
||||
|
||||
import com.mesacarlos.webconsole.websocket.WSServer;
|
||||
import com.mesacarlos.webconsole.websocket.response.Players;
|
||||
|
||||
public class PlayersCommand implements WSCommand{
|
||||
|
||||
@Override
|
||||
public void execute(WSServer wsServer, WebSocket conn, String params) {
|
||||
List<String> connectedPlayersList = new ArrayList<String>();
|
||||
for(Player player : Bukkit.getOnlinePlayers()) {
|
||||
connectedPlayersList.add(player.getName());
|
||||
}
|
||||
int connectedPlayers = Bukkit.getOnlinePlayers().size();
|
||||
int maxPlayers = Bukkit.getMaxPlayers();
|
||||
|
||||
wsServer.sendToClient(conn, new Players("Currently " + connectedPlayers + " connected players for a maximum of " + maxPlayers, connectedPlayers, maxPlayers, connectedPlayersList));
|
||||
}
|
||||
|
||||
}
|
@ -1,9 +1,9 @@
|
||||
package com.mesacarlos.webconsole.command;
|
||||
package com.mesacarlos.webconsole.websocket.command;
|
||||
|
||||
import org.java_websocket.WebSocket;
|
||||
|
||||
import com.mesacarlos.webconsole.json.RamUsage;
|
||||
import com.mesacarlos.webconsole.websockets.WSServer;
|
||||
import com.mesacarlos.webconsole.websocket.WSServer;
|
||||
import com.mesacarlos.webconsole.websocket.response.RamUsage;
|
||||
|
||||
public class RamUsageCommand implements WSCommand {
|
||||
|
@ -1,8 +1,8 @@
|
||||
package com.mesacarlos.webconsole.command;
|
||||
package com.mesacarlos.webconsole.websocket.command;
|
||||
|
||||
import org.java_websocket.WebSocket;
|
||||
|
||||
import com.mesacarlos.webconsole.websockets.WSServer;
|
||||
import com.mesacarlos.webconsole.websocket.WSServer;
|
||||
|
||||
public interface WSCommand {
|
||||
void execute(WSServer wsServer, WebSocket conn, String params);
|
@ -1,4 +1,4 @@
|
||||
package com.mesacarlos.webconsole.json;
|
||||
package com.mesacarlos.webconsole.websocket.response;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package com.mesacarlos.webconsole.json;
|
||||
package com.mesacarlos.webconsole.websocket.response;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package com.mesacarlos.webconsole.json;
|
||||
package com.mesacarlos.webconsole.websocket.response;
|
||||
|
||||
public interface JSONOutput {
|
||||
/**
|
@ -1,4 +1,4 @@
|
||||
package com.mesacarlos.webconsole.json;
|
||||
package com.mesacarlos.webconsole.websocket.response;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
|
@ -1,16 +1,21 @@
|
||||
package com.mesacarlos.webconsole.json;
|
||||
package com.mesacarlos.webconsole.websocket.response;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonObject;
|
||||
|
||||
public class Players implements JSONOutput{
|
||||
private String message;
|
||||
private int connectedPlayers;
|
||||
private int maxPlayers;
|
||||
private List<String> connectedPlayersList;
|
||||
|
||||
public Players(String message, int connectedPlayers, int maxPlayers) {
|
||||
public Players(String message, int connectedPlayers, int maxPlayers, List<String> connectedPlayersList) {
|
||||
this.message = message;
|
||||
this.connectedPlayers = connectedPlayers;
|
||||
this.maxPlayers = maxPlayers;
|
||||
this.connectedPlayersList = connectedPlayersList;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -38,6 +43,7 @@ public class Players implements JSONOutput{
|
||||
object.addProperty("statusDescription", "Players");
|
||||
object.addProperty("connectedPlayers", getConnectedPlayers());
|
||||
object.addProperty("maxPlayers", getMaxPlayers());
|
||||
object.addProperty("players", new Gson().toJson(connectedPlayersList));
|
||||
object.addProperty("message", getMessage());
|
||||
return object.toString();
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
package com.mesacarlos.webconsole.json;
|
||||
package com.mesacarlos.webconsole.websocket.response;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package com.mesacarlos.webconsole.json;
|
||||
package com.mesacarlos.webconsole.websocket.response;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package com.mesacarlos.webconsole.json;
|
||||
package com.mesacarlos.webconsole.websocket.response;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
|
Loading…
x
Reference in New Issue
Block a user