@zhuweiyou/dsh-holdem 0.1.2 → 0.1.4
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/README.md +19 -20
- package/lib/client.js +331 -283
- package/lib/client.js.map +1 -1
- package/lib/index.js +41 -10
- package/lib/index.js.map +1 -1
- package/lib/types/client/ActionBar.d.ts +6 -1
- package/lib/types/client/ActionBar.d.ts.map +1 -1
- package/lib/types/client/Table.d.ts.map +1 -1
- package/lib/types/client/i18n.d.ts.map +1 -1
- package/lib/types/client/store.d.ts.map +1 -1
- package/lib/types/config.d.ts +5 -0
- package/lib/types/config.d.ts.map +1 -1
- package/lib/types/invariant.d.ts +6 -1
- package/lib/types/invariant.d.ts.map +1 -1
- package/lib/types/net/ws.d.ts.map +1 -1
- package/lib/types/room/RoomManager.d.ts +10 -0
- package/lib/types/room/RoomManager.d.ts.map +1 -1
- package/lib/types/types.d.ts +2 -0
- package/lib/types/types.d.ts.map +1 -1
- package/lib/worker.js +41 -9
- package/lib/worker.js.map +1 -1
- package/package.json +1 -1
- package/worker/index.ts +3 -0
|
@@ -4,8 +4,13 @@ export interface ActionBarProps {
|
|
|
4
4
|
potTotal: number;
|
|
5
5
|
bigBlind: number;
|
|
6
6
|
busy: boolean;
|
|
7
|
+
/**
|
|
8
|
+
* 轮不到你的时候,牌桌上仍然挂着一条「占位」的行动条(`active: false`):
|
|
9
|
+
* 只是为了让下注区高度恒定,轮到自己时牌桌不会往上跳。占位时不响应键盘。
|
|
10
|
+
*/
|
|
11
|
+
active?: boolean | undefined;
|
|
7
12
|
secondsLeft: number | null;
|
|
8
13
|
onAction: (action: TableAction) => void;
|
|
9
14
|
}
|
|
10
|
-
export declare function ActionBar({ legal, potTotal, bigBlind, busy, secondsLeft, onAction }: ActionBarProps): import("react").JSX.Element;
|
|
15
|
+
export declare function ActionBar({ legal, potTotal, bigBlind, busy, active, secondsLeft, onAction }: ActionBarProps): import("react").JSX.Element;
|
|
11
16
|
//# sourceMappingURL=ActionBar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionBar.d.ts","sourceRoot":"","sources":["../../../../src/client/ActionBar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAK5D,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,YAAY,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,OAAO,CAAA;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAA;CACxC;AAED,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,cAAc,+
|
|
1
|
+
{"version":3,"file":"ActionBar.d.ts","sourceRoot":"","sources":["../../../../src/client/ActionBar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAK5D,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,YAAY,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,OAAO,CAAA;IACb;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAA;CACxC;AAED,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,cAAc,+BAgHlH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../../src/client/Table.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../../src/client/Table.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgB,UAAU,EAAyB,MAAM,aAAa,CAAA;AAWlF,wBAAgB,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,+BAoSnD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../../src/client/i18n.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../../src/client/i18n.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,MAAM,CAAA;AA4UzF,eAAO,MAAM,KAAK;;;CAAqB,CAAA;AAIvC,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAElD;AAED,wBAAgB,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,MAAM,CAE/E;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAO1D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../src/client/store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAe,MAAM,aAAa,CAAA;AAKzE,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA;AAE/E,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,CAAA;IACf,IAAI,EAAE,OAAO,CAAA;IACb,UAAU,EAAE,UAAU,CAAA;IACtB,IAAI,EAAE,UAAU,GAAG,IAAI,CAAA;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;IACnB,uCAAuC;IACvC,UAAU,EAAE,OAAO,CAAA;CACpB;AAmFD,wBAAgB,cAAc,IAAI,WAAW,CAE5C;AAED,wBAAgB,QAAQ,IAAI,WAAW,CAEtC;AAED,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,GAAG,OAAgB,GAAG,IAAI,CAOzE;AAED,qBAAqB;AACrB,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED,wBAAgB,UAAU,IAAI,IAAI,CAGjC;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../src/client/store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAe,MAAM,aAAa,CAAA;AAKzE,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA;AAE/E,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,CAAA;IACf,IAAI,EAAE,OAAO,CAAA;IACb,UAAU,EAAE,UAAU,CAAA;IACtB,IAAI,EAAE,UAAU,GAAG,IAAI,CAAA;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;IACnB,uCAAuC;IACvC,UAAU,EAAE,OAAO,CAAA;CACpB;AAmFD,wBAAgB,cAAc,IAAI,WAAW,CAE5C;AAED,wBAAgB,QAAQ,IAAI,WAAW,CAEtC;AAED,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,GAAG,OAAgB,GAAG,IAAI,CAOzE;AAED,qBAAqB;AACrB,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED,wBAAgB,UAAU,IAAI,IAAI,CAGjC;AAoBD,iDAAiD;AACjD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAQ7C;AAED,wBAAgB,cAAc,IAAI,IAAI,CAOrC;AAgKD,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CA0B/C;AAED,wBAAgB,OAAO,IAAI,IAAI,CAQ9B;AAED,wBAAsB,UAAU,CAC9B,KAAK,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,EAC9E,IAAI,SAAK,GACR,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED,wBAAsB,QAAQ,CAAC,KAAK,EAAE;IACpC,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,KAAK,GAAG,OAAO,CAAA;CACtB,EAAE,IAAI,SAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB3B;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAW/C;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BtE;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAIhD"}
|
package/lib/types/config.d.ts
CHANGED
|
@@ -7,6 +7,8 @@ export interface PluginConfig {
|
|
|
7
7
|
/** 一手结束后自动开下一手的等待,秒。 */
|
|
8
8
|
autoAdvanceSec?: number;
|
|
9
9
|
allowSpectators?: boolean;
|
|
10
|
+
/** 每个房间的观战席位上限;0 等于关闭观战。 */
|
|
11
|
+
maxSpectators?: number;
|
|
10
12
|
chatEnabled?: boolean;
|
|
11
13
|
maxRooms?: number;
|
|
12
14
|
/** 房主失联多久后自动解散并结算,分钟。 */
|
|
@@ -19,6 +21,7 @@ export declare const Config: import("@deepseek-ai/schemastery").Schema<{
|
|
|
19
21
|
turnTimeoutSec: number;
|
|
20
22
|
autoAdvanceSec: number;
|
|
21
23
|
allowSpectators: boolean;
|
|
24
|
+
maxSpectators: number;
|
|
22
25
|
chatEnabled: boolean;
|
|
23
26
|
maxRooms: number;
|
|
24
27
|
hostIdleDissolveMin: number;
|
|
@@ -33,6 +36,8 @@ export interface ResolvedConfig {
|
|
|
33
36
|
turnTimeoutMs: number;
|
|
34
37
|
autoAdvanceMs: number;
|
|
35
38
|
allowSpectators: boolean;
|
|
39
|
+
/** 观战席位上限;0 表示这桌不接观战。 */
|
|
40
|
+
maxSpectators: number;
|
|
36
41
|
chatEnabled: boolean;
|
|
37
42
|
maxRooms: number;
|
|
38
43
|
hostIdleDissolveMs: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/config.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/config.ts"],"names":[],"mappings":"AACA,OAAO,EAOL,KAAK,YAAY,EAGlB,MAAM,gBAAgB,CAAA;AAEvB,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,gBAAgB;IAChB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,wBAAwB;IACxB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,4BAA4B;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,yBAAyB;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,eAAO,MAAM,MAAM;;;;;;;;;;;EAWjB,CAAA;AAEF,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,YAAY,CAAA;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,OAAO,CAAA;IACxB,yBAAyB;IACzB,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKtD;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc,CAqBlE;AAED,eAAO,MAAM,eAAe,IAAY,CAAA"}
|
package/lib/types/invariant.d.ts
CHANGED
|
@@ -5,7 +5,10 @@ export declare const PANEL_KEY = "holdem";
|
|
|
5
5
|
export declare const SUBPROTOCOL = "holdem.v1";
|
|
6
6
|
export declare const ROUTE_PREFIX = "/holdem";
|
|
7
7
|
export declare const MAX_SEATS = 6;
|
|
8
|
-
|
|
8
|
+
/** 观战席位默认值;实际值由设置项 maxSpectators 决定。 */
|
|
9
|
+
export declare const DEFAULT_MAX_SPECTATORS = 16;
|
|
10
|
+
/** 设置项 maxSpectators 能配到的最大值。 */
|
|
11
|
+
export declare const SPECTATORS_LIMIT = 64;
|
|
9
12
|
export declare const MAX_ROOMS = 8;
|
|
10
13
|
export declare const MAX_TITLE = 24;
|
|
11
14
|
export declare const MAX_DISPLAY_NAME = 16;
|
|
@@ -20,6 +23,8 @@ export declare const WS_TICKET_TTL_MS = 60000;
|
|
|
20
23
|
export declare const SESSION_TTL_MS: number;
|
|
21
24
|
export declare const HEARTBEAT_MS = 15000;
|
|
22
25
|
export declare const DISCONNECT_AFTER_MS = 45000;
|
|
26
|
+
/** 没有实时通道时,HTTP 请求也算「人在」:这么久没动静才标成离线。 */
|
|
27
|
+
export declare const PRESENCE_TTL_MS = 20000;
|
|
23
28
|
export declare const LOBBY_KICK_IDLE_MS: number;
|
|
24
29
|
export declare const CHAT_COOLDOWN_MS = 1200;
|
|
25
30
|
export declare const ACTION_RATE_WINDOW_MS = 10000;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invariant.d.ts","sourceRoot":"","sources":["../../../src/invariant.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAE1B,eAAO,MAAM,YAAY,0BAA0B,CAAA;AACnD,eAAO,MAAM,SAAS,0BAA0B,CAAA;AAChD,eAAO,MAAM,SAAS,WAAW,CAAA;AACjC,eAAO,MAAM,WAAW,cAAc,CAAA;AACtC,eAAO,MAAM,YAAY,YAAY,CAAA;AAErC,eAAO,MAAM,SAAS,IAAI,CAAA;AAC1B,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"invariant.d.ts","sourceRoot":"","sources":["../../../src/invariant.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAE1B,eAAO,MAAM,YAAY,0BAA0B,CAAA;AACnD,eAAO,MAAM,SAAS,0BAA0B,CAAA;AAChD,eAAO,MAAM,SAAS,WAAW,CAAA;AACjC,eAAO,MAAM,WAAW,cAAc,CAAA;AACtC,eAAO,MAAM,YAAY,YAAY,CAAA;AAErC,eAAO,MAAM,SAAS,IAAI,CAAA;AAC1B,wCAAwC;AACxC,eAAO,MAAM,sBAAsB,KAAK,CAAA;AACxC,iCAAiC;AACjC,eAAO,MAAM,gBAAgB,KAAK,CAAA;AAClC,eAAO,MAAM,SAAS,IAAI,CAAA;AAC1B,eAAO,MAAM,SAAS,KAAK,CAAA;AAC3B,eAAO,MAAM,gBAAgB,KAAK,CAAA;AAClC,eAAO,MAAM,QAAQ,KAAK,CAAA;AAC1B,eAAO,MAAM,cAAc,KAAK,CAAA;AAChC,eAAO,MAAM,iBAAiB,KAAK,CAAA;AACnC,eAAO,MAAM,kBAAkB,KAAK,CAAA;AACpC,eAAO,MAAM,cAAc,QAAY,CAAA;AACvC,eAAO,MAAM,eAAe,QAAY,CAAA;AAExC,eAAO,MAAM,OAAO,MAAM,CAAA;AAC1B,eAAO,MAAM,gBAAgB,QAAS,CAAA;AACtC,eAAO,MAAM,cAAc,QAAsB,CAAA;AACjD,eAAO,MAAM,YAAY,QAAS,CAAA;AAClC,eAAO,MAAM,mBAAmB,QAAS,CAAA;AACzC,yCAAyC;AACzC,eAAO,MAAM,eAAe,QAAS,CAAA;AACrC,eAAO,MAAM,kBAAkB,QAAiB,CAAA;AAChD,eAAO,MAAM,gBAAgB,OAAO,CAAA;AACpC,eAAO,MAAM,qBAAqB,QAAS,CAAA;AAC3C,eAAO,MAAM,eAAe,KAAK,CAAA;AAEjC,eAAO,MAAM,SAAS,MAAM,CAAA;AAC5B,eAAO,MAAM,gBAAgB,OAAO,CAAA;AACpC,eAAO,MAAM,gBAAgB,OAAO,CAAA;AAEpC,eAAO,MAAM,YAAY;;;;;;;;;;;;EAIf,CAAA;AAEV,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAA;AAE9D,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,YAAY,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAIlF;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE3C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../../../../src/net/ws.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAsBzD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,GAAG,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../../../../src/net/ws.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAsBzD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,GAAG,MAAM,IAAI,CAkGxF"}
|
|
@@ -107,7 +107,17 @@ export declare class RoomManager {
|
|
|
107
107
|
playerId: PlayerId;
|
|
108
108
|
roomId: RoomId;
|
|
109
109
|
} | null;
|
|
110
|
+
/**
|
|
111
|
+
* 实时通道打开/关闭。
|
|
112
|
+
*
|
|
113
|
+
* 关掉 socket 不等于立刻离线:后台轮询(HTTP)还活着的话人还在。真正判离线交给
|
|
114
|
+
* `tick` 按 `PRESENCE_TTL_MS` 扫一遍,两边都没有动静才标成离线。
|
|
115
|
+
*/
|
|
110
116
|
markConnected(playerId: PlayerId, roomId: RoomId, connected: boolean): void;
|
|
117
|
+
/** HTTP 请求也算心跳:轮询模式下不能把自己和别人都显示成离线。 */
|
|
118
|
+
private touch;
|
|
119
|
+
/** 有实时通道,或者最近有 HTTP 动静,就算在线。 */
|
|
120
|
+
private refreshPresence;
|
|
111
121
|
health(): Record<string, unknown>;
|
|
112
122
|
private startHand;
|
|
113
123
|
private applyTableAction;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RoomManager.d.ts","sourceRoot":"","sources":["../../../../src/room/RoomManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,KAAK,EAEV,aAAa,EAGb,QAAQ,EACR,UAAU,EACV,MAAM,EAEN,WAAW,EAIX,WAAW,EACX,cAAc,EAEf,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,YAAY,EAA6C,MAAM,aAAa,CAAA;AAerF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAcrD,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,QAAQ,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;
|
|
1
|
+
{"version":3,"file":"RoomManager.d.ts","sourceRoot":"","sources":["../../../../src/room/RoomManager.ts"],"names":[],"mappings":"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"}
|
package/lib/types/types.d.ts
CHANGED
package/lib/types/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
|
package/lib/worker.js
CHANGED
|
@@ -3,7 +3,10 @@ import z from "@deepseek-ai/schemastery";
|
|
|
3
3
|
//#region src/invariant.ts
|
|
4
4
|
const ROUTE_PREFIX = "/holdem";
|
|
5
5
|
const MAX_SEATS = 6;
|
|
6
|
-
|
|
6
|
+
/** 观战席位默认值;实际值由设置项 maxSpectators 决定。 */
|
|
7
|
+
const DEFAULT_MAX_SPECTATORS = 16;
|
|
8
|
+
/** 设置项 maxSpectators 能配到的最大值。 */
|
|
9
|
+
const SPECTATORS_LIMIT = 64;
|
|
7
10
|
const MAX_ROOMS = 8;
|
|
8
11
|
const MAX_CHAT_LINES = 80;
|
|
9
12
|
const MAX_HISTORY_HANDS = 50;
|
|
@@ -11,6 +14,8 @@ const MAX_BODY_BYTES = 64 * 1024;
|
|
|
11
14
|
const MAX_FRAME_BYTES = 64 * 1024;
|
|
12
15
|
const TICK_MS = 250;
|
|
13
16
|
const SESSION_TTL_MS = 1440 * 60 * 1e3;
|
|
17
|
+
/** 没有实时通道时,HTTP 请求也算「人在」:这么久没动静才标成离线。 */
|
|
18
|
+
const PRESENCE_TTL_MS = 2e4;
|
|
14
19
|
const LOBBY_KICK_IDLE_MS = 600 * 1e3;
|
|
15
20
|
const CHAT_COOLDOWN_MS = 1200;
|
|
16
21
|
const BUY_IN_BB = 100;
|
|
@@ -53,6 +58,7 @@ const Config = z.object({
|
|
|
53
58
|
turnTimeoutSec: z.number().default(30).min(15).max(90),
|
|
54
59
|
autoAdvanceSec: z.number().default(6).min(2).max(30),
|
|
55
60
|
allowSpectators: z.boolean().default(true),
|
|
61
|
+
maxSpectators: z.number().default(DEFAULT_MAX_SPECTATORS).min(0).max(SPECTATORS_LIMIT),
|
|
56
62
|
chatEnabled: z.boolean().default(true),
|
|
57
63
|
maxRooms: z.number().default(MAX_ROOMS).min(1).max(64),
|
|
58
64
|
hostIdleDissolveMin: z.number().default(10).min(1).max(120),
|
|
@@ -77,6 +83,7 @@ function resolveConfig(config) {
|
|
|
77
83
|
turnTimeoutMs: turnTimeoutSec * 1e3,
|
|
78
84
|
autoAdvanceMs: autoAdvanceSec * 1e3,
|
|
79
85
|
allowSpectators: config.allowSpectators !== false,
|
|
86
|
+
maxSpectators: clamp(Math.trunc(config.maxSpectators ?? DEFAULT_MAX_SPECTATORS), 0, SPECTATORS_LIMIT),
|
|
80
87
|
chatEnabled: config.chatEnabled !== false,
|
|
81
88
|
maxRooms: clamp(Math.trunc(config.maxRooms ?? MAX_ROOMS), 1, 64),
|
|
82
89
|
hostIdleDissolveMs: clamp(config.hostIdleDissolveMin ?? 10, 1, 120) * 6e4,
|
|
@@ -1187,6 +1194,7 @@ var RoomManager = class {
|
|
|
1187
1194
|
turnTimeoutMs: this.config.turnTimeoutMs,
|
|
1188
1195
|
autoAdvanceMs: this.config.autoAdvanceMs,
|
|
1189
1196
|
allowSpectators: this.config.allowSpectators,
|
|
1197
|
+
maxSpectators: this.config.maxSpectators,
|
|
1190
1198
|
chatEnabled: this.config.chatEnabled
|
|
1191
1199
|
},
|
|
1192
1200
|
players: /* @__PURE__ */ new Map(),
|
|
@@ -1269,8 +1277,8 @@ var RoomManager = class {
|
|
|
1269
1277
|
if (cookieSession) {
|
|
1270
1278
|
const player$1 = room.players.get(cookieSession.playerId);
|
|
1271
1279
|
if (player$1 && !player$1.leaving) {
|
|
1272
|
-
player$1.connected = true;
|
|
1273
1280
|
player$1.browserId = input.browserId ?? player$1.browserId;
|
|
1281
|
+
this.touch(room, player$1);
|
|
1274
1282
|
return {
|
|
1275
1283
|
playerId: player$1.playerId,
|
|
1276
1284
|
roomId: room.roomId,
|
|
@@ -1285,8 +1293,8 @@ var RoomManager = class {
|
|
|
1285
1293
|
const seatedCount = [...room.players.values()].filter((player$1) => player$1.seat !== null).length;
|
|
1286
1294
|
const canSit = wanted === "sit" && invite.sit && room.phase === "lobby" && seatedCount < MAX_SEATS;
|
|
1287
1295
|
if (!canSit) {
|
|
1288
|
-
if (!room.settings.allowSpectators) throw new CommandError("room-full", "房间已满且不允许观战");
|
|
1289
|
-
if ([...room.players.values()].filter((player$1) => player$1.seat === null).length >=
|
|
1296
|
+
if (!room.settings.allowSpectators || room.settings.maxSpectators <= 0) throw new CommandError("room-full", "房间已满且不允许观战");
|
|
1297
|
+
if ([...room.players.values()].filter((player$1) => player$1.seat === null).length >= room.settings.maxSpectators) throw new CommandError("room-full", "观战席已满");
|
|
1290
1298
|
if (wanted === "sit" && invite.sit === false) throw new CommandError("auth", "没有入座权限");
|
|
1291
1299
|
}
|
|
1292
1300
|
const seat = canSit ? this.firstFreeSeat(room) : null;
|
|
@@ -1361,7 +1369,8 @@ var RoomManager = class {
|
|
|
1361
1369
|
view(roomId, playerId) {
|
|
1362
1370
|
const room = this.roomOf(playerId);
|
|
1363
1371
|
if (!room || room.roomId !== roomId) throw new CommandError("auth", "不在这个房间里");
|
|
1364
|
-
|
|
1372
|
+
const player = room.players.get(playerId);
|
|
1373
|
+
if (player) this.touch(room, player);
|
|
1365
1374
|
return this.project(room, playerId);
|
|
1366
1375
|
}
|
|
1367
1376
|
command(roomId, playerId, command, baseSeq, actionId) {
|
|
@@ -1369,7 +1378,7 @@ var RoomManager = class {
|
|
|
1369
1378
|
if (!room || room.roomId !== roomId) throw new CommandError("auth", "不在这个房间里");
|
|
1370
1379
|
const player = room.players.get(playerId);
|
|
1371
1380
|
if (!player || player.leaving) throw new CommandError("auth", "不在这个房间里");
|
|
1372
|
-
|
|
1381
|
+
this.touch(room, player);
|
|
1373
1382
|
if (command.type === "ping") return {
|
|
1374
1383
|
seq: room.seq,
|
|
1375
1384
|
view: this.project(room, playerId)
|
|
@@ -1512,13 +1521,32 @@ var RoomManager = class {
|
|
|
1512
1521
|
roomId: entry.roomId
|
|
1513
1522
|
};
|
|
1514
1523
|
}
|
|
1524
|
+
/**
|
|
1525
|
+
* 实时通道打开/关闭。
|
|
1526
|
+
*
|
|
1527
|
+
* 关掉 socket 不等于立刻离线:后台轮询(HTTP)还活着的话人还在。真正判离线交给
|
|
1528
|
+
* `tick` 按 `PRESENCE_TTL_MS` 扫一遍,两边都没有动静才标成离线。
|
|
1529
|
+
*/
|
|
1515
1530
|
markConnected(playerId, roomId, connected) {
|
|
1516
1531
|
const room = this.rooms.get(roomId);
|
|
1517
1532
|
const player = room?.players.get(playerId);
|
|
1518
1533
|
if (!room || !player) return;
|
|
1519
|
-
|
|
1520
|
-
if (player.
|
|
1521
|
-
|
|
1534
|
+
player.socketOpen = connected;
|
|
1535
|
+
if (connected) player.lastSeenAt = this.now();
|
|
1536
|
+
this.refreshPresence(room, player);
|
|
1537
|
+
}
|
|
1538
|
+
/** HTTP 请求也算心跳:轮询模式下不能把自己和别人都显示成离线。 */
|
|
1539
|
+
touch(room, player) {
|
|
1540
|
+
if (player.leaving) return;
|
|
1541
|
+
player.lastSeenAt = this.now();
|
|
1542
|
+
if (room.hostPlayerId === player.playerId) room.hostLastSeen = player.lastSeenAt;
|
|
1543
|
+
this.refreshPresence(room, player);
|
|
1544
|
+
}
|
|
1545
|
+
/** 有实时通道,或者最近有 HTTP 动静,就算在线。 */
|
|
1546
|
+
refreshPresence(room, player) {
|
|
1547
|
+
const online = !player.leaving && (player.socketOpen || this.now() - player.lastSeenAt < PRESENCE_TTL_MS);
|
|
1548
|
+
if (player.connected === online) return;
|
|
1549
|
+
player.connected = online;
|
|
1522
1550
|
this.publish(room);
|
|
1523
1551
|
}
|
|
1524
1552
|
health() {
|
|
@@ -1677,6 +1705,7 @@ var RoomManager = class {
|
|
|
1677
1705
|
if (room.phase === "hand" && room.hand) this.tickHand(room, now);
|
|
1678
1706
|
if (room.phase === "handOver" && room.handOverAt !== null && now >= room.handOverAt) this.advance(room, now);
|
|
1679
1707
|
for (const player of [...room.players.values()]) if (player.leaving && room.phase !== "hand") this.removePlayer(room, player.playerId);
|
|
1708
|
+
else this.refreshPresence(room, player);
|
|
1680
1709
|
}
|
|
1681
1710
|
this.cleanupSessions(now);
|
|
1682
1711
|
}
|
|
@@ -1827,6 +1856,8 @@ var RoomManager = class {
|
|
|
1827
1856
|
seat,
|
|
1828
1857
|
ready: false,
|
|
1829
1858
|
connected: true,
|
|
1859
|
+
socketOpen: false,
|
|
1860
|
+
lastSeenAt: this.now(),
|
|
1830
1861
|
sittingOut: false,
|
|
1831
1862
|
autoFold: false,
|
|
1832
1863
|
timeoutStreak: 0,
|
|
@@ -2854,6 +2885,7 @@ var RoomsDurableObject = class {
|
|
|
2854
2885
|
constructor(_state, env) {
|
|
2855
2886
|
const overrides = {};
|
|
2856
2887
|
if (env.MAX_ROOMS) overrides.maxRooms = Number(env.MAX_ROOMS);
|
|
2888
|
+
if (env.MAX_SPECTATORS) overrides.maxSpectators = Number(env.MAX_SPECTATORS);
|
|
2857
2889
|
this.manager = new RoomManager({
|
|
2858
2890
|
config: resolveConfig(overrides),
|
|
2859
2891
|
origin: () => this.origin,
|