@yyyu-star/arcade-kit 0.16.0 → 0.18.0
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/CHANGELOG.md +19 -0
- package/README.md +20 -1
- package/dist/chat-words.d.ts +7 -0
- package/dist/chat-words.d.ts.map +1 -0
- package/dist/chat-words.js +15 -0
- package/dist/chat-words.js.map +1 -0
- package/dist/chat.d.ts +30 -0
- package/dist/chat.d.ts.map +1 -0
- package/dist/chat.js +124 -0
- package/dist/chat.js.map +1 -0
- package/dist/client.d.ts +36 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +49 -0
- package/dist/client.js.map +1 -1
- package/dist/game.d.ts +7 -0
- package/dist/game.d.ts.map +1 -1
- package/dist/game.js +1 -0
- package/dist/game.js.map +1 -1
- package/dist/protocol.d.ts +35 -1
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +6 -0
- package/dist/protocol.js.map +1 -1
- package/dist/room.d.ts +23 -0
- package/dist/room.d.ts.map +1 -1
- package/dist/room.js +66 -3
- package/dist/room.js.map +1 -1
- package/dist/table-fun.d.ts +63 -3
- package/dist/table-fun.d.ts.map +1 -1
- package/dist/table-fun.js +209 -11
- package/dist/table-fun.js.map +1 -1
- package/dist/worker.d.ts.map +1 -1
- package/dist/worker.js +5 -2
- package/dist/worker.js.map +1 -1
- package/package.json +5 -1
- package/src/chat-words.ts +14 -0
- package/src/chat.ts +131 -0
- package/src/client.ts +64 -3
- package/src/game.ts +11 -0
- package/src/protocol.ts +33 -1
- package/src/room.ts +76 -4
- package/src/table-fun.ts +220 -12
- package/src/worker.ts +5 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# 更新日志
|
|
2
2
|
|
|
3
|
+
## 0.18.0
|
|
4
|
+
|
|
5
|
+
好友房打字聊天(设计 `docs/chat.md`,主线审过;`docs/social.md` 3.1 改成要做)。游戏要显式打开,不开的游戏行为完全不变。
|
|
6
|
+
- **房间**:`RoomGame.chat = true` 后入座的人能发 `{ t: 'chat', text }`;房间过 `checkChat`、按座位限速(3 秒一条、一分钟 10 条,`RoomLimits.chatMs` / `chatPerMin`,`KIT_QUOTA` 可改),
|
|
7
|
+
只转发给连接时带了 `chat=1` 的连接(`{ t: 'chat', seat, text, masked? }`)。0 行存储、不改 seq、不进快照和 welcome;被拒回 `CHAT_ERRORS` 里的 code、不占条数。`welcome.chat` 带节奏和字数。
|
|
8
|
+
- **过滤**(新入口 `arcade-kit/chat`,纯函数):NFKC 规整、去零宽和方向控制符;≤ 30 个字;链接、连续 7 位以上的数字(空格、横线、中文数字拆开的也认)、微信 QQ 号样式整条拒发;
|
|
9
|
+
**标准千分位的金额放行**(1,000,000,≤ 10 位,主线审时加的),拒发提示"不能发号码,金额请写成 1,000,000";脏话按 `chat-words.ts` 打码照发,游戏能用 `chatWords` 加词。
|
|
10
|
+
- **页面**:`RoomClient` 的 `onChat`、`onChatError`、`chat(text)`(本地先挡)、`chatWait()`;`acceptJoin` 把 `chat=1` 转给房间。
|
|
11
|
+
`TableFun` 的 `chat` / `chatEnabled` 选项、`chat(seat, text)` 收、`chatError(code)`:聊天页、4 秒气泡、小红点、键盘避让。`bubble()` 多一个 `cls` 参数并返回气泡元素。
|
|
12
|
+
- 平台屏蔽名单:按主线定的 B 方案,这一版只有 kit 本地屏蔽,平台 RPC 出了再接。
|
|
13
|
+
- 测试:`test/chat.test.ts` 20 条(过滤的绕法和误伤、金额、打码;房间转发、旧页面收不到、限速两道、被拒不占数、chat_off、不进快照和存储、聊天代码不碰存储和钩子;`RoomClient` 本地挡和分流)。
|
|
14
|
+
反证:去掉房间的限速、不看 `chat=1` 都转发,对应测试失败。演示页截了 1280×720 和手机横屏 844×390,控制台零报错。
|
|
15
|
+
|
|
16
|
+
## 0.17.0
|
|
17
|
+
|
|
18
|
+
- 牌桌互动加可选的 `hintSeat()`:首次提示"点头像扔道具,长按连扔"冒在哪个座位由游戏定,返回 null 表示现在会挡住东西(比如那家刚出的牌),组件过 2 秒再问。
|
|
19
|
+
掼蛋手机横屏上提示一直冒在右家头像左边,正好盖住右家刚出的牌(主线验收时发现)。不给就和以前一样挑第一个电脑。
|
|
20
|
+
- 挑座位的逻辑抽成纯函数 `hintSeatFor`,`test/table-fun.test.ts` 加两条(反证:忽略游戏给的座位,测试失败)。
|
|
21
|
+
|
|
3
22
|
## 0.16.0
|
|
4
23
|
|
|
5
24
|
DOM 组件的主题参数(主线要的:kit 的菜单、面板和各游戏的风格不一致)。
|
package/README.md
CHANGED
|
@@ -45,6 +45,7 @@ a daily write-quota meter (`arcade-kit/meter`), a seeded ChaCha20 RNG (`arcade-k
|
|
|
45
45
|
| `arcade-kit/protocol` | 两边 | 消息类型、协议版本、关闭码、房间码格式 |
|
|
46
46
|
| `arcade-kit/share` | 浏览器 | 分享卡(0.12.0):`drawShareCard` 画 1080×1350 的战绩图,`shareCard` 带文件调系统分享,不支持就出预览(保存图片、复制链接);不上传、0 行写入 |
|
|
47
47
|
| `arcade-kit/social` | 浏览器 | 社交第一期(0.12.0):`mountSocial` 报位置、收好友邀请并在顶上弹横条;`sendInvite`、`fetchFriends`、`setShowWhere`、`postMoment`(0.12.5)等接口小函数;只在有平台且已登录时挂 |
|
|
48
|
+
| `arcade-kit/chat` | 两边 | 好友房聊天的过滤(0.18.0):`checkChat`(规整 → 字数 → 链接、号码、微信 QQ 整条拒发 → 脏话打码)、`chatRejectText`;纯函数,房间和页面用同一个 |
|
|
48
49
|
| `arcade-kit/theme` | 浏览器 | DOM 组件的主题(0.16.0):`KitTheme`、`themeVars`(主题对象 → `--ak-*` 变量列表,挡 CSS 注入)、`applyTheme`;分享预览、邀请横条和面板、牌桌互动菜单都认 |
|
|
49
50
|
|
|
50
51
|
**发布和仓库内引用是两种形态**(0.10.0):
|
|
@@ -301,6 +302,7 @@ const fun = new TableFun({
|
|
|
301
302
|
button: () => funButtonRect(), // "互动"按钮放哪;null 不画(没坐下)
|
|
302
303
|
send: (id, to) => (online ? client.emote(id, to) : fun.receive(0, id, to)),
|
|
303
304
|
canSend: () => seated,
|
|
305
|
+
hintSeat: () => (trickEmpty(1) ? 1 : null), // 首次提示冒在哪家头像旁;null = 现在会挡住出牌,过 2 秒再问(0.17.0,不给就挑第一个电脑)
|
|
304
306
|
enabled: () => settings.fun, // 设置里关掉:别人的一律不播,单机电脑也不反应
|
|
305
307
|
scope: () => roomCode ?? 'solo', // "屏蔽他""全部屏蔽"按房间分开
|
|
306
308
|
localBots: !online, // 单机:电脑的反应由组件算、在本地播
|
|
@@ -346,6 +348,22 @@ protected override onEmote(from: number, id: number, to?: number): void {
|
|
|
346
348
|
- 电脑的反应只是画面,**出牌决策绝不读它**;真人的短语、道具不记进牌局状态(见上面 `onEmote` 的规矩)。
|
|
347
349
|
- 其他纯函数:`stickerMood`(表情对应的情绪)、`FunCooldown`(冷却)、`FunTally`(护盾、连击、回敬)、`placeMenu`(菜单放哪,避开禁区;窄屏按 `fitMenuWidth` 收窄到屏幕宽减 16px,0.11.2)、`funItem`/`stickerId`/`propId`(编号换算),测试在 `test/fun-logic.test.ts`。
|
|
348
350
|
|
|
351
|
+
## 好友房聊天(chat,0.18.0)
|
|
352
|
+
|
|
353
|
+
设计和取舍见 [docs/chat.md](docs/chat.md)(主线 2026-10-17 审过)。只在好友房、入座的真人能说,一条 ≤ 30 个字;房间过滤、限速后只转发,**不写存储、不进快照、不进任何记录**,房间散了就没了。
|
|
354
|
+
|
|
355
|
+
- 房间:游戏的 `RoomGame` 写 `chat: true`(可选 `chatWords` 加打码词,删不了 kit 的)。限速 `chatMs`(默认 3000)、`chatPerMin`(默认 10)在 `RoomLimits`,`KIT_QUOTA` 里能改。
|
|
356
|
+
真人说的话不交给规则、`onStep`、`onEmote`,电脑不读、不回自由文字。
|
|
357
|
+
- 页面:`new RoomClient({ ..., onChat: (seat, text, masked) => fun.chat(seat, text, masked), onChatError: (code) => fun.chatError(code) })`,
|
|
358
|
+
`TableFun` 传 `chat: (text) => client.chat(text)` 和设置里的 `chatEnabled: () => …`("聊天:开 / 不看",和"互动"分开)。
|
|
359
|
+
传了 `onChat` 连接才带 `chat=1`,房间只给这样的连接发(旧页面不认识这条消息),所以不加 `PROTOCOL_VERSION`。
|
|
360
|
+
- `client.chat(text)` 先在本地过一遍和房间一样的检查,不行直接返回原因(`chatRejectText(code, why)` 给说法):链接"不能发链接",号码"不能发号码,金额请写成 1,000,000"——
|
|
361
|
+
标准千分位的金额(≤ 10 位)放行;太快的带 `waitMs`,"发送"按钮倒计时。
|
|
362
|
+
- 界面:头像旁冒 4 秒气泡(能折行,同一个人后一条顶掉前一条);"互动"面板多一个"聊天"页:最近 30 条(只在内存里)、输入框(16px,iOS 不放大页面)和"发送",回车发;
|
|
363
|
+
键盘弹出时按 `visualViewport` 把面板挪到键盘上面;收起时有新消息,"互动"按钮上一个小红点。被屏蔽(单个、全部)的人说的不显示。
|
|
364
|
+
- 平台的屏蔽名单(`docs/social.md` 3.1)要平台出一个 RPC,出了以后 kit 小版本接上(docs/chat.md 第 6 节,主线定的 B 方案);现在只有 kit 的本地屏蔽。
|
|
365
|
+
- 演示页 `demo/table-fun.html` 里能点开"聊天"页试(单机演示,右家隔一秒回一句)。
|
|
366
|
+
|
|
349
367
|
## 分享卡和邀请(share、social,0.12.0)
|
|
350
368
|
|
|
351
369
|
规范是仓库根 `docs/social.md` 1.1–1.3。两个入口都只在调用时碰 DOM,import 时不碰;纯的部分测试在 `test/share.test.ts`、`test/social.test.ts`。
|
|
@@ -653,7 +671,8 @@ packages/arcade-kit/
|
|
|
653
671
|
│ ├─ rng.ts ChaCha20 随机数
|
|
654
672
|
│ ├─ fun.ts、fun-art.ts 快捷短语、表情、道具的画面层
|
|
655
673
|
│ ├─ fun-logic.ts 牌桌互动的规则:冷却、护盾、连击、回敬、电脑反应、菜单位置(纯函数)
|
|
656
|
-
│ ├─ table-fun.ts 牌桌互动组件 TableFun(DOM
|
|
674
|
+
│ ├─ table-fun.ts 牌桌互动组件 TableFun(DOM:头像菜单、面板、提示、聊天页)
|
|
675
|
+
│ ├─ chat.ts、chat-words.ts 好友房聊天的过滤和打码词表(纯函数)
|
|
657
676
|
│ ├─ share.ts 分享卡(Canvas 画战绩图、系统分享或预览)
|
|
658
677
|
│ ├─ qr.ts 二维码编码器(字节模式、纠错 M、版本 1–10,纯函数,分享卡用)
|
|
659
678
|
│ ├─ social.ts 报位置、收邀请的横条、好友和邀请的接口小函数
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 聊天打码的词表(0.18.0,docs/chat.md 第 2 节第 4 条):短、常见、没有歧义的粗口和侮辱,命中的字换成 *、照常发出去。
|
|
3
|
+
* 只收"不管在哪儿说都是骂人"的词;"垃圾""卧槽"这类牌桌上常见的口头禅不收(打码会把正常吐槽打花)。不针对任何真实个人。
|
|
4
|
+
* 游戏要加词用 RoomGame.chatWords,不在这里改游戏特有的。
|
|
5
|
+
*/
|
|
6
|
+
export declare const CHAT_WORDS: readonly string[];
|
|
7
|
+
//# sourceMappingURL=chat-words.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-words.d.ts","sourceRoot":"","sources":["../src/chat-words.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,SAAS,MAAM,EAQvC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 聊天打码的词表(0.18.0,docs/chat.md 第 2 节第 4 条):短、常见、没有歧义的粗口和侮辱,命中的字换成 *、照常发出去。
|
|
3
|
+
* 只收"不管在哪儿说都是骂人"的词;"垃圾""卧槽"这类牌桌上常见的口头禅不收(打码会把正常吐槽打花)。不针对任何真实个人。
|
|
4
|
+
* 游戏要加词用 RoomGame.chatWords,不在这里改游戏特有的。
|
|
5
|
+
*/
|
|
6
|
+
export const CHAT_WORDS = [
|
|
7
|
+
// 粗口
|
|
8
|
+
'傻逼', '傻b', '煞笔', '沙比', '傻屄', '撒比', '傻叉', 'sb',
|
|
9
|
+
'草泥马', '操你', '肏', '艹你', '干你娘', '你妈的', '他妈的', '妈的', '你妈逼',
|
|
10
|
+
'cnm', 'nmsl', 'tmd', 'mlgb', 'wcnm', 'nmb', 'fuck', 'fck', 'shit', 'bitch', 'asshole',
|
|
11
|
+
'鸡巴', '屌你', '逼样', '狗日', '狗娘养', '王八蛋', '龟儿子', '婊子', '贱人', '贱货', '骚货',
|
|
12
|
+
// 人身攻击
|
|
13
|
+
'脑残', '智障', '弱智', '白痴', '废物', '去死', '死全家', '杂种', '畜生', '人渣',
|
|
14
|
+
];
|
|
15
|
+
//# sourceMappingURL=chat-words.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-words.js","sourceRoot":"","sources":["../src/chat-words.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAsB;IAC3C,KAAK;IACL,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9C,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK;IACxD,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS;IACtF,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACnE,OAAO;IACP,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CAC5D,CAAC"}
|
package/dist/chat.d.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/** 一条最多几个字(按码点) */
|
|
2
|
+
export declare const CHAT_MAX = 30;
|
|
3
|
+
/** 被拒的原因(页面挑说法用;房间回的 code 都是 chat_blocked) */
|
|
4
|
+
export type ChatBlockWhy = 'link' | 'number' | 'contact';
|
|
5
|
+
export type ChatCheck = {
|
|
6
|
+
ok: true;
|
|
7
|
+
text: string;
|
|
8
|
+
masked: boolean;
|
|
9
|
+
} | {
|
|
10
|
+
ok: false;
|
|
11
|
+
code: 'chat_empty' | 'chat_too_long';
|
|
12
|
+
} | {
|
|
13
|
+
ok: false;
|
|
14
|
+
code: 'chat_blocked';
|
|
15
|
+
why: ChatBlockWhy;
|
|
16
|
+
};
|
|
17
|
+
/** 规整:NFKC(全角转半角、①转 1)、去掉看不见的字符、连续空白并成一个、去首尾空白 */
|
|
18
|
+
export declare function normalizeChat(raw: string): string;
|
|
19
|
+
/** 判导流:命中返回原因;先把常见的绕法还原(中文数字、分隔符、金额) */
|
|
20
|
+
export declare function blockReason(text: string): ChatBlockWhy | null;
|
|
21
|
+
/** 脏话打码:命中的每个字换成 *,返回打码后的文本和有没有打过码。words 是游戏加的词(不能删 kit 的) */
|
|
22
|
+
export declare function maskChat(text: string, words?: readonly string[]): {
|
|
23
|
+
text: string;
|
|
24
|
+
masked: boolean;
|
|
25
|
+
};
|
|
26
|
+
/** 一条聊天从头到尾过一遍:房间和页面用同一个函数 */
|
|
27
|
+
export declare function checkChat(raw: unknown, words?: readonly string[]): ChatCheck;
|
|
28
|
+
/** 被拒时给发的人看的话(页面用;房间只回 code) */
|
|
29
|
+
export declare function chatRejectText(code: string, why?: ChatBlockWhy): string;
|
|
30
|
+
//# sourceMappingURL=chat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../src/chat.ts"],"names":[],"mappings":"AAOA,mBAAmB;AACnB,eAAO,MAAM,QAAQ,KAAK,CAAC;AAE3B,8CAA8C;AAC9C,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEzD,MAAM,MAAM,SAAS,GACjB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAC3C;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,YAAY,GAAG,eAAe,CAAA;CAAE,GACnD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,cAAc,CAAC;IAAC,GAAG,EAAE,YAAY,CAAA;CAAE,CAAC;AAK3D,kDAAkD;AAClD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGjD;AA8BD,wCAAwC;AACxC,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAS7D;AAMD,8DAA8D;AAC9D,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,SAAS,MAAM,EAAO,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAwBvG;AAED,8BAA8B;AAC9B,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,GAAE,SAAS,MAAM,EAAO,GAAG,SAAS,CAWhF;AAED,gCAAgC;AAChC,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,YAAY,GAAG,MAAM,CAiBvE"}
|
package/dist/chat.js
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 好友房聊天的过滤(0.18.0,设计见 docs/chat.md 第 2 节):纯函数,房间和页面都 import,页面发之前跑一遍给即时提示,房间收到再跑一遍(以房间为准)。
|
|
3
|
+
* 顺序:规整 → 判长度 → 判导流(整条拒发)→ 脏话打码(照发)。不碰 DOM、时间和随机数。
|
|
4
|
+
* kit 里不出现任何游戏的名字和概念;词表不针对真实个人。
|
|
5
|
+
*/
|
|
6
|
+
import { CHAT_WORDS } from './chat-words.js';
|
|
7
|
+
/** 一条最多几个字(按码点) */
|
|
8
|
+
export const CHAT_MAX = 30;
|
|
9
|
+
/** 控制字符、零宽字符、方向控制符、变体选择符:拿来藏字、倒序显示、把号码拆开 */
|
|
10
|
+
const INVISIBLE = /[\u0000-\u001f\u007f-\u009f͏ᅟᅠ឴឵᠋-᠏---ㅤ︀-️ᅠ]/gu;
|
|
11
|
+
/** 规整:NFKC(全角转半角、①转 1)、去掉看不见的字符、连续空白并成一个、去首尾空白 */
|
|
12
|
+
export function normalizeChat(raw) {
|
|
13
|
+
// 换行、制表先当空格,不然会被当成控制字符删掉、把两边的字粘在一起
|
|
14
|
+
return raw.normalize('NFKC').replace(/[\t\n\v\f\r]/gu, ' ').replace(INVISIBLE, '').replace(/\s+/gu, ' ').trim();
|
|
15
|
+
}
|
|
16
|
+
/** 中文数字(含大写)转阿拉伯数字,只用来判号码,不改发出去的字 */
|
|
17
|
+
const CN_DIGIT = {
|
|
18
|
+
〇: '0', 零: '0', 洞: '0', 一: '1', 壹: '1', 幺: '1', 二: '2', 贰: '2', 两: '2', 三: '3', 叁: '3', 四: '4', 肆: '4',
|
|
19
|
+
五: '5', 伍: '5', 六: '6', 陆: '6', 七: '7', 柒: '7', 八: '8', 捌: '8', 九: '9', 玖: '9',
|
|
20
|
+
};
|
|
21
|
+
const CN_DIGITS = new RegExp(`[${Object.keys(CN_DIGIT).join('')}]`, 'gu');
|
|
22
|
+
/**
|
|
23
|
+
* 筹码金额放行(主线 2026-10-17 审):标准千分位写法(1,000,000)不算号码。前后不能再挨着数字或逗号,
|
|
24
|
+
* 不然 "138,0013,8000" 这种乱分组的号码能混过去;总位数封顶 10 位:11 位的手机号写成千分位(13,800,138,000)照样拦
|
|
25
|
+
*/
|
|
26
|
+
// 不用后行断言(?<!):iOS 16.4 以前的 Safari 不认,整个模块会解析失败、连带 RoomClient 起不来;前面那个字符用捕获组带回去
|
|
27
|
+
const AMOUNT = /(^|[^\d,])(\d{1,3}(?:,\d{3})+)(?![\d,])/gu;
|
|
28
|
+
const AMOUNT_MAX_DIGITS = 10;
|
|
29
|
+
/** 夹在号码中间的分隔符:空格、点、横线、下划线、斜杠、逗号、顿号、句号、各种破折号 */
|
|
30
|
+
const SEPARATORS = /[\s.\-_/,、。·•~~—–]/gu;
|
|
31
|
+
const TLD = 'com|cn|net|org|top|xyz|cc|io|me|vip|info|biz|club|site|online|shop|app|link|fun|tv|co|ly|gg|ink|wang|xin|ren|asia|hk|tw|us|uk';
|
|
32
|
+
/** 网址:协议、www、"字母数字 + 点 + 常见顶级域"(。和"点"当成点)。只在小写、去掉空白的文本上判 */
|
|
33
|
+
const LINK = new RegExp(`https?|:\\/\\/|www[.。点]|[a-z0-9][a-z0-9-]*(?:\\.|。|点)(?:${TLD})(?![a-z])`, 'u');
|
|
34
|
+
/**
|
|
35
|
+
* 微信、QQ 一类的叫法,隔着最多 3 个字("号是:")跟着 ≥ 5 位字母数字就是在留联系方式。
|
|
36
|
+
* 电话、手机不在这里:号码本身 ≥ 7 位就拦了,放进来反倒误伤"手机快没电了 hello"
|
|
37
|
+
*/
|
|
38
|
+
const CONTACT = /(?:微信|威信|薇信|徽信|vx|v信|wx|weixin|wechat|qq|扣扣|企鹅|加我|私聊|私信|加群|群号)[^a-z0-9]{0,3}[a-z0-9]{5,}/u;
|
|
39
|
+
/** 判导流:命中返回原因;先把常见的绕法还原(中文数字、分隔符、金额) */
|
|
40
|
+
export function blockReason(text) {
|
|
41
|
+
const lower = text.toLowerCase();
|
|
42
|
+
if (LINK.test(lower.replace(/\s+/gu, '')))
|
|
43
|
+
return 'link';
|
|
44
|
+
const digits = lower.replace(CN_DIGITS, (c) => CN_DIGIT[c]);
|
|
45
|
+
const compact = digits.replace(SEPARATORS, '');
|
|
46
|
+
if (CONTACT.test(compact))
|
|
47
|
+
return 'contact';
|
|
48
|
+
const noAmount = digits.replace(AMOUNT, (m, pre, num) => (num.replace(/,/gu, '').length <= AMOUNT_MAX_DIGITS ? `${pre} ` : m));
|
|
49
|
+
if (/\d{7,}/u.test(noAmount.replace(SEPARATORS, '')))
|
|
50
|
+
return 'number';
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
/** 能参与匹配的字(字母、数字、汉字等);夹在中间的空格、符号跳过("傻 逼"、"s.b" 也认) */
|
|
54
|
+
const WORD_CHAR = /[\p{L}\p{N}]/u;
|
|
55
|
+
const ASCII = /^[a-z0-9]+$/u;
|
|
56
|
+
/** 脏话打码:命中的每个字换成 *,返回打码后的文本和有没有打过码。words 是游戏加的词(不能删 kit 的) */
|
|
57
|
+
export function maskChat(text, words = []) {
|
|
58
|
+
const chars = Array.from(text);
|
|
59
|
+
const at = [];
|
|
60
|
+
const sk = [];
|
|
61
|
+
chars.forEach((c, i) => {
|
|
62
|
+
if (!WORD_CHAR.test(c))
|
|
63
|
+
return;
|
|
64
|
+
at.push(i);
|
|
65
|
+
// 个别字母小写后变两个码点(İ),只取第一个,保证 sk 和 at 一一对应
|
|
66
|
+
sk.push(Array.from(c.toLowerCase())[0]);
|
|
67
|
+
});
|
|
68
|
+
const hit = new Set();
|
|
69
|
+
for (const raw of [...CHAT_WORDS, ...words]) {
|
|
70
|
+
const w = Array.from(normalizeChat(raw).toLowerCase()).filter((c) => WORD_CHAR.test(c));
|
|
71
|
+
if (w.length === 0)
|
|
72
|
+
continue;
|
|
73
|
+
const ascii = ASCII.test(w.join(''));
|
|
74
|
+
for (let i = 0; i + w.length <= sk.length; i++) {
|
|
75
|
+
if (!w.every((c, k) => sk[i + k] === c))
|
|
76
|
+
continue;
|
|
77
|
+
// 英文缩写要整词:sb 不该打掉 "isbn" 里的两个字母
|
|
78
|
+
if (ascii && (/[a-z0-9]/u.test(sk[i - 1] ?? '') || /[a-z0-9]/u.test(sk[i + w.length] ?? '')))
|
|
79
|
+
continue;
|
|
80
|
+
for (let k = 0; k < w.length; k++)
|
|
81
|
+
hit.add(at[i + k]);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
if (hit.size === 0)
|
|
85
|
+
return { text, masked: false };
|
|
86
|
+
return { text: chars.map((c, i) => (hit.has(i) ? '*' : c)).join(''), masked: true };
|
|
87
|
+
}
|
|
88
|
+
/** 一条聊天从头到尾过一遍:房间和页面用同一个函数 */
|
|
89
|
+
export function checkChat(raw, words = []) {
|
|
90
|
+
if (typeof raw !== 'string')
|
|
91
|
+
return { ok: false, code: 'chat_empty' };
|
|
92
|
+
// 先截一刀再规整:几十 KB 的消息早在 maxMessageBytes 就挡了,这里只防规整本身吃太多
|
|
93
|
+
const text = normalizeChat(raw.slice(0, CHAT_MAX * 8));
|
|
94
|
+
const n = Array.from(text).length;
|
|
95
|
+
if (n === 0)
|
|
96
|
+
return { ok: false, code: 'chat_empty' };
|
|
97
|
+
if (n > CHAT_MAX || raw.length > CHAT_MAX * 8)
|
|
98
|
+
return { ok: false, code: 'chat_too_long' };
|
|
99
|
+
const why = blockReason(text);
|
|
100
|
+
if (why)
|
|
101
|
+
return { ok: false, code: 'chat_blocked', why };
|
|
102
|
+
const m = maskChat(text, words);
|
|
103
|
+
return { ok: true, text: m.text, masked: m.masked };
|
|
104
|
+
}
|
|
105
|
+
/** 被拒时给发的人看的话(页面用;房间只回 code) */
|
|
106
|
+
export function chatRejectText(code, why) {
|
|
107
|
+
switch (code) {
|
|
108
|
+
case 'chat_blocked':
|
|
109
|
+
return why === 'link' ? '不能发链接' : '不能发号码,金额请写成 1,000,000';
|
|
110
|
+
case 'chat_too_long':
|
|
111
|
+
return `一条最多 ${CHAT_MAX} 个字`;
|
|
112
|
+
case 'chat_too_fast':
|
|
113
|
+
return '说慢一点';
|
|
114
|
+
case 'not_seated':
|
|
115
|
+
return '坐下才能说话';
|
|
116
|
+
case 'room_over':
|
|
117
|
+
return '这桌已经散了';
|
|
118
|
+
case 'chat_offline':
|
|
119
|
+
return '还没连上';
|
|
120
|
+
default:
|
|
121
|
+
return '没发出去';
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=chat.js.map
|
package/dist/chat.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../src/chat.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
CHANGED
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
*
|
|
17
17
|
* 浏览器里的计时器(重连、心跳)可以用 setTimeout,"只用一个闹钟"是房间(Durable Object)那边的规矩。
|
|
18
18
|
*/
|
|
19
|
+
import { type ChatBlockWhy } from './chat.js';
|
|
19
20
|
import { type CreateError, type DownMsg, PROTOCOL_VERSION } from './protocol.js';
|
|
20
21
|
export type ClientStatus = 'connecting' | 'open' | 'reconnecting' | 'closed' | 'failed';
|
|
21
22
|
export interface RoomClientOptions<V> {
|
|
@@ -35,6 +36,13 @@ export interface RoomClientOptions<V> {
|
|
|
35
36
|
* to(0.7.0):冲着哪个座位发的,没指定时是 undefined;bot(0.10.0):电脑座位发的(GameRoom.botEmote)是 true,一般不用区分
|
|
36
37
|
*/
|
|
37
38
|
onEmote?(seat: number, id: number, to?: number, bot?: boolean): void;
|
|
39
|
+
/**
|
|
40
|
+
* 有人说了一句(0.18.0,见 RoomGame.chat 和 docs/chat.md):seat 是房间的座位号,text 是房间过滤、打码后的字,masked 表示打过码。
|
|
41
|
+
* 传了它连接时才带 chat=1,房间才会给这个页面发聊天;不传就收不到、也别调 chat()
|
|
42
|
+
*/
|
|
43
|
+
onChat?(seat: number, text: string, masked: boolean): void;
|
|
44
|
+
/** 房间拒了一条聊天(0.18.0,CHAT_ERRORS 里聊天专有的那几个):本地已经先挡过一遍,一般只在节奏刚调过、刚重连时出现 */
|
|
45
|
+
onChatError?(code: string): void;
|
|
38
46
|
/** 下面这些是给测试注入的;浏览器里不用传 */
|
|
39
47
|
WebSocketImpl?: {
|
|
40
48
|
new (url: string): WebSocketLike;
|
|
@@ -80,6 +88,24 @@ export declare const STALL_GRACE_MS = 20000;
|
|
|
80
88
|
export declare const STALL_JITTER_MS = 10000;
|
|
81
89
|
/** 第 n 次重连(从 0 起)的等待:指数退避,上限 15 秒,乘一个 [0.5, 1) 的随机系数(抖动,免得一桌人同时重连)。 */
|
|
82
90
|
export declare function backoffMs(attempt: number, random?: () => number): number;
|
|
91
|
+
/**
|
|
92
|
+
* chat() 的结果(0.18.0):被本地挡下的 code 和房间回的一样(CHAT_ERRORS),多一个 chat_offline(没连上);
|
|
93
|
+
* chat_blocked 带 why(链接还是号码,挑说法用),chat_too_fast 带 waitMs
|
|
94
|
+
*/
|
|
95
|
+
export type ChatSendResult = {
|
|
96
|
+
ok: true;
|
|
97
|
+
} | {
|
|
98
|
+
ok: false;
|
|
99
|
+
code: 'chat_off' | 'chat_empty' | 'chat_too_long' | 'chat_offline';
|
|
100
|
+
} | {
|
|
101
|
+
ok: false;
|
|
102
|
+
code: 'chat_blocked';
|
|
103
|
+
why: ChatBlockWhy;
|
|
104
|
+
} | {
|
|
105
|
+
ok: false;
|
|
106
|
+
code: 'chat_too_fast';
|
|
107
|
+
waitMs: number;
|
|
108
|
+
};
|
|
83
109
|
export declare class RoomClient<A = unknown, V = unknown> {
|
|
84
110
|
private ws;
|
|
85
111
|
private status;
|
|
@@ -108,6 +134,9 @@ export declare class RoomClient<A = unknown, V = unknown> {
|
|
|
108
134
|
/** 太快时排着的(只留最后 EMOTE_QUEUE 个),到下一个令牌时发 */
|
|
109
135
|
private emoteQueue;
|
|
110
136
|
private emoteTimer;
|
|
137
|
+
/** 聊天的节奏(0.18.0,welcome.chat)和本地记的最近一分钟发出去的时间;没收到 welcome 前按 kit 的默认 */
|
|
138
|
+
private chatRate;
|
|
139
|
+
private chatTimes;
|
|
111
140
|
private readonly opts;
|
|
112
141
|
private readonly onWake;
|
|
113
142
|
/** pageshow 带 persisted:页面是从往返缓存里拿回来的,旧连接不能信 */
|
|
@@ -122,6 +151,13 @@ export declare class RoomClient<A = unknown, V = unknown> {
|
|
|
122
151
|
leave(): void;
|
|
123
152
|
/** 房主开局;opts 是开局选项(0.3.0,游戏校验),不带就和以前一样 */
|
|
124
153
|
start(opts?: unknown): void;
|
|
154
|
+
/**
|
|
155
|
+
* 说一句(0.18.0):先在本地过一遍房间同样的检查(字数、导流、节奏),不行就不发、直接告诉页面为什么(chatRejectText 给说法);
|
|
156
|
+
* 行就发出去,房间转发回来的经 onChat 交给页面(发的人自己也收到)。没连上不存着重发。waitMs 是太快时还要等多久
|
|
157
|
+
*/
|
|
158
|
+
chat(text: string, now?: number): ChatSendResult;
|
|
159
|
+
/** 还要等多久才能说下一句(毫秒,0 = 现在就能):按房间给的节奏,界面拿来给"发送"按钮倒计时 */
|
|
160
|
+
chatWait(now?: number): number;
|
|
125
161
|
/**
|
|
126
162
|
* 快捷短语(0.6.0):发游戏短语表里的编号;to(0.7.0)是冲着哪个座位(扔道具、点名嘲讽),不带就是对全桌。
|
|
127
163
|
* 0.7.0 起本地按房间的节奏(welcome.emote)排队:太快的排到下一个令牌,只留最后 2 个,不提示用户。没连上就丢掉,不存着重发(过时的短语没意义);
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
*
|
|
17
17
|
* 浏览器里的计时器(重连、心跳)可以用 setTimeout,"只用一个闹钟"是房间(Durable Object)那边的规矩。
|
|
18
18
|
*/
|
|
19
|
+
import { checkChat } from './chat.js';
|
|
19
20
|
import { CLOSE, CLOSE_REASON, isFinalClose, PING, PONG, PROTOCOL_VERSION } from './protocol.js';
|
|
20
21
|
const OPEN = 1;
|
|
21
22
|
const BASE_MS = 500;
|
|
@@ -39,6 +40,8 @@ export function backoffMs(attempt, random = Math.random) {
|
|
|
39
40
|
const cap = Math.min(MAX_MS, BASE_MS * 2 ** attempt);
|
|
40
41
|
return Math.round(cap * (0.5 + random() / 2));
|
|
41
42
|
}
|
|
43
|
+
/** 聊天专有的拒绝码:不交给 onMessage(not_seated、room_over 和短语共用,照旧走 onMessage) */
|
|
44
|
+
const CHAT_ONLY_ERRORS = new Set(['chat_off', 'chat_empty', 'chat_too_long', 'chat_too_fast', 'chat_blocked']);
|
|
42
45
|
export class RoomClient {
|
|
43
46
|
ws = null;
|
|
44
47
|
status = 'connecting';
|
|
@@ -67,6 +70,9 @@ export class RoomClient {
|
|
|
67
70
|
/** 太快时排着的(只留最后 EMOTE_QUEUE 个),到下一个令牌时发 */
|
|
68
71
|
emoteQueue = [];
|
|
69
72
|
emoteTimer = null;
|
|
73
|
+
/** 聊天的节奏(0.18.0,welcome.chat)和本地记的最近一分钟发出去的时间;没收到 welcome 前按 kit 的默认 */
|
|
74
|
+
chatRate = { ms: 3000, perMin: 10 };
|
|
75
|
+
chatTimes = [];
|
|
70
76
|
opts;
|
|
71
77
|
onWake = () => this.wake(false);
|
|
72
78
|
/** pageshow 带 persisted:页面是从往返缓存里拿回来的,旧连接不能信 */
|
|
@@ -107,6 +113,36 @@ export class RoomClient {
|
|
|
107
113
|
start(opts) {
|
|
108
114
|
this.trySend(opts === undefined ? { t: 'start' } : { t: 'start', opts });
|
|
109
115
|
}
|
|
116
|
+
/**
|
|
117
|
+
* 说一句(0.18.0):先在本地过一遍房间同样的检查(字数、导流、节奏),不行就不发、直接告诉页面为什么(chatRejectText 给说法);
|
|
118
|
+
* 行就发出去,房间转发回来的经 onChat 交给页面(发的人自己也收到)。没连上不存着重发。waitMs 是太快时还要等多久
|
|
119
|
+
*/
|
|
120
|
+
chat(text, now = Date.now()) {
|
|
121
|
+
if (!this.opts.onChat)
|
|
122
|
+
return { ok: false, code: 'chat_off' };
|
|
123
|
+
const c = checkChat(text);
|
|
124
|
+
if (!c.ok)
|
|
125
|
+
return c.code === 'chat_blocked' ? { ok: false, code: c.code, why: c.why } : { ok: false, code: c.code };
|
|
126
|
+
const wait = this.chatWait(now);
|
|
127
|
+
if (wait > 0)
|
|
128
|
+
return { ok: false, code: 'chat_too_fast', waitMs: wait };
|
|
129
|
+
if (!this.ws || this.ws.readyState !== OPEN || !this.welcomed)
|
|
130
|
+
return { ok: false, code: 'chat_offline' };
|
|
131
|
+
this.chatTimes.push(now);
|
|
132
|
+
// 发原文:本地打过码的再交给房间就认不出脏话了,masked 会丢(房间以自己的过滤为准)
|
|
133
|
+
this.trySend({ t: 'chat', text });
|
|
134
|
+
return { ok: true };
|
|
135
|
+
}
|
|
136
|
+
/** 还要等多久才能说下一句(毫秒,0 = 现在就能):按房间给的节奏,界面拿来给"发送"按钮倒计时 */
|
|
137
|
+
chatWait(now = Date.now()) {
|
|
138
|
+
const { ms, perMin } = this.chatRate;
|
|
139
|
+
this.chatTimes = this.chatTimes.filter((t) => now - t < 60_000);
|
|
140
|
+
const last = this.chatTimes[this.chatTimes.length - 1];
|
|
141
|
+
let wait = ms > 0 && last !== undefined ? last + ms - now : 0;
|
|
142
|
+
if (perMin > 0 && this.chatTimes.length >= perMin)
|
|
143
|
+
wait = Math.max(wait, this.chatTimes[this.chatTimes.length - perMin] + 60_000 - now);
|
|
144
|
+
return Math.max(0, wait);
|
|
145
|
+
}
|
|
110
146
|
/**
|
|
111
147
|
* 快捷短语(0.6.0):发游戏短语表里的编号;to(0.7.0)是冲着哪个座位(扔道具、点名嘲讽),不带就是对全桌。
|
|
112
148
|
* 0.7.0 起本地按房间的节奏(welcome.emote)排队:太快的排到下一个令牌,只留最后 2 个,不提示用户。没连上就丢掉,不存着重发(过时的短语没意义);
|
|
@@ -167,6 +203,8 @@ export class RoomClient {
|
|
|
167
203
|
const Impl = this.opts.WebSocketImpl ?? globalThis.WebSocket;
|
|
168
204
|
const url = new URL(this.opts.url);
|
|
169
205
|
url.searchParams.set('cv', String(this.opts.clientVersion ?? 0));
|
|
206
|
+
if (this.opts.onChat)
|
|
207
|
+
url.searchParams.set('chat', '1');
|
|
170
208
|
const ws = new Impl(url.toString());
|
|
171
209
|
this.ws = ws;
|
|
172
210
|
this.connectTimer = this.opts.setTimer(() => {
|
|
@@ -206,12 +244,23 @@ export class RoomClient {
|
|
|
206
244
|
this.opts.onEmote?.(msg.seat, msg.id, Number.isInteger(msg.to) ? msg.to : undefined, msg.bot === true);
|
|
207
245
|
return;
|
|
208
246
|
}
|
|
247
|
+
if (msg.t === 'chat') {
|
|
248
|
+
if (Number.isInteger(msg.seat) && typeof msg.text === 'string')
|
|
249
|
+
this.opts.onChat?.(msg.seat, msg.text, msg.masked === true);
|
|
250
|
+
return;
|
|
251
|
+
}
|
|
252
|
+
if (msg.t === 'error' && !msg.moveId && CHAT_ONLY_ERRORS.has(msg.code)) {
|
|
253
|
+
this.opts.onChatError?.(msg.code);
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
209
256
|
// 本地已经按节奏排队了,房间偶尔还嫌快(比如刚重连、节奏刚调过):静默丢掉,不打扰页面
|
|
210
257
|
if (msg.t === 'error' && msg.code === 'emote_too_fast' && !msg.moveId)
|
|
211
258
|
return;
|
|
212
259
|
if (msg.t === 'welcome') {
|
|
213
260
|
if (msg.emote && msg.emote.ms >= 0 && msg.emote.burst >= 1)
|
|
214
261
|
this.emoteRate = { ms: msg.emote.ms, burst: msg.emote.burst };
|
|
262
|
+
if (msg.chat && msg.chat.ms >= 0 && msg.chat.perMin >= 0)
|
|
263
|
+
this.chatRate = { ms: msg.chat.ms, perMin: msg.chat.perMin };
|
|
215
264
|
// 快照:整桌重画,从它的 seq 往后接;真的进了房间,退避和失败次数清零
|
|
216
265
|
this.lastSeq = msg.seq;
|
|
217
266
|
this.welcomed = true;
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/game.d.ts
CHANGED
|
@@ -150,6 +150,13 @@ export interface RoomGame<S, A, V, O = unknown, E extends RoomEffect = RoomEffec
|
|
|
150
150
|
* 短语的文字、图标由游戏自己在页面里定,房间不知道内容。不写(或不是正整数)就是没有短语,发了回 no_emotes
|
|
151
151
|
*/
|
|
152
152
|
emotes?: number;
|
|
153
|
+
/**
|
|
154
|
+
* 好友房聊天(docs/chat.md):true 时入座的人能发自由文字(一条 ≤ 30 个字),房间过滤、限速后只转发,不进状态、不写存储。
|
|
155
|
+
* 不写就没有聊天,发了回 chat_off,welcome 里也不带节奏
|
|
156
|
+
*/
|
|
157
|
+
chat?: boolean;
|
|
158
|
+
/** 聊天打码时在 kit 的词表(chat-words.ts)之外再加的词;只能加,删不了 kit 的 */
|
|
159
|
+
chatWords?: readonly string[];
|
|
153
160
|
}
|
|
154
161
|
/**
|
|
155
162
|
* 进房、重连时发的全量快照有多大(字节,取所有座位和"没入座"里最大的那个)。
|
package/dist/game.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"game.d.ts","sourceRoot":"","sources":["../src/game.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"game.d.ts","sourceRoot":"","sources":["../src/game.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAmC,KAAK,QAAQ,EAAmB,MAAM,eAAe,CAAC;AAChG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAExC,YAAY,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAExC,wEAAwE;AACxE,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,iDAAiD;IACjD,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC;IACpB,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,SAAS,UAAU,GAAG,UAAU;IAC/E,gBAAgB;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,KAAK,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACxE;;;;OAIG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,CAAC,CAAC;IAC7C,yCAAyC;IACzC,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC;IAC9B;;;;OAIG;IACH,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,+DAA+D;IAC/D,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;IAC9B;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,GAAG;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE;;;OAGG;IACH,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC;IAC1B,4CAA4C;IAC5C,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC;IACvC,2BAA2B;IAC3B,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC;IAC9B,sEAAsE;IACtE,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC;IACpC,YAAY;IACZ,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC;IACxB;;;;OAIG;IACH,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC;IAI/B;;;;OAIG;IACH,OAAO,CAAC,CAAC,GAAG,EAAE,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC;IACjC;;;OAGG;IACH,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;IACxC;;;;;;OAMG;IACH,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC;IACzD;;;OAGG;IACH,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IACxB,6EAA6E;IAC7E,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,CAAC,CAAC;IACnD;;;OAGG;IACH,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;IACtB;;;OAGG;IACH,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC;IAI1B;;;;OAIG;IACH,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC;IAI5B;;;;;;OAMG;IACH,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;IAChC;;;;OAIG;IACH,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;IAIrB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAIhB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,wDAAwD;IACxD,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CA8B/G"}
|
package/dist/game.js
CHANGED
|
@@ -33,6 +33,7 @@ export function snapshotBytes(game, state) {
|
|
|
33
33
|
view: game.view(state, seat),
|
|
34
34
|
// 有短语的游戏多带一个节奏(0.7.0)
|
|
35
35
|
...(game.emotes ? { emote: { ms: 999_999, burst: 99 } } : {}),
|
|
36
|
+
...(game.chat ? { chat: { ms: 999_999, perMin: 99, max: 99 } } : {}),
|
|
36
37
|
};
|
|
37
38
|
max = Math.max(max, new TextEncoder().encode(JSON.stringify(msg)).byteLength);
|
|
38
39
|
}
|