Fix DispatchHttpJson handler and add setHttpServer because Express doesn't support removing defined route. (#388)

This commit is contained in:
Muhammad Eko Prasetyo 2022-05-01 05:43:50 +07:00 committed by GitHub
parent 1908a9fd92
commit 55793867d3
2 changed files with 8 additions and 2 deletions

View File

@ -36,7 +36,7 @@ public final class DispatchHttpJsonHandler implements HttpContextHandler {
// Checking for ALL here isn't required as when ALL is enabled enableDevLogging() gets enabled
if(Grasscutter.getConfig().DebugMode.equalsIgnoreCase("MISSING") && Arrays.stream(missingRoutes).anyMatch(x -> x == req.baseUrl())) {
Grasscutter.getLogger().info(String.format("[Dispatch] Client %s %s request: ", req.ip(), req.method(), req.baseUrl()) + (Grasscutter.getConfig().DebugMode.equalsIgnoreCase("MISSING") ? "(MISSING)" : ""));
res.send(response.getBytes());
}
res.send(response);
}
}

View File

@ -50,6 +50,12 @@ public final class DispatchServer {
return httpServer;
}
public void setHttpServer(Express httpServer) {
this.httpServer.stop();
this.httpServer = httpServer;
this.httpServer.listen(Grasscutter.getConfig().getDispatchOptions().Port);
}
public Gson getGsonFactory() {
return gson;
}
@ -271,12 +277,12 @@ public final class DispatchServer {
});
// Login
httpServer.post("/hk4e_global/mdk/shield/api/login", (req, res) -> {
// Get post data
LoginAccountRequestJson requestData = null;
try {
String body = req.ctx().body();
Grasscutter.getLogger().info(body);
requestData = getGsonFactory().fromJson(body, LoginAccountRequestJson.class);
} catch (Exception ignored) {
}