trucoshi 8.0.1 → 8.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/events.d.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  import { EMatchState } from "@trucoshi/prisma";
2
2
  import { SocketError } from "./server";
3
- import { IAccountDetails, IChatMessage, ILobbyOptions, IMatchDetails, IPlayerRanking, IPublicChatRoom, IPublicMatch, IPublicMatchInfo, IUserData, IWaitingPlayData, IWaitingSayData } from "./types";
4
- import { User } from "lightning-accounts";
3
+ import { IAccountDetails, IChatMessage, ILobbyOptions, IMatchDetails, IPlayerRanking, IPublicChatRoom, IPublicMatch, IPublicMatchInfo, ITrucoshiStats, IUserData, IWaitingPlayData, IWaitingSayData } from "./types";
5
4
  export type IEventCallback<T = {}> = (args: {
6
5
  success: boolean;
7
6
  error?: SocketError;
@@ -17,11 +16,13 @@ export declare enum EServerEvent {
17
16
  KICK_PLAYER = "PLAYER_KICKED",
18
17
  UPDATE_ACTIVE_MATCHES = "UPDATE_ACTIVE_MATCHES",
19
18
  WAITING_POSSIBLE_SAY = "WAITING_POSSIBLE_SAY",
20
- UPDATE_CHAT = "UPDAET_CHAT"
19
+ UPDATE_CHAT = "UPDAET_CHAT",
20
+ UPDATE_STATS = "UPDATE_STATS"
21
21
  }
22
22
  export interface ServerToClientEvents {
23
23
  [EServerEvent.PONG]: (serverTime: number, clientTime: number) => void;
24
24
  [EServerEvent.UPDATE_CHAT]: (room: IPublicChatRoom) => void;
25
+ [EServerEvent.UPDATE_STATS]: (room: ITrucoshiStats) => void;
25
26
  [EServerEvent.NEW_MESSAGE]: (roomId: string, message?: IChatMessage) => void;
26
27
  [EServerEvent.UPDATE_ACTIVE_MATCHES]: (activeMatches: IPublicMatchInfo[]) => void;
27
28
  [EServerEvent.UPDATE_MATCH]: (match: IPublicMatch, callback?: () => void) => void;
@@ -33,7 +34,6 @@ export interface ServerToClientEvents {
33
34
  [EServerEvent.REFRESH_IDENTITY]: (userId: number, callback: (identityJwt: string | null) => void) => void;
34
35
  }
35
36
  export declare enum EClientEvent {
36
- LOGIN = "LOGIN",
37
37
  LOGOUT = "LOGOUT",
38
38
  LEAVE_MATCH = "LEAVE_MATCH",
39
39
  CREATE_MATCH = "CREATE_MATCH",
@@ -51,7 +51,9 @@ export declare enum EClientEvent {
51
51
  KICK_PLAYER = "KICK_PLAYER",
52
52
  CHAT = "CHAT",
53
53
  PING = "PING",
54
- SAY = "SAY"
54
+ SAY = "SAY",
55
+ JOIN_ROOM = "JOIN_ROOM",
56
+ LEAVE_ROOM = "LEAVE_ROOM"
55
57
  }
56
58
  export interface ClientToServerEvents {
57
59
  [EClientEvent.LOGOUT]: (callback: IEventCallback<{}>) => void;
@@ -73,6 +75,8 @@ export interface ClientToServerEvents {
73
75
  match?: IPublicMatch;
74
76
  activeMatches?: IPublicMatchInfo[];
75
77
  }>) => void;
78
+ [EClientEvent.JOIN_ROOM]: (roomId: string) => void;
79
+ [EClientEvent.LEAVE_ROOM]: (roomId: string) => void;
76
80
  [EClientEvent.ADD_BOT]: (matchSessionId: string, teamIdx: 0 | 1 | undefined, callback: IEventCallback<{
77
81
  match?: IPublicMatch;
78
82
  }>) => void;
@@ -96,7 +100,4 @@ export interface ClientToServerEvents {
96
100
  [EClientEvent.LIST_RANKING]: (filters: {}, callback: IEventCallback<{
97
101
  ranking: Array<IPlayerRanking>;
98
102
  }>) => void;
99
- [EClientEvent.LOGIN]: (user: User, identityToken: string, callback: IEventCallback<{
100
- activeMatches?: IPublicMatchInfo[];
101
- }>) => void;
102
103
  }
package/dist/events.js CHANGED
@@ -11,10 +11,10 @@ export var EServerEvent;
11
11
  EServerEvent["UPDATE_ACTIVE_MATCHES"] = "UPDATE_ACTIVE_MATCHES";
12
12
  EServerEvent["WAITING_POSSIBLE_SAY"] = "WAITING_POSSIBLE_SAY";
13
13
  EServerEvent["UPDATE_CHAT"] = "UPDAET_CHAT";
14
+ EServerEvent["UPDATE_STATS"] = "UPDATE_STATS";
14
15
  })(EServerEvent || (EServerEvent = {}));
15
16
  export var EClientEvent;
16
17
  (function (EClientEvent) {
17
- EClientEvent["LOGIN"] = "LOGIN";
18
18
  EClientEvent["LOGOUT"] = "LOGOUT";
19
19
  EClientEvent["LEAVE_MATCH"] = "LEAVE_MATCH";
20
20
  EClientEvent["CREATE_MATCH"] = "CREATE_MATCH";
@@ -33,4 +33,6 @@ export var EClientEvent;
33
33
  EClientEvent["CHAT"] = "CHAT";
34
34
  EClientEvent["PING"] = "PING";
35
35
  EClientEvent["SAY"] = "SAY";
36
+ EClientEvent["JOIN_ROOM"] = "JOIN_ROOM";
37
+ EClientEvent["LEAVE_ROOM"] = "LEAVE_ROOM";
36
38
  })(EClientEvent || (EClientEvent = {}));
@@ -1,4 +1,4 @@
1
- export const PLAYER_ABANDON_TIMEOUT = 1000 * 60;
1
+ export const PLAYER_ABANDON_TIMEOUT = 1000 * 60 * 2;
2
2
  export const PLAYER_TURN_TIMEOUT = 1000 * 30;
3
3
  export const PREVIOUS_HAND_ACK_TIMEOUT = 1000 * 3;
4
4
  export const CARDS = {
package/dist/types.d.ts CHANGED
@@ -46,6 +46,7 @@ export interface ISaidCommand {
46
46
  export interface IMatchFlorBattle {
47
47
  matchSessionId: string;
48
48
  playersWithFlor: {
49
+ team: 0 | 1;
49
50
  idx: number;
50
51
  cards?: ICard[];
51
52
  points: number;
@@ -197,7 +198,8 @@ export declare enum GAME_ERROR {
197
198
  INVALID_COMAND = "INVALID_COMAND",
198
199
  INSUFFICIENT_BALANCE = "INSUFFICIENT_BALANCE",
199
200
  GAME_REQUIRES_ACCOUNT = "GAME_REQUIRES_ACCOUNT",
200
- NO_FLOR = "NO_FLOR"
201
+ NO_FLOR = "NO_FLOR",
202
+ INVALID_SESSION = "INVALID_SESSION"
201
203
  }
202
204
  export interface EnvidoState {
203
205
  accept: number;
@@ -336,6 +338,7 @@ export interface IPlayer {
336
338
  setSession(session: string): void;
337
339
  setIsOwner(isOwner: boolean): void;
338
340
  addDisconnectedTime(time: number): void;
341
+ rename(name: string): void;
339
342
  enable(): void;
340
343
  disable(): void;
341
344
  abandon(): void;
@@ -373,3 +376,6 @@ export type IHandRoundLog = {
373
376
  };
374
377
  export type IPublicUser = Pick<User, "id" | "email" | "name" | "role">;
375
378
  export declare const DANGEROUS_COMMANDS: ECommand[];
379
+ export type ITrucoshiStats = {
380
+ onlinePlayers: number[];
381
+ };
package/dist/types.js CHANGED
@@ -73,6 +73,7 @@ export var GAME_ERROR;
73
73
  GAME_ERROR["INSUFFICIENT_BALANCE"] = "INSUFFICIENT_BALANCE";
74
74
  GAME_ERROR["GAME_REQUIRES_ACCOUNT"] = "GAME_REQUIRES_ACCOUNT";
75
75
  GAME_ERROR["NO_FLOR"] = "NO_FLOR";
76
+ GAME_ERROR["INVALID_SESSION"] = "INVALID_SESSION";
76
77
  })(GAME_ERROR || (GAME_ERROR = {}));
77
78
  export const DANGEROUS_COMMANDS = [
78
79
  ESayCommand.MAZO,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "trucoshi",
3
- "version": "8.0.1",
3
+ "version": "8.2.1",
4
4
  "description": "Lightning Truco Server",
5
5
  "main": "dist/types.js",
6
6
  "license": "GPL-3.0",
@@ -67,6 +67,7 @@
67
67
  "@prisma/client": "^4.14.1",
68
68
  "@socket.io/redis-adapter": "^8.2.1",
69
69
  "@types/jsonwebtoken": "^9.0.5",
70
+ "@types/lodash.debounce": "^4.0.9",
70
71
  "@types/node-forge": "^1.3.11",
71
72
  "@types/pino": "^7.0.5",
72
73
  "@types/redis": "^4.0.11",
@@ -76,7 +77,8 @@
76
77
  "dotenv-cli": "^7.3.0",
77
78
  "form-data": "^4.0.0",
78
79
  "jsonwebtoken": "^9.0.2",
79
- "lightning-accounts": "4.3.0",
80
+ "lightning-accounts": "4.3.1",
81
+ "lodash.debounce": "^4.0.8",
80
82
  "node-forge": "^1.3.1",
81
83
  "path-scurry": "^1.9.2",
82
84
  "pino": "^9.3.2",