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

View File

@ -1,6 +1,7 @@
import { Socket, Server } from "socket.io";
import ZoneRepository from "../repositories/zone.repository";
import ZoneManager from "../ZoneManager";
import {Zone} from "@prisma/client";
interface IZoneLoad {
zoneId?: number;
@ -19,11 +20,23 @@ export default function characterZoneLoad(socket: Socket, io: Server) {
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', {
success: true,
data: zone
socket.join(zone.name);
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 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);
return newUser