diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..4fd0219 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +engine-strict=true \ No newline at end of file diff --git a/data/main.db b/data/main.db index 2d095a0..4222931 100644 Binary files a/data/main.db and b/data/main.db differ diff --git a/package.json b/package.json index 4e31635..4e58d35 100644 --- a/package.json +++ b/package.json @@ -26,5 +26,8 @@ }, "devDependencies": { "nodemon": "^3.1.10" + }, + "engines": { + "node": ">= 23.11.0" } } diff --git a/routes/api/v1/ban/index.js b/routes/api/v1/ban/index.js index 94cfb74..9c72d2b 100644 --- a/routes/api/v1/ban/index.js +++ b/routes/api/v1/ban/index.js @@ -5,7 +5,6 @@ const express = require("express") const router = express() router.post("/iam", (req, res) => { - console.log(req.body) if (!req.body || !req.body.hwid) { const ip = req.headers['x-forwarded-for'] || req.socket.remoteAddress utils.handleError(req, res, 422, "Paramètre manquant dans le corp de la requête : ") diff --git a/routes/api/v1/file/game.js b/routes/api/v1/file/game.js index cefebb3..ac1967a 100644 --- a/routes/api/v1/file/game.js +++ b/routes/api/v1/file/game.js @@ -4,11 +4,30 @@ const utils = require("../../../../modules/utils") const express = require("express") const router = express() -router.use("", (req, res) => { +router.use("/download", (req, res) => { const gameFiles = path.join(__dirname, "..", "..", "..", "..", "data", "gameFiles") - if (fs.existsSync(finalPath)) { + const gameFile = path.join(gameFiles, req.path) + if (fs.existsSync(gameFile)) { try { - res.status(200).json(fs.readdirSync(gameFiles, { recursive: true })) + res.download(gameFile) + } catch (error) { + console.error(error) + utils.handleError(req, res, 500, "Erreur interne du serveur.") + } + } else { + utils.handleError(req, res, 404, "Fichier introuvable.") + } +}) + +router.get("", (req, res) => { + const gameFiles = path.join(__dirname, "..", "..", "..", "..", "data", "gameFiles") + if (fs.existsSync(gameFiles)) { + try { + res.status(200).json(fs.readdirSync(gameFiles, { recursive: true }).filter(value => { + if (!fs.statSync(path.join(gameFiles, value)).isDirectory()) { + return value + } + })) } catch (error) { console.error(error) utils.handleError(req, res, 500, "Erreur interne du serveur.") diff --git a/routes/api/v1/file/hash.js b/routes/api/v1/file/hash.js index 53b08c1..d27b319 100644 --- a/routes/api/v1/file/hash.js +++ b/routes/api/v1/file/hash.js @@ -5,10 +5,10 @@ const utils = require("../../../../modules/utils") const express = require("express") const router = express() -router.use("", (req, res) => { +router.use("", async (req, res) => { const finalPath = path.join(__dirname, "..", "..", "..", "..", "data", "gameFiles", req.path) if (fs.existsSync(finalPath)) { - res.status(200).json(controller.getFileHash(finalPath)) + res.status(200).send(await controller.getFileHash(finalPath)) } else { utils.handleError(req, res, 404, "Fichier introuvable.") } diff --git a/server.js b/server.js index dcd2230..e4934af 100644 --- a/server.js +++ b/server.js @@ -35,7 +35,7 @@ io.on("connection", (socket) => { socket.on("force-update", () => { const token = socket.handshake.auth.token if (dbController.isTokenValid(token)) { - io.to("/game/updates").emit("confirmed") + io.emit("force-game-update") } else { socket.disconnect() }