@yyyu-star/arcade-kit 0.12.1 → 0.12.2

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 CHANGED
@@ -1,5 +1,15 @@
1
1
  # 更新日志
2
2
 
3
+ ## 0.12.2
4
+
5
+ - **"叫朋友来"面板** `openInvite({ game, room })`(`arcade-kit/social`;mountSocial 返回的 handle 上也有 `openInvite`,自动带上游戏名):0.12.0 只有 `sendInvite` 接口,游戏里没有叫人的界面。
6
+ - 列好友,在线的在前,写在哪("在<游戏名>的好友房 · 3/4""在大厅""3 天前来过");每人一个"叫他来",发出后变"已叫"、1 分钟内灰着(这一页里记着,关了再开也灰着)。
7
+ - 叫不了的换成大白话:429 等两分钟以内是"刚叫过他,过一会儿再叫",更久是"今天叫人的次数用完了,明天再叫";403 `not_friend` 是"叫不了他(可能已经不是好友了)"。
8
+ - 底下"复制邀请链接":能系统分享就分享,不能就复制,复制不了把链接写出来。`friends: false` 只有这个按钮(单独部署、没登录)。
9
+ - DOM,样式和 table-fun 一样(同一套颜色、圆角、44px 按钮);点空白处、✕、Esc 关掉;只在调用时碰 DOM。
10
+ - 新的纯函数 `whereText`、`inviteErrorText`,常数 `INVITE_GAP_MS`。
11
+ - 测试:`test/social.test.ts` 加两条(在哪的话、叫不了的话)。浏览器里用 `demo/social.html` 的"叫朋友来"按 390×844 和 1200×800 核对过:列表顺序和"在哪"、叫成功变"已叫"、被拒的、次数用完的、复制链接、Esc 关掉、再开还灰着,控制台零报错。
12
+
3
13
  ## 0.12.1
4
14
 
5
15
  - **social 的好友列表一直是空的**:`fetchFriends` 只认每项的 `id`、`name`,平台 `GET /api/friends` 每项一直是公开资料 `{ userId, displayName, avatar }`(`docs/platform-backend.md` 15.4),
package/README.md CHANGED
@@ -396,6 +396,9 @@ social?.presenceNow(true); // 进房、换房时马上
396
396
  "不了"`dismiss` 后弹下一条,到期自己收起。按钮 `data-key` 是 `invite:go`、`invite:no`;`log` 给 `位置 204`、`邀请 弹 <id>`、`邀请 去`、`邀请 不了`、`邀请 过期`。
397
397
  - 发邀请 `sendInvite({ to, game, room })` → `{ ok: true, id }` 或 `{ ok: false, error: 'limit' | 'blocked' | 'login' | 'failed', retryAfter? }`(429 是每天 50 条、同一好友 1 分钟 1 条超了)。
398
398
  `fetchFriends()` 把平台每项的公开资料 `{ userId, displayName, avatar }` 统一成 `id`、`name`(原样字段留着),带 `online`、`where`(对方关了开关就没有),`setShowWhere(bool)` 改"让好友看到我在哪"。都带同源 cookie,写的请求带 `x-arcade: 1`。
399
+ - **"叫朋友来"面板**(0.12.2):`social.openInvite({ game, room })`(`social` 是 `mountSocial` 的返回值;没挂上时用导出的 `openInvite({ game, room, friends: false })`,只有"复制邀请链接")。
400
+ 列好友(在线的在前,写在哪),每人一个"叫他来",发出后 1 分钟内是灰的"已叫",叫不了的写成大白话;底下"复制邀请链接"(能系统分享就分享)。
401
+ 样式和 table-fun 一样,z-index 默认 1600;按钮的 `data-key` 是 `invite:call:<好友 id>`、`invite:copy`、`invite:close`,`log` 给 `叫人 打开 <n>`、`叫人 <id> ok|limit|blocked|…`、`叫人 复制`、`叫人 关闭`。
399
402
  - 演示页 `demo/share.html`、`demo/social.html`(`npx vite` 后打开;社交用假 fetch,一进来就有几条邀请)。
400
403
 
401
404
  ## 房间怎么守规矩
