@zhin.js/plugin-tic-tac-toe 1.1.0 → 1.1.3

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.
@@ -1,8 +1,8 @@
1
1
  // Generated by build-plugin-runtime-entries.mjs. Do not edit.
2
2
  import { defineCommand } from 'zhin.js/command';
3
3
  import { messageFromCommandInput, normalizeTttAction } from '@zhin.js/game-kit';
4
- import { TTT_HELP, runTttCommand } from "../../lib/ttt-command.js";
5
- import { resolveGameServices } from "../../lib/runtime-store.js";
4
+ import { TTT_HELP, runTttCommand } from "../../../lib/ttt-command.js";
5
+ import { resolveGameServices } from "../../../lib/runtime-store.js";
6
6
  export default defineCommand({
7
7
  description: 'Tic Tac Toe',
8
8
  params: { action: { type: 'string', default: '' } },
@@ -1,7 +1,7 @@
1
1
  import { defineCommand } from 'zhin.js/command';
2
2
  import { messageFromCommandInput, normalizeTttAction } from '@zhin.js/game-kit';
3
- import { TTT_HELP, runTttCommand } from '../../src/ttt-command.js';
4
- import { resolveGameServices } from '../../src/runtime-store.js';
3
+ import { TTT_HELP, runTttCommand } from '../../../src/ttt-command.js';
4
+ import { resolveGameServices } from '../../../src/runtime-store.js';
5
5
 
6
6
  export default defineCommand({
7
7
  description: 'Tic Tac Toe',
package/lib/index.d.ts CHANGED
@@ -2,6 +2,6 @@ export { TTT_HELP } from './ttt-command.js';
2
2
  export { gameServicesToken, resolveGameServices } from './runtime-store.js';
3
3
  /**
4
4
  * 已由 plugin.ts 接线:commands/ 命令、middlewares/ 文本与选项中间件、
5
- * 游戏大厅注册(registerRuntimeGame)、过期会话 cron(scheduleHostToken)、
5
+ * 游戏大厅 Game capability、过期会话 cron(scheduleHostToken)、
6
6
  * host DatabaseHost(databaseHostToken)。仍未接:interactive 按钮回调。
7
7
  */
package/lib/index.js CHANGED
@@ -2,7 +2,7 @@ export { TTT_HELP } from './ttt-command.js';
2
2
  export { gameServicesToken, resolveGameServices } from './runtime-store.js';
3
3
  /**
4
4
  * 已由 plugin.ts 接线:commands/ 命令、middlewares/ 文本与选项中间件、
5
- * 游戏大厅注册(registerRuntimeGame)、过期会话 cron(scheduleHostToken)、
5
+ * 游戏大厅 Game capability、过期会话 cron(scheduleHostToken)、
6
6
  * host DatabaseHost(databaseHostToken)。仍未接:interactive 按钮回调。
7
7
  */
8
8
  //# sourceMappingURL=index.js.map
package/lib/models.js CHANGED
@@ -17,15 +17,15 @@ export function defineHostTables(db) {
17
17
  move_count: { type: 'integer', default: 0 },
18
18
  revision: { type: 'integer', default: 0 },
19
19
  processed_actions: { type: 'text', default: '[]' },
20
- updated_at: { type: 'integer', default: 0 },
21
- created_at: { type: 'integer', default: 0 },
20
+ updated_at: { type: 'bigint', default: 0 },
21
+ created_at: { type: 'bigint', default: 0 },
22
22
  });
23
23
  db.define('ttt_queue', {
24
24
  id: { type: 'integer', primary: true },
25
25
  channel_key: { type: 'text', nullable: false },
26
26
  user_id: { type: 'text', nullable: false },
27
27
  user_name: { type: 'text', default: '' },
28
- joined_at: { type: 'integer', default: 0 },
28
+ joined_at: { type: 'bigint', default: 0 },
29
29
  });
30
30
  db.define('ttt_moves', {
31
31
  id: { type: 'integer', primary: true },
@@ -33,13 +33,13 @@ export function defineHostTables(db) {
33
33
  player_id: { type: 'text', nullable: false },
34
34
  cell: { type: 'integer', nullable: false },
35
35
  move_index: { type: 'integer', nullable: false },
36
- created_at: { type: 'integer', default: 0 },
36
+ created_at: { type: 'bigint', default: 0 },
37
37
  });
38
38
  db.define('ttt_spectators', {
39
39
  id: { type: 'integer', primary: true },
40
40
  session_id: { type: 'text', nullable: false },
41
41
  user_id: { type: 'text', nullable: false },
42
- joined_at: { type: 'integer', default: 0 },
42
+ joined_at: { type: 'bigint', default: 0 },
43
43
  });
44
44
  }
45
45
  //# sourceMappingURL=models.js.map
package/lib/models.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  // Generated by build-plugin-runtime-entries.mjs. Do not edit.
2
2
  import { defineGameCommandAliasMiddleware, isTttAction, messageFromCommandInput, normalizeTttAction, } from '@zhin.js/game-kit';
3
- import { TTT_HELP, runTttCommand } from "../lib/ttt-command.js";
4
- import { resolveGameServices } from "../lib/runtime-store.js";
3
+ import { TTT_HELP, runTttCommand } from "../../lib/ttt-command.js";
4
+ import { resolveGameServices } from "../../lib/runtime-store.js";
5
5
  export default defineGameCommandAliasMiddleware({
6
6
  aliases: ['井字棋', 'ttt'],
7
7
  async run(action, input, context) {
@@ -4,8 +4,8 @@ import {
4
4
  messageFromCommandInput,
5
5
  normalizeTttAction,
6
6
  } from '@zhin.js/game-kit';
7
- import { TTT_HELP, runTttCommand } from '../src/ttt-command.js';
8
- import { resolveGameServices } from '../src/runtime-store.js';
7
+ import { TTT_HELP, runTttCommand } from '../../src/ttt-command.js';
8
+ import { resolveGameServices } from '../../src/runtime-store.js';
9
9
 
10
10
  export default defineGameCommandAliasMiddleware({
11
11
  aliases: ['井字棋', 'ttt'],
@@ -1,10 +1,10 @@
1
1
  // Generated by build-plugin-runtime-entries.mjs. Do not edit.
2
2
  import { defineMiddleware } from 'zhin.js/middleware';
3
3
  import { channelKey, messageFromCommandInput, parseChoicePayload, resolveGameTextPayload, } from '@zhin.js/game-kit';
4
- import { resolveGameServices } from "../lib/runtime-store.js";
5
- import { buildFallbackMap, TTT_PREFIX, parseTttPayload } from "../lib/board-view.js";
6
- import { parseBoard } from "../lib/engine.js";
7
- import { handleMove, restartFromTerminal } from "../lib/game-flow.js";
4
+ import { resolveGameServices } from "../../lib/runtime-store.js";
5
+ import { buildFallbackMap, TTT_PREFIX, parseTttPayload } from "../../lib/board-view.js";
6
+ import { parseBoard } from "../../lib/engine.js";
7
+ import { handleMove, restartFromTerminal } from "../../lib/game-flow.js";
8
8
  /**
9
9
  * 文本入口:按钮 payload(`ttt:session:0-8` 或 `ttt:session:restart`)
10
10
  * 与裸数字 fallback(按空格 1-9 编号落子,对应视图『落子:回复数字 1-9(仅空格)』)。
@@ -6,10 +6,10 @@ import {
6
6
  parseChoicePayload,
7
7
  resolveGameTextPayload,
8
8
  } from '@zhin.js/game-kit';
9
- import { resolveGameServices } from '../src/runtime-store.js';
10
- import { buildFallbackMap, TTT_PREFIX, parseTttPayload } from '../src/board-view.js';
11
- import { parseBoard } from '../src/engine.js';
12
- import { handleMove, restartFromTerminal } from '../src/game-flow.js';
9
+ import { resolveGameServices } from '../../src/runtime-store.js';
10
+ import { buildFallbackMap, TTT_PREFIX, parseTttPayload } from '../../src/board-view.js';
11
+ import { parseBoard } from '../../src/engine.js';
12
+ import { handleMove, restartFromTerminal } from '../../src/game-flow.js';
13
13
 
14
14
  /**
15
15
  * 文本入口:按钮 payload(`ttt:session:0-8` 或 `ttt:session:restart`)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zhin.js/plugin-tic-tac-toe",
3
- "version": "1.1.0",
3
+ "version": "1.1.3",
4
4
  "description": "Zhin.js 跨平台井字棋 (Plugin Runtime)",
5
5
  "type": "module",
6
6
  "main": "./lib/index.js",
@@ -24,13 +24,13 @@
24
24
  ],
25
25
  "license": "MIT",
26
26
  "dependencies": {
27
- "@zhin.js/core": "1.1.35",
28
- "@zhin.js/game-kit": "1.1.0"
27
+ "@zhin.js/core": "1.1.38",
28
+ "@zhin.js/game-kit": "1.1.3"
29
29
  },
30
30
  "devDependencies": {
31
31
  "typescript": "^6.0.3",
32
32
  "vitest": "^4.1.10",
33
- "zhin.js": "1.1.0"
33
+ "zhin.js": "1.1.3"
34
34
  },
35
35
  "repository": {
36
36
  "type": "git",
@@ -58,14 +58,18 @@
58
58
  {
59
59
  "package": "@zhin.js/middleware",
60
60
  "api": "^1.0.0"
61
+ },
62
+ {
63
+ "package": "@zhin.js/game-kit",
64
+ "api": "^1.0.0"
61
65
  }
62
66
  ],
63
67
  "plugins": []
64
68
  },
65
69
  "peerDependencies": {
66
- "@zhin.js/command": "^1.1.0",
67
- "@zhin.js/middleware": "^1.1.0",
68
- "zhin.js": "^1.1.0"
70
+ "@zhin.js/command": "^1.1.2",
71
+ "@zhin.js/middleware": "^1.1.2",
72
+ "zhin.js": "^1.1.3"
69
73
  },
70
74
  "peerDependenciesMeta": {
71
75
  "@zhin.js/command": {
package/plugin.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // Generated by build-plugin-runtime-entries.mjs. Do not edit.
2
- import { defineGamePlugin, gameEvents, plainTextFromSendContent, } from '@zhin.js/game-kit';
2
+ import { defineGamePlugin, plainTextFromSendContent, } from '@zhin.js/game-kit';
3
3
  import { outboundHostToken } from 'zhin.js';
4
4
  import { defineHostTables } from "./lib/models.js";
5
5
  import { gameServicesToken } from "./lib/runtime-store.js";
@@ -66,12 +66,12 @@ export default defineGamePlugin({
66
66
  content,
67
67
  })));
68
68
  };
69
- const disposeTurn = gameEvents.on('turn:change', async (event) => {
69
+ const disposeTurn = services.session.events.on('turn:change', async (event) => {
70
70
  if (event.gameId === 'ttt' && event.session.status === 'active') {
71
71
  await notify(event.session, false);
72
72
  }
73
73
  });
74
- const disposeEnd = gameEvents.on('game:end', async (event) => {
74
+ const disposeEnd = services.session.events.on('game:end', async (event) => {
75
75
  if (event.gameId === 'ttt')
76
76
  await notify(event.session, true);
77
77
  });
package/src/index.ts CHANGED
@@ -3,6 +3,6 @@ export { gameServicesToken, resolveGameServices } from './runtime-store.js';
3
3
 
4
4
  /**
5
5
  * 已由 plugin.ts 接线:commands/ 命令、middlewares/ 文本与选项中间件、
6
- * 游戏大厅注册(registerRuntimeGame)、过期会话 cron(scheduleHostToken)、
6
+ * 游戏大厅 Game capability、过期会话 cron(scheduleHostToken)、
7
7
  * host DatabaseHost(databaseHostToken)。仍未接:interactive 按钮回调。
8
8
  */
package/src/models.ts CHANGED
@@ -81,15 +81,15 @@ export function defineHostTables(
81
81
  move_count: { type: 'integer', default: 0 },
82
82
  revision: { type: 'integer', default: 0 },
83
83
  processed_actions: { type: 'text', default: '[]' },
84
- updated_at: { type: 'integer', default: 0 },
85
- created_at: { type: 'integer', default: 0 },
84
+ updated_at: { type: 'bigint', default: 0 },
85
+ created_at: { type: 'bigint', default: 0 },
86
86
  });
87
87
  db.define('ttt_queue', {
88
88
  id: { type: 'integer', primary: true },
89
89
  channel_key: { type: 'text', nullable: false },
90
90
  user_id: { type: 'text', nullable: false },
91
91
  user_name: { type: 'text', default: '' },
92
- joined_at: { type: 'integer', default: 0 },
92
+ joined_at: { type: 'bigint', default: 0 },
93
93
  });
94
94
  db.define('ttt_moves', {
95
95
  id: { type: 'integer', primary: true },
@@ -97,12 +97,12 @@ export function defineHostTables(
97
97
  player_id: { type: 'text', nullable: false },
98
98
  cell: { type: 'integer', nullable: false },
99
99
  move_index: { type: 'integer', nullable: false },
100
- created_at: { type: 'integer', default: 0 },
100
+ created_at: { type: 'bigint', default: 0 },
101
101
  });
102
102
  db.define('ttt_spectators', {
103
103
  id: { type: 'integer', primary: true },
104
104
  session_id: { type: 'text', nullable: false },
105
105
  user_id: { type: 'text', nullable: false },
106
- joined_at: { type: 'integer', default: 0 },
106
+ joined_at: { type: 'bigint', default: 0 },
107
107
  });
108
108
  }