diff --git a/package-lock.json b/package-lock.json index 00dda65..84eb91c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2411,9 +2411,9 @@ } }, "node_modules/typescript": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.2.tgz", - "integrity": "sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==", + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz", + "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==", "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", diff --git a/src/app/events/gm/GmTileList.ts b/src/app/events/gm/GmTileList.ts index c806aa4..54389b6 100644 --- a/src/app/events/gm/GmTileList.ts +++ b/src/app/events/gm/GmTileList.ts @@ -32,7 +32,7 @@ export default function (socket: TSocket, io: Server) { } files.forEach(file => { - tiles.push(file); + tiles.push(file.replace('.png', '')); }); // send over the list of tiles to the socket diff --git a/src/app/events/gm/GmTileUpload.ts b/src/app/events/gm/GmTileUpload.ts index d207df3..a04884c 100644 --- a/src/app/events/gm/GmTileUpload.ts +++ b/src/app/events/gm/GmTileUpload.ts @@ -3,6 +3,7 @@ import { TSocket } from "../../utilities/Types"; import { writeFile } from "node:fs/promises"; import path from "path"; import fs from "fs/promises"; +import { randomUUID } from 'node:crypto'; interface ITileData { [key: string]: Buffer; @@ -26,22 +27,9 @@ export default function (socket: TSocket, io: Server) { // Ensure the folder exists await fs.mkdir(public_folder, { recursive: true }); - const files = await fs.readdir(public_folder); - let highestNumber = -1; - - // Find the highest number in existing filenames - for (const file of files) { - const match = file.match(/^(\d+)\.png$/); - if (match) { - const number = parseInt(match[1], 10); - if (number > highestNumber) { - highestNumber = number; - } - } - } - - const uploadPromises = Object.entries(data).map(async ([key, tileData], index) => { - const filename = `${highestNumber + index + 1}.png`; + const uploadPromises = Object.entries(data).map(async ([key, tileData]) => { + const uuid = randomUUID(); + const filename = `${uuid}.png`; const finalFilePath = path.join(public_folder, filename); await writeFile(finalFilePath, tileData); }); diff --git a/src/app/utilities/Http.ts b/src/app/utilities/Http.ts index 2866c8e..29ee708 100644 --- a/src/app/utilities/Http.ts +++ b/src/app/utilities/Http.ts @@ -16,7 +16,7 @@ async function addHttpRoutes(app: Application) { let assets: TAsset[] = []; const tiles = listTiles(); tiles.forEach(tile => { - assets.push({key: 'tile_' + tile, value: '/tiles/' + tile, group: 'tiles', type: 'link'}); + assets.push({key: tile, value: '/tiles/' + tile, group: 'tiles', type: 'link'}); }); res.json(assets); }); @@ -95,7 +95,7 @@ function listTiles(): string[] { const files = fs.readdirSync(folder); files.forEach(file => { - tiles.push(file); + tiles.push(file.replace('.png', '')); }); } catch (err) { console.log(err);