@zhin.js/plugin-dungeon-expedition 1.0.20 → 1.1.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/commands/dungeon/{[[action]].js → [[action]]/index.js} +2 -2
- package/commands/dungeon/{[[action]].ts → [[action]]/index.ts} +2 -2
- package/lib/session-service.js +2 -2
- package/lib/session-service.js.map +1 -1
- package/middlewares/{dungeon-alias.js → dungeon-alias/index.js} +2 -2
- package/middlewares/{dungeon-alias.ts → dungeon-alias/index.ts} +2 -2
- package/middlewares/{dungeon-choice.js → dungeon-choice/index.js} +4 -4
- package/middlewares/{dungeon-choice.ts → dungeon-choice/index.ts} +4 -4
- package/package.json +11 -7
- package/src/session-service.ts +1 -3
|
@@ -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 } from '@zhin.js/game-kit';
|
|
4
|
-
import { DUNGEON_HELP, normalizeDungeonAction, runDungeonCommand, } from "
|
|
5
|
-
import { resolveGameServices } from "
|
|
4
|
+
import { DUNGEON_HELP, normalizeDungeonAction, runDungeonCommand, } from "../../../lib/dungeon-command.js";
|
|
5
|
+
import { resolveGameServices } from "../../../lib/runtime-store.js";
|
|
6
6
|
export default defineCommand({
|
|
7
7
|
description: 'Multiplayer dungeon expedition',
|
|
8
8
|
params: { action: { type: 'string', default: '' } },
|
|
@@ -4,8 +4,8 @@ import {
|
|
|
4
4
|
DUNGEON_HELP,
|
|
5
5
|
normalizeDungeonAction,
|
|
6
6
|
runDungeonCommand,
|
|
7
|
-
} from '
|
|
8
|
-
import { resolveGameServices } from '
|
|
7
|
+
} from '../../../src/dungeon-command.js';
|
|
8
|
+
import { resolveGameServices } from '../../../src/runtime-store.js';
|
|
9
9
|
|
|
10
10
|
export default defineCommand({
|
|
11
11
|
description: 'Multiplayer dungeon expedition',
|
package/lib/session-service.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DeterministicRandom, VersionedSessionService, channelKey,
|
|
1
|
+
import { DeterministicRandom, VersionedSessionService, channelKey, generateCompactId, } from '@zhin.js/game-kit';
|
|
2
2
|
import { activePlayer, applyDungeonAction, createDungeonState, decodeDungeonState, } from './engine.js';
|
|
3
3
|
export class SessionService extends VersionedSessionService {
|
|
4
4
|
constructor(database) {
|
|
@@ -53,7 +53,7 @@ export class SessionService extends VersionedSessionService {
|
|
|
53
53
|
});
|
|
54
54
|
}
|
|
55
55
|
if (options.action.type === 'join') {
|
|
56
|
-
await
|
|
56
|
+
await this.assertPlayersAvailable(existing.channel_key, [options.actorId]);
|
|
57
57
|
}
|
|
58
58
|
return this.mutateSession(options.sessionId, {
|
|
59
59
|
actionId: options.actionId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-service.js","sourceRoot":"","sources":["../src/session-service.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,UAAU,EACV,
|
|
1
|
+
{"version":3,"file":"session-service.js","sourceRoot":"","sources":["../src/session-service.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,UAAU,EACV,iBAAiB,GAKlB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GAGnB,MAAM,aAAa,CAAC;AAcrB,MAAM,OAAO,cAAe,SAAQ,uBAA0C;IAC5E,YAAY,QAAyB;QACnC,KAAK,CAAC,QAA6D,EAAE;YACnE,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,kBAAkB;YACzB,UAAU,EAAE,CAAC,UAAU,CAAC;YACxB,eAAe,EAAE,sBAAsB;SACxC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,OAAwB,EACxB,IAAsB;QAEtB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,EAAE,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACrE,MAAM,KAAK,GAAG,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,EAAE;YACF,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;YACjC,QAAQ,EAAE,OAAO,CAAC,SAAS;YAC3B,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;YACnC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC/B,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC;YAChC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;YAC5B,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YACjC,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE;YACnC,SAAS,EAAE,MAAM,CAAC,KAAK;YACvB,cAAc,EAAE,KAAK,CAAC,aAAa;YACnC,QAAQ,EAAE,CAAC;YACX,iBAAiB,EAAE,IAAI;YACvB,WAAW,EAAE,GAAG,GAAG,CAAC,GAAG,MAAM;YAC7B,MAAM,EAAE,QAAQ;YAChB,UAAU,EAAE,GAAG;YACf,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;IACL,CAAC;IAEQ,KAAK,CAAC,gBAAgB,CAC7B,eAAuB,EACvB,MAAc;QAEd,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YACpC,WAAW,EAAE,eAAe;YAC5B,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CACvB,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAC7C,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,MAAM,CACjC,CAAC,IAAI,IAAI,CAAC;IACf,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,OAAoC;QAEpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE;gBAC3C,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,KAAK,EAAE,EAAE;aACV,CAAC,CAAC;QACL,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACnC,MAAM,IAAI,CAAC,sBAAsB,CAC/B,QAAQ,CAAC,WAAW,EACpB,CAAC,OAAO,CAAC,OAAO,CAAC,CAClB,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE;YAC3C,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE;gBACjB,MAAM,KAAK,GAAG,kBAAkB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBACrD,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBAChE,MAAM,IAAI,GAAG,kBAAkB,CAC7B,KAAK,EACL,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,MAAM,EACd,MAAM,CACP,CAAC;gBACF,OAAO;oBACL,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;oBAChC,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE;oBAClC,SAAS,EAAE,MAAM,CAAC,KAAK;oBACvB,cAAc,EAAE,IAAI,CAAC,aAAa;oBAClC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM;oBACpC,MAAM,EAAE,IAAI,CAAC,KAAK,KAAK,WAAW;wBAChC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW;wBACrD,CAAC,CAAC,QAAQ;iBACb,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,UAAU,cAAc,CAAC,QAAyB;IACtD,OAAO,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAA0B;IACzD,OAAO,kBAAkB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,sBAAsB,CAC7B,OAAoC;IAEpC,MAAM,KAAK,GAAG,kBAAkB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACrD,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACpC,MAAM,EAAE,MAAM,CAAC,EAAE;QACjB,QAAQ,EAAE,MAAM,CAAC,IAAI;QACrB,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;YAChE,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS;gBAC5B,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;gBAChC,CAAC,CAAC,MAAM;QACV,KAAK,EAAE,KAAK,CAAC,YAAY,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI;KAC7C,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Generated by build-plugin-runtime-entries.mjs. Do not edit.
|
|
2
2
|
import { defineGameCommandAliasMiddleware, messageFromCommandInput, } from '@zhin.js/game-kit';
|
|
3
|
-
import { normalizeDungeonAction, runDungeonCommand, } from "
|
|
4
|
-
import { resolveGameServices } from "
|
|
3
|
+
import { normalizeDungeonAction, runDungeonCommand, } from "../../lib/dungeon-command.js";
|
|
4
|
+
import { resolveGameServices } from "../../lib/runtime-store.js";
|
|
5
5
|
export default defineGameCommandAliasMiddleware({
|
|
6
6
|
aliases: ['地牢', 'dungeon'],
|
|
7
7
|
async run(action, input, context) {
|
|
@@ -5,8 +5,8 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
normalizeDungeonAction,
|
|
7
7
|
runDungeonCommand,
|
|
8
|
-
} from '
|
|
9
|
-
import { resolveGameServices } from '
|
|
8
|
+
} from '../../src/dungeon-command.js';
|
|
9
|
+
import { resolveGameServices } from '../../src/runtime-store.js';
|
|
10
10
|
|
|
11
11
|
export default defineGameCommandAliasMiddleware({
|
|
12
12
|
aliases: ['地牢', 'dungeon'],
|
|
@@ -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 { buildChoiceFallbackMap, channelKey, messageFromCommandInput, parseChoicePayload, resolveGameTextPayload, } from '@zhin.js/game-kit';
|
|
4
|
-
import { handleDungeonChoice } from "
|
|
5
|
-
import { resolveGameServices } from "
|
|
6
|
-
import { stateFromSession } from "
|
|
7
|
-
import { DUNGEON_PREFIX, choicesForState, dungeonSessionToken, } from "
|
|
4
|
+
import { handleDungeonChoice } from "../../lib/game-flow.js";
|
|
5
|
+
import { resolveGameServices } from "../../lib/runtime-store.js";
|
|
6
|
+
import { stateFromSession } from "../../lib/session-service.js";
|
|
7
|
+
import { DUNGEON_PREFIX, choicesForState, dungeonSessionToken, } from "../../lib/view.js";
|
|
8
8
|
export default defineMiddleware({
|
|
9
9
|
target: 'inbound',
|
|
10
10
|
async handle(context, next) {
|
|
@@ -7,14 +7,14 @@ import {
|
|
|
7
7
|
parseChoicePayload,
|
|
8
8
|
resolveGameTextPayload,
|
|
9
9
|
} from '@zhin.js/game-kit';
|
|
10
|
-
import { handleDungeonChoice } from '
|
|
11
|
-
import { resolveGameServices } from '
|
|
12
|
-
import { stateFromSession } from '
|
|
10
|
+
import { handleDungeonChoice } from '../../src/game-flow.js';
|
|
11
|
+
import { resolveGameServices } from '../../src/runtime-store.js';
|
|
12
|
+
import { stateFromSession } from '../../src/session-service.js';
|
|
13
13
|
import {
|
|
14
14
|
DUNGEON_PREFIX,
|
|
15
15
|
choicesForState,
|
|
16
16
|
dungeonSessionToken,
|
|
17
|
-
} from '
|
|
17
|
+
} from '../../src/view.js';
|
|
18
18
|
|
|
19
19
|
export default defineMiddleware<Message>({
|
|
20
20
|
target: 'inbound',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zhin.js/plugin-dungeon-expedition",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.2",
|
|
4
4
|
"description": "Zhin.js multiplayer deterministic dungeon expedition",
|
|
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.
|
|
28
|
-
"@zhin.js/game-kit": "
|
|
27
|
+
"@zhin.js/core": "1.1.37",
|
|
28
|
+
"@zhin.js/game-kit": "1.1.2"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"typescript": "^6.0.3",
|
|
32
32
|
"vitest": "^4.1.10",
|
|
33
|
-
"zhin.js": "
|
|
33
|
+
"zhin.js": "1.1.2"
|
|
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.
|
|
67
|
-
"@zhin.js/middleware": "1.
|
|
68
|
-
"zhin.js": "
|
|
70
|
+
"@zhin.js/command": "^1.1.1",
|
|
71
|
+
"@zhin.js/middleware": "^1.1.1",
|
|
72
|
+
"zhin.js": "^1.1.2"
|
|
69
73
|
},
|
|
70
74
|
"peerDependenciesMeta": {
|
|
71
75
|
"@zhin.js/command": {
|
package/src/session-service.ts
CHANGED
|
@@ -3,7 +3,6 @@ import {
|
|
|
3
3
|
DeterministicRandom,
|
|
4
4
|
VersionedSessionService,
|
|
5
5
|
channelKey,
|
|
6
|
-
gameSessionCoordinator,
|
|
7
6
|
generateCompactId,
|
|
8
7
|
type GameMessageLike,
|
|
9
8
|
type GameOutcome,
|
|
@@ -98,8 +97,7 @@ export class SessionService extends VersionedSessionService<DungeonSessionRow> {
|
|
|
98
97
|
});
|
|
99
98
|
}
|
|
100
99
|
if (options.action.type === 'join') {
|
|
101
|
-
await
|
|
102
|
-
this.gameId,
|
|
100
|
+
await this.assertPlayersAvailable(
|
|
103
101
|
existing.channel_key,
|
|
104
102
|
[options.actorId],
|
|
105
103
|
);
|