mbler 0.1.3-alpha → 0.1.3-alpha-r2
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/LICENSE +21 -21
- package/README.md +15 -6
- package/bin/mbler.js +12 -12
- package/bin/minify.js +58 -44
- package/lib/build/base.js +1 -297
- package/lib/build/build-g-config.json +12 -12
- package/lib/build/getModule.js +1 -182
- package/lib/build/index.js +1 -370
- package/lib/build/manifest.build.js +1 -103
- package/lib/build/mcVersion.js +1 -86
- package/lib/build/utils.js +1 -6
- package/lib/code-processor/c-handler-export.js +1 -12
- package/lib/code-processor/index.js +1 -141
- package/lib/code-processor/mtreehandler.js +1 -164
- package/lib/commander/index.js +1 -154
- package/lib/data/includes.json +13 -13
- package/lib/data/version.json +88 -88
- package/lib/git/clone.js +1 -28
- package/lib/git/index.js +1 -12
- package/lib/git/pull.js +1 -100
- package/lib/lang/__translate.js +1 -93
- package/lib/lang/en.js +1 -128
- package/lib/lang/index.js +1 -78
- package/lib/lang/zh.js +1 -146
- package/lib/loger/colors.js +1 -13
- package/lib/loger/index.js +1 -136
- package/lib/mcx/ast/index.js +1 -11
- package/lib/mcx/ast/prop.js +1 -78
- package/lib/mcx/ast/tag.js +1 -246
- package/lib/mcx/compile-component/lib.js +1 -106
- package/lib/mcx/compile-component/types.js +1 -2
- package/lib/mcx/compile-component/utils.js +1 -26
- package/lib/mcx/compile-mcx/compile.js +1 -34
- package/lib/mcx/compile-mcx/compiler/bundler.js +1 -0
- package/lib/mcx/compile-mcx/compiler/compileData.js +1 -0
- package/lib/mcx/compile-mcx/compiler/compileMain.js +1 -0
- package/lib/mcx/compile-mcx/compiler/index.js +1 -0
- package/lib/mcx/compile-mcx/compiler/utils.js +1 -0
- package/lib/mcx/compile-mcx/context.js +1 -19
- package/lib/mcx/compile-mcx/index.js +1 -10
- package/lib/mcx/compile-mcx/mcx/index.js +1 -2
- package/lib/mcx/compile-mcx/mcx/types.js +1 -2
- package/lib/mcx/compile-mcx/template/module.js +1 -42
- package/lib/mcx/compile-mcx/types.js +1 -2
- package/lib/mcx/compile-mcx/utils.node.js +1 -207
- package/lib/mcx/index.js +1 -13
- package/lib/mcx/test/index.js +1 -7
- package/lib/mcx/test.js +1 -21
- package/lib/mcx/types.js +1 -2
- package/lib/mcx/utils.js +1 -86
- package/lib/module-handler/index.js +1 -482
- package/lib/modules/create-game/mbler.config.json +13 -13
- package/lib/modules/create-game/src/Runner/RunnerManager.js +1 -113
- package/lib/modules/create-game/src/Runner/scriptRunner.js +1 -70
- package/lib/modules/create-game/src/config.js +1 -27
- package/lib/modules/create-game/src/constants.js +1 -19
- package/lib/modules/create-game/src/createGameModule.js +1 -24
- package/lib/modules/create-game/src/gameComponent/common/autoStop.js +1 -38
- package/lib/modules/create-game/src/gameComponent/common/lazyLoader.js +1 -76
- package/lib/modules/create-game/src/gameComponent/common/stopWatch/onTimeEvent.js +1 -36
- package/lib/modules/create-game/src/gameComponent/common/stopWatch/stopWatch.js +1 -90
- package/lib/modules/create-game/src/gameComponent/common/stopWatch/tickEvent.js +1 -29
- package/lib/modules/create-game/src/gameComponent/common/timer/onTimeEvent.js +1 -36
- package/lib/modules/create-game/src/gameComponent/common/timer/tickEvent.js +1 -29
- package/lib/modules/create-game/src/gameComponent/common/timer/timer.js +1 -87
- package/lib/modules/create-game/src/gameComponent/gameComponent.js +1 -53
- package/lib/modules/create-game/src/gameComponent/index.js +1 -31
- package/lib/modules/create-game/src/gameComponent/player/blockInteractionBlocker.js +1 -40
- package/lib/modules/create-game/src/gameComponent/player/entityInteractionBlocker.js +1 -48
- package/lib/modules/create-game/src/gameComponent/player/healthIndicator.js +1 -48
- package/lib/modules/create-game/src/gameComponent/player/regionMonitor.js +1 -22
- package/lib/modules/create-game/src/gameComponent/player/respawn.js +1 -59
- package/lib/modules/create-game/src/gameComponent/player/spawnProtector.js +1 -69
- package/lib/modules/create-game/src/gameComponent/region/regionProtecter.js +1 -53
- package/lib/modules/create-game/src/gameComponent/region/regionTeamChooser.js +1 -71
- package/lib/modules/create-game/src/gameComponent/region/regionTeamCleaner.js +1 -20
- package/lib/modules/create-game/src/gameComponent/view/infoScoreboard.js +1 -77
- package/lib/modules/create-game/src/gameComponent/view/teamScoreboard.js +1 -83
- package/lib/modules/create-game/src/gameContext.js +1 -6
- package/lib/modules/create-game/src/gameEngine.js +1 -139
- package/lib/modules/create-game/src/gameEvent/eventManager.js +1 -108
- package/lib/modules/create-game/src/gameEvent/eventSignal.js +1 -28
- package/lib/modules/create-game/src/gameEvent/events/buttonPush.js +1 -41
- package/lib/modules/create-game/src/gameEvent/events/inSlot.js +1 -77
- package/lib/modules/create-game/src/gameEvent/events/interval.js +1 -51
- package/lib/modules/create-game/src/gameEvent/events/itemUse.js +1 -36
- package/lib/modules/create-game/src/gameEvent/events/onBlock.js +1 -106
- package/lib/modules/create-game/src/gameEvent/events/regionEvents.js +1 -105
- package/lib/modules/create-game/src/gameEvent/events/signClick.js +1 -45
- package/lib/modules/create-game/src/gameEvent/gameEvent.js +1 -54
- package/lib/modules/create-game/src/gameEvent/index.js +1 -20
- package/lib/modules/create-game/src/gameEvent/mapEventSignal.js +1 -101
- package/lib/modules/create-game/src/gameEvent/subscription.js +1 -17
- package/lib/modules/create-game/src/gamePlayer/gamePlayer.js +1 -102
- package/lib/modules/create-game/src/gamePlayer/groupBuilder.js +1 -38
- package/lib/modules/create-game/src/gamePlayer/groupSet.js +1 -96
- package/lib/modules/create-game/src/gamePlayer/index.js +1 -25
- package/lib/modules/create-game/src/gamePlayer/playerGroup.js +1 -145
- package/lib/modules/create-game/src/gamePlayer/playerManager.js +1 -57
- package/lib/modules/create-game/src/gameRegion/gameRegion.js +1 -229
- package/lib/modules/create-game/src/gameRegion/index.js +1 -43
- package/lib/modules/create-game/src/gameRegion/regionHelper.js +1 -79
- package/lib/modules/create-game/src/gameState/common/autoStop.js +1 -39
- package/lib/modules/create-game/src/gameState/gameState.js +1 -169
- package/lib/modules/create-game/src/gameState/index.js +1 -7
- package/lib/modules/create-game/src/gameState/types.js +1 -35
- package/lib/modules/create-game/src/gameStructure/gameStructure.js +1 -36
- package/lib/modules/create-game/src/main.js +1 -86
- package/lib/modules/create-game/src/system/gameCommand.js +1 -107
- package/lib/modules/create-game/src/system/gameManager.js +1 -124
- package/lib/modules/create-game/src/system/globalPlayerManager.js +1 -119
- package/lib/modules/create-game/src/utils/GameError.js +1 -31
- package/lib/modules/create-game/src/utils/algorithm.js +1 -95
- package/lib/modules/create-game/src/utils/chunk.js +1 -63
- package/lib/modules/create-game/src/utils/deferredObject.js +1 -27
- package/lib/modules/create-game/src/utils/duration.js +1 -25
- package/lib/modules/create-game/src/utils/func.js +1 -20
- package/lib/modules/create-game/src/utils/index.js +1 -52
- package/lib/modules/create-game/src/utils/interfaces.js +1 -2
- package/lib/modules/create-game/src/utils/logger.js +1 -47
- package/lib/modules/create-game/src/utils/random.js +1 -76
- package/lib/modules/create-game/src/utils/vanila-data.js +1 -123
- package/lib/modules/create-game/src/utils/vector.js +1 -96
- package/lib/modules/gameLib/mbler.config.json +15 -15
- package/lib/modules/gameLib/src/config.js +1 -134
- package/lib/modules/gameLib/src/data.js +1 -77
- package/lib/modules/gameLib/src/entity.js +1 -256
- package/lib/modules/gameLib/src/event.js +1 -285
- package/lib/modules/gameLib/src/index.js +1 -20
- package/lib/modules/gameLib/src/loger.js +1 -21
- package/lib/modules/gameLib/src/ui.js +1 -209
- package/lib/modules/gameLib/src/utils.js +1 -122
- package/lib/modules/gutils/mbler.config.json +11 -11
- package/lib/modules/gutils/src/index.js +1 -22
- package/lib/modules/innerDef.json +4 -4
- package/lib/runTemp/File.js +1 -54
- package/lib/runTemp/config.json +3 -3
- package/lib/runTemp/index.js +1 -137
- package/lib/runTemp/securityFile.js +1 -93
- package/lib/start/addPack.js +1 -3
- package/lib/start/clean.js +1 -84
- package/lib/start/create.js +1 -146
- package/lib/start/dev.js +1 -99
- package/lib/start/getResConfig.js +1 -3
- package/lib/start/incg.js +1 -3
- package/lib/start/index.js +1 -207
- package/lib/start/init.js +1 -125
- package/lib/start/rechce.js +1 -57
- package/lib/start/unaddPack.js +1 -3
- package/lib/start/unincg.js +1 -67
- package/lib/start/version.js +1 -73
- package/lib/utils/index.js +1 -298
- package/lib/uuid/index.js +1 -27
- package/package.json +49 -1
- package/test/2x sword/behavior/scripts/index.js +24 -24
- package/test/2x sword/mbler.config.json +11 -11
- package/test/2x sword/package.json +13 -13
- package/test/README.md +7 -7
- package/test/des/index.js +19 -19
- package/test/des/mbler.config.json +4 -4
- package/test/des/package.json +6 -6
- package/test/initializer/index.js +5 -5
- package/test/initializer/mbler.config.json +4 -4
- package/test/initializer/package.json +6 -6
- package/test/mbler-int/behavior/res/items/mang_one_int.json +21 -21
- package/test/mbler-int/behavior/scripts/index.js +7 -7
- package/test/mbler-int/behavior/scripts/lib/event/index.js +19 -19
- package/test/mbler-int/behavior/scripts/lib/ui/Lore.js +18 -18
- package/test/mbler-int/behavior/scripts/lib/ui/baseUi.js +6 -6
- package/test/mbler-int/behavior/scripts/lib/ui/index.js +206 -206
- package/test/mbler-int/behavior/scripts/lib/utils/index.js +51 -51
- package/test/mbler-int/mbler.config.json +18 -18
- package/test/mbler-int/package.json +12 -12
- package/test/script-mbler/behavior/scripts/index.js +5 -0
- package/test/script-mbler/behavior/scripts/index.ts +5 -5
- package/test/script-mbler/mbler.config.json +14 -14
- package/test/script-mbler/package.json +15 -15
- package/lib/mcx/compile-mcx/_compile.js +0 -602
|
@@ -1,169 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GameState = void 0;
|
|
4
|
-
const eventManager_js_1 = require("../gameEvent/eventManager.js");
|
|
5
|
-
const RunnerManager_js_1 = require("../Runner/RunnerManager.js");
|
|
6
|
-
const logger_js_1 = require("../utils/logger.js");
|
|
7
|
-
const types_js_1 = require("./types.js");
|
|
8
|
-
/**游戏状态 */
|
|
9
|
-
class GameState {
|
|
10
|
-
logger = new logger_js_1.Logger(this.constructor.name);
|
|
11
|
-
engine;
|
|
12
|
-
components = new Map();
|
|
13
|
-
eventManager = new eventManager_js_1.EventManager();
|
|
14
|
-
runner = new RunnerManager_js_1.RunnerManager(this.constructor.name);
|
|
15
|
-
config;
|
|
16
|
-
constructor(engine, config) {
|
|
17
|
-
this.engine = engine;
|
|
18
|
-
this.config = config;
|
|
19
|
-
}
|
|
20
|
-
/**全局上下文 */
|
|
21
|
-
get context() {
|
|
22
|
-
return this.engine.context;
|
|
23
|
-
}
|
|
24
|
-
/**玩家管理器 */
|
|
25
|
-
get playerManager() {
|
|
26
|
-
return this.engine.playerManager;
|
|
27
|
-
}
|
|
28
|
-
get gameKey() {
|
|
29
|
-
return this.engine.key;
|
|
30
|
-
}
|
|
31
|
-
/**获取子状态 */
|
|
32
|
-
get nextState() {
|
|
33
|
-
return this.engine.getNextState(this);
|
|
34
|
-
}
|
|
35
|
-
get lastState() {
|
|
36
|
-
return this.engine.getLastState(this);
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* 添加组件到当前状态
|
|
40
|
-
* @param component 组件类型
|
|
41
|
-
* @param options 组件参数
|
|
42
|
-
* @param tag 组件标签(唯一)
|
|
43
|
-
* @throws {GameComponentAlreadyExistsError} 组件已存在时抛出
|
|
44
|
-
* @throws {ComponentLoadFailedError} 组件加载失败时抛出
|
|
45
|
-
*/
|
|
46
|
-
addComponent(component, options, tag) {
|
|
47
|
-
if (!this.engine.isActive)
|
|
48
|
-
return this;
|
|
49
|
-
this.logger.debug(`添加组件:${component.name}` +
|
|
50
|
-
(tag != undefined ? `(tag=${tag})` : ""));
|
|
51
|
-
//判断是否重复
|
|
52
|
-
const list = this.components.get(component) ?? [];
|
|
53
|
-
if (list.some((c) => c.tag === tag)) {
|
|
54
|
-
throw new types_js_1.GameComponentAlreadyExistsError(component, tag);
|
|
55
|
-
}
|
|
56
|
-
//没有数组就设置
|
|
57
|
-
if (!this.components.has(component))
|
|
58
|
-
this.components.set(component, list);
|
|
59
|
-
//添加到数组
|
|
60
|
-
const componentInstance = new component(this, options, tag);
|
|
61
|
-
list.push(componentInstance);
|
|
62
|
-
//加载
|
|
63
|
-
try {
|
|
64
|
-
const comp = componentInstance;
|
|
65
|
-
comp._onAttach();
|
|
66
|
-
}
|
|
67
|
-
catch (err) {
|
|
68
|
-
this.logger.error(`组件 ${component.name} tag=${tag} 加载失败`, err);
|
|
69
|
-
}
|
|
70
|
-
return this;
|
|
71
|
-
}
|
|
72
|
-
/**添加多个components(不能带参数和tag) */
|
|
73
|
-
addComponents(components) {
|
|
74
|
-
for (const comp of components) {
|
|
75
|
-
this.addComponent(comp);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* 获取当前状态中的组件
|
|
80
|
-
* @param type 组件类型
|
|
81
|
-
* @param tag 组件标签
|
|
82
|
-
* @throws {GameComponentNotExistsError} 若组件不存在,则抛出
|
|
83
|
-
*/
|
|
84
|
-
getComponent(type, tag) {
|
|
85
|
-
const list = this.components.get(type);
|
|
86
|
-
const component = list?.find((c) => c.tag === tag);
|
|
87
|
-
if (!component) {
|
|
88
|
-
throw new types_js_1.GameComponentNotExistsError(type, tag);
|
|
89
|
-
}
|
|
90
|
-
return component;
|
|
91
|
-
}
|
|
92
|
-
/**删除当前状态中的组件
|
|
93
|
-
* @throws {ComponentDeleteFailedError} 组件删除失败时
|
|
94
|
-
*/
|
|
95
|
-
deleteComponent(component, tag) {
|
|
96
|
-
this.logger.debug(`删除组件:${component.name}`);
|
|
97
|
-
const list = this.components.get(component);
|
|
98
|
-
if (!list)
|
|
99
|
-
return this;
|
|
100
|
-
const index = list?.findIndex((c) => c.tag === tag);
|
|
101
|
-
if (index === -1)
|
|
102
|
-
return this;
|
|
103
|
-
const comp = list[index];
|
|
104
|
-
try {
|
|
105
|
-
//取消订阅
|
|
106
|
-
comp._onDetach();
|
|
107
|
-
list.splice(index, 1);
|
|
108
|
-
if (list.length === 0)
|
|
109
|
-
this.components.delete(component);
|
|
110
|
-
}
|
|
111
|
-
catch (err) {
|
|
112
|
-
throw new types_js_1.ComponentDeleteFailedError(component, comp.tag, {
|
|
113
|
-
cause: err,
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
return this;
|
|
117
|
-
}
|
|
118
|
-
/**删除所有组件
|
|
119
|
-
* @throws {ComponentDeleteFailedError} 删除失败时
|
|
120
|
-
*/
|
|
121
|
-
deleteAllComponents() {
|
|
122
|
-
this.logger.debug(`删除所有组件`);
|
|
123
|
-
for (let [compType, list] of this.components.entries()) {
|
|
124
|
-
for (const comp of list) {
|
|
125
|
-
const instance = comp;
|
|
126
|
-
try {
|
|
127
|
-
instance._onDetach();
|
|
128
|
-
}
|
|
129
|
-
catch (err) {
|
|
130
|
-
throw new types_js_1.ComponentDeleteFailedError(compType, instance.tag, { cause: err });
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
this.components.clear();
|
|
135
|
-
}
|
|
136
|
-
subscribe(event, ...args) {
|
|
137
|
-
return this.eventManager.subscribe(this, event, ...args);
|
|
138
|
-
}
|
|
139
|
-
/** 进入一个新的子状态 */
|
|
140
|
-
pushState(stateType, config) {
|
|
141
|
-
this.engine.pushState(stateType, config);
|
|
142
|
-
}
|
|
143
|
-
/** 返回到父状态 */
|
|
144
|
-
popState() {
|
|
145
|
-
this.engine.popState();
|
|
146
|
-
}
|
|
147
|
-
/**将当前状态及其所有子状态,替换为一个新状态。*/
|
|
148
|
-
transitionTo(stateType, config) {
|
|
149
|
-
this.engine.replaceFrom(this, stateType, config);
|
|
150
|
-
}
|
|
151
|
-
_onExit() {
|
|
152
|
-
this.logger.debug(`onExit`);
|
|
153
|
-
this.onExit();
|
|
154
|
-
this.eventManager.dispose();
|
|
155
|
-
this.deleteAllComponents();
|
|
156
|
-
this.runner.dispose();
|
|
157
|
-
}
|
|
158
|
-
onExit() { }
|
|
159
|
-
/**返回基本信息 */
|
|
160
|
-
stats() {
|
|
161
|
-
const stateName = this.constructor.name;
|
|
162
|
-
const componentNames = [...this.components.values()]
|
|
163
|
-
.map((l) => l.map((c) => c.constructor.name +
|
|
164
|
-
(c.tag != undefined ? `(tag=${c.tag})` : "")))
|
|
165
|
-
.flat();
|
|
166
|
-
return `§b${stateName}§r(${componentNames.length}): §i${componentNames.length ? componentNames.join(",") : "<none>"}`;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
exports.GameState = GameState;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.GameState=void 0;const eventManager_js_1=require("../gameEvent/eventManager.js"),RunnerManager_js_1=require("../Runner/RunnerManager.js"),logger_js_1=require("../utils/logger.js"),types_js_1=require("./types.js");class GameState{logger=new logger_js_1.Logger(this.constructor.name);engine;components=new Map;eventManager=new eventManager_js_1.EventManager;runner=new RunnerManager_js_1.RunnerManager(this.constructor.name);config;constructor(e,t){this.engine=e,this.config=t}get context(){return this.engine.context}get playerManager(){return this.engine.playerManager}get gameKey(){return this.engine.key}get nextState(){return this.engine.getNextState(this)}get lastState(){return this.engine.getLastState(this)}addComponent(e,t,n){if(!this.engine.isActive)return this;this.logger.debug(`添加组件:${e.name}`+(null!=n?`(tag=${n})`:""));const s=this.components.get(e)??[];if(s.some(e=>e.tag===n))throw new types_js_1.GameComponentAlreadyExistsError(e,n);this.components.has(e)||this.components.set(e,s);const r=new e(this,t,n);s.push(r);try{r._onAttach()}catch(t){this.logger.error(`组件 ${e.name} tag=${n} 加载失败`,t)}return this}addComponents(e){for(const t of e)this.addComponent(t)}getComponent(e,t){const n=this.components.get(e),s=n?.find(e=>e.tag===t);if(!s)throw new types_js_1.GameComponentNotExistsError(e,t);return s}deleteComponent(e,t){this.logger.debug(`删除组件:${e.name}`);const n=this.components.get(e);if(!n)return this;const s=n?.findIndex(e=>e.tag===t);if(-1===s)return this;const r=n[s];try{r._onDetach(),n.splice(s,1),0===n.length&&this.components.delete(e)}catch(t){throw new types_js_1.ComponentDeleteFailedError(e,r.tag,{cause:t})}return this}deleteAllComponents(){this.logger.debug("删除所有组件");for(let[e,t]of this.components.entries())for(const n of t){const t=n;try{t._onDetach()}catch(n){throw new types_js_1.ComponentDeleteFailedError(e,t.tag,{cause:n})}}this.components.clear()}subscribe(e,...t){return this.eventManager.subscribe(this,e,...t)}pushState(e,t){this.engine.pushState(e,t)}popState(){this.engine.popState()}transitionTo(e,t){this.engine.replaceFrom(this,e,t)}_onExit(){this.logger.debug("onExit"),this.onExit(),this.eventManager.dispose(),this.deleteAllComponents(),this.runner.dispose()}onExit(){}stats(){const e=this.constructor.name,t=[...this.components.values()].map(e=>e.map(e=>e.constructor.name+(null!=e.tag?`(tag=${e.tag})`:""))).flat();return`§b${e}§r(${t.length}): §i${t.length?t.join(","):"<none>"}`}}exports.GameState=GameState;
|
|
@@ -1,7 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AutoStopState = exports.GameState = void 0;
|
|
4
|
-
var gameState_js_1 = require("./gameState.js");
|
|
5
|
-
Object.defineProperty(exports, "GameState", { enumerable: true, get: function () { return gameState_js_1.GameState; } });
|
|
6
|
-
var autoStop_js_1 = require("./common/autoStop.js");
|
|
7
|
-
Object.defineProperty(exports, "AutoStopState", { enumerable: true, get: function () { return autoStop_js_1.AutoStopState; } });
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.AutoStopState=exports.GameState=void 0;var gameState_js_1=require("./gameState.js");Object.defineProperty(exports,"GameState",{enumerable:!0,get:function(){return gameState_js_1.GameState}});var autoStop_js_1=require("./common/autoStop.js");Object.defineProperty(exports,"AutoStopState",{enumerable:!0,get:function(){return autoStop_js_1.AutoStopState}});
|
|
@@ -1,35 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ComponentDeleteFailedError = exports.ComponentLoadFailedError = exports.GameComponentAlreadyExistsError = exports.GameComponentNotExistsError = void 0;
|
|
4
|
-
const GameError_js_1 = require("../utils/GameError.js");
|
|
5
|
-
class GameComponentNotExistsError extends GameError_js_1.GameStateError {
|
|
6
|
-
constructor(componentType, tag, options) {
|
|
7
|
-
const msg = tag
|
|
8
|
-
? `组件 ${componentType.name} (tag=${tag}) 不存在于当前状态中`
|
|
9
|
-
: `组件 ${componentType.name} 不存在于当前状态中`;
|
|
10
|
-
super(msg, options);
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
exports.GameComponentNotExistsError = GameComponentNotExistsError;
|
|
14
|
-
// 组件已存在
|
|
15
|
-
class GameComponentAlreadyExistsError extends GameError_js_1.GameStateError {
|
|
16
|
-
constructor(componentType, tag, options) {
|
|
17
|
-
const msg = tag
|
|
18
|
-
? `组件 ${componentType.name} (tag=${tag}) 已经存在于当前状态中`
|
|
19
|
-
: `组件 ${componentType.name} 已经存在于当前状态中`;
|
|
20
|
-
super(msg, options);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
exports.GameComponentAlreadyExistsError = GameComponentAlreadyExistsError;
|
|
24
|
-
class ComponentLoadFailedError extends GameError_js_1.GameStateError {
|
|
25
|
-
constructor(componentType, tag, options) {
|
|
26
|
-
super(`组件 ${componentType.name} tag=${tag} 加载失败`, options);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
exports.ComponentLoadFailedError = ComponentLoadFailedError;
|
|
30
|
-
class ComponentDeleteFailedError extends GameError_js_1.GameStateError {
|
|
31
|
-
constructor(componentType, tag, options) {
|
|
32
|
-
super(`组件 ${componentType.name} tag=${tag} 卸载失败`, options);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
exports.ComponentDeleteFailedError = ComponentDeleteFailedError;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ComponentDeleteFailedError=exports.ComponentLoadFailedError=exports.GameComponentAlreadyExistsError=exports.GameComponentNotExistsError=void 0;const GameError_js_1=require("../utils/GameError.js");class GameComponentNotExistsError extends GameError_js_1.GameStateError{constructor(r,e,o){super(e?`组件 ${r.name} (tag=${e}) 不存在于当前状态中`:`组件 ${r.name} 不存在于当前状态中`,o)}}exports.GameComponentNotExistsError=GameComponentNotExistsError;class GameComponentAlreadyExistsError extends GameError_js_1.GameStateError{constructor(r,e,o){super(e?`组件 ${r.name} (tag=${e}) 已经存在于当前状态中`:`组件 ${r.name} 已经存在于当前状态中`,o)}}exports.GameComponentAlreadyExistsError=GameComponentAlreadyExistsError;class ComponentLoadFailedError extends GameError_js_1.GameStateError{constructor(r,e,o){super(`组件 ${r.name} tag=${e} 加载失败`,o)}}exports.ComponentLoadFailedError=ComponentLoadFailedError;class ComponentDeleteFailedError extends GameError_js_1.GameStateError{constructor(r,e,o){super(`组件 ${r.name} tag=${e} 卸载失败`,o)}}exports.ComponentDeleteFailedError=ComponentDeleteFailedError;
|
|
@@ -1,36 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GameStructure = void 0;
|
|
4
|
-
const server_1 = require("@minecraft/server");
|
|
5
|
-
const vanila_data_js_1 = require("../utils/vanila-data.js");
|
|
6
|
-
/**游戏结构 */
|
|
7
|
-
class GameStructure {
|
|
8
|
-
id;
|
|
9
|
-
dim;
|
|
10
|
-
loc;
|
|
11
|
-
/**
|
|
12
|
-
* 构造一个游戏结构
|
|
13
|
-
* @param id 结构id
|
|
14
|
-
* @param loc 结构放置坐标
|
|
15
|
-
* @param dim 结构维度(默认主世界)
|
|
16
|
-
*/
|
|
17
|
-
constructor(id, loc, dim = vanila_data_js_1.DimensionIds.Overworld) {
|
|
18
|
-
this.id = id;
|
|
19
|
-
this.dim = dim;
|
|
20
|
-
this.loc = loc;
|
|
21
|
-
}
|
|
22
|
-
/**获取结构 */
|
|
23
|
-
get() {
|
|
24
|
-
return server_1.world.structureManager.get(this.id);
|
|
25
|
-
}
|
|
26
|
-
/**放在默认的位置 */
|
|
27
|
-
place(options) {
|
|
28
|
-
const dim = server_1.world.getDimension(this.dim);
|
|
29
|
-
server_1.world.structureManager.place(this.id, dim, this.loc, options);
|
|
30
|
-
}
|
|
31
|
-
/**放在指定地点 */
|
|
32
|
-
placeOn(loc, dim, options) {
|
|
33
|
-
server_1.world.structureManager.place(this.id, dim, loc, options);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
exports.GameStructure = GameStructure;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.GameStructure=void 0;const server_1=require("@minecraft/server"),vanila_data_js_1=require("../utils/vanila-data.js");class GameStructure{id;dim;loc;constructor(e,r,t=vanila_data_js_1.DimensionIds.Overworld){this.id=e,this.dim=t,this.loc=r}get(){return server_1.world.structureManager.get(this.id)}place(e){const r=server_1.world.getDimension(this.dim);server_1.world.structureManager.place(this.id,r,this.loc,e)}placeOn(e,r,t){server_1.world.structureManager.place(this.id,r,e,t)}}exports.GameStructure=GameStructure;
|
|
@@ -1,86 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
19
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
20
|
-
};
|
|
21
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
-
var ownKeys = function(o) {
|
|
23
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
-
var ar = [];
|
|
25
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
-
return ar;
|
|
27
|
-
};
|
|
28
|
-
return ownKeys(o);
|
|
29
|
-
};
|
|
30
|
-
return function (mod) {
|
|
31
|
-
if (mod && mod.__esModule) return mod;
|
|
32
|
-
var result = {};
|
|
33
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
-
__setModuleDefault(result, mod);
|
|
35
|
-
return result;
|
|
36
|
-
};
|
|
37
|
-
})();
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.createGameModule = exports.RunnerManager = exports.ScriptCancelledError = exports.ScriptRunner = exports.GameStructure = exports.GameContext = exports.GameEngine = exports.Utils = exports.Game = void 0;
|
|
40
|
-
exports.initSAPIGame = initSAPIGame;
|
|
41
|
-
const server_1 = require("@minecraft/server");
|
|
42
|
-
const config_js_1 = require("./config.js");
|
|
43
|
-
const constants_js_1 = require("./constants.js");
|
|
44
|
-
const gameEvent_js_1 = require("./gameEvent/gameEvent.js");
|
|
45
|
-
const gameCommand_js_1 = require("./system/gameCommand.js");
|
|
46
|
-
const gameManager_js_1 = require("./system/gameManager.js");
|
|
47
|
-
const globalPlayerManager_js_1 = require("./system/globalPlayerManager.js");
|
|
48
|
-
exports.Game = {
|
|
49
|
-
/**框架预定义事件 */
|
|
50
|
-
events: new gameEvent_js_1.gameEvents(),
|
|
51
|
-
/**游戏管理器 */
|
|
52
|
-
manager: new gameManager_js_1.GameManager(),
|
|
53
|
-
playerManager: new globalPlayerManager_js_1.globalPlayerManager(),
|
|
54
|
-
constants: constants_js_1.Constants,
|
|
55
|
-
/**全局配置 */
|
|
56
|
-
config: config_js_1.SAPIGameConfig,
|
|
57
|
-
};
|
|
58
|
-
/**使用配置初始化框架 */
|
|
59
|
-
function initSAPIGame(config) {
|
|
60
|
-
config_js_1.SAPIGameConfig.update(config);
|
|
61
|
-
}
|
|
62
|
-
//注册指令
|
|
63
|
-
server_1.system.beforeEvents.startup.subscribe((t) => {
|
|
64
|
-
(0, gameCommand_js_1.regGameCommand)(t.customCommandRegistry);
|
|
65
|
-
});
|
|
66
|
-
__exportStar(require("./gameRegion/index.js"), exports);
|
|
67
|
-
exports.Utils = __importStar(require("./utils/index.js"));
|
|
68
|
-
__exportStar(require("./gameComponent/index.js"), exports);
|
|
69
|
-
__exportStar(require("./gameState/index.js"), exports);
|
|
70
|
-
__exportStar(require("./gamePlayer/index.js"), exports);
|
|
71
|
-
var gameEngine_js_1 = require("./gameEngine.js");
|
|
72
|
-
Object.defineProperty(exports, "GameEngine", { enumerable: true, get: function () { return gameEngine_js_1.GameEngine; } });
|
|
73
|
-
var gameContext_js_1 = require("./gameContext.js");
|
|
74
|
-
Object.defineProperty(exports, "GameContext", { enumerable: true, get: function () { return gameContext_js_1.GameContext; } });
|
|
75
|
-
var gameStructure_js_1 = require("./gameStructure/gameStructure.js");
|
|
76
|
-
Object.defineProperty(exports, "GameStructure", { enumerable: true, get: function () { return gameStructure_js_1.GameStructure; } });
|
|
77
|
-
var scriptRunner_js_1 = require("./Runner/scriptRunner.js");
|
|
78
|
-
Object.defineProperty(exports, "ScriptRunner", { enumerable: true, get: function () { return scriptRunner_js_1.ScriptRunner; } });
|
|
79
|
-
Object.defineProperty(exports, "ScriptCancelledError", { enumerable: true, get: function () { return scriptRunner_js_1.ScriptCancelledError; } });
|
|
80
|
-
var RunnerManager_js_1 = require("./Runner/RunnerManager.js");
|
|
81
|
-
Object.defineProperty(exports, "RunnerManager", { enumerable: true, get: function () { return RunnerManager_js_1.RunnerManager; } });
|
|
82
|
-
__exportStar(require("./gameEvent/index.js"), exports);
|
|
83
|
-
__exportStar(require("./system/gameManager.js"), exports);
|
|
84
|
-
__exportStar(require("./system/globalPlayerManager.js"), exports);
|
|
85
|
-
var createGameModule_js_1 = require("./createGameModule.js");
|
|
86
|
-
Object.defineProperty(exports, "createGameModule", { enumerable: true, get: function () { return createGameModule_js_1.createGameModule; } });
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,r,t,n){void 0===n&&(n=t);var a=Object.getOwnPropertyDescriptor(r,t);a&&!("get"in a?!r.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return r[t]}}),Object.defineProperty(e,n,a)}:function(e,r,t,n){void 0===n&&(n=t),e[n]=r[t]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}:function(e,r){e.default=r}),__exportStar=this&&this.__exportStar||function(e,r){for(var t in e)"default"===t||Object.prototype.hasOwnProperty.call(r,t)||__createBinding(r,e,t)},__importStar=this&&this.__importStar||function(){var e=function(r){return e=Object.getOwnPropertyNames||function(e){var r=[];for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[r.length]=t);return r},e(r)};return function(r){if(r&&r.__esModule)return r;var t={};if(null!=r)for(var n=e(r),a=0;a<n.length;a++)"default"!==n[a]&&__createBinding(t,r,n[a]);return __setModuleDefault(t,r),t}}();Object.defineProperty(exports,"__esModule",{value:!0}),exports.createGameModule=exports.RunnerManager=exports.ScriptCancelledError=exports.ScriptRunner=exports.GameStructure=exports.GameContext=exports.GameEngine=exports.Utils=exports.Game=void 0,exports.initSAPIGame=initSAPIGame;const server_1=require("@minecraft/server"),config_js_1=require("./config.js"),constants_js_1=require("./constants.js"),gameEvent_js_1=require("./gameEvent/gameEvent.js"),gameCommand_js_1=require("./system/gameCommand.js"),gameManager_js_1=require("./system/gameManager.js"),globalPlayerManager_js_1=require("./system/globalPlayerManager.js");function initSAPIGame(e){config_js_1.SAPIGameConfig.update(e)}exports.Game={events:new gameEvent_js_1.gameEvents,manager:new gameManager_js_1.GameManager,playerManager:new globalPlayerManager_js_1.globalPlayerManager,constants:constants_js_1.Constants,config:config_js_1.SAPIGameConfig},server_1.system.beforeEvents.startup.subscribe(e=>{(0,gameCommand_js_1.regGameCommand)(e.customCommandRegistry)}),__exportStar(require("./gameRegion/index.js"),exports),exports.Utils=__importStar(require("./utils/index.js")),__exportStar(require("./gameComponent/index.js"),exports),__exportStar(require("./gameState/index.js"),exports),__exportStar(require("./gamePlayer/index.js"),exports);var gameEngine_js_1=require("./gameEngine.js");Object.defineProperty(exports,"GameEngine",{enumerable:!0,get:function(){return gameEngine_js_1.GameEngine}});var gameContext_js_1=require("./gameContext.js");Object.defineProperty(exports,"GameContext",{enumerable:!0,get:function(){return gameContext_js_1.GameContext}});var gameStructure_js_1=require("./gameStructure/gameStructure.js");Object.defineProperty(exports,"GameStructure",{enumerable:!0,get:function(){return gameStructure_js_1.GameStructure}});var scriptRunner_js_1=require("./Runner/scriptRunner.js");Object.defineProperty(exports,"ScriptRunner",{enumerable:!0,get:function(){return scriptRunner_js_1.ScriptRunner}}),Object.defineProperty(exports,"ScriptCancelledError",{enumerable:!0,get:function(){return scriptRunner_js_1.ScriptCancelledError}});var RunnerManager_js_1=require("./Runner/RunnerManager.js");Object.defineProperty(exports,"RunnerManager",{enumerable:!0,get:function(){return RunnerManager_js_1.RunnerManager}}),__exportStar(require("./gameEvent/index.js"),exports),__exportStar(require("./system/gameManager.js"),exports),__exportStar(require("./system/globalPlayerManager.js"),exports);var createGameModule_js_1=require("./createGameModule.js");Object.defineProperty(exports,"createGameModule",{enumerable:!0,get:function(){return createGameModule_js_1.createGameModule}});
|
|
@@ -1,107 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.regGameCommand = regGameCommand;
|
|
4
|
-
const server_1 = require("@minecraft/server");
|
|
5
|
-
const main_js_1 = require("../main.js");
|
|
6
|
-
const vanila_data_js_1 = require("../utils/vanila-data.js");
|
|
7
|
-
const config_js_1 = require("../config.js");
|
|
8
|
-
function regGameCommand(customCommandRegistry) {
|
|
9
|
-
//注册枚举
|
|
10
|
-
customCommandRegistry.registerEnum("game:opreation", [
|
|
11
|
-
"start",
|
|
12
|
-
"stop",
|
|
13
|
-
"stopAll",
|
|
14
|
-
"status",
|
|
15
|
-
"end",
|
|
16
|
-
]);
|
|
17
|
-
//注册命令
|
|
18
|
-
customCommandRegistry.registerCommand({
|
|
19
|
-
name: "game:game",
|
|
20
|
-
description: "SAPI-Game命令操作",
|
|
21
|
-
permissionLevel: server_1.CommandPermissionLevel.GameDirectors,
|
|
22
|
-
mandatoryParameters: [
|
|
23
|
-
{
|
|
24
|
-
name: "game:opreation",
|
|
25
|
-
type: server_1.CustomCommandParamType.Enum,
|
|
26
|
-
},
|
|
27
|
-
],
|
|
28
|
-
optionalParameters: [
|
|
29
|
-
{ name: "gameName", type: server_1.CustomCommandParamType.String },
|
|
30
|
-
{ name: "gameTag", type: server_1.CustomCommandParamType.String },
|
|
31
|
-
],
|
|
32
|
-
}, (origin, ope, name, tag) => {
|
|
33
|
-
return handleCommand(origin, ope, name, tag);
|
|
34
|
-
});
|
|
35
|
-
customCommandRegistry.registerCommand({
|
|
36
|
-
name: "game:hub",
|
|
37
|
-
description: "SAPI-Game返回主城命令",
|
|
38
|
-
permissionLevel: server_1.CommandPermissionLevel.Any,
|
|
39
|
-
}, (origin) => {
|
|
40
|
-
if (origin.sourceEntity?.typeId != vanila_data_js_1.EntityTypeIds.Player)
|
|
41
|
-
return {
|
|
42
|
-
message: "必须是玩家执行",
|
|
43
|
-
status: server_1.CustomCommandStatus.Failure,
|
|
44
|
-
};
|
|
45
|
-
main_js_1.Game.playerManager.forceReleaseFromGame(origin.sourceEntity.id);
|
|
46
|
-
server_1.system.run(() => {
|
|
47
|
-
config_js_1.SAPIGameConfig.config.hub(origin.sourceEntity);
|
|
48
|
-
});
|
|
49
|
-
return { message: "", status: server_1.CustomCommandStatus.Success };
|
|
50
|
-
});
|
|
51
|
-
customCommandRegistry.registerCommand({
|
|
52
|
-
name: "game:l",
|
|
53
|
-
description: "SAPI-Game返回主城命令",
|
|
54
|
-
permissionLevel: server_1.CommandPermissionLevel.Any,
|
|
55
|
-
}, (origin) => {
|
|
56
|
-
if (origin.sourceEntity?.typeId != vanila_data_js_1.EntityTypeIds.Player)
|
|
57
|
-
return {
|
|
58
|
-
message: "必须是玩家执行",
|
|
59
|
-
status: server_1.CustomCommandStatus.Failure,
|
|
60
|
-
};
|
|
61
|
-
main_js_1.Game.playerManager.forceReleaseFromGame(origin.sourceEntity.id);
|
|
62
|
-
server_1.system.run(() => {
|
|
63
|
-
config_js_1.SAPIGameConfig.config.hub(origin.sourceEntity);
|
|
64
|
-
});
|
|
65
|
-
return { message: "", status: server_1.CustomCommandStatus.Success };
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
function handleCommand(origin, ope, name, tag) {
|
|
69
|
-
const player = origin.sourceEntity instanceof server_1.Player ? origin.sourceEntity : undefined;
|
|
70
|
-
switch (ope) {
|
|
71
|
-
case "stopAll":
|
|
72
|
-
server_1.system.run(() => {
|
|
73
|
-
main_js_1.Game.manager.stopAll();
|
|
74
|
-
});
|
|
75
|
-
return {
|
|
76
|
-
message: "已停止所有运行中的游戏",
|
|
77
|
-
status: server_1.CustomCommandStatus.Success,
|
|
78
|
-
};
|
|
79
|
-
case "status":
|
|
80
|
-
main_js_1.Game.manager.status(player, name === "detail");
|
|
81
|
-
break;
|
|
82
|
-
case "stop":
|
|
83
|
-
if (name) {
|
|
84
|
-
const key = `${name}:${tag ?? 0}`;
|
|
85
|
-
const engine = main_js_1.Game.manager.getGameByKey(key);
|
|
86
|
-
if (!engine)
|
|
87
|
-
return {
|
|
88
|
-
message: "游戏不存在",
|
|
89
|
-
status: server_1.CustomCommandStatus.Failure,
|
|
90
|
-
};
|
|
91
|
-
server_1.system.run(() => {
|
|
92
|
-
main_js_1.Game.manager.stopGameByKey(key);
|
|
93
|
-
});
|
|
94
|
-
return {
|
|
95
|
-
message: `已停止游戏: ${key}`,
|
|
96
|
-
status: server_1.CustomCommandStatus.Success,
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
break;
|
|
100
|
-
case "end":
|
|
101
|
-
server_1.system.run(() => {
|
|
102
|
-
main_js_1.Game.manager.end();
|
|
103
|
-
});
|
|
104
|
-
break;
|
|
105
|
-
}
|
|
106
|
-
return undefined;
|
|
107
|
-
}
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.regGameCommand=regGameCommand;const server_1=require("@minecraft/server"),main_js_1=require("../main.js"),vanila_data_js_1=require("../utils/vanila-data.js"),config_js_1=require("../config.js");function regGameCommand(e){e.registerEnum("game:opreation",["start","stop","stopAll","status","end"]),e.registerCommand({name:"game:game",description:"SAPI-Game命令操作",permissionLevel:server_1.CommandPermissionLevel.GameDirectors,mandatoryParameters:[{name:"game:opreation",type:server_1.CustomCommandParamType.Enum}],optionalParameters:[{name:"gameName",type:server_1.CustomCommandParamType.String},{name:"gameTag",type:server_1.CustomCommandParamType.String}]},(e,s,a,m)=>handleCommand(e,s,a,m)),e.registerCommand({name:"game:hub",description:"SAPI-Game返回主城命令",permissionLevel:server_1.CommandPermissionLevel.Any},e=>e.sourceEntity?.typeId!=vanila_data_js_1.EntityTypeIds.Player?{message:"必须是玩家执行",status:server_1.CustomCommandStatus.Failure}:(main_js_1.Game.playerManager.forceReleaseFromGame(e.sourceEntity.id),server_1.system.run(()=>{config_js_1.SAPIGameConfig.config.hub(e.sourceEntity)}),{message:"",status:server_1.CustomCommandStatus.Success})),e.registerCommand({name:"game:l",description:"SAPI-Game返回主城命令",permissionLevel:server_1.CommandPermissionLevel.Any},e=>e.sourceEntity?.typeId!=vanila_data_js_1.EntityTypeIds.Player?{message:"必须是玩家执行",status:server_1.CustomCommandStatus.Failure}:(main_js_1.Game.playerManager.forceReleaseFromGame(e.sourceEntity.id),server_1.system.run(()=>{config_js_1.SAPIGameConfig.config.hub(e.sourceEntity)}),{message:"",status:server_1.CustomCommandStatus.Success}))}function handleCommand(e,s,a,m){const r=e.sourceEntity instanceof server_1.Player?e.sourceEntity:void 0;switch(s){case"stopAll":return server_1.system.run(()=>{main_js_1.Game.manager.stopAll()}),{message:"已停止所有运行中的游戏",status:server_1.CustomCommandStatus.Success};case"status":main_js_1.Game.manager.status(r,"detail"===a);break;case"stop":if(a){const e=`${a}:${m??0}`;return main_js_1.Game.manager.getGameByKey(e)?(server_1.system.run(()=>{main_js_1.Game.manager.stopGameByKey(e)}),{message:`已停止游戏: ${e}`,status:server_1.CustomCommandStatus.Success}):{message:"游戏不存在",status:server_1.CustomCommandStatus.Failure}}break;case"end":server_1.system.run(()=>{main_js_1.Game.manager.end()})}}
|
|
@@ -1,124 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GameManager = void 0;
|
|
4
|
-
const main_js_1 = require("../main.js");
|
|
5
|
-
const config_js_1 = require("../config.js");
|
|
6
|
-
const GameError_js_1 = require("../utils/GameError.js");
|
|
7
|
-
const logger_js_1 = require("../utils/logger.js");
|
|
8
|
-
class GameManager {
|
|
9
|
-
games = new Map();
|
|
10
|
-
logger = new logger_js_1.Logger(this.constructor.name);
|
|
11
|
-
addGame(map, key, gameInstance) {
|
|
12
|
-
if (map.has(key)) {
|
|
13
|
-
throw new GameError_js_1.GameManagerError(`已存在游戏: ${key}`);
|
|
14
|
-
}
|
|
15
|
-
this.logger.log(`startedGame: ${key}`);
|
|
16
|
-
gameInstance.onStart();
|
|
17
|
-
map.set(key, gameInstance);
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* 启动指定游戏
|
|
21
|
-
* @throws GameManagerError 当游戏已存在时
|
|
22
|
-
*/
|
|
23
|
-
startGame(game, config, tag) {
|
|
24
|
-
const key = this.buildKey(game, tag);
|
|
25
|
-
const gameInstance = new game(key, config);
|
|
26
|
-
this.addGame(this.games, key, gameInstance);
|
|
27
|
-
}
|
|
28
|
-
/**获取指定tag游戏是否已存在 */
|
|
29
|
-
hasGame(game, tag) {
|
|
30
|
-
const key = this.buildKey(game, tag);
|
|
31
|
-
const gameInstance = this.games.get(key);
|
|
32
|
-
return gameInstance != undefined;
|
|
33
|
-
}
|
|
34
|
-
/**获取game */
|
|
35
|
-
getGame(game, tag) {
|
|
36
|
-
return this.games.get(this.buildKey(game, tag));
|
|
37
|
-
}
|
|
38
|
-
getGameByKey(key) {
|
|
39
|
-
const game = this.games.get(key);
|
|
40
|
-
return game;
|
|
41
|
-
}
|
|
42
|
-
stopGame(game, tag) {
|
|
43
|
-
const key = this.buildKey(game, tag);
|
|
44
|
-
this.stopGameByKey(key);
|
|
45
|
-
}
|
|
46
|
-
stopGameByKey(key) {
|
|
47
|
-
const gameInstance = this.games.get(key);
|
|
48
|
-
if (gameInstance) {
|
|
49
|
-
gameInstance.onStop();
|
|
50
|
-
gameInstance.onDispose();
|
|
51
|
-
this.games.delete(key);
|
|
52
|
-
this.logger.log(`stopedGame: ${key}`);
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
this.logger.error("StopGame失败,游戏不存在:" + key);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
/**停止所有普通游戏 */
|
|
59
|
-
stopAll() {
|
|
60
|
-
for (const [key, game] of this.games) {
|
|
61
|
-
if (game.isDaemon)
|
|
62
|
-
continue;
|
|
63
|
-
const instance = game;
|
|
64
|
-
instance.onStop();
|
|
65
|
-
instance.onDispose();
|
|
66
|
-
this.logger.log(`stopedGame: ${key}`);
|
|
67
|
-
this.games.delete(key);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
/**静默停止所有普通游戏 */
|
|
71
|
-
end() {
|
|
72
|
-
for (const [key, game] of this.games) {
|
|
73
|
-
if (game.isDaemon)
|
|
74
|
-
continue;
|
|
75
|
-
game.onDispose();
|
|
76
|
-
this.logger.log(`endedGame: ${key}`);
|
|
77
|
-
this.games.delete(key);
|
|
78
|
-
}
|
|
79
|
-
config_js_1.SAPIGameConfig.config.onEnd();
|
|
80
|
-
}
|
|
81
|
-
status(player, detail) {
|
|
82
|
-
const lines = [];
|
|
83
|
-
// 顶部标题
|
|
84
|
-
lines.push("§6========== 游戏状态 ==========");
|
|
85
|
-
lines.push(`§e总游戏数: §a${this.games.size}`);
|
|
86
|
-
lines.push("§6================================");
|
|
87
|
-
lines.push("");
|
|
88
|
-
lines.push("玩家状态");
|
|
89
|
-
lines.push(main_js_1.Game.playerManager.status());
|
|
90
|
-
lines.push("");
|
|
91
|
-
// 常驻游戏
|
|
92
|
-
if (this.games.size) {
|
|
93
|
-
lines.push("§d—— 常驻游戏 ——");
|
|
94
|
-
for (const [key, g] of this.games) {
|
|
95
|
-
if (g.isDaemon) {
|
|
96
|
-
lines.push(`§a● ${key} §7|\ §f${g.stats(detail)}`);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
lines.push("");
|
|
100
|
-
}
|
|
101
|
-
// 普通游戏
|
|
102
|
-
if (this.games.size) {
|
|
103
|
-
lines.push("§d—— 普通游戏 ——");
|
|
104
|
-
for (const [key, g] of this.games) {
|
|
105
|
-
if (!g.isDaemon) {
|
|
106
|
-
lines.push(`§a● ${key} §7|\ §f${g.stats(detail)}`);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
lines.push("");
|
|
110
|
-
}
|
|
111
|
-
// 汇总输出
|
|
112
|
-
const message = lines.join("\n");
|
|
113
|
-
if (player) {
|
|
114
|
-
player.sendMessage(message);
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
console.log(message);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
buildKey(game, tag) {
|
|
121
|
-
return `${game.name}:${tag ?? 0}`;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
exports.GameManager = GameManager;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.GameManager=void 0;const main_js_1=require("../main.js"),config_js_1=require("../config.js"),GameError_js_1=require("../utils/GameError.js"),logger_js_1=require("../utils/logger.js");class GameManager{games=new Map;logger=new logger_js_1.Logger(this.constructor.name);addGame(e,s,t){if(e.has(s))throw new GameError_js_1.GameManagerError(`已存在游戏: ${s}`);this.logger.log(`startedGame: ${s}`),t.onStart(),e.set(s,t)}startGame(e,s,t){const o=this.buildKey(e,t),a=new e(o,s);this.addGame(this.games,o,a)}hasGame(e,s){const t=this.buildKey(e,s);return null!=this.games.get(t)}getGame(e,s){return this.games.get(this.buildKey(e,s))}getGameByKey(e){return this.games.get(e)}stopGame(e,s){const t=this.buildKey(e,s);this.stopGameByKey(t)}stopGameByKey(e){const s=this.games.get(e);s?(s.onStop(),s.onDispose(),this.games.delete(e),this.logger.log(`stopedGame: ${e}`)):this.logger.error("StopGame失败,游戏不存在:"+e)}stopAll(){for(const[e,s]of this.games){if(s.isDaemon)continue;const t=s;t.onStop(),t.onDispose(),this.logger.log(`stopedGame: ${e}`),this.games.delete(e)}}end(){for(const[e,s]of this.games)s.isDaemon||(s.onDispose(),this.logger.log(`endedGame: ${e}`),this.games.delete(e));config_js_1.SAPIGameConfig.config.onEnd()}status(e,s){const t=[];if(t.push("§6========== 游戏状态 =========="),t.push(`§e总游戏数: §a${this.games.size}`),t.push("§6================================"),t.push(""),t.push("玩家状态"),t.push(main_js_1.Game.playerManager.status()),t.push(""),this.games.size){t.push("§d—— 常驻游戏 ——");for(const[e,o]of this.games)o.isDaemon&&t.push(`§a● ${e} §7| §f${o.stats(s)}`);t.push("")}if(this.games.size){t.push("§d—— 普通游戏 ——");for(const[e,o]of this.games)o.isDaemon||t.push(`§a● ${e} §7| §f${o.stats(s)}`);t.push("")}const o=t.join("\n");e?e.sendMessage(o):console.log(o)}buildKey(e,s){return`${e.name}:${s??0}`}}exports.GameManager=GameManager;
|