From a5b4efc36e3f460c84cfb8235ec5e9162f68a56b Mon Sep 17 00:00:00 2001 From: BRanulf Date: Fri, 6 Jun 2025 12:52:15 +0800 Subject: [PATCH] aaaaaa --- gradle.properties | 2 +- .../com/example/playertime/PlayerTimeMod.java | 4 +++- .../java/com/example/playertime/WebServer.java | 2 +- .../resources/assets/playertime/icon540.png | Bin 0 -> 21594 bytes src/main/resources/fabric.mod.json | 1 + 5 files changed, 6 insertions(+), 3 deletions(-) create mode 100644 src/main/resources/assets/playertime/icon540.png diff --git a/gradle.properties b/gradle.properties index 111ebc9..a6aa206 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,7 +6,7 @@ minecraft_version=1.21.4 yarn_mappings=1.21.4+build.8 loader_version=0.16.10 # Mod Properties -mod_version=1.14.514.130 +mod_version=1.14.514.131 maven_group=org.example1 archives_base_name=ServerPlayerOnlineTracker # Dependencies diff --git a/src/main/java/com/example/playertime/PlayerTimeMod.java b/src/main/java/com/example/playertime/PlayerTimeMod.java index cef7e4a..72314f4 100644 --- a/src/main/java/com/example/playertime/PlayerTimeMod.java +++ b/src/main/java/com/example/playertime/PlayerTimeMod.java @@ -37,6 +37,8 @@ public class PlayerTimeMod implements ModInitializer { private ScheduledFuture saveTask; private static long AUTO_SAVE_INTERVAL_SECONDS; + // 后续还是想把logger改成英文 + @Override public void onInitialize() { @@ -54,7 +56,7 @@ public class PlayerTimeMod implements ModInitializer { ServerLifecycleEvents.SERVER_STARTING.register(server -> { timeTracker = new PlayerTimeTracker(server); try { - webServer = new WebServer(timeTracker, config.getWebPort(), server); // 传入 MinecraftServer + webServer = new WebServer(timeTracker, config.getWebPort(), server); webServer.start(); LOGGER.info("[在线时间] Web服务器在端口 " + config.getWebPort() + "启动"); } catch (Exception e) { diff --git a/src/main/java/com/example/playertime/WebServer.java b/src/main/java/com/example/playertime/WebServer.java index 4a86680..e58bf18 100644 --- a/src/main/java/com/example/playertime/WebServer.java +++ b/src/main/java/com/example/playertime/WebServer.java @@ -33,7 +33,7 @@ public class WebServer { Map.entry("css", "text/css"), Map.entry("js", "application/javascript"), Map.entry("json", "application/json"), - Map.entry("png", "image/png"), // Added common web asset types + Map.entry("png", "image/png"), Map.entry("jpg", "image/jpeg"), Map.entry("jpeg", "image/jpeg"), Map.entry("gif", "image/gif"), diff --git a/src/main/resources/assets/playertime/icon540.png b/src/main/resources/assets/playertime/icon540.png new file mode 100644 index 0000000000000000000000000000000000000000..fb464a69f0983a32c0657d70cd6580107815d222 GIT binary patch literal 21594 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