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

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