Added ESLint
This commit is contained in:
parent
343c67a110
commit
30dc69ab4b
42
eslint.config.js
Normal file
42
eslint.config.js
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
import eslint from '@eslint/js';
|
||||||
|
import tseslint from '@typescript-eslint/eslint-plugin';
|
||||||
|
import tsparser from '@typescript-eslint/parser';
|
||||||
|
import importPlugin from 'eslint-plugin-import';
|
||||||
|
|
||||||
|
export default [
|
||||||
|
eslint.configs.recommended,
|
||||||
|
{
|
||||||
|
files: ['**/*.ts'],
|
||||||
|
languageOptions: {
|
||||||
|
parser: tsparser,
|
||||||
|
parserOptions: {
|
||||||
|
project: './tsconfig.json',
|
||||||
|
ecmaVersion: 2023,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
plugins: {
|
||||||
|
'@typescript-eslint': tseslint,
|
||||||
|
'import': importPlugin,
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
...tseslint.configs['recommended'].rules,
|
||||||
|
...tseslint.configs['recommended-requiring-type-checking'].rules,
|
||||||
|
'import/order': ['error', {
|
||||||
|
'groups': [
|
||||||
|
'builtin',
|
||||||
|
'external',
|
||||||
|
'internal',
|
||||||
|
['parent', 'sibling'],
|
||||||
|
'index',
|
||||||
|
'object',
|
||||||
|
'type'
|
||||||
|
],
|
||||||
|
'newlines-between': 'always',
|
||||||
|
'alphabetize': {
|
||||||
|
'order': 'asc',
|
||||||
|
'caseInsensitive': true
|
||||||
|
}
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
];
|
@ -1,7 +1,8 @@
|
|||||||
// import { defineConfig, MariaDbDriver } from '@mikro-orm/mariadb'
|
// import { defineConfig, MariaDbDriver } from '@mikro-orm/mariadb'
|
||||||
import { defineConfig, MySqlDriver } from '@mikro-orm/mysql'
|
|
||||||
import { Migrator } from '@mikro-orm/migrations'
|
import { Migrator } from '@mikro-orm/migrations'
|
||||||
|
import { defineConfig, MySqlDriver } from '@mikro-orm/mysql'
|
||||||
import { TsMorphMetadataProvider } from '@mikro-orm/reflection'
|
import { TsMorphMetadataProvider } from '@mikro-orm/reflection'
|
||||||
|
|
||||||
import serverConfig from './src/application/config'
|
import serverConfig from './src/application/config'
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
|
2745
package-lock.json
generated
2745
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -5,7 +5,9 @@
|
|||||||
"start": "npx prisma migrate deploy && node dist/server.js",
|
"start": "npx prisma migrate deploy && node dist/server.js",
|
||||||
"dev": "nodemon --ignore 'data/*' --exec tsx src/server.ts",
|
"dev": "nodemon --ignore 'data/*' --exec tsx src/server.ts",
|
||||||
"build": "tsc",
|
"build": "tsc",
|
||||||
"format": "prettier --write src/"
|
"format": "prettier --write src/",
|
||||||
|
"lint": "eslint .",
|
||||||
|
"lint:fix": "eslint . --fix"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@mikro-orm/core": "^6.4.2",
|
"@mikro-orm/core": "^6.4.2",
|
||||||
@ -37,6 +39,11 @@
|
|||||||
"@types/jsonwebtoken": "^9.0.6",
|
"@types/jsonwebtoken": "^9.0.6",
|
||||||
"@types/node": "^20.14.11",
|
"@types/node": "^20.14.11",
|
||||||
"@types/nodemailer": "^6.4.16",
|
"@types/nodemailer": "^6.4.16",
|
||||||
|
"@typescript-eslint/eslint-plugin": "^8.18.2",
|
||||||
|
"@typescript-eslint/parser": "^8.18.2",
|
||||||
|
"eslint": "^9.17.0",
|
||||||
|
"eslint-config-prettier": "^9.1.0",
|
||||||
|
"eslint-plugin-import": "^2.31.0",
|
||||||
"nodemon": "^3.1.4",
|
"nodemon": "^3.1.4",
|
||||||
"prettier": "^3.3.3",
|
"prettier": "^3.3.3",
|
||||||
"prisma": "^6.1.0",
|
"prisma": "^6.1.0",
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
import { appLogger } from '../logger'
|
|
||||||
import { Database } from '../database'
|
|
||||||
import { EntityManager, MikroORM } from '@mikro-orm/core'
|
import { EntityManager, MikroORM } from '@mikro-orm/core'
|
||||||
|
|
||||||
|
import { Database } from '../database'
|
||||||
|
import { appLogger } from '../logger'
|
||||||
|
|
||||||
export abstract class BaseRepository {
|
export abstract class BaseRepository {
|
||||||
protected orm!: MikroORM
|
protected orm!: MikroORM
|
||||||
protected em!: EntityManager
|
protected em!: EntityManager
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
import config from '../../mikro-orm.config'
|
|
||||||
// import { MikroORM } from '@mikro-orm/mariadb'
|
// import { MikroORM } from '@mikro-orm/mariadb'
|
||||||
import { MikroORM } from '@mikro-orm/mysql'
|
import { MikroORM } from '@mikro-orm/mysql'
|
||||||
|
|
||||||
import { appLogger } from './logger'
|
import { appLogger } from './logger'
|
||||||
|
import config from '../../mikro-orm.config'
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Singleton class for initializing and managing the database connection
|
* Singleton class for initializing and managing the database connection
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
import pino from 'pino'
|
|
||||||
import fs from 'fs'
|
import fs from 'fs'
|
||||||
|
|
||||||
|
import pino from 'pino'
|
||||||
|
|
||||||
import { getRootPath } from './storage'
|
import { getRootPath } from './storage'
|
||||||
|
|
||||||
// Array of log types
|
// Array of log types
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import config from './config'
|
|
||||||
import path from 'path'
|
|
||||||
import fs from 'fs'
|
import fs from 'fs'
|
||||||
|
import path from 'path'
|
||||||
|
|
||||||
|
import config from './config'
|
||||||
|
|
||||||
export function getRootPath(folder: string, ...additionalSegments: string[]) {
|
export function getRootPath(folder: string, ...additionalSegments: string[]) {
|
||||||
return path.join(process.cwd(), folder, ...additionalSegments)
|
return path.join(process.cwd(), folder, ...additionalSegments)
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { Socket } from 'socket.io'
|
import { Socket } from 'socket.io'
|
||||||
|
|
||||||
import { Character } from '#entities/character'
|
import { Character } from '#entities/character'
|
||||||
import { ZoneEventTile } from '#entities/zoneEventTile'
|
import { ZoneEventTile } from '#entities/zoneEventTile'
|
||||||
import { ZoneEventTileTeleport } from '#entities/zoneEventTileTeleport'
|
import { ZoneEventTileTeleport } from '#entities/zoneEventTileTeleport'
|
||||||
|
@ -1,22 +1,24 @@
|
|||||||
import { Server } from 'socket.io'
|
|
||||||
import fs from 'fs'
|
import fs from 'fs'
|
||||||
import { getPublicPath } from '#application/storage'
|
|
||||||
import sharp from 'sharp'
|
import sharp from 'sharp'
|
||||||
import { Tile } from '#entities/tile'
|
import { Server } from 'socket.io'
|
||||||
|
|
||||||
|
import { CharacterGender, CharacterRace } from '#application/enums'
|
||||||
|
import { getPublicPath } from '#application/storage'
|
||||||
|
import { UUID } from '#application/types'
|
||||||
|
import { Character } from '#entities/character'
|
||||||
|
import { CharacterHair } from '#entities/characterHair'
|
||||||
|
import { CharacterType } from '#entities/characterType'
|
||||||
import { MapObject } from '#entities/mapObject'
|
import { MapObject } from '#entities/mapObject'
|
||||||
import { SpriteAction } from '#entities/spriteAction'
|
|
||||||
import { Sprite } from '#entities/sprite'
|
import { Sprite } from '#entities/sprite'
|
||||||
|
import { SpriteAction } from '#entities/spriteAction'
|
||||||
|
import { Tile } from '#entities/tile'
|
||||||
|
import { User } from '#entities/user'
|
||||||
import { Zone } from '#entities/zone'
|
import { Zone } from '#entities/zone'
|
||||||
import { ZoneEffect } from '#entities/zoneEffect'
|
import { ZoneEffect } from '#entities/zoneEffect'
|
||||||
import { User } from '#entities/user'
|
|
||||||
import { Character } from '#entities/character'
|
|
||||||
import CharacterTypeRepository from '#repositories/characterTypeRepository'
|
|
||||||
import CharacterHairRepository from '#repositories/characterHairRepository'
|
import CharacterHairRepository from '#repositories/characterHairRepository'
|
||||||
|
import CharacterTypeRepository from '#repositories/characterTypeRepository'
|
||||||
import ZoneRepository from '#repositories/zoneRepository'
|
import ZoneRepository from '#repositories/zoneRepository'
|
||||||
import { CharacterType } from '#entities/characterType'
|
|
||||||
import { CharacterGender, CharacterRace } from '#application/enums'
|
|
||||||
import { CharacterHair } from '#entities/characterHair'
|
|
||||||
import { UUID } from '#application/types'
|
|
||||||
|
|
||||||
// @TODO : Replace this with seeding
|
// @TODO : Replace this with seeding
|
||||||
// https://mikro-orm.io/docs/seeding
|
// https://mikro-orm.io/docs/seeding
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { Server } from 'socket.io'
|
import { Server } from 'socket.io'
|
||||||
|
|
||||||
import ZoneManager from '#managers/zoneManager'
|
import ZoneManager from '#managers/zoneManager'
|
||||||
|
|
||||||
type CommandInput = string[]
|
type CommandInput = string[]
|
||||||
|
@ -1,10 +1,12 @@
|
|||||||
import fs from 'fs'
|
import fs from 'fs'
|
||||||
import sharp from 'sharp'
|
|
||||||
import { commandLogger } from '#application/logger'
|
|
||||||
import { Server } from 'socket.io'
|
|
||||||
import { getPublicPath } from '#application/storage'
|
|
||||||
import path from 'path'
|
import path from 'path'
|
||||||
|
|
||||||
|
import sharp from 'sharp'
|
||||||
|
import { Server } from 'socket.io'
|
||||||
|
|
||||||
|
import { commandLogger } from '#application/logger'
|
||||||
|
import { getPublicPath } from '#application/storage'
|
||||||
|
|
||||||
export default class TilesCommand {
|
export default class TilesCommand {
|
||||||
constructor(private readonly io: Server) {}
|
constructor(private readonly io: Server) {}
|
||||||
|
|
||||||
|
@ -1,12 +1,14 @@
|
|||||||
import { Collection, Entity, ManyToOne, OneToMany, PrimaryKey, Property } from '@mikro-orm/core'
|
import { Collection, Entity, ManyToOne, OneToMany, PrimaryKey, Property } from '@mikro-orm/core'
|
||||||
import { BaseEntity } from '#application/base/baseEntity'
|
|
||||||
import { User } from './user'
|
import { CharacterEquipment } from './characterEquipment'
|
||||||
import { Zone } from './zone'
|
|
||||||
import { CharacterType } from './characterType'
|
|
||||||
import { CharacterHair } from './characterHair'
|
import { CharacterHair } from './characterHair'
|
||||||
import { CharacterItem } from './characterItem'
|
import { CharacterItem } from './characterItem'
|
||||||
import { CharacterEquipment } from './characterEquipment'
|
import { CharacterType } from './characterType'
|
||||||
import { Chat } from './chat'
|
import { Chat } from './chat'
|
||||||
|
import { User } from './user'
|
||||||
|
import { Zone } from './zone'
|
||||||
|
|
||||||
|
import { BaseEntity } from '#application/base/baseEntity'
|
||||||
|
|
||||||
@Entity()
|
@Entity()
|
||||||
export class Character extends BaseEntity {
|
export class Character extends BaseEntity {
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
import { Entity, Enum, ManyToOne, PrimaryKey } from '@mikro-orm/core'
|
import { Entity, Enum, ManyToOne, PrimaryKey } from '@mikro-orm/core'
|
||||||
import { BaseEntity } from '#application/base/baseEntity'
|
|
||||||
import { Character } from './character'
|
import { Character } from './character'
|
||||||
import { CharacterItem } from './characterItem'
|
import { CharacterItem } from './characterItem'
|
||||||
|
|
||||||
|
import { BaseEntity } from '#application/base/baseEntity'
|
||||||
import { CharacterEquipmentSlotType } from '#application/enums'
|
import { CharacterEquipmentSlotType } from '#application/enums'
|
||||||
|
|
||||||
@Entity()
|
@Entity()
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
import { Collection, Entity, ManyToOne, OneToMany, PrimaryKey, Property } from '@mikro-orm/core'
|
import { Collection, Entity, ManyToOne, OneToMany, PrimaryKey, Property } from '@mikro-orm/core'
|
||||||
import { BaseEntity } from '#application/base/baseEntity'
|
|
||||||
import { Character } from './character'
|
import { Character } from './character'
|
||||||
import { Sprite } from './sprite'
|
import { Sprite } from './sprite'
|
||||||
|
|
||||||
|
import { BaseEntity } from '#application/base/baseEntity'
|
||||||
import { CharacterGender } from '#application/enums'
|
import { CharacterGender } from '#application/enums'
|
||||||
|
|
||||||
@Entity()
|
@Entity()
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
import { Collection, Entity, ManyToOne, OneToMany, PrimaryKey, Property } from '@mikro-orm/core'
|
import { Collection, Entity, ManyToOne, OneToMany, PrimaryKey, Property } from '@mikro-orm/core'
|
||||||
import { BaseEntity } from '#application/base/baseEntity'
|
|
||||||
import { Character } from './character'
|
import { Character } from './character'
|
||||||
import { Item } from './item'
|
|
||||||
import { CharacterEquipment } from './characterEquipment'
|
import { CharacterEquipment } from './characterEquipment'
|
||||||
|
import { Item } from './item'
|
||||||
|
|
||||||
|
import { BaseEntity } from '#application/base/baseEntity'
|
||||||
|
|
||||||
@Entity()
|
@Entity()
|
||||||
export class CharacterItem extends BaseEntity {
|
export class CharacterItem extends BaseEntity {
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
import { Collection, Entity, Enum, ManyToOne, OneToMany, PrimaryKey, Property } from '@mikro-orm/core'
|
import { Collection, Entity, Enum, ManyToOne, OneToMany, PrimaryKey, Property } from '@mikro-orm/core'
|
||||||
import { BaseEntity } from '#application/base/baseEntity'
|
|
||||||
import { Character } from './character'
|
import { Character } from './character'
|
||||||
import { Sprite } from './sprite'
|
import { Sprite } from './sprite'
|
||||||
|
|
||||||
|
import { BaseEntity } from '#application/base/baseEntity'
|
||||||
import { CharacterGender, CharacterRace } from '#application/enums'
|
import { CharacterGender, CharacterRace } from '#application/enums'
|
||||||
|
|
||||||
@Entity()
|
@Entity()
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
import { Entity, ManyToOne, PrimaryKey, Property } from '@mikro-orm/core'
|
import { Entity, ManyToOne, PrimaryKey, Property } from '@mikro-orm/core'
|
||||||
import { BaseEntity } from '#application/base/baseEntity'
|
|
||||||
import { Character } from './character'
|
import { Character } from './character'
|
||||||
import { Zone } from './zone'
|
import { Zone } from './zone'
|
||||||
|
|
||||||
|
import { BaseEntity } from '#application/base/baseEntity'
|
||||||
|
|
||||||
@Entity()
|
@Entity()
|
||||||
export class Chat extends BaseEntity {
|
export class Chat extends BaseEntity {
|
||||||
@PrimaryKey()
|
@PrimaryKey()
|
||||||
|
@ -1,9 +1,12 @@
|
|||||||
import { Collection, Entity, Enum, ManyToOne, OneToMany, PrimaryKey, Property } from '@mikro-orm/core'
|
|
||||||
import { BaseEntity } from '#application/base/baseEntity'
|
|
||||||
import { Sprite } from './sprite'
|
|
||||||
import { CharacterItem } from './characterItem'
|
|
||||||
import { ItemType, ItemRarity } from '#application/enums'
|
|
||||||
import { randomUUID } from 'node:crypto'
|
import { randomUUID } from 'node:crypto'
|
||||||
|
|
||||||
|
import { Collection, Entity, Enum, ManyToOne, OneToMany, PrimaryKey, Property } from '@mikro-orm/core'
|
||||||
|
|
||||||
|
import { CharacterItem } from './characterItem'
|
||||||
|
import { Sprite } from './sprite'
|
||||||
|
|
||||||
|
import { BaseEntity } from '#application/base/baseEntity'
|
||||||
|
import { ItemType, ItemRarity } from '#application/enums'
|
||||||
import { UUID } from '#application/types'
|
import { UUID } from '#application/types'
|
||||||
|
|
||||||
@Entity()
|
@Entity()
|
||||||
|
@ -1,7 +1,10 @@
|
|||||||
import { randomUUID } from 'node:crypto'
|
import { randomUUID } from 'node:crypto'
|
||||||
|
|
||||||
import { Collection, Entity, OneToMany, PrimaryKey, Property } from '@mikro-orm/core'
|
import { Collection, Entity, OneToMany, PrimaryKey, Property } from '@mikro-orm/core'
|
||||||
import { BaseEntity } from '#application/base/baseEntity'
|
|
||||||
import { ZoneObject } from './zoneObject'
|
import { ZoneObject } from './zoneObject'
|
||||||
|
|
||||||
|
import { BaseEntity } from '#application/base/baseEntity'
|
||||||
import { UUID } from '#application/types'
|
import { UUID } from '#application/types'
|
||||||
|
|
||||||
@Entity()
|
@Entity()
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
import { Entity, ManyToOne, PrimaryKey, Property } from '@mikro-orm/core'
|
import { Entity, ManyToOne, PrimaryKey, Property } from '@mikro-orm/core'
|
||||||
import { BaseEntity } from '#application/base/baseEntity'
|
|
||||||
import { User } from './user'
|
import { User } from './user'
|
||||||
|
|
||||||
|
import { BaseEntity } from '#application/base/baseEntity'
|
||||||
|
|
||||||
@Entity()
|
@Entity()
|
||||||
export class PasswordResetToken extends BaseEntity {
|
export class PasswordResetToken extends BaseEntity {
|
||||||
@PrimaryKey()
|
@PrimaryKey()
|
||||||
|
@ -1,7 +1,10 @@
|
|||||||
import { randomUUID } from 'node:crypto'
|
import { randomUUID } from 'node:crypto'
|
||||||
|
|
||||||
import { Collection, Entity, OneToMany, PrimaryKey, Property } from '@mikro-orm/core'
|
import { Collection, Entity, OneToMany, PrimaryKey, Property } from '@mikro-orm/core'
|
||||||
import { BaseEntity } from '#application/base/baseEntity'
|
|
||||||
import { SpriteAction } from './spriteAction'
|
import { SpriteAction } from './spriteAction'
|
||||||
|
|
||||||
|
import { BaseEntity } from '#application/base/baseEntity'
|
||||||
import { UUID } from '#application/types'
|
import { UUID } from '#application/types'
|
||||||
|
|
||||||
@Entity()
|
@Entity()
|
||||||
|
@ -1,7 +1,10 @@
|
|||||||
import { randomUUID } from 'node:crypto'
|
import { randomUUID } from 'node:crypto'
|
||||||
|
|
||||||
import { Entity, ManyToOne, PrimaryKey, Property } from '@mikro-orm/core'
|
import { Entity, ManyToOne, PrimaryKey, Property } from '@mikro-orm/core'
|
||||||
import { BaseEntity } from '#application/base/baseEntity'
|
|
||||||
import { Sprite } from './sprite'
|
import { Sprite } from './sprite'
|
||||||
|
|
||||||
|
import { BaseEntity } from '#application/base/baseEntity'
|
||||||
import { UUID } from '#application/types'
|
import { UUID } from '#application/types'
|
||||||
|
|
||||||
@Entity()
|
@Entity()
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
import { randomUUID } from 'node:crypto'
|
import { randomUUID } from 'node:crypto'
|
||||||
|
|
||||||
import { Entity, PrimaryKey, Property } from '@mikro-orm/core'
|
import { Entity, PrimaryKey, Property } from '@mikro-orm/core'
|
||||||
|
|
||||||
import { BaseEntity } from '#application/base/baseEntity'
|
import { BaseEntity } from '#application/base/baseEntity'
|
||||||
import { UUID } from '#application/types'
|
import { UUID } from '#application/types'
|
||||||
|
|
||||||
|
@ -1,8 +1,11 @@
|
|||||||
import { Collection, Entity, OneToMany, PrimaryKey, Property } from '@mikro-orm/core'
|
import { Collection, Entity, OneToMany, PrimaryKey, Property } from '@mikro-orm/core'
|
||||||
import { BaseEntity } from '#application/base/baseEntity'
|
import bcrypt from 'bcryptjs'
|
||||||
|
|
||||||
import { Character } from './character'
|
import { Character } from './character'
|
||||||
import { PasswordResetToken } from './passwordResetToken'
|
import { PasswordResetToken } from './passwordResetToken'
|
||||||
import bcrypt from 'bcryptjs'
|
|
||||||
|
import { BaseEntity } from '#application/base/baseEntity'
|
||||||
|
|
||||||
|
|
||||||
@Entity()
|
@Entity()
|
||||||
export class User extends BaseEntity {
|
export class User extends BaseEntity {
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { Entity, PrimaryKey, Property } from '@mikro-orm/core'
|
import { Entity, PrimaryKey, Property } from '@mikro-orm/core'
|
||||||
|
|
||||||
import { BaseEntity } from '#application/base/baseEntity'
|
import { BaseEntity } from '#application/base/baseEntity'
|
||||||
|
|
||||||
@Entity()
|
@Entity()
|
||||||
|
@ -1,11 +1,13 @@
|
|||||||
import { Collection, Entity, OneToMany, PrimaryKey, Property } from '@mikro-orm/core'
|
import { Collection, Entity, OneToMany, PrimaryKey, Property } from '@mikro-orm/core'
|
||||||
import { BaseEntity } from '#application/base/baseEntity'
|
|
||||||
|
import { Character } from './character'
|
||||||
|
import { Chat } from './chat'
|
||||||
import { ZoneEffect } from './zoneEffect'
|
import { ZoneEffect } from './zoneEffect'
|
||||||
import { ZoneEventTile } from './zoneEventTile'
|
import { ZoneEventTile } from './zoneEventTile'
|
||||||
import { ZoneEventTileTeleport } from './zoneEventTileTeleport'
|
import { ZoneEventTileTeleport } from './zoneEventTileTeleport'
|
||||||
import { ZoneObject } from './zoneObject'
|
import { ZoneObject } from './zoneObject'
|
||||||
import { Character } from './character'
|
|
||||||
import { Chat } from './chat'
|
import { BaseEntity } from '#application/base/baseEntity'
|
||||||
|
|
||||||
@Entity()
|
@Entity()
|
||||||
export class Zone extends BaseEntity {
|
export class Zone extends BaseEntity {
|
||||||
|
@ -1,7 +1,10 @@
|
|||||||
import { randomUUID } from 'node:crypto'
|
import { randomUUID } from 'node:crypto'
|
||||||
|
|
||||||
import { Entity, ManyToOne, PrimaryKey, Property } from '@mikro-orm/core'
|
import { Entity, ManyToOne, PrimaryKey, Property } from '@mikro-orm/core'
|
||||||
import { BaseEntity } from '#application/base/baseEntity'
|
|
||||||
import { Zone } from './zone'
|
import { Zone } from './zone'
|
||||||
|
|
||||||
|
import { BaseEntity } from '#application/base/baseEntity'
|
||||||
import { UUID } from '#application/types'
|
import { UUID } from '#application/types'
|
||||||
|
|
||||||
@Entity()
|
@Entity()
|
||||||
|
@ -1,11 +1,14 @@
|
|||||||
import { Entity, Enum, ManyToOne, OneToOne, PrimaryKey, Property } from '@mikro-orm/core'
|
|
||||||
import { BaseEntity } from '#application/base/baseEntity'
|
|
||||||
import { Zone } from './zone'
|
|
||||||
import { ZoneEventTileType } from '#application/enums'
|
|
||||||
import { ZoneEventTileTeleport } from './zoneEventTileTeleport'
|
|
||||||
import { UUID } from '#application/types'
|
|
||||||
import { randomUUID } from 'node:crypto'
|
import { randomUUID } from 'node:crypto'
|
||||||
|
|
||||||
|
import { Entity, Enum, ManyToOne, OneToOne, PrimaryKey, Property } from '@mikro-orm/core'
|
||||||
|
|
||||||
|
import { Zone } from './zone'
|
||||||
|
import { ZoneEventTileTeleport } from './zoneEventTileTeleport'
|
||||||
|
|
||||||
|
import { BaseEntity } from '#application/base/baseEntity'
|
||||||
|
import { ZoneEventTileType } from '#application/enums'
|
||||||
|
import { UUID } from '#application/types'
|
||||||
|
|
||||||
@Entity()
|
@Entity()
|
||||||
export class ZoneEventTile extends BaseEntity {
|
export class ZoneEventTile extends BaseEntity {
|
||||||
@PrimaryKey()
|
@PrimaryKey()
|
||||||
|
@ -1,8 +1,11 @@
|
|||||||
import { randomUUID } from 'node:crypto'
|
import { randomUUID } from 'node:crypto'
|
||||||
|
|
||||||
import { Entity, ManyToOne, OneToOne, PrimaryKey, Property } from '@mikro-orm/core'
|
import { Entity, ManyToOne, OneToOne, PrimaryKey, Property } from '@mikro-orm/core'
|
||||||
import { BaseEntity } from '#application/base/baseEntity'
|
|
||||||
import { Zone } from './zone'
|
import { Zone } from './zone'
|
||||||
import { ZoneEventTile } from './zoneEventTile'
|
import { ZoneEventTile } from './zoneEventTile'
|
||||||
|
|
||||||
|
import { BaseEntity } from '#application/base/baseEntity'
|
||||||
import { UUID } from '#application/types'
|
import { UUID } from '#application/types'
|
||||||
|
|
||||||
@Entity()
|
@Entity()
|
||||||
|
@ -1,10 +1,13 @@
|
|||||||
import { Entity, ManyToOne, PrimaryKey, Property } from '@mikro-orm/core'
|
|
||||||
import { BaseEntity } from '#application/base/baseEntity'
|
|
||||||
import { Zone } from './zone'
|
|
||||||
import { MapObject } from '#entities/mapObject'
|
|
||||||
import { UUID } from '#application/types'
|
|
||||||
import { randomUUID } from 'node:crypto'
|
import { randomUUID } from 'node:crypto'
|
||||||
|
|
||||||
|
import { Entity, ManyToOne, PrimaryKey, Property } from '@mikro-orm/core'
|
||||||
|
|
||||||
|
import { Zone } from './zone'
|
||||||
|
|
||||||
|
import { BaseEntity } from '#application/base/baseEntity'
|
||||||
|
import { UUID } from '#application/types'
|
||||||
|
import { MapObject } from '#entities/mapObject'
|
||||||
|
|
||||||
//@TODO : Rename mapObject
|
//@TODO : Rename mapObject
|
||||||
@Entity()
|
@Entity()
|
||||||
export class ZoneObject extends BaseEntity {
|
export class ZoneObject extends BaseEntity {
|
||||||
|
@ -1,12 +1,14 @@
|
|||||||
import { Request, Response } from 'express'
|
|
||||||
import fs from 'fs'
|
import fs from 'fs'
|
||||||
|
|
||||||
|
import { Request, Response } from 'express'
|
||||||
|
|
||||||
import { BaseController } from '#application/base/baseController'
|
import { BaseController } from '#application/base/baseController'
|
||||||
import { httpLogger } from '#application/logger'
|
import { httpLogger } from '#application/logger'
|
||||||
import { getPublicPath } from '#application/storage'
|
import { getPublicPath } from '#application/storage'
|
||||||
|
import { AssetData, UUID } from '#application/types'
|
||||||
|
import SpriteRepository from '#repositories/spriteRepository'
|
||||||
import TileRepository from '#repositories/tileRepository'
|
import TileRepository from '#repositories/tileRepository'
|
||||||
import ZoneRepository from '#repositories/zoneRepository'
|
import ZoneRepository from '#repositories/zoneRepository'
|
||||||
import SpriteRepository from '#repositories/spriteRepository'
|
|
||||||
import { AssetData, UUID } from '#application/types'
|
|
||||||
|
|
||||||
export class AssetsController extends BaseController {
|
export class AssetsController extends BaseController {
|
||||||
/**
|
/**
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
import jwt from 'jsonwebtoken'
|
|
||||||
import { Request, Response } from 'express'
|
import { Request, Response } from 'express'
|
||||||
|
import jwt from 'jsonwebtoken'
|
||||||
|
|
||||||
import { BaseController } from '#application/base/baseController'
|
import { BaseController } from '#application/base/baseController'
|
||||||
import UserService from '#services/userService'
|
|
||||||
import config from '#application/config'
|
import config from '#application/config'
|
||||||
import { loginAccountSchema, registerAccountSchema, resetPasswordSchema, newPasswordSchema } from '#application/zodTypes'
|
import { loginAccountSchema, registerAccountSchema, resetPasswordSchema, newPasswordSchema } from '#application/zodTypes'
|
||||||
|
import UserService from '#services/userService'
|
||||||
|
|
||||||
export class AuthController extends BaseController {
|
export class AuthController extends BaseController {
|
||||||
private userService: UserService
|
private userService: UserService
|
||||||
|
@ -1,11 +1,13 @@
|
|||||||
|
import fs from 'fs'
|
||||||
|
|
||||||
import { Request, Response } from 'express'
|
import { Request, Response } from 'express'
|
||||||
import sharp from 'sharp'
|
import sharp from 'sharp'
|
||||||
import fs from 'fs'
|
|
||||||
import { BaseController } from '#application/base/baseController'
|
import { BaseController } from '#application/base/baseController'
|
||||||
import CharacterRepository from '#repositories/characterRepository'
|
|
||||||
import CharacterHairRepository from '#repositories/characterHairRepository'
|
|
||||||
import CharacterTypeRepository from '#repositories/characterTypeRepository'
|
|
||||||
import { getPublicPath } from '#application/storage'
|
import { getPublicPath } from '#application/storage'
|
||||||
|
import CharacterHairRepository from '#repositories/characterHairRepository'
|
||||||
|
import CharacterRepository from '#repositories/characterRepository'
|
||||||
|
import CharacterTypeRepository from '#repositories/characterTypeRepository'
|
||||||
|
|
||||||
interface AvatarOptions {
|
interface AvatarOptions {
|
||||||
characterTypeId: number
|
characterTypeId: number
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
import { Application } from 'express'
|
import { Application } from 'express'
|
||||||
|
|
||||||
|
import { AssetsController } from './controllers/assets'
|
||||||
import { AuthController } from './controllers/auth'
|
import { AuthController } from './controllers/auth'
|
||||||
import { AvatarController } from './controllers/avatar'
|
import { AvatarController } from './controllers/avatar'
|
||||||
import { AssetsController } from './controllers/assets'
|
|
||||||
|
|
||||||
export class HttpRouter {
|
export class HttpRouter {
|
||||||
private readonly app: Application
|
private readonly app: Application
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import { TSocket } from '#application/types'
|
|
||||||
import { Server as SocketServer } from 'socket.io'
|
import { Server as SocketServer } from 'socket.io'
|
||||||
|
|
||||||
|
import { TSocket } from '#application/types'
|
||||||
|
|
||||||
export default class SomeJob {
|
export default class SomeJob {
|
||||||
constructor(private params: any) {}
|
constructor(private params: any) {}
|
||||||
|
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
import * as readline from 'readline'
|
|
||||||
import * as fs from 'fs'
|
import * as fs from 'fs'
|
||||||
import * as path from 'path'
|
import * as path from 'path'
|
||||||
|
import * as readline from 'readline'
|
||||||
|
|
||||||
import { Server } from 'socket.io'
|
import { Server } from 'socket.io'
|
||||||
|
|
||||||
import { commandLogger } from '#application/logger'
|
import { commandLogger } from '#application/logger'
|
||||||
import { getAppPath } from '#application/storage'
|
import { getAppPath } from '#application/storage'
|
||||||
|
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
import { Server } from 'socket.io'
|
import { Server } from 'socket.io'
|
||||||
|
|
||||||
import { appLogger } from '#application/logger'
|
import { appLogger } from '#application/logger'
|
||||||
import worldService from '#services/worldService'
|
|
||||||
import worldRepository from '#repositories/worldRepository'
|
import worldRepository from '#repositories/worldRepository'
|
||||||
|
import worldService from '#services/worldService'
|
||||||
|
|
||||||
class DateManager {
|
class DateManager {
|
||||||
private static readonly GAME_SPEED = 8 // 24 game hours / 3 real hours
|
private static readonly GAME_SPEED = 8 // 24 game hours / 3 real hours
|
||||||
|
@ -1,11 +1,14 @@
|
|||||||
import IORedis from 'ioredis'
|
|
||||||
import { Job, Queue, Worker } from 'bullmq'
|
|
||||||
import config from '#application/config'
|
|
||||||
import { Server as SocketServer } from 'socket.io'
|
|
||||||
import { TSocket } from '#application/types'
|
|
||||||
import { queueLogger } from '#application/logger'
|
|
||||||
import fs from 'fs'
|
import fs from 'fs'
|
||||||
|
|
||||||
|
import { Job, Queue, Worker } from 'bullmq'
|
||||||
|
import IORedis from 'ioredis'
|
||||||
|
import { Server as SocketServer } from 'socket.io'
|
||||||
|
|
||||||
|
import config from '#application/config'
|
||||||
|
import { queueLogger } from '#application/logger'
|
||||||
import { getAppPath } from '#application/storage'
|
import { getAppPath } from '#application/storage'
|
||||||
|
import { TSocket } from '#application/types'
|
||||||
|
|
||||||
|
|
||||||
class QueueManager {
|
class QueueManager {
|
||||||
private connection!: IORedis
|
private connection!: IORedis
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { User } from '@prisma/client'
|
import { User } from '@prisma/client'
|
||||||
|
|
||||||
import { appLogger } from '#application/logger'
|
import { appLogger } from '#application/logger'
|
||||||
|
|
||||||
type TLoggedInUsers = {
|
type TLoggedInUsers = {
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
import { Server } from 'socket.io'
|
import { Server } from 'socket.io'
|
||||||
|
|
||||||
import { appLogger } from '#application/logger'
|
import { appLogger } from '#application/logger'
|
||||||
import worldService from '#services/worldService'
|
|
||||||
import worldRepository from '#repositories/worldRepository'
|
import worldRepository from '#repositories/worldRepository'
|
||||||
|
import worldService from '#services/worldService'
|
||||||
|
|
||||||
interface WeatherState {
|
interface WeatherState {
|
||||||
isRainEnabled: boolean
|
isRainEnabled: boolean
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import ZoneRepository from '#repositories/zoneRepository'
|
|
||||||
import { gameLogger } from '#application/logger'
|
import { gameLogger } from '#application/logger'
|
||||||
import ZoneCharacter from '#models/zoneCharacter'
|
|
||||||
import LoadedZone from '#models/loadedZone'
|
|
||||||
import { Zone } from '#entities/zone'
|
import { Zone } from '#entities/zone'
|
||||||
|
import LoadedZone from '#models/loadedZone'
|
||||||
|
import ZoneCharacter from '#models/zoneCharacter'
|
||||||
|
import ZoneRepository from '#repositories/zoneRepository'
|
||||||
|
|
||||||
class ZoneManager {
|
class ZoneManager {
|
||||||
private readonly zones = new Map<number, LoadedZone>()
|
private readonly zones = new Map<number, LoadedZone>()
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
import { verify } from 'jsonwebtoken'
|
import { verify } from 'jsonwebtoken'
|
||||||
import { TSocket } from '#application/types'
|
|
||||||
import config from '#application/config'
|
import config from '#application/config'
|
||||||
import { gameLogger } from '#application/logger'
|
import { gameLogger } from '#application/logger'
|
||||||
|
import { TSocket } from '#application/types'
|
||||||
|
|
||||||
class SocketAuthenticator {
|
class SocketAuthenticator {
|
||||||
private socket: TSocket
|
private socket: TSocket
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
import zoneEventTileRepository from '#repositories/zoneEventTileRepository'
|
|
||||||
import ZoneCharacter from './zoneCharacter'
|
import ZoneCharacter from './zoneCharacter'
|
||||||
|
|
||||||
import { Character } from '#entities/character'
|
import { Character } from '#entities/character'
|
||||||
import { Zone } from '#entities/zone'
|
import { Zone } from '#entities/zone'
|
||||||
|
import zoneEventTileRepository from '#repositories/zoneEventTileRepository'
|
||||||
|
|
||||||
class LoadedZone {
|
class LoadedZone {
|
||||||
private readonly zone: Zone
|
private readonly zone: Zone
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { CharacterService } from '#services/characterService'
|
|
||||||
import { Character } from '#entities/character'
|
import { Character } from '#entities/character'
|
||||||
|
import { CharacterService } from '#services/characterService'
|
||||||
|
|
||||||
class ZoneCharacter {
|
class ZoneCharacter {
|
||||||
public readonly character: Character
|
public readonly character: Character
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { appLogger } from '#application/logger'
|
|
||||||
import { BaseRepository } from '#application/base/baseRepository'
|
import { BaseRepository } from '#application/base/baseRepository'
|
||||||
|
import { appLogger } from '#application/logger'
|
||||||
import { CharacterHair } from '#entities/characterHair'
|
import { CharacterHair } from '#entities/characterHair'
|
||||||
|
|
||||||
class CharacterHairRepository extends BaseRepository {
|
class CharacterHairRepository extends BaseRepository {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { appLogger } from '#application/logger'
|
|
||||||
import { BaseRepository } from '#application/base/baseRepository'
|
import { BaseRepository } from '#application/base/baseRepository'
|
||||||
|
import { appLogger } from '#application/logger'
|
||||||
import { Character } from '#entities/character'
|
import { Character } from '#entities/character'
|
||||||
|
|
||||||
class CharacterRepository extends BaseRepository {
|
class CharacterRepository extends BaseRepository {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { appLogger } from '#application/logger'
|
|
||||||
import { BaseRepository } from '#application/base/baseRepository'
|
import { BaseRepository } from '#application/base/baseRepository'
|
||||||
|
import { appLogger } from '#application/logger'
|
||||||
import { CharacterType } from '#entities/characterType'
|
import { CharacterType } from '#entities/characterType'
|
||||||
|
|
||||||
class CharacterTypeRepository extends BaseRepository {
|
class CharacterTypeRepository extends BaseRepository {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { appLogger } from '#application/logger'
|
|
||||||
import { BaseRepository } from '#application/base/baseRepository'
|
import { BaseRepository } from '#application/base/baseRepository'
|
||||||
|
import { appLogger } from '#application/logger'
|
||||||
import { Chat } from '#entities/chat'
|
import { Chat } from '#entities/chat'
|
||||||
|
|
||||||
class ChatRepository extends BaseRepository {
|
class ChatRepository extends BaseRepository {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { appLogger } from '#application/logger'
|
|
||||||
import { BaseRepository } from '#application/base/baseRepository'
|
import { BaseRepository } from '#application/base/baseRepository'
|
||||||
|
import { appLogger } from '#application/logger'
|
||||||
import { Item } from '#entities/item'
|
import { Item } from '#entities/item'
|
||||||
|
|
||||||
class ItemRepository extends BaseRepository {
|
class ItemRepository extends BaseRepository {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { appLogger } from '#application/logger'
|
|
||||||
import { BaseRepository } from '#application/base/baseRepository' // Import the global Prisma instance
|
import { BaseRepository } from '#application/base/baseRepository' // Import the global Prisma instance
|
||||||
|
import { appLogger } from '#application/logger'
|
||||||
import { PasswordResetToken } from '#entities/passwordResetToken'
|
import { PasswordResetToken } from '#entities/passwordResetToken'
|
||||||
|
|
||||||
class PasswordResetTokenRepository extends BaseRepository {
|
class PasswordResetTokenRepository extends BaseRepository {
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { FilterValue } from '@mikro-orm/core'
|
import { FilterValue } from '@mikro-orm/core'
|
||||||
|
|
||||||
import { BaseRepository } from '#application/base/baseRepository'
|
import { BaseRepository } from '#application/base/baseRepository'
|
||||||
import { Sprite } from '#entities/sprite'
|
import { Sprite } from '#entities/sprite'
|
||||||
|
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
import { FilterValue } from '@mikro-orm/core'
|
import { FilterValue } from '@mikro-orm/core'
|
||||||
|
|
||||||
import { BaseRepository } from '#application/base/baseRepository'
|
import { BaseRepository } from '#application/base/baseRepository'
|
||||||
import { Tile } from '#entities/tile'
|
|
||||||
import { Zone } from '#entities/zone'
|
|
||||||
import { unduplicateArray } from '#application/utilities'
|
import { unduplicateArray } from '#application/utilities'
|
||||||
import { FlattenZoneArray } from '#application/zone'
|
import { FlattenZoneArray } from '#application/zone'
|
||||||
|
import { Tile } from '#entities/tile'
|
||||||
|
import { Zone } from '#entities/zone'
|
||||||
|
|
||||||
class TileRepository extends BaseRepository {
|
class TileRepository extends BaseRepository {
|
||||||
async getById(id: FilterValue<`${string}-${string}-${string}-${string}-${string}`>): Promise<any> {
|
async getById(id: FilterValue<`${string}-${string}-${string}-${string}-${string}`>): Promise<any> {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { appLogger } from '#application/logger'
|
|
||||||
import { BaseRepository } from '#application/base/baseRepository'
|
import { BaseRepository } from '#application/base/baseRepository'
|
||||||
|
import { appLogger } from '#application/logger'
|
||||||
import { User } from '#entities/user'
|
import { User } from '#entities/user'
|
||||||
|
|
||||||
class UserRepository extends BaseRepository {
|
class UserRepository extends BaseRepository {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { gameLogger } from '#application/logger'
|
|
||||||
import { BaseRepository } from '#application/base/baseRepository'
|
import { BaseRepository } from '#application/base/baseRepository'
|
||||||
|
import { gameLogger } from '#application/logger'
|
||||||
import { World } from '#entities/world'
|
import { World } from '#entities/world'
|
||||||
|
|
||||||
class WorldRepository extends BaseRepository {
|
class WorldRepository extends BaseRepository {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { appLogger } from '#application/logger'
|
|
||||||
import { BaseRepository } from '#application/base/baseRepository'
|
import { BaseRepository } from '#application/base/baseRepository'
|
||||||
|
import { appLogger } from '#application/logger'
|
||||||
import { ZoneEventTile } from '#entities/zoneEventTile'
|
import { ZoneEventTile } from '#entities/zoneEventTile'
|
||||||
|
|
||||||
class ZoneEventTileRepository extends BaseRepository {
|
class ZoneEventTileRepository extends BaseRepository {
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import { appLogger } from '#application/logger'
|
|
||||||
import { BaseRepository } from '#application/base/baseRepository'
|
import { BaseRepository } from '#application/base/baseRepository'
|
||||||
|
import { appLogger } from '#application/logger'
|
||||||
|
import { Zone } from '#entities/zone'
|
||||||
import { ZoneEventTile } from '#entities/zoneEventTile'
|
import { ZoneEventTile } from '#entities/zoneEventTile'
|
||||||
import { ZoneObject } from '#entities/zoneObject'
|
import { ZoneObject } from '#entities/zoneObject'
|
||||||
import { Zone } from '#entities/zone'
|
|
||||||
|
|
||||||
class ZoneRepository extends BaseRepository {
|
class ZoneRepository extends BaseRepository {
|
||||||
async getFirst(): Promise<Zone | null> {
|
async getFirst(): Promise<Zone | null> {
|
||||||
|
@ -1,21 +1,23 @@
|
|||||||
import fs from 'fs'
|
import fs from 'fs'
|
||||||
import express, { Application } from 'express'
|
|
||||||
import config from '#application/config'
|
|
||||||
import { getAppPath } from '#application/storage'
|
|
||||||
import { createServer as httpServer, Server as HTTPServer } from 'http'
|
import { createServer as httpServer, Server as HTTPServer } from 'http'
|
||||||
|
|
||||||
import cors from 'cors'
|
import cors from 'cors'
|
||||||
|
import express, { Application } from 'express'
|
||||||
import { Server as SocketServer } from 'socket.io'
|
import { Server as SocketServer } from 'socket.io'
|
||||||
import { Authentication } from '#middleware/authentication'
|
|
||||||
import { TSocket } from '#application/types'
|
import config from '#application/config'
|
||||||
import { Database } from '#application/database'
|
import { Database } from '#application/database'
|
||||||
import { appLogger, watchLogs } from '#application/logger'
|
import { appLogger, watchLogs } from '#application/logger'
|
||||||
import ZoneManager from '#managers/zoneManager'
|
import { getAppPath } from '#application/storage'
|
||||||
import UserManager from '#managers/userManager'
|
import { TSocket } from '#application/types'
|
||||||
import CommandManager from '#managers/commandManager'
|
|
||||||
import QueueManager from '#managers/queueManager'
|
|
||||||
import DateManager from '#managers/dateManager'
|
|
||||||
import WeatherManager from '#managers/weatherManager'
|
|
||||||
import { HttpRouter } from '#http/router'
|
import { HttpRouter } from '#http/router'
|
||||||
|
import CommandManager from '#managers/commandManager'
|
||||||
|
import DateManager from '#managers/dateManager'
|
||||||
|
import QueueManager from '#managers/queueManager'
|
||||||
|
import UserManager from '#managers/userManager'
|
||||||
|
import WeatherManager from '#managers/weatherManager'
|
||||||
|
import ZoneManager from '#managers/zoneManager'
|
||||||
|
import { Authentication } from '#middleware/authentication'
|
||||||
|
|
||||||
export class Server {
|
export class Server {
|
||||||
private readonly app: Application
|
private readonly app: Application
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
import { AStar } from '#application/character/aStar'
|
import { AStar } from '#application/character/aStar'
|
||||||
import ZoneManager from '#managers/zoneManager'
|
|
||||||
import Rotation from '#application/character/rotation'
|
import Rotation from '#application/character/rotation'
|
||||||
import { appLogger, gameLogger } from '#application/logger'
|
|
||||||
import { Database } from '#application/database'
|
import { Database } from '#application/database'
|
||||||
|
import { appLogger, gameLogger } from '#application/logger'
|
||||||
import { Character } from '#entities/character'
|
import { Character } from '#entities/character'
|
||||||
import UserRepository from '#repositories/userRepository'
|
|
||||||
import CharacterRepository from '#repositories/characterRepository'
|
|
||||||
import CharacterHairRepository from '#repositories/characterHairRepository'
|
|
||||||
import ZoneRepository from '#repositories/zoneRepository'
|
|
||||||
import { Zone } from '#entities/zone'
|
import { Zone } from '#entities/zone'
|
||||||
|
import ZoneManager from '#managers/zoneManager'
|
||||||
|
import CharacterHairRepository from '#repositories/characterHairRepository'
|
||||||
|
import CharacterRepository from '#repositories/characterRepository'
|
||||||
|
import UserRepository from '#repositories/userRepository'
|
||||||
|
import ZoneRepository from '#repositories/zoneRepository'
|
||||||
|
|
||||||
interface Position {
|
interface Position {
|
||||||
x: number
|
x: number
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
import { gameLogger } from '#application/logger'
|
|
||||||
import { Server } from 'socket.io'
|
import { Server } from 'socket.io'
|
||||||
|
|
||||||
|
import { gameLogger } from '#application/logger'
|
||||||
import { TSocket } from '#application/types'
|
import { TSocket } from '#application/types'
|
||||||
import ChatRepository from '#repositories/chatRepository'
|
|
||||||
import { Chat } from '#entities/chat'
|
import { Chat } from '#entities/chat'
|
||||||
import ZoneRepository from '#repositories/zoneRepository'
|
|
||||||
import CharacterRepository from '#repositories/characterRepository'
|
import CharacterRepository from '#repositories/characterRepository'
|
||||||
|
import ChatRepository from '#repositories/chatRepository'
|
||||||
|
import ZoneRepository from '#repositories/zoneRepository'
|
||||||
|
|
||||||
class ChatService {
|
class ChatService {
|
||||||
async sendZoneMessage(io: Server, socket: TSocket, message: string, characterId: number, zoneId: number): Promise<boolean> {
|
async sendZoneMessage(io: Server, socket: TSocket, message: string, characterId: number, zoneId: number): Promise<boolean> {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import passwordResetTokenRepository from '#repositories/passwordResetTokenRepository'
|
|
||||||
import { appLogger } from '#application/logger'
|
import { appLogger } from '#application/logger'
|
||||||
|
import passwordResetTokenRepository from '#repositories/passwordResetTokenRepository'
|
||||||
|
|
||||||
class PasswordResetTokenService {
|
class PasswordResetTokenService {
|
||||||
/**
|
/**
|
||||||
|
@ -1,13 +1,15 @@
|
|||||||
import bcrypt from 'bcryptjs'
|
import bcrypt from 'bcryptjs'
|
||||||
import UserRepository from '#repositories/userRepository'
|
|
||||||
import PasswordResetTokenRepository from '#repositories/passwordResetTokenRepository'
|
|
||||||
import config from '#application/config'
|
|
||||||
import NodeMailer from 'nodemailer'
|
import NodeMailer from 'nodemailer'
|
||||||
import { httpLogger } from '#application/logger'
|
|
||||||
import PasswordResetTokenService from './passwordResetTokenService' // @TODO: Correctly implement this
|
import PasswordResetTokenService from './passwordResetTokenService' // @TODO: Correctly implement this
|
||||||
import { User } from '#entities/user'
|
|
||||||
|
import config from '#application/config'
|
||||||
import { Database } from '#application/database'
|
import { Database } from '#application/database'
|
||||||
|
import { httpLogger } from '#application/logger'
|
||||||
import { PasswordResetToken } from '#entities/passwordResetToken'
|
import { PasswordResetToken } from '#entities/passwordResetToken'
|
||||||
|
import { User } from '#entities/user'
|
||||||
|
import PasswordResetTokenRepository from '#repositories/passwordResetTokenRepository'
|
||||||
|
import UserRepository from '#repositories/userRepository'
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* User service
|
* User service
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { gameLogger } from '#application/logger'
|
import { gameLogger } from '#application/logger'
|
||||||
import WorldRepository from '#repositories/worldRepository'
|
|
||||||
import { World } from '#entities/world'
|
import { World } from '#entities/world'
|
||||||
|
import WorldRepository from '#repositories/worldRepository'
|
||||||
|
|
||||||
class WorldService {
|
class WorldService {
|
||||||
async update(worldData: Partial<World>): Promise<boolean> {
|
async update(worldData: Partial<World>): Promise<boolean> {
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
import { ExtendedCharacter, TSocket } from '#application/types'
|
|
||||||
import { Server } from 'socket.io'
|
import { Server } from 'socket.io'
|
||||||
import ZoneManager from '#managers/zoneManager'
|
|
||||||
import { gameLogger } from '#application/logger'
|
import { gameLogger } from '#application/logger'
|
||||||
|
import { ExtendedCharacter, TSocket } from '#application/types'
|
||||||
import { ZoneEventTileTeleport } from '#entities/zoneEventTileTeleport'
|
import { ZoneEventTileTeleport } from '#entities/zoneEventTileTeleport'
|
||||||
|
import ZoneManager from '#managers/zoneManager'
|
||||||
|
|
||||||
export class ZoneEventTileService {
|
export class ZoneEventTileService {
|
||||||
public async handleTeleport(io: Server, socket: TSocket, character: ExtendedCharacter, teleport: ZoneEventTileTeleport): Promise<void> {
|
public async handleTeleport(io: Server, socket: TSocket, character: ExtendedCharacter, teleport: ZoneEventTileTeleport): Promise<void> {
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
import { Server } from 'socket.io'
|
import { Server } from 'socket.io'
|
||||||
|
|
||||||
import { TSocket } from '#application/types'
|
import { TSocket } from '#application/types'
|
||||||
import characterHairRepository from '#repositories/characterHairRepository'
|
|
||||||
import { CharacterHair } from '#entities/characterHair'
|
import { CharacterHair } from '#entities/characterHair'
|
||||||
|
import characterHairRepository from '#repositories/characterHairRepository'
|
||||||
|
|
||||||
interface IPayload {}
|
interface IPayload {}
|
||||||
|
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
import { Server } from 'socket.io'
|
import { Server } from 'socket.io'
|
||||||
import { TSocket } from '#application/types'
|
|
||||||
import CharacterRepository from '#repositories/characterRepository'
|
|
||||||
import { gameLogger } from '#application/logger'
|
import { gameLogger } from '#application/logger'
|
||||||
|
import { TSocket } from '#application/types'
|
||||||
import ZoneManager from '#managers/zoneManager'
|
import ZoneManager from '#managers/zoneManager'
|
||||||
import { CharacterService } from '#services/characterService'
|
|
||||||
import CharacterHairRepository from '#repositories/characterHairRepository'
|
import CharacterHairRepository from '#repositories/characterHairRepository'
|
||||||
|
import CharacterRepository from '#repositories/characterRepository'
|
||||||
|
import { CharacterService } from '#services/characterService'
|
||||||
|
|
||||||
interface CharacterConnectPayload {
|
interface CharacterConnectPayload {
|
||||||
characterId: number
|
characterId: number
|
||||||
@ -33,7 +34,7 @@ export default class CharacterConnectEvent {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
const character = await CharacterRepository.getByUserAndId(this.socket.userId!, characterId)
|
const character = await CharacterRepository.getByUserAndId(this.socket.userId, characterId)
|
||||||
|
|
||||||
if (!character) {
|
if (!character) {
|
||||||
this.emitError('Character not found or does not belong to this user')
|
this.emitError('Character not found or does not belong to this user')
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
import { Server } from 'socket.io'
|
import { Server } from 'socket.io'
|
||||||
|
import { ZodError } from 'zod'
|
||||||
|
|
||||||
|
import { gameLogger } from '#application/logger'
|
||||||
import { TSocket } from '#application/types'
|
import { TSocket } from '#application/types'
|
||||||
|
import { ZCharacterCreate } from '#application/zodTypes'
|
||||||
import { Character } from '#entities/character'
|
import { Character } from '#entities/character'
|
||||||
import CharacterRepository from '#repositories/characterRepository'
|
import CharacterRepository from '#repositories/characterRepository'
|
||||||
import { ZCharacterCreate } from '#application/zodTypes'
|
|
||||||
import { gameLogger } from '#application/logger'
|
|
||||||
import { ZodError } from 'zod'
|
|
||||||
import UserRepository from '#repositories/userRepository'
|
import UserRepository from '#repositories/userRepository'
|
||||||
|
|
||||||
export default class CharacterCreateEvent {
|
export default class CharacterCreateEvent {
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
import { Server } from 'socket.io'
|
import { Server } from 'socket.io'
|
||||||
|
|
||||||
import { TSocket } from '#application/types'
|
import { TSocket } from '#application/types'
|
||||||
import CharacterRepository from '#repositories/characterRepository'
|
|
||||||
import { CharacterService } from '#services/characterService'
|
|
||||||
import { Character } from '#entities/character'
|
import { Character } from '#entities/character'
|
||||||
import { Zone } from '#entities/zone'
|
import { Zone } from '#entities/zone'
|
||||||
|
import CharacterRepository from '#repositories/characterRepository'
|
||||||
|
import { CharacterService } from '#services/characterService'
|
||||||
|
|
||||||
type TypePayload = {
|
type TypePayload = {
|
||||||
characterId: number
|
characterId: number
|
||||||
@ -26,12 +27,12 @@ export default class CharacterDeleteEvent {
|
|||||||
|
|
||||||
private async handleCharacterDelete(data: TypePayload, callback: (response: TypeResponse) => void): Promise<any> {
|
private async handleCharacterDelete(data: TypePayload, callback: (response: TypeResponse) => void): Promise<any> {
|
||||||
try {
|
try {
|
||||||
const character = await CharacterRepository.getByUserAndId(this.socket.userId!, data.characterId!)
|
const character = await CharacterRepository.getByUserAndId(this.socket.userId!, data.characterId)
|
||||||
if (character) {
|
if (character) {
|
||||||
await character.delete()
|
await character.delete()
|
||||||
}
|
}
|
||||||
|
|
||||||
const characters: Character[] = (await CharacterRepository.getByUserId(this.socket.userId!)) as Character[]
|
const characters: Character[] = (await CharacterRepository.getByUserId(this.socket.userId!))
|
||||||
|
|
||||||
this.socket.emit('character:list', characters)
|
this.socket.emit('character:list', characters)
|
||||||
} catch (error: any) {
|
} catch (error: any) {
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
import { Socket, Server } from 'socket.io'
|
import { Socket, Server } from 'socket.io'
|
||||||
import { TSocket } from '#application/types'
|
|
||||||
import CharacterRepository from '#repositories/characterRepository'
|
|
||||||
import { gameLogger } from '#application/logger'
|
import { gameLogger } from '#application/logger'
|
||||||
|
import { TSocket } from '#application/types'
|
||||||
import { Character } from '#entities/character'
|
import { Character } from '#entities/character'
|
||||||
|
import CharacterRepository from '#repositories/characterRepository'
|
||||||
|
|
||||||
export default class CharacterListEvent {
|
export default class CharacterListEvent {
|
||||||
constructor(
|
constructor(
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
import { Server } from 'socket.io'
|
import { Server } from 'socket.io'
|
||||||
import { TSocket } from '#application/types'
|
|
||||||
import { getArgs, isCommand } from '#application/chat'
|
import { getArgs, isCommand } from '#application/chat'
|
||||||
import CharacterRepository from '#repositories/characterRepository'
|
|
||||||
import { gameLogger } from '#application/logger'
|
import { gameLogger } from '#application/logger'
|
||||||
|
import { TSocket } from '#application/types'
|
||||||
|
import CharacterRepository from '#repositories/characterRepository'
|
||||||
|
|
||||||
type TypePayload = {
|
type TypePayload = {
|
||||||
message: string
|
message: string
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
import { Server } from 'socket.io'
|
import { Server } from 'socket.io'
|
||||||
import { TSocket } from '#application/types'
|
|
||||||
import { getArgs, isCommand } from '#application/chat'
|
import { getArgs, isCommand } from '#application/chat'
|
||||||
import CharacterRepository from '#repositories/characterRepository'
|
|
||||||
import { gameLogger } from '#application/logger'
|
import { gameLogger } from '#application/logger'
|
||||||
|
import { TSocket } from '#application/types'
|
||||||
import DateManager from '#managers/dateManager'
|
import DateManager from '#managers/dateManager'
|
||||||
|
import CharacterRepository from '#repositories/characterRepository'
|
||||||
|
|
||||||
type TypePayload = {
|
type TypePayload = {
|
||||||
message: string
|
message: string
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
import { Server } from 'socket.io'
|
import { Server } from 'socket.io'
|
||||||
import { TSocket } from '#application/types'
|
|
||||||
import { getArgs, isCommand } from '#application/chat'
|
import { getArgs, isCommand } from '#application/chat'
|
||||||
import ZoneRepository from '#repositories/zoneRepository'
|
|
||||||
import { gameLogger, gameMasterLogger } from '#application/logger'
|
import { gameLogger, gameMasterLogger } from '#application/logger'
|
||||||
|
import { TSocket } from '#application/types'
|
||||||
import ZoneManager from '#managers/zoneManager'
|
import ZoneManager from '#managers/zoneManager'
|
||||||
import ZoneCharacter from '#models/zoneCharacter'
|
|
||||||
import zoneManager from '#managers/zoneManager'
|
import zoneManager from '#managers/zoneManager'
|
||||||
|
import ZoneCharacter from '#models/zoneCharacter'
|
||||||
|
import ZoneRepository from '#repositories/zoneRepository'
|
||||||
|
|
||||||
type TypePayload = {
|
type TypePayload = {
|
||||||
message: string
|
message: string
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
import { Server } from 'socket.io'
|
import { Server } from 'socket.io'
|
||||||
import { TSocket } from '#application/types'
|
|
||||||
import { isCommand } from '#application/chat'
|
import { isCommand } from '#application/chat'
|
||||||
import CharacterRepository from '#repositories/characterRepository'
|
|
||||||
import { gameLogger } from '#application/logger'
|
import { gameLogger } from '#application/logger'
|
||||||
|
import { TSocket } from '#application/types'
|
||||||
import WeatherManager from '#managers/weatherManager'
|
import WeatherManager from '#managers/weatherManager'
|
||||||
|
import CharacterRepository from '#repositories/characterRepository'
|
||||||
|
|
||||||
type TypePayload = {
|
type TypePayload = {
|
||||||
message: string
|
message: string
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
import { Server } from 'socket.io'
|
import { Server } from 'socket.io'
|
||||||
import { TSocket } from '#application/types'
|
|
||||||
import { isCommand } from '#application/chat'
|
import { isCommand } from '#application/chat'
|
||||||
import CharacterRepository from '#repositories/characterRepository'
|
|
||||||
import { gameLogger } from '#application/logger'
|
import { gameLogger } from '#application/logger'
|
||||||
|
import { TSocket } from '#application/types'
|
||||||
import WeatherManager from '#managers/weatherManager'
|
import WeatherManager from '#managers/weatherManager'
|
||||||
|
import CharacterRepository from '#repositories/characterRepository'
|
||||||
|
|
||||||
type TypePayload = {
|
type TypePayload = {
|
||||||
message: string
|
message: string
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
import { Server } from 'socket.io'
|
import { Server } from 'socket.io'
|
||||||
import { TSocket } from '#application/types'
|
|
||||||
import ZoneRepository from '#repositories/zoneRepository'
|
|
||||||
import { isCommand } from '#application/chat'
|
import { isCommand } from '#application/chat'
|
||||||
import { gameLogger } from '#application/logger'
|
import { gameLogger } from '#application/logger'
|
||||||
|
import { TSocket } from '#application/types'
|
||||||
import ZoneManager from '#managers/zoneManager'
|
import ZoneManager from '#managers/zoneManager'
|
||||||
|
import ZoneRepository from '#repositories/zoneRepository'
|
||||||
import ChatService from '#services/chatService'
|
import ChatService from '#services/chatService'
|
||||||
|
|
||||||
type TypePayload = {
|
type TypePayload = {
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import { Server } from 'socket.io'
|
import { Server } from 'socket.io'
|
||||||
import { TSocket } from '#application/types'
|
|
||||||
import { gameLogger } from '#application/logger'
|
import { gameLogger } from '#application/logger'
|
||||||
|
import { TSocket } from '#application/types'
|
||||||
import ZoneManager from '#managers/zoneManager'
|
import ZoneManager from '#managers/zoneManager'
|
||||||
|
|
||||||
export default class DisconnectEvent {
|
export default class DisconnectEvent {
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import { Server } from 'socket.io'
|
import { Server } from 'socket.io'
|
||||||
import { TSocket } from '#application/types'
|
|
||||||
import prisma from '#application/prisma'
|
import prisma from '#application/prisma'
|
||||||
|
import { TSocket } from '#application/types'
|
||||||
import characterRepository from '#repositories/characterRepository'
|
import characterRepository from '#repositories/characterRepository'
|
||||||
|
|
||||||
export default class CharacterHairCreateEvent {
|
export default class CharacterHairCreateEvent {
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
import { Server } from 'socket.io'
|
import { Server } from 'socket.io'
|
||||||
import { TSocket } from '#application/types'
|
|
||||||
import prisma from '#application/prisma'
|
|
||||||
import characterRepository from '#repositories/characterRepository'
|
|
||||||
import { gameMasterLogger } from '#application/logger'
|
import { gameMasterLogger } from '#application/logger'
|
||||||
|
import prisma from '#application/prisma'
|
||||||
|
import { TSocket } from '#application/types'
|
||||||
|
import characterRepository from '#repositories/characterRepository'
|
||||||
|
|
||||||
interface IPayload {
|
interface IPayload {
|
||||||
id: number
|
id: number
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
import { Server } from 'socket.io'
|
|
||||||
import { TSocket } from '#application/types'
|
|
||||||
import { CharacterHair } from '@prisma/client'
|
import { CharacterHair } from '@prisma/client'
|
||||||
|
import { Server } from 'socket.io'
|
||||||
|
|
||||||
import { gameMasterLogger } from '#application/logger'
|
import { gameMasterLogger } from '#application/logger'
|
||||||
import characterRepository from '#repositories/characterRepository'
|
import { TSocket } from '#application/types'
|
||||||
import characterHairRepository from '#repositories/characterHairRepository'
|
import characterHairRepository from '#repositories/characterHairRepository'
|
||||||
|
import characterRepository from '#repositories/characterRepository'
|
||||||
|
|
||||||
interface IPayload {}
|
interface IPayload {}
|
||||||
|
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
import { Server } from 'socket.io'
|
|
||||||
import { TSocket } from '#application/types'
|
|
||||||
import prisma from '#application/prisma'
|
|
||||||
import characterRepository from '#repositories/characterRepository'
|
|
||||||
import { CharacterGender, CharacterRace } from '@prisma/client'
|
import { CharacterGender, CharacterRace } from '@prisma/client'
|
||||||
|
import { Server } from 'socket.io'
|
||||||
|
|
||||||
import { gameMasterLogger } from '#application/logger'
|
import { gameMasterLogger } from '#application/logger'
|
||||||
|
import prisma from '#application/prisma'
|
||||||
|
import { TSocket } from '#application/types'
|
||||||
|
import characterRepository from '#repositories/characterRepository'
|
||||||
|
|
||||||
type Payload = {
|
type Payload = {
|
||||||
id: number
|
id: number
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
import { Server } from 'socket.io'
|
|
||||||
import { TSocket } from '#application/types'
|
|
||||||
import prisma from '#application/prisma'
|
|
||||||
import characterRepository from '#repositories/characterRepository'
|
|
||||||
import { CharacterGender, CharacterRace } from '@prisma/client'
|
import { CharacterGender, CharacterRace } from '@prisma/client'
|
||||||
|
import { Server } from 'socket.io'
|
||||||
|
|
||||||
|
import prisma from '#application/prisma'
|
||||||
|
import { TSocket } from '#application/types'
|
||||||
|
import characterRepository from '#repositories/characterRepository'
|
||||||
|
|
||||||
export default class CharacterTypeCreateEvent {
|
export default class CharacterTypeCreateEvent {
|
||||||
constructor(
|
constructor(
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import { Server } from 'socket.io'
|
import { Server } from 'socket.io'
|
||||||
import { TSocket } from '#application/types'
|
|
||||||
import { gameMasterLogger } from '#application/logger'
|
import { gameMasterLogger } from '#application/logger'
|
||||||
|
import { TSocket } from '#application/types'
|
||||||
import characterRepository from '#repositories/characterRepository'
|
import characterRepository from '#repositories/characterRepository'
|
||||||
import CharacterTypeRepository from '#repositories/characterTypeRepository'
|
import CharacterTypeRepository from '#repositories/characterTypeRepository'
|
||||||
|
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
import { Server } from 'socket.io'
|
|
||||||
import { TSocket } from '#application/types'
|
|
||||||
import { CharacterType } from '@prisma/client'
|
import { CharacterType } from '@prisma/client'
|
||||||
import characterRepository from '#repositories/characterRepository'
|
import { Server } from 'socket.io'
|
||||||
|
|
||||||
import { gameMasterLogger } from '#application/logger'
|
import { gameMasterLogger } from '#application/logger'
|
||||||
|
import { TSocket } from '#application/types'
|
||||||
|
import characterRepository from '#repositories/characterRepository'
|
||||||
import CharacterTypeRepository from '#repositories/characterTypeRepository'
|
import CharacterTypeRepository from '#repositories/characterTypeRepository'
|
||||||
|
|
||||||
interface IPayload {}
|
interface IPayload {}
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
import { Server } from 'socket.io'
|
|
||||||
import { TSocket } from '#application/types'
|
|
||||||
import prisma from '#application/prisma'
|
|
||||||
import characterRepository from '#repositories/characterRepository'
|
|
||||||
import { CharacterGender, CharacterRace } from '@prisma/client'
|
import { CharacterGender, CharacterRace } from '@prisma/client'
|
||||||
|
import { Server } from 'socket.io'
|
||||||
|
|
||||||
|
import prisma from '#application/prisma'
|
||||||
|
import { TSocket } from '#application/types'
|
||||||
|
import characterRepository from '#repositories/characterRepository'
|
||||||
|
|
||||||
type Payload = {
|
type Payload = {
|
||||||
id: number
|
id: number
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import { Server } from 'socket.io'
|
import { Server } from 'socket.io'
|
||||||
import { TSocket } from '#application/types'
|
|
||||||
import prisma from '#application/prisma'
|
import prisma from '#application/prisma'
|
||||||
|
import { TSocket } from '#application/types'
|
||||||
import characterRepository from '#repositories/characterRepository'
|
import characterRepository from '#repositories/characterRepository'
|
||||||
|
|
||||||
export default class ItemCreateEvent {
|
export default class ItemCreateEvent {
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
import { Server } from 'socket.io'
|
import { Server } from 'socket.io'
|
||||||
import { TSocket } from '#application/types'
|
|
||||||
import prisma from '#application/prisma'
|
|
||||||
import characterRepository from '#repositories/characterRepository'
|
|
||||||
import { gameMasterLogger } from '#application/logger'
|
import { gameMasterLogger } from '#application/logger'
|
||||||
|
import prisma from '#application/prisma'
|
||||||
|
import { TSocket } from '#application/types'
|
||||||
|
import characterRepository from '#repositories/characterRepository'
|
||||||
|
|
||||||
interface IPayload {
|
interface IPayload {
|
||||||
id: string
|
id: string
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
import { Server } from 'socket.io'
|
|
||||||
import { TSocket } from '#application/types'
|
|
||||||
import { Item } from '@prisma/client'
|
import { Item } from '@prisma/client'
|
||||||
import characterRepository from '#repositories/characterRepository'
|
import { Server } from 'socket.io'
|
||||||
|
|
||||||
import { gameMasterLogger } from '#application/logger'
|
import { gameMasterLogger } from '#application/logger'
|
||||||
|
import { TSocket } from '#application/types'
|
||||||
|
import characterRepository from '#repositories/characterRepository'
|
||||||
import itemRepository from '#repositories/itemRepository'
|
import itemRepository from '#repositories/itemRepository'
|
||||||
|
|
||||||
interface IPayload {}
|
interface IPayload {}
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
import { Server } from 'socket.io'
|
|
||||||
import { TSocket } from '#application/types'
|
|
||||||
import prisma from '#application/prisma'
|
|
||||||
import characterRepository from '#repositories/characterRepository'
|
|
||||||
import { ItemType, ItemRarity } from '@prisma/client'
|
import { ItemType, ItemRarity } from '@prisma/client'
|
||||||
|
import { Server } from 'socket.io'
|
||||||
|
|
||||||
import { gameMasterLogger } from '#application/logger'
|
import { gameMasterLogger } from '#application/logger'
|
||||||
|
import prisma from '#application/prisma'
|
||||||
|
import { TSocket } from '#application/types'
|
||||||
|
import characterRepository from '#repositories/characterRepository'
|
||||||
|
|
||||||
type Payload = {
|
type Payload = {
|
||||||
id: string
|
id: string
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
import { Server } from 'socket.io'
|
|
||||||
import { TSocket } from '#application/types'
|
|
||||||
import { Object } from '@prisma/client'
|
import { Object } from '@prisma/client'
|
||||||
import ObjectRepository from '#repositories/objectRepository'
|
import { Server } from 'socket.io'
|
||||||
|
|
||||||
|
import { TSocket } from '#application/types'
|
||||||
import characterRepository from '#repositories/characterRepository'
|
import characterRepository from '#repositories/characterRepository'
|
||||||
|
import ObjectRepository from '#repositories/objectRepository'
|
||||||
|
|
||||||
interface IPayload {}
|
interface IPayload {}
|
||||||
|
|
||||||
|
@ -1,10 +1,12 @@
|
|||||||
import fs from 'fs'
|
import fs from 'fs'
|
||||||
|
|
||||||
import { Server } from 'socket.io'
|
import { Server } from 'socket.io'
|
||||||
import { TSocket } from '#application/types'
|
|
||||||
import prisma from '#application/prisma'
|
|
||||||
import characterRepository from '#repositories/characterRepository'
|
|
||||||
import { getPublicPath } from '#application/storage'
|
|
||||||
import { gameLogger, gameMasterLogger } from '#application/logger'
|
import { gameLogger, gameMasterLogger } from '#application/logger'
|
||||||
|
import prisma from '#application/prisma'
|
||||||
|
import { getPublicPath } from '#application/storage'
|
||||||
|
import { TSocket } from '#application/types'
|
||||||
|
import characterRepository from '#repositories/characterRepository'
|
||||||
|
|
||||||
interface IPayload {
|
interface IPayload {
|
||||||
object: string
|
object: string
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import { Server } from 'socket.io'
|
import { Server } from 'socket.io'
|
||||||
import { TSocket } from '#application/types'
|
|
||||||
import prisma from '#application/prisma'
|
import prisma from '#application/prisma'
|
||||||
|
import { TSocket } from '#application/types'
|
||||||
import characterRepository from '#repositories/characterRepository'
|
import characterRepository from '#repositories/characterRepository'
|
||||||
|
|
||||||
type Payload = {
|
type Payload = {
|
||||||
|
@ -1,12 +1,15 @@
|
|||||||
import { Server } from 'socket.io'
|
|
||||||
import { TSocket } from '#application/types'
|
|
||||||
import { writeFile } from 'node:fs/promises'
|
|
||||||
import fs from 'fs/promises'
|
import fs from 'fs/promises'
|
||||||
import prisma from '#application/prisma'
|
import { writeFile } from 'node:fs/promises'
|
||||||
|
|
||||||
|
|
||||||
import sharp from 'sharp'
|
import sharp from 'sharp'
|
||||||
import characterRepository from '#repositories/characterRepository'
|
import { Server } from 'socket.io'
|
||||||
|
|
||||||
import { gameMasterLogger } from '#application/logger'
|
import { gameMasterLogger } from '#application/logger'
|
||||||
|
import prisma from '#application/prisma'
|
||||||
import { getPublicPath } from '#application/storage'
|
import { getPublicPath } from '#application/storage'
|
||||||
|
import { TSocket } from '#application/types'
|
||||||
|
import characterRepository from '#repositories/characterRepository'
|
||||||
|
|
||||||
interface IObjectData {
|
interface IObjectData {
|
||||||
[key: string]: Buffer
|
[key: string]: Buffer
|
||||||
|
@ -1,10 +1,13 @@
|
|||||||
import { Server } from 'socket.io'
|
import { Server } from 'socket.io'
|
||||||
import { TSocket } from '#application/types'
|
|
||||||
import prisma from '#application/prisma'
|
|
||||||
import CharacterRepository from '#repositories/characterRepository'
|
|
||||||
import { gameMasterLogger } from '#application/logger'
|
|
||||||
import type { Prisma } from '@prisma/client'
|
import type { Prisma } from '@prisma/client'
|
||||||
|
|
||||||
|
import { gameMasterLogger } from '#application/logger'
|
||||||
|
import prisma from '#application/prisma'
|
||||||
|
import { TSocket } from '#application/types'
|
||||||
|
import CharacterRepository from '#repositories/characterRepository'
|
||||||
|
|
||||||
|
|
||||||
interface CopyPayload {
|
interface CopyPayload {
|
||||||
id: string
|
id: string
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
import { Server } from 'socket.io'
|
|
||||||
import { TSocket } from '#application/types'
|
|
||||||
import fs from 'fs/promises'
|
import fs from 'fs/promises'
|
||||||
|
|
||||||
|
import { Server } from 'socket.io'
|
||||||
|
|
||||||
import prisma from '#application/prisma'
|
import prisma from '#application/prisma'
|
||||||
import characterRepository from '#repositories/characterRepository'
|
|
||||||
import { getPublicPath } from '#application/storage'
|
import { getPublicPath } from '#application/storage'
|
||||||
|
import { TSocket } from '#application/types'
|
||||||
|
import characterRepository from '#repositories/characterRepository'
|
||||||
|
|
||||||
export default class SpriteCreateEvent {
|
export default class SpriteCreateEvent {
|
||||||
constructor(
|
constructor(
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
import { Server } from 'socket.io'
|
|
||||||
import { TSocket } from '#application/types'
|
|
||||||
import fs from 'fs'
|
import fs from 'fs'
|
||||||
import prisma from '#application/prisma'
|
|
||||||
|
import { Server } from 'socket.io'
|
||||||
|
|
||||||
import { gameMasterLogger } from '#application/logger'
|
import { gameMasterLogger } from '#application/logger'
|
||||||
|
import prisma from '#application/prisma'
|
||||||
import { getPublicPath } from '#application/storage'
|
import { getPublicPath } from '#application/storage'
|
||||||
|
import { TSocket } from '#application/types'
|
||||||
import CharacterRepository from '#repositories/characterRepository'
|
import CharacterRepository from '#repositories/characterRepository'
|
||||||
|
|
||||||
type Payload = {
|
type Payload = {
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
import { Server } from 'socket.io'
|
|
||||||
import { TSocket } from '#application/types'
|
|
||||||
import { Sprite } from '@prisma/client'
|
import { Sprite } from '@prisma/client'
|
||||||
import SpriteRepository from '#repositories/spriteRepository'
|
import { Server } from 'socket.io'
|
||||||
|
|
||||||
|
import { TSocket } from '#application/types'
|
||||||
import characterRepository from '#repositories/characterRepository'
|
import characterRepository from '#repositories/characterRepository'
|
||||||
|
import SpriteRepository from '#repositories/spriteRepository'
|
||||||
|
|
||||||
interface IPayload {}
|
interface IPayload {}
|
||||||
|
|
||||||
|
@ -1,12 +1,15 @@
|
|||||||
import { Server } from 'socket.io'
|
|
||||||
import { TSocket } from '#application/types'
|
|
||||||
import prisma from '#application/prisma'
|
|
||||||
import type { Prisma, SpriteAction } from '@prisma/client'
|
|
||||||
import { writeFile, mkdir } from 'node:fs/promises'
|
import { writeFile, mkdir } from 'node:fs/promises'
|
||||||
|
|
||||||
import sharp from 'sharp'
|
import sharp from 'sharp'
|
||||||
import { getPublicPath } from '#application/storage'
|
import { Server } from 'socket.io'
|
||||||
import CharacterRepository from '#repositories/characterRepository'
|
|
||||||
|
import type { Prisma, SpriteAction } from '@prisma/client'
|
||||||
|
|
||||||
import { gameMasterLogger } from '#application/logger'
|
import { gameMasterLogger } from '#application/logger'
|
||||||
|
import prisma from '#application/prisma'
|
||||||
|
import { getPublicPath } from '#application/storage'
|
||||||
|
import { TSocket } from '#application/types'
|
||||||
|
import CharacterRepository from '#repositories/characterRepository'
|
||||||
|
|
||||||
// Constants
|
// Constants
|
||||||
const ISOMETRIC_CONFIG = {
|
const ISOMETRIC_CONFIG = {
|
||||||
|
@ -1,10 +1,12 @@
|
|||||||
import fs from 'fs/promises'
|
import fs from 'fs/promises'
|
||||||
|
|
||||||
import { Server } from 'socket.io'
|
import { Server } from 'socket.io'
|
||||||
import { TSocket } from '#application/types'
|
|
||||||
import prisma from '#application/prisma'
|
|
||||||
import characterRepository from '#repositories/characterRepository'
|
|
||||||
import { gameMasterLogger } from '#application/logger'
|
import { gameMasterLogger } from '#application/logger'
|
||||||
|
import prisma from '#application/prisma'
|
||||||
import { getPublicPath } from '#application/storage'
|
import { getPublicPath } from '#application/storage'
|
||||||
|
import { TSocket } from '#application/types'
|
||||||
|
import characterRepository from '#repositories/characterRepository'
|
||||||
|
|
||||||
type Payload = {
|
type Payload = {
|
||||||
id: string
|
id: string
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
import { Server } from 'socket.io'
|
|
||||||
import { TSocket } from '#application/types'
|
|
||||||
import { Tile } from '@prisma/client'
|
import { Tile } from '@prisma/client'
|
||||||
import TileRepository from '#repositories/tileRepository'
|
import { Server } from 'socket.io'
|
||||||
|
|
||||||
|
import { TSocket } from '#application/types'
|
||||||
import characterRepository from '#repositories/characterRepository'
|
import characterRepository from '#repositories/characterRepository'
|
||||||
|
import TileRepository from '#repositories/tileRepository'
|
||||||
|
|
||||||
interface IPayload {}
|
interface IPayload {}
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import { Server } from 'socket.io'
|
import { Server } from 'socket.io'
|
||||||
import { TSocket } from '#application/types'
|
|
||||||
import prisma from '#application/prisma'
|
import prisma from '#application/prisma'
|
||||||
|
import { TSocket } from '#application/types'
|
||||||
import characterRepository from '#repositories/characterRepository'
|
import characterRepository from '#repositories/characterRepository'
|
||||||
|
|
||||||
type Payload = {
|
type Payload = {
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user