diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
index 712ab9d..eacf829 100644
--- a/.idea/jarRepositories.xml
+++ b/.idea/jarRepositories.xml
@@ -16,5 +16,10 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/jsLibraryMappings.xml b/.idea/jsLibraryMappings.xml
new file mode 100644
index 0000000..c0ff7d8
--- /dev/null
+++ b/.idea/jsLibraryMappings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index d917c34..717f90a 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,4 +1,3 @@
-
@@ -8,5 +7,5 @@
-
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index a1c7ba9..c3493f8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -126,6 +126,10 @@
${paper.version}
provided
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
diff --git a/src/main/java/com/aluer/service/ServerGuardService.java b/src/main/java/com/aluer/service/ServerGuardService.java
index 2f276d8..c74ec91 100644
--- a/src/main/java/com/aluer/service/ServerGuardService.java
+++ b/src/main/java/com/aluer/service/ServerGuardService.java
@@ -202,21 +202,42 @@ public class ServerGuardService implements CommandLineRunner {
private void printBanner() {
boolean hasAgent = agentServer != null;
+ // ANSI 颜色码
+ final String GOLD = "[38;5;220m";
+ final String CYAN = "[38;5;51m";
+ final String GRAY = "[38;5;245m";
+ final String GREEN = "[38;5;46m";
+ final String PURP = "[38;5;177m";
+ final String RST = "[0m";
+
logger.info("");
- logger.info("╔══════════════════════════════════════════════════════════════╗");
- logger.info("║ Aluer ServerGuard v5.0.0 ║");
- logger.info("║ AI-Powered Minecraft Server Protection ║");
- logger.info("║ Mode: " + String.format("%-39s", hasAgent ? "Agent Server (WebSocket)" : "External Monitor") + "║");
- logger.info("╠══════════════════════════════════════════════════════════════╣");
- logger.info("║ Java: {} ║", String.format("%-36s", System.getProperty("java.version")));
- logger.info("║ Web Console: http://0.0.0.0:{}{} ║", serverPort, " ");
+ logger.info("{}╔══════════════════════════════════════════════════════════════╗{}", GRAY, RST);
+ logger.info("{}║{} {}█████╗ ██╗ ██╗███████╗██████╗ {}███████╗██████╗ {} {}║{}", GRAY, GOLD, CYAN, GRAY, RST);
+ logger.info("{}║{} {}██╔══██╗██║ ██║██╔════╝██╔══██╗ {}██╔════╝██╔══██╗{} {}║{}", GRAY, GOLD, CYAN, GRAY, RST);
+ logger.info("{}║{} {}███████║██║ ██║█████╗ ██████╔╝ {}███████╗██████╔╝{} {}║{}", GRAY, GOLD, CYAN, GRAY, RST);
+ logger.info("{}║{} {}██╔══██║██║ ██║██╔══╝ ██╔══██╗ {}╚════██║██╔══██╗{} {}║{}", GRAY, GOLD, CYAN, GRAY, RST);
+ logger.info("{}║{} {}██║ ██║╚██████╔╝███████╗██║ ██║ {}███████║██║ ██║{} {}║{}", GRAY, GOLD, CYAN, GRAY, RST);
+ logger.info("{}║{} {}╚═╝ ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝ {}╚══════╝╚═╝ ╚═╝{} {}║{}", GRAY, GOLD, CYAN, GRAY, RST);
+ logger.info("{}║{} {}║{}", GRAY, RST);
+ logger.info("{}║{} {}AI-Powered Minecraft PaperMC Server Protection {}V5.0.0 {}║{}", GRAY, GREEN, PURP, GRAY, RST);
+ logger.info("{}║{} {}135+ Security Modules │ 100% Anti-Cheat Coverage {}║{}", GRAY, PURP, GRAY, RST);
+ logger.info("{}╠══════════════════════════════════════════════════════════════╣{}", GRAY, RST);
+ logger.info("{}║{} Java: {} {}║{}", GRAY, String.format("%-36s", System.getProperty("java.version")), GRAY, RST);
+ logger.info("{}║{} Available CPUs: {}{} {}║{}", GRAY, String.format("%-32s", Runtime.getRuntime().availableProcessors()), GRAY, RST);
+ logger.info("{}║{} Max Memory: {}{} {}║{}", GRAY, String.format("%-32s", (Runtime.getRuntime().maxMemory() / (1024 * 1024)) + " MB"), GRAY, RST);
if (hasAgent) {
- logger.info("║ Agent WS: ws://0.0.0.0:{}/agent{} ║", serverPort, " ");
+ logger.info("{}║{} Agent WS: ws://0.0.0.0:{}/agent{} {}║{}", GRAY, serverPort, " ", GRAY, RST);
}
- logger.info("║ DeepSeek AI: {}{} ║",
+ logger.info("{}║{} Web Console: http://0.0.0.0:{}{} {}║{}", GRAY, serverPort, " ", GRAY, RST);
+ logger.info("{}║{} DeepSeek AI: {}{} {}║{}", GRAY,
deepSeekClient.isEnabled() ? "enabled (" + config.getAi().getDeepseek().getModel() + ")" : "disabled",
- deepSeekClient.isEnabled() ? "" : " ");
- logger.info("╚══════════════════════════════════════════════════════════════╝");
+ deepSeekClient.isEnabled() ? "" : " ", GRAY, RST);
+ logger.info("{}║{} Mode: {} {}║{}", GRAY,
+ String.format("%-36s", hasAgent ? "Agent Server (WebSocket)" : "External Monitor"), GRAY, RST);
+ logger.info("{}╚══════════════════════════════════════════════════════════════╝{}", GRAY, RST);
+ logger.info("");
+ logger.info(" {}Type 'help' in the shell for full command reference.{}", GOLD, RST);
+ logger.info(" {}Access the web console at http://localhost:{}/{}", GOLD, serverPort, RST);
logger.info("");
}
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
index 20ab496..10a4ca7 100644
--- a/src/main/resources/plugin.yml
+++ b/src/main/resources/plugin.yml
@@ -4,7 +4,7 @@ main: com.aluer.plugin.AluerPlugin
api-version: '1.21'
description: AI-powered Minecraft PaperMC Server Protection System — 29 anti-cheat modules, DDoS defense, WAF, kernel-based threat fusion
author: Aluer
-website: https://github.com/aluer-ai/serverguard
+website: https://github.com/ZpjDev/Aluer/
load: STARTUP
prefix: Aluer