This commit is contained in:
Dennis Postma 2024-05-14 23:43:26 +02:00
parent 2f4ae43996
commit 14b6443cef
5 changed files with 54 additions and 90 deletions

96
package-lock.json generated
View File

@ -57,9 +57,9 @@
} }
}, },
"node_modules/@prisma/client": { "node_modules/@prisma/client": {
"version": "5.13.0", "version": "5.14.0",
"resolved": "https://registry.npmjs.org/@prisma/client/-/client-5.13.0.tgz", "resolved": "https://registry.npmjs.org/@prisma/client/-/client-5.14.0.tgz",
"integrity": "sha512-uYdfpPncbZ/syJyiYBwGZS8Gt1PTNoErNYMuqHDa2r30rNSFtgTA/LXsSk55R7pdRTMi5pHkeP9B14K6nHmwkg==", "integrity": "sha512-akMSuyvLKeoU4LeyBAUdThP/uhVP3GuLygFE3MlYzaCb3/J8SfsYBE5PkaFuLuVpLyA6sFoW+16z/aPhNAESqg==",
"hasInstallScript": true, "hasInstallScript": true,
"engines": { "engines": {
"node": ">=16.13" "node": ">=16.13"
@ -74,43 +74,43 @@
} }
}, },
"node_modules/@prisma/debug": { "node_modules/@prisma/debug": {
"version": "5.13.0", "version": "5.14.0",
"resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-5.13.0.tgz", "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-5.14.0.tgz",
"integrity": "sha512-699iqlEvzyCj9ETrXhs8o8wQc/eVW+FigSsHpiskSFydhjVuwTJEfj/nIYqTaWFYuxiWQRfm3r01meuW97SZaQ==" "integrity": "sha512-iq56qBZuFfX3fCxoxT8gBX33lQzomBU0qIUaEj1RebsKVz1ob/BVH1XSBwwwvRVtZEV1b7Fxx2eVu34Ge/mg3w=="
}, },
"node_modules/@prisma/engines": { "node_modules/@prisma/engines": {
"version": "5.13.0", "version": "5.14.0",
"resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-5.13.0.tgz", "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-5.14.0.tgz",
"integrity": "sha512-hIFLm4H1boj6CBZx55P4xKby9jgDTeDG0Jj3iXtwaaHmlD5JmiDkZhh8+DYWkTGchu+rRF36AVROLnk0oaqhHw==", "integrity": "sha512-lgxkKZ6IEygVcw6IZZUlPIfLQ9hjSYAtHjZ5r64sCLDgVzsPFCi2XBBJgzPMkOQ5RHzUD4E/dVdpn9+ez8tk1A==",
"hasInstallScript": true, "hasInstallScript": true,
"dependencies": { "dependencies": {
"@prisma/debug": "5.13.0", "@prisma/debug": "5.14.0",
"@prisma/engines-version": "5.13.0-23.b9a39a7ee606c28e3455d0fd60e78c3ba82b1a2b", "@prisma/engines-version": "5.14.0-25.e9771e62de70f79a5e1c604a2d7c8e2a0a874b48",
"@prisma/fetch-engine": "5.13.0", "@prisma/fetch-engine": "5.14.0",
"@prisma/get-platform": "5.13.0" "@prisma/get-platform": "5.14.0"
} }
}, },
"node_modules/@prisma/engines-version": { "node_modules/@prisma/engines-version": {
"version": "5.13.0-23.b9a39a7ee606c28e3455d0fd60e78c3ba82b1a2b", "version": "5.14.0-25.e9771e62de70f79a5e1c604a2d7c8e2a0a874b48",
"resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-5.13.0-23.b9a39a7ee606c28e3455d0fd60e78c3ba82b1a2b.tgz", "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-5.14.0-25.e9771e62de70f79a5e1c604a2d7c8e2a0a874b48.tgz",
"integrity": "sha512-AyUuhahTINGn8auyqYdmxsN+qn0mw3eg+uhkp8zwknXYIqoT3bChG4RqNY/nfDkPvzWAPBa9mrDyBeOnWSgO6A==" "integrity": "sha512-ip6pNkRo1UxWv+6toxNcYvItNYaqQjXdFNGJ+Nuk2eYtRoEdoF13wxo7/jsClJFFenMPVNVqXQDV0oveXnR1cA=="
}, },
"node_modules/@prisma/fetch-engine": { "node_modules/@prisma/fetch-engine": {
"version": "5.13.0", "version": "5.14.0",
"resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-5.13.0.tgz", "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-5.14.0.tgz",
"integrity": "sha512-Yh4W+t6YKyqgcSEB3odBXt7QyVSm0OQlBSldQF2SNXtmOgMX8D7PF/fvH6E6qBCpjB/yeJLy/FfwfFijoHI6sA==", "integrity": "sha512-VrheA9y9DMURK5vu8OJoOgQpxOhas3qF0IBHJ8G/0X44k82kc8E0w98HCn2nhnbOOMwbWsJWXfLC2/F8n5u0gQ==",
"dependencies": { "dependencies": {
"@prisma/debug": "5.13.0", "@prisma/debug": "5.14.0",
"@prisma/engines-version": "5.13.0-23.b9a39a7ee606c28e3455d0fd60e78c3ba82b1a2b", "@prisma/engines-version": "5.14.0-25.e9771e62de70f79a5e1c604a2d7c8e2a0a874b48",
"@prisma/get-platform": "5.13.0" "@prisma/get-platform": "5.14.0"
} }
}, },
"node_modules/@prisma/get-platform": { "node_modules/@prisma/get-platform": {
"version": "5.13.0", "version": "5.14.0",
"resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-5.13.0.tgz", "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-5.14.0.tgz",
"integrity": "sha512-B/WrQwYTzwr7qCLifQzYOmQhZcFmIFhR81xC45gweInSUn2hTEbfKUPd2keAog+y5WI5xLAFNJ3wkXplvSVkSw==", "integrity": "sha512-/yAyBvcEjRv41ynZrhdrPtHgk47xLRRq/o5eWGcUpBJ1YrUZTYB8EoPiopnP7iQrMATK8stXQdPOoVlrzuTQZw==",
"dependencies": { "dependencies": {
"@prisma/debug": "5.13.0" "@prisma/debug": "5.14.0"
} }
}, },
"node_modules/@socket.io/component-emitter": { "node_modules/@socket.io/component-emitter": {
@ -213,9 +213,9 @@
"dev": true "dev": true
}, },
"node_modules/@types/node": { "node_modules/@types/node": {
"version": "20.12.11", "version": "20.12.12",
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.11.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz",
"integrity": "sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw==", "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==",
"dependencies": { "dependencies": {
"undici-types": "~5.26.4" "undici-types": "~5.26.4"
} }
@ -263,12 +263,6 @@
"socket.io": "*" "socket.io": "*"
} }
}, },
"node_modules/abbrev": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
"dev": true
},
"node_modules/accepts": { "node_modules/accepts": {
"version": "1.3.8", "version": "1.3.8",
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
@ -1087,21 +1081,6 @@
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true "dev": true
}, },
"node_modules/nopt": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
"integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==",
"dev": true,
"dependencies": {
"abbrev": "1"
},
"bin": {
"nopt": "bin/nopt.js"
},
"engines": {
"node": "*"
}
},
"node_modules/normalize-path": { "node_modules/normalize-path": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
@ -1164,12 +1143,12 @@
} }
}, },
"node_modules/prisma": { "node_modules/prisma": {
"version": "5.13.0", "version": "5.14.0",
"resolved": "https://registry.npmjs.org/prisma/-/prisma-5.13.0.tgz", "resolved": "https://registry.npmjs.org/prisma/-/prisma-5.14.0.tgz",
"integrity": "sha512-kGtcJaElNRAdAGsCNykFSZ7dBKpL14Cbs+VaQ8cECxQlRPDjBlMHNFYeYt0SKovAVy2Y65JXQwB3A5+zIQwnTg==", "integrity": "sha512-gCNZco7y5XtjrnQYeDJTiVZmT/ncqCr5RY1/Cf8X2wgLRmyh9ayPAGBNziI4qEE4S6SxCH5omQLVo9lmURaJ/Q==",
"hasInstallScript": true, "hasInstallScript": true,
"dependencies": { "dependencies": {
"@prisma/engines": "5.13.0" "@prisma/engines": "5.14.0"
}, },
"bin": { "bin": {
"prisma": "build/index.js" "prisma": "build/index.js"
@ -1514,13 +1493,10 @@
} }
}, },
"node_modules/touch": { "node_modules/touch": {
"version": "3.1.0", "version": "3.1.1",
"resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz",
"integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==",
"dev": true, "dev": true,
"dependencies": {
"nopt": "~1.0.10"
},
"bin": { "bin": {
"nodetouch": "bin/nodetouch.js" "nodetouch": "bin/nodetouch.js"
} }

View File

@ -1,6 +1,7 @@
import { Socket, Server } from "socket.io"; import { Socket, Server } from "socket.io";
import ZoneRepository from "../repositories/zone.repository"; import ZoneRepository from "../repositories/zone.repository";
import ZoneManager from "../ZoneManager"; import ZoneManager from "../ZoneManager";
import {Zone} from "@prisma/client";
interface IZoneLoad { interface IZoneLoad {
zoneId?: number; zoneId?: number;
@ -19,11 +20,23 @@ export default function characterZoneLoad(socket: Socket, io: Server) {
const zone = await ZoneRepository.getById(1); const zone = await ZoneRepository.getById(1);
// zoneManager.addCharacterToZone(1, socket.user.id) if (!zone) {
console.log(`---Zone not found.`);
return;
}
io.to(socket.id).emit('character:zone:load', { socket.join(zone.name);
success: true,
data: zone const characters = await io.in(zone.name).fetchSockets();
// update to match with model Character
// send over zone and characters
io.in(zone.name).to(socket.id).emit('character:zone:load', {
zone: zone,
characters: characters.map(socket => ({
id: socket.id
})),
}); });
}); });
} }

