adds forge support, fixes some critical errors
This commit is contained in:
43
routes/api/fabric/index.ts
Normal file
43
routes/api/fabric/index.ts
Normal file
@@ -0,0 +1,43 @@
|
||||
import { Handler, Handlers } from "$fresh/server.ts";
|
||||
import { SERVER_STATE } from "../../../state/serverState.ts";
|
||||
import { downloadFile } from "../../../util/download.ts";
|
||||
|
||||
export const handler: Handlers = {
|
||||
async GET(_req, _ctx) {
|
||||
const gameVersions = JSON.parse(
|
||||
await Deno.readTextFile("./fabric/versions/game.json"),
|
||||
);
|
||||
const installerVersions = JSON.parse(
|
||||
await Deno.readTextFile("./fabric/versions/installer.json"),
|
||||
);
|
||||
const loaderVersions = JSON.parse(
|
||||
await Deno.readTextFile("./fabric/versions/loader.json"),
|
||||
);
|
||||
|
||||
return new Response(JSON.stringify({
|
||||
gameVersions,
|
||||
installerVersions,
|
||||
loaderVersions,
|
||||
}));
|
||||
},
|
||||
async POST(req, _ctx) {
|
||||
try {
|
||||
const data = await req.formData();
|
||||
const game = data.get("game");
|
||||
const installer = data.get("installer");
|
||||
const loader = data.get("loader");
|
||||
|
||||
await downloadFile(`https://meta.fabricmc.net/v2/versions/loader/${game}/${loader}/${installer}/server/jar`, './server/server.jar')
|
||||
|
||||
SERVER_STATE.serverType = 'fabric';
|
||||
SERVER_STATE.startMCServer();
|
||||
|
||||
const url = new URL(req.url);
|
||||
|
||||
return Response.redirect(url.origin + "/setup/eula", 303);
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
return new Response("Something bad happened", { status: 500 });
|
||||
}
|
||||
},
|
||||
};
|
Reference in New Issue
Block a user