Merge pull request 'Add StatCommand' (#213) from StatCommand into master
Reviewed-on: #213 Reviewed-by: Zeanon <thezeanon@gmail.com>
Dieser Commit ist enthalten in:
Commit
4502d86ea4
@ -121,6 +121,7 @@ public class BungeeCore extends Plugin {
|
|||||||
new UnIgnoreCommand();
|
new UnIgnoreCommand();
|
||||||
new PollresultCommand();
|
new PollresultCommand();
|
||||||
new ResourcereloadCommand();
|
new ResourcereloadCommand();
|
||||||
|
new StatCommand();
|
||||||
|
|
||||||
if(!EVENT_MODE){
|
if(!EVENT_MODE){
|
||||||
new WebregisterCommand();
|
new WebregisterCommand();
|
||||||
|
66
src/de/steamwar/bungeecore/commands/StatCommand.java
Normale Datei
66
src/de/steamwar/bungeecore/commands/StatCommand.java
Normale Datei
@ -0,0 +1,66 @@
|
|||||||
|
/*
|
||||||
|
This file is a part of the SteamWar software.
|
||||||
|
|
||||||
|
Copyright (C) 2020 SteamWar.de-Serverteam
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Affero General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Affero General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Affero General Public License
|
||||||
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package de.steamwar.bungeecore.commands;
|
||||||
|
|
||||||
|
import de.steamwar.bungeecore.LoadEvaluation;
|
||||||
|
import de.steamwar.bungeecore.Message;
|
||||||
|
import net.md_5.bungee.api.CommandSender;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class StatCommand extends BasicCommand {
|
||||||
|
|
||||||
|
public StatCommand() {
|
||||||
|
super("stat", "bungeecore.softreload", "stats");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(CommandSender sender, String[] args) {
|
||||||
|
try {
|
||||||
|
Process process = new ProcessBuilder("ps", "x").start();
|
||||||
|
process.waitFor();
|
||||||
|
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
|
||||||
|
Map<String, Integer> serverCounts = new HashMap<>();
|
||||||
|
bufferedReader.lines().forEach(s -> {
|
||||||
|
if (!s.contains("--port")) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
String server = "SW";
|
||||||
|
if (s.contains("ssh -L")) {
|
||||||
|
server = s.substring(s.indexOf("ssh -L") + 6).split(" ")[2];
|
||||||
|
}
|
||||||
|
serverCounts.put(server, serverCounts.computeIfAbsent(server, s1 -> 0) + 1);
|
||||||
|
});
|
||||||
|
serverCounts.forEach((s, integer) -> {
|
||||||
|
if (s.equals("SW")) {
|
||||||
|
Message.send("STAT_SERVER", sender, s, LoadEvaluation.getRamPercentage(), LoadEvaluation.getCPULoad(), integer);
|
||||||
|
} else {
|
||||||
|
Message.send("STAT_SERVER", sender, s.toUpperCase(), LoadEvaluation.getRemoteRamPercentage(s), LoadEvaluation.getRemoteCPULoad(s), integer);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new SecurityException(e.getMessage(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -104,6 +104,7 @@ MOD_YELLOW_PLUR=§7Deaktiviere die Mods\n§e{0}\n§7um weiter auf §eSteam§8War
|
|||||||
|
|
||||||
#Various commands
|
#Various commands
|
||||||
ALERT=§f{0}
|
ALERT=§f{0}
|
||||||
|
STAT_SERVER=§7Server §f{0} - §7Ram §f{1} §7CPU §f{2} §7Server Count §f{3}
|
||||||
|
|
||||||
#Ban&Mute-Command
|
#Ban&Mute-Command
|
||||||
BAN_TEAM_BANNED={0} §c{1} wurde von {2} {3} gebannt. §f§lGrund: §f{4}
|
BAN_TEAM_BANNED={0} §c{1} wurde von {2} {3} gebannt. §f§lGrund: §f{4}
|
||||||
|
In neuem Issue referenzieren
Einen Benutzer sperren