Skip to content

Commit f0115e5

Browse files
committed
fix varible naming issue, and auto stop server on server stopping
1 parent dd7d224 commit f0115e5

2 files changed

Lines changed: 17 additions & 6 deletions

File tree

src/main/java/fn10/smm/ModManager.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package fn10.smm;
22

33
import com.mojang.logging.LogUtils;
4+
import fn10.smm.server.ModManagerWebServer;
45
import net.fabricmc.api.ModInitializer;
56
import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback;
7+
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents;
68
import org.slf4j.Logger;
79

810
public class ModManager implements ModInitializer {
@@ -14,5 +16,6 @@ public void onInitialize() {
1416
LOG.info("ServerModManager initializing...");
1517

1618
CommandRegistrationCallback.EVENT.register(new ModManagerCommands());
19+
ServerLifecycleEvents.SERVER_STOPPING.register(ModManagerWebServer.StoppingEvent);
1720
}
1821
}

src/main/java/fn10/smm/server/ModManagerWebServer.java

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package fn10.smm.server;
22

3+
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents;
34
import net.freeutils.httpserver.HTTPServer;
45
import net.minecraft.server.MinecraftServer;
56

@@ -15,29 +16,36 @@ public class ModManagerWebServer {
1516
private HttpClient client = null;
1617
private final MinecraftServer mcServer;
1718
private static boolean webServerRunning;
19+
private static ModManagerWebServer current = null;
20+
21+
public static ServerLifecycleEvents.ServerStopping StoppingEvent = ser -> {
22+
if (current != null)
23+
current.stop();
24+
};
1825

1926
public HttpClient getClient() {
2027
return client;
2128
}
2229

2330
public static boolean isServerRunning() {return webServerRunning;}
2431

25-
public ModManagerWebServer(int port, MinecraftServer server) {
32+
public ModManagerWebServer(int port, MinecraftServer mcServer) {
2633
this.port = port;
2734
this.server = new HTTPServer();
2835
server.setPort(this.port);
29-
this.mcServer = server;
36+
this.mcServer = mcServer;
3037
}
3138

3239
public void stop() {
3340
try {
34-
LOG.error("Stopping web server...");
41+
LOG.info("Stopping web server...");
42+
if (current == this) current = null;
3543
client.close();
3644

3745
if (webServerRunning) webServerRunning = false;
3846

3947
server.stop();
40-
LOG.error("Stopped web server.");
48+
LOG.info("Stopped web server.");
4149
} catch (Exception e) {
4250
LOG.error("Failed to stop web server", e);
4351
throw e;
@@ -47,9 +55,9 @@ public void stop() {
4755
public void start() throws Exception {
4856
try {
4957
LOG.info("Starting web server...");
50-
58+
current = this;
5159
server.start();
52-
client = HttpClient.newBuilder().version(HttpClient.Version.HTTP_2).build();
60+
client = HttpClient.newBuilder().version(HttpClient.Version.HTTP_1_1).build();
5361

5462
final HTTPServer.VirtualHost host = server.getVirtualHost(null);
5563
host.addContexts(new ModManagerHandlers(mcServer));

0 commit comments

Comments
 (0)