package/dist/social.d.ts CHANGED
@@ -89,6 +89,19 @@ export declare function sendInvite(inv: {
89
89
  export declare function fetchFriends(opts?: ApiOptions): Promise<Friend[] | null>;
90
90
  /** "让好友看到我在哪"的开关 */
91
91
  export declare function setShowWhere(show: boolean, opts?: ApiOptions): Promise<boolean>;
92
+ /** "在哪"那一行:好友房带人数,在游戏里写游戏名(不认识的说"在玩游戏"),大厅;没给 where 按离线写几天前来过 */
93
+ export declare function whereText(f: Pick<Friend, 'online' | 'where'> & {
94
+ lastSeenDaysAgo?: unknown;
95
+ }, gameName?: (id: string) => string | undefined): string;
96
+ /**
97
+ * 叫不了的大白话(平台:429 rate_limited 带 Retry-After,同一个好友 1 分钟一条、每人 24 小时 50 条;403 not_friend:不是好友、屏蔽了、对方不存在一律这个)。
98
+ * 等的时间超过两分钟的是每天的次数用完了
99
+ */
100
+ export declare function inviteErrorText(r: Exclude<SendInviteResult, {
101
+ ok: true;
102
+ }>): string;
103
+ /** 叫过以后多久不能再叫同一个人(平台同一个好友 1 分钟一条) */
104
+ export declare const INVITE_GAP_MS = 60000;
92
105
  export interface SocialOptions extends ApiOptions {
93
106
  /**
94
107
  * 我现在在哪:每次报之前现问。返回 null 这次不报(比如还没进房)。
@@ -118,9 +131,38 @@ export interface SocialHandle {
118
131
  pollNow(): void;
119
132
  /** 收起横条、停掉计时、解开监听 */
120
133
  stop(): void;
134
+ /** 打开"叫朋友来"面板(0.12.2):列好友、"叫他来"、复制邀请链接。游戏名用 mountSocial 给的 gameName */
135
+ openInvite(inv: Omit<InvitePanelOptions, 'fetchImpl' | 'gameName'>): InvitePanel;
121
136
  }
122
137
  /**
123
138
  * 挂上报位置和收邀请。没平台、没登录、平台连不上都回 null(不挂);中途掉了登录(401)自己停
124
139
  */
125
140
  export declare function mountSocial(opts: SocialOptions): Promise<SocialHandle | null>;
141
+ export interface InvitePanelOptions extends ApiOptions {
142
+ /** 游戏 id、房间码:叫来的就是这个房间 */
143
+ game: string;
144
+ room: string;
145
+ /** 列好友、"叫他来"(有平台、已登录时);false 只有"复制邀请链接"(单独部署、没登录) */
146
+ friends?: boolean;
147
+ /** 邀请链接,默认 `<站点>/games/<id>/?room=<码>` */
148
+ url?: string;
149
+ /** 系统分享、复制时的那句话,默认"来一起玩!房间码 <码>" */
150
+ text?: string;
151
+ /** 游戏 id → 名字(好友"在哪"那一行) */
152
+ gameName?(id: string): string | undefined;
153
+ /** 默认 1600(在邀请横条之上,在分享预览之下) */
154
+ zIndex?: number;
155
+ /** 冒烟、调试看的流水:`叫人 打开 <n>`、`叫人 <id> ok|<错误>`、`叫人 复制`、`叫人 关闭` */
156
+ log?(line: string): void;
157
+ /** 测试用:时钟 */
158
+ now?(): number;
159
+ }
160
+ export interface InvitePanel {
161
+ close(): void;
162
+ }
163
+ /**
164
+ * 打开"叫朋友来"面板:列好友(在线的在前,写在哪),每人一个"叫他来",发出后变"已叫"、1 分钟内灰着,叫不了的换成大白话;
165
+ * 底下"复制邀请链接"(能系统分享就分享)。点空白处、✕、Esc 关掉。只发平台的 `POST /api/invites`,不写别的
166
+ */
167
+ export declare function openInvite(o: InvitePanelOptions): InvitePanel;
126
168
  //# sourceMappingURL=social.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"social.d.ts","sourceRoot":"","sources":["../src/social.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"social.d.ts","sourceRoot":"","sources":["../src/social.ts"],"names":[],"mappings":"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"}
package/dist/social.js CHANGED
@@ -170,6 +170,40 @@ export async function setShowWhere(show, opts = {}) {
170
170
  return false;
171
171
  }
172
172
  }
173
+ /** "在哪"那一行:好友房带人数,在游戏里写游戏名(不认识的说"在玩游戏"),大厅;没给 where 按离线写几天前来过 */
174
+ export function whereText(f, gameName) {
175
+ if (!f.online) {
176
+ const d = f.lastSeenDaysAgo;
177
+ return typeof d !== 'number' ? '不在线' : d <= 0 ? '今天来过' : d === 1 ? '昨天来过' : `${d} 天前来过`;
178
+ }
179
+ const w = f.where;
180
+ if (!w)
181
+ return '在线';
182
+ if (w.place === 'lobby')
183
+ return '在大厅';
184
+ const g = w.game ? gameName?.(w.game) : undefined;
185
+ if (w.place === 'room')
186
+ return `在${g ? `${g}的` : ''}好友房${w.seats ? ` · ${w.seats}` : ''}`;
187
+ return g ? `在${g}` : '在玩游戏';
188
+ }
189
+ /**
190
+ * 叫不了的大白话(平台:429 rate_limited 带 Retry-After,同一个好友 1 分钟一条、每人 24 小时 50 条;403 not_friend:不是好友、屏蔽了、对方不存在一律这个)。
191
+ * 等的时间超过两分钟的是每天的次数用完了
192
+ */
193
+ export function inviteErrorText(r) {
194
+ switch (r.error) {
195
+ case 'limit':
196
+ return r.retryAfter !== undefined && r.retryAfter > 120 ? '今天叫人的次数用完了,明天再叫' : '刚叫过他,过一会儿再叫';
197
+ case 'blocked':
198
+ return '叫不了他(可能已经不是好友了)';
199
+ case 'login':
200
+ return '登录过期了,刷新一下再叫';
201
+ default:
202
+ return '没发出去,过一会儿再试';
203
+ }
204
+ }
205
+ /** 叫过以后多久不能再叫同一个人(平台同一个好友 1 分钟一条) */
206
+ export const INVITE_GAP_MS = 60_000;
173
207
  const BANNER_ID = 'arcade-invite-banner';
174
208
  /**
175
209
  * 挂上报位置和收邀请。没平台、没登录、平台连不上都回 null(不挂);中途掉了登录(401)自己停
@@ -203,6 +237,14 @@ class Social {
203
237
  now() {
204
238
  return this.o.now?.() ?? Date.now();
205
239
  }
240
+ openInvite(inv) {
241
+ return openInvite({
242
+ ...inv,
243
+ ...(this.o.fetchImpl ? { fetchImpl: this.o.fetchImpl } : {}),
244
+ ...(this.o.gameName ? { gameName: this.o.gameName } : {}),
245
+ ...(this.o.now ? { now: this.o.now } : {}),
246
+ });
247
+ }
206
248
  visible() {
207
249
  return document.visibilityState === 'visible';
208
250
  }
@@ -343,4 +385,188 @@ class Social {
343
385
  this.hide();
344
386
  }
345
387
  }
388
+ const PANEL_ID = 'arcade-invite-panel';
389
+ const PANEL_CSS_ID = 'arcade-invite-css';
390
+ /** 和牌桌互动(table-fun)同一套颜色、圆角、按钮 */
391
+ const PANEL_CSS = `
392
+ .aiv-back{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:8px;box-sizing:border-box;background:rgba(0,0,0,.5);font-family:inherit;-webkit-tap-highlight-color:transparent}
393
+ .aiv-box{position:relative;display:flex;flex-direction:column;width:min(420px,calc(100vw - 16px));max-height:calc(100% - 16px);background:rgba(43,29,20,.97);border:2px solid #d4a64a;border-radius:14px;padding:12px;box-sizing:border-box;color:#fff6e0;box-shadow:0 6px 18px rgba(0,0,0,.45);animation:aiv-pop .14s ease-out}
394
+ .aiv-title{font-size:17px;font-weight:700;color:#f3d98b;margin:2px 48px 2px 4px}
395
+ .aiv-sub{font-size:13px;opacity:.75;margin:0 4px 8px}
396
+ .aiv-x{position:absolute;right:6px;top:6px;width:44px;height:44px;border:0;border-radius:22px;background:transparent;color:#f3d98b;font:inherit;font-size:22px;cursor:pointer}
397
+ .aiv-list{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:6px}
398
+ .aiv-row{display:flex;align-items:center;gap:8px;padding:6px 6px 6px 10px;border-radius:10px;background:#4a3220}
399
+ .aiv-dot{flex:none;width:10px;height:10px;border-radius:50%;background:#6a6a6a}.aiv-dot.aiv-on{background:#6fd36f}
400
+ .aiv-who{flex:1 1 auto;min-width:0}
401
+ .aiv-name{font-size:15px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
402
+ .aiv-where{font-size:12px;opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
403
+ .aiv-chip{flex:none;min-width:84px;min-height:44px;border:1px solid rgba(212,166,74,.6);border-radius:22px;background:#7a2a1e;color:#fff6e0;font:inherit;font-size:14px;font-weight:700;padding:0 12px;cursor:pointer}
404
+ .aiv-chip:disabled{background:#3a3a3a;cursor:default;opacity:.8}.aiv-chip.aiv-soft{background:#4a3220}
405
+ .aiv-note{font-size:13px;text-align:center;opacity:.85;padding:10px 4px;min-height:1em}
406
+ .aiv-err{color:#ffb0a0}
407
+ .aiv-foot{display:flex;justify-content:center;padding-top:10px}
408
+ @keyframes aiv-pop{from{opacity:0;scale:.94}to{opacity:1;scale:1}}
409
+ `;
410
+ /** 叫过的人什么时候能再叫(这一页里记着,关了面板再开也灰着) */
411
+ const calledUntil = new Map();
412
+ /**
413
+ * 打开"叫朋友来"面板:列好友(在线的在前,写在哪),每人一个"叫他来",发出后变"已叫"、1 分钟内灰着,叫不了的换成大白话;
414
+ * 底下"复制邀请链接"(能系统分享就分享)。点空白处、✕、Esc 关掉。只发平台的 `POST /api/invites`,不写别的
415
+ */
416
+ export function openInvite(o) {
417
+ const doc = document;
418
+ doc.getElementById(PANEL_ID)?.remove();
419
+ if (!doc.getElementById(PANEL_CSS_ID)) {
420
+ const st = doc.createElement('style');
421
+ st.id = PANEL_CSS_ID;
422
+ st.textContent = PANEL_CSS;
423
+ doc.head.appendChild(st);
424
+ }
425
+ const now = () => o.now?.() ?? Date.now();
426
+ const url = o.url ?? `${location.origin}${inviteUrl(o)}`;
427
+ const el = (tag, cls, text = '') => {
428
+ const e = doc.createElement(tag);
429
+ e.className = cls;
430
+ if (text)
431
+ e.textContent = text;
432
+ return e;
433
+ };
434
+ const back = el('div', 'aiv-back');
435
+ back.id = PANEL_ID;
436
+ back.style.zIndex = String(o.zIndex ?? 1600);
437
+ const box = el('div', 'aiv-box');
438
+ box.setAttribute('role', 'dialog');
439
+ box.setAttribute('aria-label', '叫朋友来');
440
+ const x = el('button', 'aiv-x', '✕');
441
+ x.type = 'button';
442
+ x.dataset['key'] = 'invite:close';
443
+ x.setAttribute('aria-label', '关闭');
444
+ const list = el('div', 'aiv-list');
445
+ const note = el('div', 'aiv-note', o.friends === false ? '把链接发给朋友,点开就进房' : '正在找好友…');
446
+ const copy = el('button', 'aiv-chip aiv-soft', '复制邀请链接');
447
+ copy.type = 'button';
448
+ copy.dataset['key'] = 'invite:copy';
449
+ const foot = el('div', 'aiv-foot');
450
+ foot.appendChild(copy);
451
+ box.appendChild(x);
452
+ box.appendChild(el('div', 'aiv-title', '叫朋友来'));
453
+ box.appendChild(el('div', 'aiv-sub', `房间码 ${o.room}`));
454
+ box.appendChild(list);
455
+ box.appendChild(note);
456
+ box.appendChild(foot);
457
+ back.appendChild(box);
458
+ doc.body.appendChild(back);
459
+ let closed = false;
460
+ const timers = new Set();
461
+ const onKey = (e) => {
462
+ if (e.key === 'Escape')
463
+ close();
464
+ };
465
+ const close = () => {
466
+ if (closed)
467
+ return;
468
+ closed = true;
469
+ for (const t of timers)
470
+ clearTimeout(t);
471
+ doc.removeEventListener('keydown', onKey);
472
+ back.remove();
473
+ o.log?.('叫人 关闭');
474
+ };
475
+ doc.addEventListener('keydown', onKey);
476
+ back.addEventListener('click', (e) => {
477
+ if (e.target === back)
478
+ close();
479
+ });
480
+ x.addEventListener('click', close);
481
+ copy.addEventListener('click', () => {
482
+ const text = o.text ?? `来一起玩!房间码 ${o.room}`;
483
+ const done = (msg, err = false) => {
484
+ note.textContent = msg;
485
+ note.classList.toggle('aiv-err', err);
486
+ o.log?.('叫人 复制');
487
+ };
488
+ const nav = navigator;
489
+ if (typeof nav.share === 'function') {
490
+ nav.share({ title: text, text, url }).then(() => done('发出去了'), (e) => (e?.name === 'AbortError' ? undefined : clip()));
491
+ return;
492
+ }
493
+ clip();
494
+ function clip() {
495
+ if (navigator.clipboard?.writeText)
496
+ navigator.clipboard.writeText(`${text}:${url}`).then(() => done('链接复制好了,发给朋友,点开就进房'), () => done(`把这个链接发给朋友:${url}`, true));
497
+ else
498
+ done(`把这个链接发给朋友:${url}`, true);
499
+ }
500
+ });
501
+ /** "叫他来"按钮的样子:叫过的 1 分钟内灰着,到点自己变回来 */
502
+ const paint = (b, id) => {
503
+ const left = (calledUntil.get(id) ?? 0) - now();
504
+ b.disabled = left > 0;
505
+ b.textContent = left > 0 ? '已叫' : '叫他来';
506
+ if (left > 0) {
507
+ const t = setTimeout(() => {
508
+ timers.delete(t);
509
+ if (!closed)
510
+ paint(b, id);
511
+ }, left);
512
+ timers.add(t);
513
+ }
514
+ };
515
+ const render = (friends) => {
516
+ note.textContent = friends.length ? '' : '还没有好友,先把链接发给朋友';
517
+ // 平台已经按在线、最近来过排好;这里再保证在线的在前(稳定排序)
518
+ const sorted = [...friends].sort((a, b) => Number(b.online) - Number(a.online));
519
+ for (const f of sorted) {
520
+ const row = el('div', 'aiv-row');
521
+ row.appendChild(el('span', `aiv-dot${f.online ? ' aiv-on' : ''}`));
522
+ const who = el('div', 'aiv-who');
523
+ who.appendChild(el('div', 'aiv-name', f.name || '好友'));
524
+ who.appendChild(el('div', 'aiv-where', whereText(f, o.gameName)));
525
+ const b = el('button', 'aiv-chip', '叫他来');
526
+ b.type = 'button';
527
+ b.dataset['key'] = `invite:call:${f.id}`;
528
+ paint(b, f.id);
529
+ b.addEventListener('click', () => {
530
+ b.disabled = true;
531
+ void sendInvite({ to: f.id, game: o.game, room: o.room }, o).then((r) => {
532
+ if (closed)
533
+ return;
534
+ o.log?.(`叫人 ${f.id} ${r.ok ? 'ok' : r.error}`);
535
+ if (r.ok) {
536
+ calledUntil.set(f.id, now() + INVITE_GAP_MS);
537
+ note.textContent = `叫了 ${f.name || '好友'},他会在页面顶上看到`;
538
+ note.classList.remove('aiv-err');
539
+ }
540
+ else {
541
+ // 刚叫过(平台按 1 分钟算)也灰到能叫为止
542
+ if (r.error === 'limit')
543
+ calledUntil.set(f.id, now() + Math.min(r.retryAfter ?? 60, 60) * 1000);
544
+ note.textContent = inviteErrorText(r);
545
+ note.classList.add('aiv-err');
546
+ }
547
+ paint(b, f.id);
548
+ });
549
+ });
550
+ row.appendChild(who);
551
+ row.appendChild(b);
552
+ list.appendChild(row);
553
+ }
554
+ o.log?.(`叫人 打开 ${friends.length}`);
555
+ };
556
+ if (o.friends === false)
557
+ o.log?.('叫人 打开 0');
558
+ else
559
+ void fetchFriends(o).then((fs) => {
560
+ if (closed)
561
+ return;
562
+ if (fs)
563
+ render(fs);
564
+ else {
565
+ note.textContent = '好友列表暂时打不开,可以先把链接发给朋友';
566
+ o.log?.('叫人 打开 失败');
567
+ }
568
+ });
569
+ copy.focus();
570
+ return { close };
571
+ }
346
572
  //# sourceMappingURL=social.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"social.js","sourceRoot":"","sources":["../src/social.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"social.js","sourceRoot":"","sources":["../src/social.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yyyu-star/arcade-kit",
3
- "version": "0.12.1",
3
+ "version": "0.12.2",
4
4
  "description": "Multiplayer toolkit for small Cloudflare Workers games: Durable Object game rooms, room create/join entry points, browser client, daily write quota, ChaCha20 RNG, platform or standalone (guest) identity. 小游戏共用的联机底座",
5
5
  "license": "MIT",
6
6
  "type": "module",
package/src/social.ts CHANGED
@@ -210,6 +210,40 @@ export async function setShowWhere(show: boolean, opts: ApiOptions = {}): Promis
210
210
  }
