From 207a1e25d4eefac2344e55a5dc8765add3ef5198 Mon Sep 17 00:00:00 2001 From: Melledy <121644117+Melledy@users.noreply.github.com> Date: Wed, 19 Nov 2025 03:02:24 -0800 Subject: [PATCH] Allow the http server to serve static files (such as downloadable resources) --- .gitignore | 1 + src/main/java/emu/nebula/Config.java | 1 + src/main/java/emu/nebula/server/HttpServer.java | 8 +++++++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 149c888..00452f7 100644 --- a/.gitignore +++ b/.gitignore @@ -63,6 +63,7 @@ tmp/ /plugins /proto /resources +/web # Compiled /*.jar diff --git a/src/main/java/emu/nebula/Config.java b/src/main/java/emu/nebula/Config.java index c42c5ac..9a89d35 100644 --- a/src/main/java/emu/nebula/Config.java +++ b/src/main/java/emu/nebula/Config.java @@ -24,6 +24,7 @@ public class Config { public int customDataVersion = 0; public String resourceDir = "./resources"; + public String webFilesDir = "./web"; public String patchListPath = "./patchlist.json"; @Getter diff --git a/src/main/java/emu/nebula/server/HttpServer.java b/src/main/java/emu/nebula/server/HttpServer.java index dc32dc0..e4563fa 100644 --- a/src/main/java/emu/nebula/server/HttpServer.java +++ b/src/main/java/emu/nebula/server/HttpServer.java @@ -19,6 +19,7 @@ import emu.nebula.util.JsonUtils; import io.javalin.Javalin; import io.javalin.http.ContentType; import io.javalin.http.Context; +import io.javalin.http.staticfiles.Location; import lombok.Getter; @Getter @@ -32,8 +33,13 @@ public class HttpServer { private byte[] diff; public HttpServer(ServerType type) { - this.app = Javalin.create(); this.type = type; + this.app = Javalin.create(javalinConfig -> { + var staticFilesDir = new File(Nebula.getConfig().getWebFilesDir()); + if (staticFilesDir.exists()) { + javalinConfig.staticFiles.add(staticFilesDir.getPath(), Location.EXTERNAL); + } + }); this.loadPatchList(); this.addRoutes();