View File

@ -1,25 +0,0 @@
import { Socket, Server } from "socket.io";
import ZoneRepository from "../repositories/zone.repository";
import ZoneManager from "../ZoneManager";
interface IZoneLoadPlayers {
zoneId: number;
}
/**
* @TODO: Implement zone loading, check if zone id is given or else load current character zone
*
* Handle character zone load event
* @param socket
* @param io
*/
export default function characterZoneLoad(socket: Socket, io: Server) {
socket.on('character:zone:load:players', async (data: IZoneLoadPlayers) => {
console.log(`---User ${socket.id} has requested zone players for zone.` + data.zoneId);
io.to(socket.id).emit('character:zone:load:players', {
success: true,
data: ZoneManager.getCharactersInZone(data.zoneId)
});
});
}

View File

View File

@ -26,7 +26,7 @@ class UserService {
const hashedPassword = await bcrypt.hash(password, 10); const hashedPassword = await bcrypt.hash(password, 10);
const newUser = await UserRepository.create(username, hashedPassword); const newUser = await UserRepository.create(username, hashedPassword);
// @TODO: Create a new character for the user // @TODO: Remove this logic from here and move it to the character creation part wherever that'll be
const newCharacter = await CharacterRepository.create(newUser.id, newUser.username); const newCharacter = await CharacterRepository.create(newUser.id, newUser.username);
return newUser return newUser