211
211
  }
212
212
 
213
+ /** "在哪"那一行:好友房带人数,在游戏里写游戏名(不认识的说"在玩游戏"),大厅;没给 where 按离线写几天前来过 */
214
+ export function whereText(f: Pick<Friend, 'online' | 'where'> & { lastSeenDaysAgo?: unknown }, gameName?: (id: string) => string | undefined): string {
215
+ if (!f.online) {
216
+ const d = f.lastSeenDaysAgo;
217
+ return typeof d !== 'number' ? '不在线' : d <= 0 ? '今天来过' : d === 1 ? '昨天来过' : `${d} 天前来过`;
218
+ }
219
+ const w = f.where;
220
+ if (!w) return '在线';
221
+ if (w.place === 'lobby') return '在大厅';
222
+ const g = w.game ? gameName?.(w.game) : undefined;
223
+ if (w.place === 'room') return `在${g ? `${g}的` : ''}好友房${w.seats ? ` · ${w.seats}` : ''}`;
224
+ return g ? `在${g}` : '在玩游戏';
225
+ }
226
+
227
+ /**
228
+ * 叫不了的大白话(平台:429 rate_limited 带 Retry-After,同一个好友 1 分钟一条、每人 24 小时 50 条;403 not_friend:不是好友、屏蔽了、对方不存在一律这个)。
229
+ * 等的时间超过两分钟的是每天的次数用完了
230
+ */
231
+ export function inviteErrorText(r: Exclude<SendInviteResult, { ok: true }>): string {
232
+ switch (r.error) {
233
+ case 'limit':
234
+ return r.retryAfter !== undefined && r.retryAfter > 120 ? '今天叫人的次数用完了,明天再叫' : '刚叫过他,过一会儿再叫';
235
+ case 'blocked':
236
+ return '叫不了他(可能已经不是好友了)';
237
+ case 'login':
238
+ return '登录过期了,刷新一下再叫';
239
+ default:
240
+ return '没发出去,过一会儿再试';
241
+ }
242
+ }
243
+
244
+ /** 叫过以后多久不能再叫同一个人(平台同一个好友 1 分钟一条) */
245
+ export const INVITE_GAP_MS = 60_000;
246
+
213
247
  // ───────────── 挂到页面上(只在调用时碰 DOM) ─────────────
