1
0
forked from noxious/server

Renamed zone > map

This commit is contained in:
2025-01-02 17:31:24 +01:00
parent 887da447e0
commit 11041fec83
54 changed files with 871 additions and 895 deletions

View File

@ -35,12 +35,12 @@ class ChatRepository extends BaseRepository {
}
}
async getByZoneId(zoneId: UUID): Promise<Chat[]> {
async getByMapId(mapId: UUID): Promise<Chat[]> {
try {
const repository = this.em.getRepository(Chat)
return await repository.find({ zone: zoneId })
return await repository.find({ map: mapId })
} catch (error: any) {
this.logger.error(`Failed to get chats by zone ID: ${error instanceof Error ? error.message : String(error)}`)
this.logger.error(`Failed to get chats by map ID: ${error instanceof Error ? error.message : String(error)}`)
return []
}
}

View File

@ -0,0 +1,33 @@
import { BaseRepository } from '#application/base/baseRepository'
import { UUID } from '#application/types'
import { MapEventTile } from '#entities/mapEventTile'
class MapEventTileRepository extends BaseRepository {
async getAll(id: UUID): Promise<MapEventTile[]> {
try {
const repository = this.em.getRepository(MapEventTile)
return await repository.find({
map: id
})
} catch (error: any) {
this.logger.error(`Failed to get map event tiles: ${error.message}`)
return []
}
}
async getEventTileByMapIdAndPosition(mapId: UUID, positionX: number, positionY: number) {
try {
const repository = this.em.getRepository(MapEventTile)
return await repository.findOne({
map: mapId,
positionX: positionX,
positionY: positionY
})
} catch (error: any) {
this.logger.error(`Failed to get map event tile: ${error.message}`)
return null
}
}
}
export default new MapEventTileRepository()

View File

@ -0,0 +1,73 @@
import { BaseRepository } from '#application/base/baseRepository'
import { UUID } from '#application/types'
import { Map } from '#entities/map'
import { MapEventTile } from '#entities/mapEventTile'
import { MapObject } from '#entities/mapObject'
class MapRepository extends BaseRepository {
async getFirst(): Promise<Map | null> {
try {
const repository = this.em.getRepository(Map)
return await repository.findOne({ id: { $exists: true } })
} catch (error: any) {
this.logger.error(`Failed to get first map: ${error instanceof Error ? error.message : String(error)}`)
return null
}
}
async getAll(): Promise<Map[]> {
try {
const repository = this.em.getRepository(Map)
return await repository.findAll()
} catch (error: any) {
this.logger.error(`Failed to get all map: ${error.message}`)
return []
}
}
async getById(id: UUID) {
try {
const repository = this.em.getRepository(Map)
return await repository.findOne({ id })
} catch (error: any) {
this.logger.error(`Failed to get map by id: ${error.message}`)
return null
}
}
async getEventTiles(id: UUID): Promise<MapEventTile[]> {
try {
const repository = this.em.getRepository(MapEventTile)
return await repository.find({ map: id })
} catch (error: any) {
this.logger.error(`Failed to get map event tiles: ${error.message}`)
return []
}
}
async getFirstEventTile(mapId: UUID, positionX: number, positionY: number): Promise<MapEventTile | null> {
try {
const repository = this.em.getRepository(MapEventTile)
return await repository.findOne({
map: mapId,
positionX: positionX,
positionY: positionY
})
} catch (error: any) {
this.logger.error(`Failed to get map event tile: ${error.message}`)
return null
}
}
async getMapObjects(id: UUID): Promise<MapObject[]> {
try {
const repository = this.em.getRepository(MapObject)
return await repository.find({ map: id })
} catch (error: any) {
this.logger.error(`Failed to get map objects: ${error.message}`)
return []
}
}
}
export default new MapRepository()

View File

@ -4,8 +4,8 @@ import { BaseRepository } from '#application/base/baseRepository'
import { UUID } from '#application/types'
import { unduplicateArray } from '#application/utilities'
import { Tile } from '#entities/tile'
import { Zone } from '#entities/zone'
import ZoneService from '#services/zoneService'
import { Map } from '#entities/map'
import MapService from '#services/mapService'
class TileRepository extends BaseRepository {
async getById(id: UUID) {
@ -37,18 +37,18 @@ class TileRepository extends BaseRepository {
}
}
async getByZoneId(zoneId: UUID) {
async getByMapId(mapId: UUID) {
try {
const repository = this.em.getRepository(Zone)
const repository = this.em.getRepository(Map)
const tileRepository = this.em.getRepository(Tile)
const zone = await repository.findOne({ id: zoneId })
if (!zone) return []
const map = await repository.findOne({ id: mapId })
if (!map) return []
const zoneTileArray = unduplicateArray(ZoneService.flattenZoneArray(JSON.parse(JSON.stringify(zone.tiles))))
const mapTileArray = unduplicateArray(MapService.flattenMapArray(JSON.parse(JSON.stringify(map.tiles))))
return await tileRepository.find({
id: zoneTileArray
id: mapTileArray
})
} catch (error: any) {
return []

View File

@ -1,33 +0,0 @@
import { BaseRepository } from '#application/base/baseRepository'
import { UUID } from '#application/types'
import { ZoneEventTile } from '#entities/zoneEventTile'
class ZoneEventTileRepository extends BaseRepository {
async getAll(id: UUID): Promise<ZoneEventTile[]> {
try {
const repository = this.em.getRepository(ZoneEventTile)
return await repository.find({
zone: id
})
} catch (error: any) {
this.logger.error(`Failed to get zone event tiles: ${error.message}`)
return []
}
}
async getEventTileByZoneIdAndPosition(zoneId: UUID, positionX: number, positionY: number) {
try {
const repository = this.em.getRepository(ZoneEventTile)
return await repository.findOne({
zone: zoneId,
positionX: positionX,
positionY: positionY
})
} catch (error: any) {
this.logger.error(`Failed to get zone event tile: ${error.message}`)
return null
}
}
}
export default new ZoneEventTileRepository()

View File

@ -1,73 +0,0 @@
import { BaseRepository } from '#application/base/baseRepository'
import { UUID } from '#application/types'
import { Zone } from '#entities/zone'
import { ZoneEventTile } from '#entities/zoneEventTile'
import { ZoneObject } from '#entities/zoneObject'
class ZoneRepository extends BaseRepository {
async getFirst(): Promise<Zone | null> {
try {
const repository = this.em.getRepository(Zone)
return await repository.findOne({ id: { $exists: true } })
} catch (error: any) {
this.logger.error(`Failed to get first zone: ${error instanceof Error ? error.message : String(error)}`)
return null
}
}
async getAll(): Promise<Zone[]> {
try {
const repository = this.em.getRepository(Zone)
return await repository.findAll()
} catch (error: any) {
this.logger.error(`Failed to get all zone: ${error.message}`)
return []
}
}
async getById(id: UUID) {
try {
const repository = this.em.getRepository(Zone)
return await repository.findOne({ id })
} catch (error: any) {
this.logger.error(`Failed to get zone by id: ${error.message}`)
return null
}
}
async getEventTiles(id: UUID): Promise<ZoneEventTile[]> {
try {
const repository = this.em.getRepository(ZoneEventTile)
return await repository.find({ zone: id })
} catch (error: any) {
this.logger.error(`Failed to get zone event tiles: ${error.message}`)
return []
}
}
async getFirstEventTile(zoneId: UUID, positionX: number, positionY: number): Promise<ZoneEventTile | null> {
try {
const repository = this.em.getRepository(ZoneEventTile)
return await repository.findOne({
zone: zoneId,
positionX: positionX,
positionY: positionY
})
} catch (error: any) {
this.logger.error(`Failed to get zone event tile: ${error.message}`)
return null
}
}
async getZoneObjects(id: UUID): Promise<ZoneObject[]> {
try {
const repository = this.em.getRepository(ZoneObject)
return await repository.find({ zone: id })
} catch (error: any) {
this.logger.error(`Failed to get zone objects: ${error.message}`)
return []
}
}
}
export default new ZoneRepository()