1
0
forked from noxious/server

Improved folder and file structure, separated prisma schema into multiple ones, removed obsolete functions, worked on dynamic character sprite logics, general enhancements

This commit is contained in:
2024-07-23 02:17:46 +02:00
parent 7531385912
commit 4b81d7ff67
17 changed files with 249 additions and 189 deletions

View File

@ -29,7 +29,8 @@ export default function (socket: TSocket, io: Server) {
const character: Character = await prisma.character.create({
data: {
name: data.name,
userId: user_id
userId: user_id,
// characterTypeId: 1 // @TODO set to chosen character type
}
})
@ -38,7 +39,8 @@ export default function (socket: TSocket, io: Server) {
socket.emit('character:create:success')
socket.emit('character:list', characters)
} catch (error: any) {
return socket.emit('notification', { message: error.errors[0]?.message ?? 'Invalid data' })
console.log('character:create error', error)
return socket.emit('notification', { message: 'Could not create character. Please try again (later).' })
}
})
}

View File

@ -1,7 +1,7 @@
import { Server } from 'socket.io'
import { TSocket } from '../../../utilities/Types'
import path from 'path'
import fs from 'fs'
import path from 'path'
import prisma from '../../../utilities/Prisma'
type Payload = {

View File

@ -42,7 +42,7 @@ export default function (socket: TSocket, io: Server) {
return
}
console.log(data);
console.log(data)
await prisma.zone.update({
where: {

View File

@ -45,25 +45,6 @@ class CharacterRepository {
}
}
async create(userId: number, name: string, role: 'player'): Promise<Character | null> {
try {
return await prisma.character.create({
data: {
userId,
name,
role,
position_x: 0, // @TODO Set default registration values in the database
position_y: 0, // @TODO Set default registration values in the database
rotation: 0, // @TODO Set default registration values in the database
zoneId: 1 // @TODO Set default registration values in the database
}
})
} catch (error: any) {
// Handle error
throw new Error(`Failed to create character: ${error.message}`)
}
}
async updatePosition(id: number, position_x: number, position_y: number): Promise<Character | null> {
try {
return await prisma.character.update({
@ -81,19 +62,6 @@ class CharacterRepository {
}
}
async delete(id: number): Promise<Character | null> {
try {
return await prisma.character.delete({
where: {
id
}
})
} catch (error: any) {
// Handle error
throw new Error(`Failed to delete character: ${error.message}`)
}
}
async deleteByUserIdAndId(userId: number, characterId: number): Promise<Character | null> {
try {
return await prisma.character.delete({