214
248
 
215
249
  export interface SocialOptions extends ApiOptions {
@@ -242,6 +276,8 @@ export interface SocialHandle {
242
276
  pollNow(): void;
243
277
  /** 收起横条、停掉计时、解开监听 */
244
278
  stop(): void;
279
+ /** 打开"叫朋友来"面板(0.12.2):列好友、"叫他来"、复制邀请链接。游戏名用 mountSocial 给的 gameName */
280
+ openInvite(inv: Omit<InvitePanelOptions, 'fetchImpl' | 'gameName'>): InvitePanel;
245
281
  }
246
282
 
247
283
  const BANNER_ID = 'arcade-invite-banner';
@@ -278,6 +314,15 @@ class Social implements SocialHandle {
278
314
  return this.o.now?.() ?? Date.now();
279
315
  }
280
316
 
317
+ openInvite(inv: Omit<InvitePanelOptions, 'fetchImpl' | 'gameName'>): InvitePanel {
318
+ return openInvite({
319
+ ...inv,
320
+ ...(this.o.fetchImpl ? { fetchImpl: this.o.fetchImpl } : {}),
321
+ ...(this.o.gameName ? { gameName: this.o.gameName } : {}),
322
+ ...(this.o.now ? { now: this.o.now } : {}),
323
+ });
324
+ }
325
+
281
326
  private visible(): boolean {
282
327
  return document.visibilityState === 'visible';
283
328
  }
@@ -409,3 +454,210 @@ class Social implements SocialHandle {
409
454
  this.hide();
410
455
  }
411
456
  }
