npm update, removed player store and merged it with socket store, worked on character creation & selection (partially works)
This commit is contained in:
@ -1,8 +1,20 @@
|
||||
import { Socket, Server } from "socket.io";
|
||||
import {TSocket} from "../types/TSocket";
|
||||
import CharacterRepository from "../repositories/CharacterRepository";
|
||||
import {Character} from "@prisma/client";
|
||||
|
||||
type SocketResponseT = {
|
||||
character_id: number
|
||||
}
|
||||
|
||||
export default function CharacterConnect(socket: TSocket, io: Server) {
|
||||
socket.on('character:connect', (data: any) => {
|
||||
console.log(`---User ${socket.user?.id} has joined.`);
|
||||
socket.on('character:connect', async (data: SocketResponseT) => {
|
||||
try {
|
||||
console.log('character:connect', data.character_id);
|
||||
socket.character = await CharacterRepository.getById(data.character_id) as Character;
|
||||
socket.emit('character:connect', socket.character)
|
||||
} catch (error: any) {
|
||||
console.log('character:connect error', error);
|
||||
}
|
||||
});
|
||||
}
|
@ -1,7 +1,9 @@
|
||||
import { Socket, Server } from "socket.io";
|
||||
import {TSocket} from "../types/TSocket";
|
||||
|
||||
export default function Login(socket: Socket, io: Server) {
|
||||
socket.on('login', (data: any) => {
|
||||
console.log(`---User ${socket.id} has logged in.`);
|
||||
export default function Login(socket: TSocket, io: Server) {
|
||||
socket.on('login', () => {
|
||||
// return user data
|
||||
socket.emit('login', {user: socket.user});
|
||||
});
|
||||
}
|
@ -16,6 +16,19 @@ class CharacterRepository {
|
||||
}
|
||||
}
|
||||
|
||||
async getById(id: number): Promise<Character | null> {
|
||||
try {
|
||||
return await prisma.character.findUnique({
|
||||
where: {
|
||||
id,
|
||||
},
|
||||
});
|
||||
} catch (error: any) {
|
||||
// Handle error
|
||||
throw new Error(`Failed to get character by ID: ${error.message}`);
|
||||
}
|
||||
}
|
||||
|
||||
async create(userId: number, name: string): Promise<Character | null> {
|
||||
try {
|
||||
return await prisma.character.create({
|
||||
|
@ -1,8 +1,9 @@
|
||||
import {Socket} from "socket.io";
|
||||
import { User } from '@prisma/client';
|
||||
import {Character, User} from '@prisma/client';
|
||||
|
||||
export type TSocket = Socket & {
|
||||
user?: User
|
||||
character?: Character
|
||||
handshake?: {
|
||||
query?: {
|
||||
token?: any
|
||||
|
Reference in New Issue
Block a user