457
+
458
+ // ───────────── "叫朋友来"面板(0.12.2,只在调用时碰 DOM) ─────────────
459
+
460
+ export interface InvitePanelOptions extends ApiOptions {
461
+ /** 游戏 id、房间码:叫来的就是这个房间 */
462
+ game: string;
463
+ room: string;
464
+ /** 列好友、"叫他来"(有平台、已登录时);false 只有"复制邀请链接"(单独部署、没登录) */
465
+ friends?: boolean;
466
+ /** 邀请链接,默认 `<站点>/games/<id>/?room=<码>` */
467
+ url?: string;
468
+ /** 系统分享、复制时的那句话,默认"来一起玩!房间码 <码>" */
469
+ text?: string;
470
+ /** 游戏 id → 名字(好友"在哪"那一行) */
471
+ gameName?(id: string): string | undefined;
472
+ /** 默认 1600(在邀请横条之上,在分享预览之下) */
473
+ zIndex?: number;
474
+ /** 冒烟、调试看的流水:`叫人 打开 <n>`、`叫人 <id> ok|<错误>`、`叫人 复制`、`叫人 关闭` */
475
+ log?(line: string): void;
476
+ /** 测试用:时钟 */
477
+ now?(): number;
478
+ }
479
+
480
+ export interface InvitePanel {
481
+ close(): void;
482
+ }
483
+
484
+ const PANEL_ID = 'arcade-invite-panel';
485
+ const PANEL_CSS_ID = 'arcade-invite-css';
486
+ /** 和牌桌互动(table-fun)同一套颜色、圆角、按钮 */
487
+ const PANEL_CSS = `
488
+ .aiv-back{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:8px;box-sizing:border-box;background:rgba(0,0,0,.5);font-family:inherit;-webkit-tap-highlight-color:transparent}
489
+ .aiv-box{position:relative;display:flex;flex-direction:column;width:min(420px,calc(100vw - 16px));max-height:calc(100% - 16px);background:rgba(43,29,20,.97);border:2px solid #d4a64a;border-radius:14px;padding:12px;box-sizing:border-box;color:#fff6e0;box-shadow:0 6px 18px rgba(0,0,0,.45);animation:aiv-pop .14s ease-out}
490
+ .aiv-title{font-size:17px;font-weight:700;color:#f3d98b;margin:2px 48px 2px 4px}
491
+ .aiv-sub{font-size:13px;opacity:.75;margin:0 4px 8px}
492
+ .aiv-x{position:absolute;right:6px;top:6px;width:44px;height:44px;border:0;border-radius:22px;background:transparent;color:#f3d98b;font:inherit;font-size:22px;cursor:pointer}
493
+ .aiv-list{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:6px}
494
+ .aiv-row{display:flex;align-items:center;gap:8px;padding:6px 6px 6px 10px;border-radius:10px;background:#4a3220}
495
+ .aiv-dot{flex:none;width:10px;height:10px;border-radius:50%;background:#6a6a6a}.aiv-dot.aiv-on{background:#6fd36f}
496
+ .aiv-who{flex:1 1 auto;min-width:0}
497
+ .aiv-name{font-size:15px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
498
+ .aiv-where{font-size:12px;opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
499
+ .aiv-chip{flex:none;min-width:84px;min-height:44px;border:1px solid rgba(212,166,74,.6);border-radius:22px;background:#7a2a1e;color:#fff6e0;font:inherit;font-size:14px;font-weight:700;padding:0 12px;cursor:pointer}
500
+ .aiv-chip:disabled{background:#3a3a3a;cursor:default;opacity:.8}.aiv-chip.aiv-soft{background:#4a3220}
501
+ .aiv-note{font-size:13px;text-align:center;opacity:.85;padding:10px 4px;min-height:1em}
502
+ .aiv-err{color:#ffb0a0}
503
+ .aiv-foot{display:flex;justify-content:center;padding-top:10px}
504
+ @keyframes aiv-pop{from{opacity:0;scale:.94}to{opacity:1;scale:1}}
505
+ `;
506
+
507
+ /** 叫过的人什么时候能再叫(这一页里记着,关了面板再开也灰着) */
508
+ const calledUntil = new Map<string, number>();
509
+
510
+ /**
511
+ * 打开"叫朋友来"面板:列好友(在线的在前,写在哪),每人一个"叫他来",发出后变"已叫"、1 分钟内灰着,叫不了的换成大白话;
512
+ * 底下"复制邀请链接"(能系统分享就分享)。点空白处、✕、Esc 关掉。只发平台的 `POST /api/invites`,不写别的
513
+ */
514
+ export function openInvite(o: InvitePanelOptions): InvitePanel {
515
+ const doc = document;
516
+ doc.getElementById(PANEL_ID)?.remove();
517
+ if (!doc.getElementById(PANEL_CSS_ID)) {
518
+ const st = doc.createElement('style');
519
+ st.id = PANEL_CSS_ID;
520
+ st.textContent = PANEL_CSS;
521
+ doc.head.appendChild(st);
522
+ }
523
+ const now = (): number => o.now?.() ?? Date.now();
524
+ const url = o.url ?? `${location.origin}${inviteUrl(o)}`;
525
+ const el = <K extends keyof HTMLElementTagNameMap>(tag: K, cls: string, text = ''): HTMLElementTagNameMap[K] => {
526
+ const e = doc.createElement(tag);
527
+ e.className = cls;
528
+ if (text) e.textContent = text;
529
+ return e;
530
+ };
531
+ const back = el('div', 'aiv-back');
532
+ back.id = PANEL_ID;
533
+ back.style.zIndex = String(o.zIndex ?? 1600);
534
+ const box = el('div', 'aiv-box');
535
+ box.setAttribute('role', 'dialog');
536
+ box.setAttribute('aria-label', '叫朋友来');
537
+ const x = el('button', 'aiv-x', '✕');
538
+ x.type = 'button';
539
+ x.dataset['key'] = 'invite:close';
540
+ x.setAttribute('aria-label', '关闭');
541
+ const list = el('div', 'aiv-list');
542
+ const note = el('div', 'aiv-note', o.friends === false ? '把链接发给朋友,点开就进房' : '正在找好友…');
543
+ const copy = el('button', 'aiv-chip aiv-soft', '复制邀请链接');
544
+ copy.type = 'button';
545
+ copy.dataset['key'] = 'invite:copy';
546
+ const foot = el('div', 'aiv-foot');
547
+ foot.appendChild(copy);
548
+ box.appendChild(x);
549
+ box.appendChild(el('div', 'aiv-title', '叫朋友来'));
550
+ box.appendChild(el('div', 'aiv-sub', `房间码 ${o.room}`));
551
+ box.appendChild(list);
552
+ box.appendChild(note);
553
+ box.appendChild(foot);
554
+ back.appendChild(box);
555
+ doc.body.appendChild(back);
556
+
557
+ let closed = false;
558
+ const timers = new Set<ReturnType<typeof setTimeout>>();
559
+ const onKey = (e: KeyboardEvent): void => {
560
+ if (e.key === 'Escape') close();
561
+ };
562
+ const close = (): void => {
563
+ if (closed) return;
564
+ closed = true;
565
+ for (const t of timers) clearTimeout(t);
566
+ doc.removeEventListener('keydown', onKey);
567
+ back.remove();
568
+ o.log?.('叫人 关闭');
569
+ };
570
+ doc.addEventListener('keydown', onKey);
571
+ back.addEventListener('click', (e) => {
572
+ if (e.target === back) close();
573
+ });
574
+ x.addEventListener('click', close);
575
+
576
+ copy.addEventListener('click', () => {
577
+ const text = o.text ?? `来一起玩!房间码 ${o.room}`;
578
+ const done = (msg: string, err = false): void => {
579
+ note.textContent = msg;
580
+ note.classList.toggle('aiv-err', err);
581
+ o.log?.('叫人 复制');
582
+ };
583
+ const nav = navigator as Navigator & { share?: (d: ShareData) => Promise<void> };
584
+ if (typeof nav.share === 'function') {
585
+ nav.share({ title: text, text, url }).then(
586
+ () => done('发出去了'),
587
+ (e: { name?: string }) => (e?.name === 'AbortError' ? undefined : clip()),
588
+ );
589
+ return;
590
+ }
591
+ clip();
592
+ function clip(): void {
593
+ if (navigator.clipboard?.writeText) navigator.clipboard.writeText(`${text}:${url}`).then(() => done('链接复制好了,发给朋友,点开就进房'), () => done(`把这个链接发给朋友:${url}`, true));
594
+ else done(`把这个链接发给朋友:${url}`, true);
595
+ }
596
+ });
597
+
598
+ /** "叫他来"按钮的样子:叫过的 1 分钟内灰着,到点自己变回来 */
599
+ const paint = (b: HTMLButtonElement, id: string): void => {
600
+ const left = (calledUntil.get(id) ?? 0) - now();
601
+ b.disabled = left > 0;
602
+ b.textContent = left > 0 ? '已叫' : '叫他来';
603
+ if (left > 0) {
604
+ const t = setTimeout(() => {
605
+ timers.delete(t);
606
+ if (!closed) paint(b, id);
607
+ }, left);
608
+ timers.add(t);
609
+ }
610
+ };
611
+
612
+ const render = (friends: Friend[]): void => {
613
+ note.textContent = friends.length ? '' : '还没有好友,先把链接发给朋友';
614
+ // 平台已经按在线、最近来过排好;这里再保证在线的在前(稳定排序)
615
+ const sorted = [...friends].sort((a, b) => Number(b.online) - Number(a.online));
616
+ for (const f of sorted) {
617
+ const row = el('div', 'aiv-row');
618
+ row.appendChild(el('span', `aiv-dot${f.online ? ' aiv-on' : ''}`));
619
+ const who = el('div', 'aiv-who');
620
+ who.appendChild(el('div', 'aiv-name', f.name || '好友'));
621
+ who.appendChild(el('div', 'aiv-where', whereText(f, o.gameName)));
622
+ const b = el('button', 'aiv-chip', '叫他来');
623
+ b.type = 'button';
624
+ b.dataset['key'] = `invite:call:${f.id}`;
625
+ paint(b, f.id);
626
+ b.addEventListener('click', () => {
627
+ b.disabled = true;
628
+ void sendInvite({ to: f.id, game: o.game, room: o.room }, o).then((r) => {
629
+ if (closed) return;
630
+ o.log?.(`叫人 ${f.id} ${r.ok ? 'ok' : r.error}`);
631
+ if (r.ok) {
632
+ calledUntil.set(f.id, now() + INVITE_GAP_MS);
633
+ note.textContent = `叫了 ${f.name || '好友'},他会在页面顶上看到`;
634
+ note.classList.remove('aiv-err');
635
+ } else {
636
+ // 刚叫过(平台按 1 分钟算)也灰到能叫为止
637
+ if (r.error === 'limit') calledUntil.set(f.id, now() + Math.min(r.retryAfter ?? 60, 60) * 1000);
638
+ note.textContent = inviteErrorText(r);
639
+ note.classList.add('aiv-err');
640
+ }
641
+ paint(b, f.id);
642
+ });
643
+ });
644
+ row.appendChild(who);
645
+ row.appendChild(b);
646
+ list.appendChild(row);
647
+ }
648
+ o.log?.(`叫人 打开 ${friends.length}`);
649
+ };
650
+
651
+ if (o.friends === false) o.log?.('叫人 打开 0');
652
+ else
653
+ void fetchFriends(o).then((fs) => {
654
+ if (closed) return;
655
+ if (fs) render(fs);
656
+ else {
657
+ note.textContent = '好友列表暂时打不开,可以先把链接发给朋友';
658
+ o.log?.('叫人 打开 失败');
659
+ }
660
+ });
661
+ copy.focus();
662
+ return { close };
663
+ }