mbler 0.1.3-alpha → 0.1.3-alpna-r1

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.
Files changed (178) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +8 -4
  3. package/bin/mbler.js +12 -12
  4. package/bin/minify.js +58 -44
  5. package/lib/build/base.js +1 -297
  6. package/lib/build/build-g-config.json +12 -12
  7. package/lib/build/getModule.js +1 -182
  8. package/lib/build/index.js +1 -370
  9. package/lib/build/manifest.build.js +1 -103
  10. package/lib/build/mcVersion.js +1 -86
  11. package/lib/build/utils.js +1 -6
  12. package/lib/code-processor/c-handler-export.js +1 -12
  13. package/lib/code-processor/index.js +1 -141
  14. package/lib/code-processor/mtreehandler.js +1 -164
  15. package/lib/commander/index.js +1 -154
  16. package/lib/data/includes.json +13 -13
  17. package/lib/data/version.json +88 -88
  18. package/lib/git/clone.js +1 -28
  19. package/lib/git/index.js +1 -12
  20. package/lib/git/pull.js +1 -100
  21. package/lib/lang/__translate.js +1 -93
  22. package/lib/lang/en.js +1 -128
  23. package/lib/lang/index.js +1 -78
  24. package/lib/lang/zh.js +1 -146
  25. package/lib/loger/colors.js +1 -13
  26. package/lib/loger/index.js +1 -136
  27. package/lib/mcx/ast/index.js +1 -11
  28. package/lib/mcx/ast/prop.js +1 -78
  29. package/lib/mcx/ast/tag.js +1 -246
  30. package/lib/mcx/compile-component/lib.js +1 -106
  31. package/lib/mcx/compile-component/types.js +1 -2
  32. package/lib/mcx/compile-component/utils.js +1 -26
  33. package/lib/mcx/compile-mcx/compile.js +1 -34
  34. package/lib/mcx/compile-mcx/compiler/bundler.js +1 -0
  35. package/lib/mcx/compile-mcx/compiler/compileData.js +1 -0
  36. package/lib/mcx/compile-mcx/compiler/compileMain.js +1 -0
  37. package/lib/mcx/compile-mcx/compiler/index.js +1 -0
  38. package/lib/mcx/compile-mcx/compiler/utils.js +1 -0
  39. package/lib/mcx/compile-mcx/context.js +1 -19
  40. package/lib/mcx/compile-mcx/index.js +1 -10
  41. package/lib/mcx/compile-mcx/mcx/index.js +1 -2
  42. package/lib/mcx/compile-mcx/mcx/types.js +1 -2
  43. package/lib/mcx/compile-mcx/template/module.js +1 -42
  44. package/lib/mcx/compile-mcx/types.js +1 -2
  45. package/lib/mcx/compile-mcx/utils.node.js +1 -207
  46. package/lib/mcx/index.js +1 -13
  47. package/lib/mcx/test/index.js +1 -7
  48. package/lib/mcx/test.js +1 -21
  49. package/lib/mcx/types.js +1 -2
  50. package/lib/mcx/utils.js +1 -86
  51. package/lib/module-handler/index.js +1 -482
  52. package/lib/modules/create-game/mbler.config.json +13 -13
  53. package/lib/modules/create-game/src/Runner/RunnerManager.js +1 -113
  54. package/lib/modules/create-game/src/Runner/scriptRunner.js +1 -70
  55. package/lib/modules/create-game/src/config.js +1 -27
  56. package/lib/modules/create-game/src/constants.js +1 -19
  57. package/lib/modules/create-game/src/createGameModule.js +1 -24
  58. package/lib/modules/create-game/src/gameComponent/common/autoStop.js +1 -38
  59. package/lib/modules/create-game/src/gameComponent/common/lazyLoader.js +1 -76
  60. package/lib/modules/create-game/src/gameComponent/common/stopWatch/onTimeEvent.js +1 -36
  61. package/lib/modules/create-game/src/gameComponent/common/stopWatch/stopWatch.js +1 -90
  62. package/lib/modules/create-game/src/gameComponent/common/stopWatch/tickEvent.js +1 -29
  63. package/lib/modules/create-game/src/gameComponent/common/timer/onTimeEvent.js +1 -36
  64. package/lib/modules/create-game/src/gameComponent/common/timer/tickEvent.js +1 -29
  65. package/lib/modules/create-game/src/gameComponent/common/timer/timer.js +1 -87
  66. package/lib/modules/create-game/src/gameComponent/gameComponent.js +1 -53
  67. package/lib/modules/create-game/src/gameComponent/index.js +1 -31
  68. package/lib/modules/create-game/src/gameComponent/player/blockInteractionBlocker.js +1 -40
  69. package/lib/modules/create-game/src/gameComponent/player/entityInteractionBlocker.js +1 -48
  70. package/lib/modules/create-game/src/gameComponent/player/healthIndicator.js +1 -48
  71. package/lib/modules/create-game/src/gameComponent/player/regionMonitor.js +1 -22
  72. package/lib/modules/create-game/src/gameComponent/player/respawn.js +1 -59
  73. package/lib/modules/create-game/src/gameComponent/player/spawnProtector.js +1 -69
  74. package/lib/modules/create-game/src/gameComponent/region/regionProtecter.js +1 -53
  75. package/lib/modules/create-game/src/gameComponent/region/regionTeamChooser.js +1 -71
  76. package/lib/modules/create-game/src/gameComponent/region/regionTeamCleaner.js +1 -20
  77. package/lib/modules/create-game/src/gameComponent/view/infoScoreboard.js +1 -77
  78. package/lib/modules/create-game/src/gameComponent/view/teamScoreboard.js +1 -83
  79. package/lib/modules/create-game/src/gameContext.js +1 -6
  80. package/lib/modules/create-game/src/gameEngine.js +1 -139
  81. package/lib/modules/create-game/src/gameEvent/eventManager.js +1 -108
  82. package/lib/modules/create-game/src/gameEvent/eventSignal.js +1 -28
  83. package/lib/modules/create-game/src/gameEvent/events/buttonPush.js +1 -41
  84. package/lib/modules/create-game/src/gameEvent/events/inSlot.js +1 -77
  85. package/lib/modules/create-game/src/gameEvent/events/interval.js +1 -51
  86. package/lib/modules/create-game/src/gameEvent/events/itemUse.js +1 -36
  87. package/lib/modules/create-game/src/gameEvent/events/onBlock.js +1 -106
  88. package/lib/modules/create-game/src/gameEvent/events/regionEvents.js +1 -105
  89. package/lib/modules/create-game/src/gameEvent/events/signClick.js +1 -45
  90. package/lib/modules/create-game/src/gameEvent/gameEvent.js +1 -54
  91. package/lib/modules/create-game/src/gameEvent/index.js +1 -20
  92. package/lib/modules/create-game/src/gameEvent/mapEventSignal.js +1 -101
  93. package/lib/modules/create-game/src/gameEvent/subscription.js +1 -17
  94. package/lib/modules/create-game/src/gamePlayer/gamePlayer.js +1 -102
  95. package/lib/modules/create-game/src/gamePlayer/groupBuilder.js +1 -38
  96. package/lib/modules/create-game/src/gamePlayer/groupSet.js +1 -96
  97. package/lib/modules/create-game/src/gamePlayer/index.js +1 -25
  98. package/lib/modules/create-game/src/gamePlayer/playerGroup.js +1 -145
  99. package/lib/modules/create-game/src/gamePlayer/playerManager.js +1 -57
  100. package/lib/modules/create-game/src/gameRegion/gameRegion.js +1 -229
  101. package/lib/modules/create-game/src/gameRegion/index.js +1 -43
  102. package/lib/modules/create-game/src/gameRegion/regionHelper.js +1 -79
  103. package/lib/modules/create-game/src/gameState/common/autoStop.js +1 -39
  104. package/lib/modules/create-game/src/gameState/gameState.js +1 -169
  105. package/lib/modules/create-game/src/gameState/index.js +1 -7
  106. package/lib/modules/create-game/src/gameState/types.js +1 -35
  107. package/lib/modules/create-game/src/gameStructure/gameStructure.js +1 -36
  108. package/lib/modules/create-game/src/main.js +1 -86
  109. package/lib/modules/create-game/src/system/gameCommand.js +1 -107
  110. package/lib/modules/create-game/src/system/gameManager.js +1 -124
  111. package/lib/modules/create-game/src/system/globalPlayerManager.js +1 -119
  112. package/lib/modules/create-game/src/utils/GameError.js +1 -31
  113. package/lib/modules/create-game/src/utils/algorithm.js +1 -95
  114. package/lib/modules/create-game/src/utils/chunk.js +1 -63
  115. package/lib/modules/create-game/src/utils/deferredObject.js +1 -27
  116. package/lib/modules/create-game/src/utils/duration.js +1 -25
  117. package/lib/modules/create-game/src/utils/func.js +1 -20
  118. package/lib/modules/create-game/src/utils/index.js +1 -52
  119. package/lib/modules/create-game/src/utils/interfaces.js +1 -2
  120. package/lib/modules/create-game/src/utils/logger.js +1 -47
  121. package/lib/modules/create-game/src/utils/random.js +1 -76
  122. package/lib/modules/create-game/src/utils/vanila-data.js +1 -123
  123. package/lib/modules/create-game/src/utils/vector.js +1 -96
  124. package/lib/modules/gameLib/mbler.config.json +15 -15
  125. package/lib/modules/gameLib/src/config.js +1 -134
  126. package/lib/modules/gameLib/src/data.js +1 -77
  127. package/lib/modules/gameLib/src/entity.js +1 -256
  128. package/lib/modules/gameLib/src/event.js +1 -285
  129. package/lib/modules/gameLib/src/index.js +1 -20
  130. package/lib/modules/gameLib/src/loger.js +1 -21
  131. package/lib/modules/gameLib/src/ui.js +1 -209
  132. package/lib/modules/gameLib/src/utils.js +1 -122
  133. package/lib/modules/gutils/mbler.config.json +11 -11
  134. package/lib/modules/gutils/src/index.js +1 -22
  135. package/lib/modules/innerDef.json +4 -4
  136. package/lib/runTemp/File.js +1 -54
  137. package/lib/runTemp/config.json +3 -3
  138. package/lib/runTemp/index.js +1 -137
  139. package/lib/runTemp/securityFile.js +1 -93
  140. package/lib/start/addPack.js +1 -3
  141. package/lib/start/clean.js +1 -84
  142. package/lib/start/create.js +1 -146
  143. package/lib/start/dev.js +1 -99
  144. package/lib/start/getResConfig.js +1 -3
  145. package/lib/start/incg.js +1 -3
  146. package/lib/start/index.js +1 -207
  147. package/lib/start/init.js +1 -125
  148. package/lib/start/rechce.js +1 -57
  149. package/lib/start/unaddPack.js +1 -3
  150. package/lib/start/unincg.js +1 -67
  151. package/lib/start/version.js +1 -73
  152. package/lib/utils/index.js +1 -298
  153. package/lib/uuid/index.js +1 -27
  154. package/package.json +49 -1
  155. package/test/2x sword/behavior/scripts/index.js +24 -24
  156. package/test/2x sword/mbler.config.json +11 -11
  157. package/test/2x sword/package.json +13 -13
  158. package/test/README.md +7 -7
  159. package/test/des/index.js +19 -19
  160. package/test/des/mbler.config.json +4 -4
  161. package/test/des/package.json +6 -6
  162. package/test/initializer/index.js +5 -5
  163. package/test/initializer/mbler.config.json +4 -4
  164. package/test/initializer/package.json +6 -6
  165. package/test/mbler-int/behavior/res/items/mang_one_int.json +21 -21
  166. package/test/mbler-int/behavior/scripts/index.js +7 -7
  167. package/test/mbler-int/behavior/scripts/lib/event/index.js +19 -19
  168. package/test/mbler-int/behavior/scripts/lib/ui/Lore.js +18 -18
  169. package/test/mbler-int/behavior/scripts/lib/ui/baseUi.js +6 -6
  170. package/test/mbler-int/behavior/scripts/lib/ui/index.js +206 -206
  171. package/test/mbler-int/behavior/scripts/lib/utils/index.js +51 -51
  172. package/test/mbler-int/mbler.config.json +18 -18
  173. package/test/mbler-int/package.json +12 -12
  174. package/test/script-mbler/behavior/scripts/index.js +5 -0
  175. package/test/script-mbler/behavior/scripts/index.ts +5 -5
  176. package/test/script-mbler/mbler.config.json +14 -14
  177. package/test/script-mbler/package.json +15 -15
  178. package/lib/mcx/compile-mcx/_compile.js +0 -602
@@ -1,482 +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 __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.getModules = getModules;
40
- exports.getModuleGit = getModuleGit;
41
- exports.addPack = addPack;
42
- exports.unaddPack = unaddPack;
43
- exports.installModules = installModules;
44
- exports.uninstallModule = uninstallModule;
45
- exports.unInstallModules = unInstallModules;
46
- exports.getResConfig = getResConfig;
47
- exports.getModuleInfo = getModuleInfo;
48
- const git_1 = __importDefault(require("../git"));
49
- const node_os_1 = __importDefault(require("node:os"));
50
- const node_path_1 = __importDefault(require("node:path"));
51
- const node_fs_1 = __importDefault(require("node:fs"));
52
- const promises_1 = __importDefault(require("node:fs/promises"));
53
- const utils = __importStar(require("./../utils"));
54
- const commander_1 = require("../commander");
55
- const index_js_1 = __importDefault(require("../lang/index.js"));
56
- const index_js_2 = __importDefault(require("../loger/index.js"));
57
- const gitVerifyReg = /(https?:\/\/[^\s\/]+\/[^\s\/]+\/[^\s]+(?:\.git)?|(?:git@|[\w.-]+@)[\w.-]+:[^\s]+(?:\.git)?)/;
58
- // 缓存
59
- const cache = new Map();
60
- let moduleDirname = "";
61
- let gitRepo = "";
62
- let cacheList = null;
63
- /**
64
- * 版本号转数组
65
- */
66
- function versionToArray(v) {
67
- return String(v || '0.0.0').trim()
68
- .split('.')
69
- .slice(0, 3)
70
- .map((n) => parseInt(n, 10) || 0);
71
- }
72
- /**
73
- * 比较版本号
74
- */
75
- function compareVersion(a, b) {
76
- const A = versionToArray(a);
77
- const B = versionToArray(b);
78
- for (let i = 0; i < 3; i++) {
79
- const a = A[i];
80
- const b = B[i];
81
- if (a === undefined || b === undefined)
82
- continue;
83
- if (a !== b)
84
- return a > b ? 1 : -1;
85
- }
86
- return 0;
87
- }
88
- class ModuleDir {
89
- static curreny;
90
- static get() {
91
- if (ModuleDir.curreny)
92
- return ModuleDir.curreny;
93
- const d = node_path_1.default.join(node_os_1.default.homedir(), ".cache/mbler/.moduleDir.db");
94
- let content;
95
- try {
96
- content = node_fs_1.default.readFileSync(d, "utf-8").toString();
97
- }
98
- catch {
99
- content = node_path_1.default.join(__dirname, "../modules");
100
- }
101
- ModuleDir.curreny = content;
102
- return content;
103
- }
104
- static async set(newDir) {
105
- if (!ModuleDir.curreny)
106
- ModuleDir.get();
107
- if (!await utils.FileExsit(newDir))
108
- throw new TypeError("[module dir set]: dir isn't exsit");
109
- await promises_1.default.cp(ModuleDir.curreny, newDir, {
110
- recursive: true,
111
- force: true
112
- });
113
- const userSelect = await commander_1.Input.select("已将模块复制至目标文件夹,是否删除旧文件夹? ", ["Y", "N"]);
114
- if (userSelect == "Y") {
115
- await promises_1.default.rm(ModuleDir.curreny, {
116
- recursive: true
117
- });
118
- }
119
- else if (userSelect !== "N") {
120
- throw new Error("[moduleDir set]: ??? your select is sb");
121
- }
122
- ModuleDir.curreny = newDir;
123
- return true;
124
- }
125
- }
126
- /**
127
- * 获取模块列表
128
- */
129
- async function getModules(dirname) {
130
- const contentsPath = node_path_1.default.join(dirname, './lib/modules/contents.json');
131
- const data = JSON.parse((await promises_1.default.readFile(contentsPath, "utf-8")).toString());
132
- return data.map((item) => item.name);
133
- }
134
- /**
135
- * 根据名称获取模块 Git URL
136
- */
137
- async function getModuleGit(dirname, packName) {
138
- const contentsPath = node_path_1.default.join(dirname, './lib/modules/contents.json');
139
- const data = JSON.parse((await promises_1.default.readFile(contentsPath, "utf-8")).toString());
140
- const moduleItem = data.find((item) => item.name === packName);
141
- return moduleItem?.git || null;
142
- }
143
- /**
144
- * 添加包到依赖
145
- */
146
- async function addPack(packName, dirname_, workDir) {
147
- const dirname = dirname_;
148
- const modules = await getModuleInfo(dirname);
149
- try {
150
- if (!modules.getAll().includes(packName)) {
151
- throw new Error(index_js_1.default.invalidDes);
152
- }
153
- if (!await utils.FileExsit(workDir)) {
154
- throw new Error(index_js_1.default.config_invalid);
155
- }
156
- const packageObj = await utils.GetData(workDir);
157
- const gitUrl = await getModuleGit(dirname, packName);
158
- if (!gitUrl) {
159
- throw new Error(`${packName} : ${index_js_1.default.noGitRepo}`);
160
- }
161
- if (!packageObj?.script?.dependencies) {
162
- packageObj.script.dependencies = {};
163
- }
164
- packageObj.script.dependencies[packName] = gitUrl;
165
- const updatedContent = JSON.stringify(packageObj, null, 2);
166
- await promises_1.default.writeFile(node_path_1.default.join(workDir, node_path_1.default.basename(utils.config.PackageFile)), updatedContent);
167
- }
168
- catch (err) {
169
- index_js_2.default.e('add', `ERR- ${err.stack}`);
170
- }
171
- }
172
- /**
173
- * 从包依赖中移除
174
- */
175
- async function unaddPack(packName, dirname_, workDir) {
176
- const dirname = dirname_;
177
- const modules = await getModuleInfo(dirname);
178
- try {
179
- if (!modules.getAll().includes(packName)) {
180
- throw new Error(index_js_1.default.invalidDes);
181
- }
182
- if (!await utils.FileExsit(workDir)) {
183
- throw new Error(index_js_1.default.config_invalid);
184
- }
185
- const packageObj = await utils.GetData(workDir);
186
- if (packageObj?.script?.dependencies?.[packName]) {
187
- delete packageObj.script.dependencies[packName];
188
- const updatedContent = JSON.stringify(packageObj, null, 2);
189
- await promises_1.default.writeFile(node_path_1.default.join(workDir, node_path_1.default.basename(utils.config.PackageFile)), updatedContent);
190
- }
191
- }
192
- catch (err) {
193
- index_js_2.default.e('unadd', `ERR- ${err.stack}`);
194
- }
195
- }
196
- /**
197
- * 安装全局模块
198
- */
199
- async function installGlobal(two, ab = true) {
200
- gitRepo = two;
201
- const tempDir = node_path_1.default.join(node_os_1.default.tmpdir(), `mbler-${Date.now()}`);
202
- try {
203
- if (two === "inner")
204
- return true;
205
- if (!two)
206
- throw new Error(index_js_1.default.noGitRepo);
207
- if (!gitVerifyReg.test(two))
208
- return await fileInstall(two);
209
- await git_1.default.clone(two, tempDir);
210
- try {
211
- const pack = await utils.GetData(tempDir);
212
- await addMod(pack, { dir: tempDir });
213
- }
214
- catch {
215
- throw new Error(index_js_1.default.installGit.NoPackage);
216
- }
217
- return true;
218
- }
219
- catch (err) {
220
- index_js_2.default.e('INSTALL', err.message);
221
- return false;
222
- }
223
- finally {
224
- await promises_1.default.rm(tempDir, { recursive: true, force: true });
225
- }
226
- }
227
- /**
228
- * 从本地文件安装模块
229
- */
230
- async function fileInstall(localPath) {
231
- const dir = node_path_1.default.join(moduleDirname, localPath);
232
- const fileStat = await promises_1.default.stat(dir);
233
- if (fileStat.isFile())
234
- throw new Error('No Folder');
235
- const pack = await utils.GetData(dir);
236
- await addMod(pack, { dir: dir });
237
- return true;
238
- }
239
- /**
240
- * 比较模块版本
241
- */
242
- async function compareModuleVersion(aD, bD) {
243
- const A = versionToArray((await utils.GetData(aD)).version);
244
- const B = versionToArray((await utils.GetData(bD)).version);
245
- for (let i = 0; i < 3; i++) {
246
- const a = A[i];
247
- const b = B[i];
248
- if (a === undefined || b === undefined)
249
- continue;
250
- if (a !== b)
251
- return a > b ? 1 : -1;
252
- }
253
- return 0;
254
- }
255
- /**
256
- * 添加模块到系统
257
- */
258
- async function addMod(pack, tempMod, b = true) {
259
- index_js_2.default.i('INSTALL', `${index_js_1.default.installGit.SetContent} ${pack.name}`);
260
- const soListDir = node_path_1.default.join(moduleDirname, './lib/modules/contents.json');
261
- const soList = JSON.parse((await promises_1.default.readFile(soListDir)).toString());
262
- const installModPack = JSON.parse(await promises_1.default.readFile(node_path_1.default.join(tempMod.dir, "mbler.config.json"), "utf-8"));
263
- const innerDef = cache.get('innerDef');
264
- if (innerDef?.includes(pack.name)) {
265
- return index_js_2.default.e('INSTALL', index_js_1.default.SameDes);
266
- }
267
- const za = soList.find((item) => item.name === pack.name || item.git === gitRepo);
268
- const versionCompare = za ? await compareModuleVersion(tempMod.dir, node_path_1.default.join(moduleDirname, "lib/modules", za.name)) : 1;
269
- if (za && versionCompare <= 0 && b) {
270
- if (await utils.input(index_js_1.default.installGit.HadBeen) !== 'Y')
271
- return;
272
- }
273
- soList.push({ name: pack.name, git: gitRepo });
274
- await promises_1.default.writeFile(soListDir, JSON.stringify(soList));
275
- await utils.copy(tempMod.dir, node_path_1.default.join(moduleDirname, './lib/modules/', pack.name));
276
- }
277
- /**
278
- * 安装模块
279
- */
280
- async function installModules(Dirname, workDir) {
281
- try {
282
- moduleDirname = Dirname;
283
- cache.set('innerDef', JSON.parse(await promises_1.default.readFile(node_path_1.default.join(moduleDirname, './lib/modules/innerDef.json'), "utf-8")));
284
- const p = await utils.GetData(workDir);
285
- const Mods = process.argv.slice(3);
286
- const dependencies = p.script?.dependencies || {};
287
- for (const i of Object.values(dependencies)) {
288
- if (!i)
289
- continue;
290
- await installGlobal(i, false);
291
- }
292
- for (const i of Mods) {
293
- if (!i)
294
- continue;
295
- await installGlobal(i, true);
296
- }
297
- }
298
- catch (err) {
299
- index_js_2.default.e("INSTALL", `ERR in 'InstallModules' Func\nMessage: ${err.message}\nstack : ${err.stack}`);
300
- }
301
- finally {
302
- index_js_2.default.i('INSTALL', index_js_1.default.installGit.InstallFinally);
303
- }
304
- }
305
- /**
306
- * 卸载单个模块
307
- */
308
- async function uninstallModule(packName, dirname) {
309
- try {
310
- moduleDirname = dirname;
311
- cache.set('innerDef', JSON.parse(await promises_1.default.readFile(node_path_1.default.join(moduleDirname, './lib/modules/innerDef.json'), "utf-8")));
312
- return await uninstallGlobalInternal(packName);
313
- }
314
- catch (err) {
315
- index_js_2.default.e('uninstall', err.message);
316
- return false;
317
- }
318
- }
319
- /**
320
- * 卸载模块
321
- */
322
- async function unInstallModules(Dirname, workDir) {
323
- try {
324
- moduleDirname = Dirname;
325
- cache.set('innerDef', JSON.parse(await promises_1.default.readFile(node_path_1.default.join(moduleDirname, './lib/modules/innerDef.json'), "utf-8")));
326
- const p = await utils.GetData(workDir);
327
- const Mods = process.argv.slice(3);
328
- const dependencies = p.script?.dependencies || {};
329
- for (const i of Object.keys(dependencies)) {
330
- if (!i)
331
- continue;
332
- await uninstallGlobalInternal(i);
333
- }
334
- for (const i of Mods) {
335
- if (!i)
336
- continue;
337
- await uninstallGlobalInternal(i);
338
- }
339
- }
340
- catch (err) {
341
- index_js_2.default.e("UNINSTALL", `ERR in 'unInstallModules' Func\nMessage: ${err.message}\nstack : ${err.stack}`);
342
- }
343
- finally {
344
- index_js_2.default.i('UNINSTALL', index_js_1.default.uninstallFinally);
345
- }
346
- }
347
- async function uninstallGlobalInternal(moduleName) {
348
- try {
349
- const contentsPath = node_path_1.default.join(moduleDirname, './lib/modules/contents.json');
350
- const contents = JSON.parse((await promises_1.default.readFile(contentsPath, "utf-8")).toString());
351
- const moduleIndex = contents.findIndex((item) => item.name === moduleName);
352
- if (moduleIndex === -1) {
353
- index_js_2.default.e('UNINSTALL', `${index_js_1.default.moduleNotFound}: ${moduleName}`);
354
- return false;
355
- }
356
- const moduleItem = contents[moduleIndex];
357
- const innerDef = cache.get('innerDef');
358
- if (innerDef?.includes(moduleName)) {
359
- index_js_2.default.e('UNINSTALL', index_js_1.default.CannotDeleteInner);
360
- return false;
361
- }
362
- contents.splice(moduleIndex, 1);
363
- await promises_1.default.writeFile(contentsPath, JSON.stringify(contents, null, 2));
364
- const modulePath = node_path_1.default.join(moduleDirname, './lib/modules/', moduleName);
365
- await promises_1.default.rm(modulePath, { recursive: true, force: true });
366
- index_js_2.default.i('UNINSTALL', `${index_js_1.default.uninstallSuccess}: ${moduleItem.name}`);
367
- return true;
368
- }
369
- catch (err) {
370
- index_js_2.default.e('UNINSTALL', err.message);
371
- return false;
372
- }
373
- async function uninstallGlobal(moduleName) {
374
- try {
375
- const contentsPath = node_path_1.default.join(moduleDirname, './lib/modules/contents.json');
376
- const contents = JSON.parse((await promises_1.default.readFile(contentsPath, "utf-8")).toString());
377
- const moduleIndex = contents.findIndex((item) => item.name === moduleName);
378
- if (moduleIndex === -1) {
379
- index_js_2.default.e('UNINSTALL', `${index_js_1.default.moduleNotFound}: ${moduleName}`);
380
- return false;
381
- }
382
- const moduleItem = contents[moduleIndex];
383
- const innerDef = cache.get('innerDef');
384
- if (innerDef?.includes(moduleName)) {
385
- index_js_2.default.e('UNINSTALL', index_js_1.default.CannotDeleteInner);
386
- return false;
387
- }
388
- contents.splice(moduleIndex, 1);
389
- await promises_1.default.writeFile(contentsPath, JSON.stringify(contents, null, 2));
390
- const modulePath = node_path_1.default.join(moduleDirname, './lib/modules/', moduleName);
391
- await promises_1.default.rm(modulePath, { recursive: true, force: true });
392
- index_js_2.default.i('UNINSTALL', `${index_js_1.default.uninstallSuccess}: ${moduleItem.name}`);
393
- return true;
394
- }
395
- catch (err) {
396
- index_js_2.default.e('UNINSTALL', err.message);
397
- return false;
398
- }
399
- }
400
- }
401
- /**
402
- * 获取资源配置
403
- */
404
- async function getResConfig(dirname) {
405
- cache.set('Mod', JSON.parse(await promises_1.default.readFile(node_path_1.default.join(dirname, './lib/modules/contents.json'), "utf-8")));
406
- cache.set('innerDef', JSON.parse(await promises_1.default.readFile(node_path_1.default.join(dirname, './lib/modules/innerDef.json'), "utf-8")));
407
- return cache;
408
- }
409
- class ModulePath {
410
- dir;
411
- cache;
412
- constructor(dirname) {
413
- this.dir = dirname;
414
- this.cache = [];
415
- }
416
- async start() {
417
- this.cache = await this.#loadContents();
418
- }
419
- getGit(name) {
420
- for (const item of this.cache) {
421
- if (item.name === name)
422
- return item.git;
423
- }
424
- return null;
425
- }
426
- getAll() {
427
- if (cacheList)
428
- return cacheList;
429
- cacheList = this.cache.map(item => item.name);
430
- return cacheList;
431
- }
432
- async #loadContents() {
433
- const dataPath = node_path_1.default.join(this.dir, 'lib/modules/contents.json');
434
- try {
435
- const content = await promises_1.default.readFile(dataPath, 'utf8');
436
- const data = utils.JSONparse(content);
437
- return (typeof data === 'object' && data !== null) ? data : [];
438
- }
439
- catch (err) {
440
- console.error('Failed to load contents.json:', err);
441
- return [];
442
- }
443
- }
444
- }
445
- /**
446
- * 获取模块信息
447
- */
448
- async function getModuleInfo(dirname) {
449
- cacheList = null;
450
- const instance = new ModulePath(dirname);
451
- await instance.start();
452
- return instance;
453
- }
454
- class Module {
455
- static globalModuleDir = ModuleDir.get();
456
- static async Install(mod) {
457
- let result = {
458
- lastTip: "",
459
- res: false
460
- };
461
- let from = mod.git;
462
- if (mod.git == "inner") {
463
- from = "git+https://github.com/Ruanhor.git";
464
- }
465
- if (from.startsWith("git+")) {
466
- const moduleDir = node_path_1.default.join(ModuleDir.curreny, mod.name);
467
- if (await utils.FileExsit(moduleDir)) {
468
- result.lastTip = "error: [module]: " + mod.name + "exsit";
469
- }
470
- const gitUrl = from.replace("git+", "");
471
- if (!gitVerifyReg.test(gitUrl)) {
472
- result.lastTip = "error: [clone git]: url isn't format";
473
- return result;
474
- }
475
- await git_1.default.clone(gitUrl, moduleDir);
476
- }
477
- if (from.startsWith(""))
478
- return result;
479
- return result;
480
- }
481
- }
482
- exports.default = Module;
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,a)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},e(t)};return function(t){if(t&&t.__esModule)return t;var n={};if(null!=t)for(var i=e(t),a=0;a<i.length;a++)"default"!==i[a]&&__createBinding(n,t,i[a]);return __setModuleDefault(n,t),n}}(),__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getModules=getModules,exports.getModuleGit=getModuleGit,exports.addPack=addPack,exports.unaddPack=unaddPack,exports.installModules=installModules,exports.uninstallModule=uninstallModule,exports.unInstallModules=unInstallModules,exports.getResConfig=getResConfig,exports.getModuleInfo=getModuleInfo;const git_1=__importDefault(require("../git")),node_os_1=__importDefault(require("node:os")),node_path_1=__importDefault(require("node:path")),node_fs_1=__importDefault(require("node:fs")),promises_1=__importDefault(require("node:fs/promises")),utils=__importStar(require("./../utils")),commander_1=require("../commander"),index_js_1=__importDefault(require("../lang/index.js")),index_js_2=__importDefault(require("../loger/index.js")),gitVerifyReg=/(https?:\/\/[^\s\/]+\/[^\s\/]+\/[^\s]+(?:\.git)?|(?:git@|[\w.-]+@)[\w.-]+:[^\s]+(?:\.git)?)/,cache=new Map;let moduleDirname="",gitRepo="",cacheList=null;function versionToArray(e){return String(e||"0.0.0").trim().split(".").slice(0,3).map(e=>parseInt(e,10)||0)}function compareVersion(e,t){const n=versionToArray(e),i=versionToArray(t);for(let e=0;e<3;e++){const t=n[e],a=i[e];if(void 0!==t&&void 0!==a&&t!==a)return t>a?1:-1}return 0}class ModuleDir{static curreny;static get(){if(ModuleDir.curreny)return ModuleDir.curreny;const e=node_path_1.default.join(node_os_1.default.homedir(),".cache/mbler/.moduleDir.db");let t;try{t=node_fs_1.default.readFileSync(e,"utf-8").toString()}catch{t=node_path_1.default.join(__dirname,"../modules")}return ModuleDir.curreny=t,t}static async set(e){if(ModuleDir.curreny||ModuleDir.get(),!await utils.FileExsit(e))throw new TypeError("[module dir set]: dir isn't exsit");await promises_1.default.cp(ModuleDir.curreny,e,{recursive:!0,force:!0});const t=await commander_1.Input.select("已将模块复制至目标文件夹,是否删除旧文件夹? ",["Y","N"]);if("Y"==t)await promises_1.default.rm(ModuleDir.curreny,{recursive:!0});else if("N"!==t)throw new Error("[moduleDir set]: ??? your select is sb");return ModuleDir.curreny=e,!0}}async function getModules(e){const t=node_path_1.default.join(e,"./lib/modules/contents.json");return JSON.parse((await promises_1.default.readFile(t,"utf-8")).toString()).map(e=>e.name)}async function getModuleGit(e,t){const n=node_path_1.default.join(e,"./lib/modules/contents.json"),i=JSON.parse((await promises_1.default.readFile(n,"utf-8")).toString()).find(e=>e.name===t);return i?.git||null}async function addPack(e,t,n){const i=t,a=await getModuleInfo(i);try{if(!a.getAll().includes(e))throw new Error(index_js_1.default.invalidDes);if(!await utils.FileExsit(n))throw new Error(index_js_1.default.config_invalid);const t=await utils.GetData(n),r=await getModuleGit(i,e);if(!r)throw new Error(`${e} : ${index_js_1.default.noGitRepo}`);t?.script?.dependencies||(t.script.dependencies={}),t.script.dependencies[e]=r;const s=JSON.stringify(t,null,2);await promises_1.default.writeFile(node_path_1.default.join(n,node_path_1.default.basename(utils.config.PackageFile)),s)}catch(e){index_js_2.default.e("add",`ERR- ${e.stack}`)}}async function unaddPack(e,t,n){const i=t,a=await getModuleInfo(i);try{if(!a.getAll().includes(e))throw new Error(index_js_1.default.invalidDes);if(!await utils.FileExsit(n))throw new Error(index_js_1.default.config_invalid);const t=await utils.GetData(n);if(t?.script?.dependencies?.[e]){delete t.script.dependencies[e];const i=JSON.stringify(t,null,2);await promises_1.default.writeFile(node_path_1.default.join(n,node_path_1.default.basename(utils.config.PackageFile)),i)}}catch(e){index_js_2.default.e("unadd",`ERR- ${e.stack}`)}}async function installGlobal(e,t=!0){gitRepo=e;const n=node_path_1.default.join(node_os_1.default.tmpdir(),`mbler-${Date.now()}`);try{if("inner"===e)return!0;if(!e)throw new Error(index_js_1.default.noGitRepo);if(!gitVerifyReg.test(e))return await fileInstall(e);await git_1.default.clone(e,n);try{const e=await utils.GetData(n);await addMod(e,{dir:n})}catch{throw new Error(index_js_1.default.installGit.NoPackage)}return!0}catch(e){return index_js_2.default.e("INSTALL",e.message),!1}finally{await promises_1.default.rm(n,{recursive:!0,force:!0})}}async function fileInstall(e){const t=node_path_1.default.join(moduleDirname,e);if((await promises_1.default.stat(t)).isFile())throw new Error("No Folder");const n=await utils.GetData(t);return await addMod(n,{dir:t}),!0}async function compareModuleVersion(e,t){const n=versionToArray((await utils.GetData(e)).version),i=versionToArray((await utils.GetData(t)).version);for(let e=0;e<3;e++){const t=n[e],a=i[e];if(void 0!==t&&void 0!==a&&t!==a)return t>a?1:-1}return 0}async function addMod(e,t,n=!0){index_js_2.default.i("INSTALL",`${index_js_1.default.installGit.SetContent} ${e.name}`);const i=node_path_1.default.join(moduleDirname,"./lib/modules/contents.json"),a=JSON.parse((await promises_1.default.readFile(i)).toString()),r=(JSON.parse(await promises_1.default.readFile(node_path_1.default.join(t.dir,"mbler.config.json"),"utf-8")),cache.get("innerDef"));if(r?.includes(e.name))return index_js_2.default.e("INSTALL",index_js_1.default.SameDes);const s=a.find(t=>t.name===e.name||t.git===gitRepo),o=s?await compareModuleVersion(t.dir,node_path_1.default.join(moduleDirname,"lib/modules",s.name)):1;s&&o<=0&&n&&"Y"!==await utils.input(index_js_1.default.installGit.HadBeen)||(a.push({name:e.name,git:gitRepo}),await promises_1.default.writeFile(i,JSON.stringify(a)),await utils.copy(t.dir,node_path_1.default.join(moduleDirname,"./lib/modules/",e.name)))}async function installModules(e,t){try{moduleDirname=e,cache.set("innerDef",JSON.parse(await promises_1.default.readFile(node_path_1.default.join(moduleDirname,"./lib/modules/innerDef.json"),"utf-8")));const n=await utils.GetData(t),i=process.argv.slice(3),a=n.script?.dependencies||{};for(const e of Object.values(a))e&&await installGlobal(e,!1);for(const e of i)e&&await installGlobal(e,!0)}catch(e){index_js_2.default.e("INSTALL",`ERR in 'InstallModules' Func\nMessage: ${e.message}\nstack : ${e.stack}`)}finally{index_js_2.default.i("INSTALL",index_js_1.default.installGit.InstallFinally)}}async function uninstallModule(e,t){try{return moduleDirname=t,cache.set("innerDef",JSON.parse(await promises_1.default.readFile(node_path_1.default.join(moduleDirname,"./lib/modules/innerDef.json"),"utf-8"))),await uninstallGlobalInternal(e)}catch(e){return index_js_2.default.e("uninstall",e.message),!1}}async function unInstallModules(e,t){try{moduleDirname=e,cache.set("innerDef",JSON.parse(await promises_1.default.readFile(node_path_1.default.join(moduleDirname,"./lib/modules/innerDef.json"),"utf-8")));const n=await utils.GetData(t),i=process.argv.slice(3),a=n.script?.dependencies||{};for(const e of Object.keys(a))e&&await uninstallGlobalInternal(e);for(const e of i)e&&await uninstallGlobalInternal(e)}catch(e){index_js_2.default.e("UNINSTALL",`ERR in 'unInstallModules' Func\nMessage: ${e.message}\nstack : ${e.stack}`)}finally{index_js_2.default.i("UNINSTALL",index_js_1.default.uninstallFinally)}}async function uninstallGlobalInternal(e){try{const t=node_path_1.default.join(moduleDirname,"./lib/modules/contents.json"),n=JSON.parse((await promises_1.default.readFile(t,"utf-8")).toString()),i=n.findIndex(t=>t.name===e);if(-1===i)return index_js_2.default.e("UNINSTALL",`${index_js_1.default.moduleNotFound}: ${e}`),!1;const a=n[i],r=cache.get("innerDef");if(r?.includes(e))return index_js_2.default.e("UNINSTALL",index_js_1.default.CannotDeleteInner),!1;n.splice(i,1),await promises_1.default.writeFile(t,JSON.stringify(n,null,2));const s=node_path_1.default.join(moduleDirname,"./lib/modules/",e);return await promises_1.default.rm(s,{recursive:!0,force:!0}),index_js_2.default.i("UNINSTALL",`${index_js_1.default.uninstallSuccess}: ${a.name}`),!0}catch(e){return index_js_2.default.e("UNINSTALL",e.message),!1}}async function getResConfig(e){return cache.set("Mod",JSON.parse(await promises_1.default.readFile(node_path_1.default.join(e,"./lib/modules/contents.json"),"utf-8"))),cache.set("innerDef",JSON.parse(await promises_1.default.readFile(node_path_1.default.join(e,"./lib/modules/innerDef.json"),"utf-8"))),cache}class ModulePath{dir;cache;constructor(e){this.dir=e,this.cache=[]}async start(){this.cache=await this.#e()}getGit(e){for(const t of this.cache)if(t.name===e)return t.git;return null}getAll(){return cacheList||(cacheList=this.cache.map(e=>e.name),cacheList)}async#e(){const e=node_path_1.default.join(this.dir,"lib/modules/contents.json");try{const t=await promises_1.default.readFile(e,"utf8"),n=utils.JSONparse(t);return"object"==typeof n&&null!==n?n:[]}catch(e){return console.error("Failed to load contents.json:",e),[]}}}async function getModuleInfo(e){cacheList=null;const t=new ModulePath(e);return await t.start(),t}class Module{static globalModuleDir=ModuleDir.get();static async Install(e){let t={lastTip:"",res:!1},n=e.git;if("inner"==e.git&&(n="git+https://github.com/Ruanhor.git"),n.startsWith("git+")){const i=node_path_1.default.join(ModuleDir.curreny,e.name);await utils.FileExsit(i)&&(t.lastTip="error: [module]: "+e.name+"exsit");const a=n.replace("git+","");if(!gitVerifyReg.test(a))return t.lastTip="error: [clone git]: url isn't format",t;await git_1.default.clone(a,i)}return n.startsWith(""),t}}exports.default=Module;
@@ -1,14 +1,14 @@
1
- {
2
- "name": "create-game",
3
- "description": "create game fast",
4
- "git": "gitee.com/ykxyx666_admin/sapi-game.git",
5
- "version": "0.0.1",
6
- "type": "scriptsDes",
7
- "script": {
8
- "main": "./src/main.js"
9
- },
10
- "mcVersion": [
11
- "1.21.10",
12
- "1.21.120"
13
- ]
1
+ {
2
+ "name": "create-game",
3
+ "description": "create game fast",
4
+ "git": "gitee.com/ykxyx666_admin/sapi-game.git",
5
+ "version": "0.0.1",
6
+ "type": "scriptsDes",
7
+ "script": {
8
+ "main": "./src/main.js"
9
+ },
10
+ "mcVersion": [
11
+ "1.21.10",
12
+ "1.21.120"
13
+ ]
14
14
  }
@@ -1,113 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RunnerManager = void 0;
4
- const server_1 = require("@minecraft/server");
5
- const index_js_1 = require("../utils/index.js");
6
- const scriptRunner_js_1 = require("./scriptRunner.js");
7
- class RunnerManager {
8
- runners = new Map();
9
- idCounter = 0;
10
- logger;
11
- constructor(stateName) {
12
- this.logger = new index_js_1.Logger(stateName + "-runner");
13
- }
14
- /**返回一个新的scriptRunner(需手动捕获错误) */
15
- new() {
16
- const id = `runner-${++this.idCounter}`;
17
- const runner = new scriptRunner_js_1.ScriptRunner(id, (finishedId) => {
18
- this.runners.delete(finishedId);
19
- });
20
- this.runners.set(id, runner);
21
- return { id: id, runner: runner };
22
- }
23
- /**
24
- * 运行普通脚本
25
- */
26
- run(script) {
27
- const { id, runner } = this.new();
28
- runner.run(script).catch((e) => {
29
- this.logger.error(`runner ${id} 出错了:`, e);
30
- });
31
- return id;
32
- }
33
- runDelay(script, ticks) {
34
- const { id, runner } = this.new();
35
- // 先等待 ticks 再执行
36
- runner
37
- .run(async (r) => {
38
- await r.wait(ticks);
39
- await script(r);
40
- })
41
- .catch((e) => {
42
- this.logger.error(`runner ${id} 出错了:`, e);
43
- });
44
- return id;
45
- }
46
- /**
47
- * 使用游戏 runJob 运行 generator
48
- */
49
- runJob(generator) {
50
- const id = `runner-${++this.idCounter}`;
51
- const wrapped = wrapGeneratorWithPromise(generator);
52
- const runId = server_1.system.runJob(wrapped.gen);
53
- // 用对象保存 runId,方便取消
54
- this.runners.set(id, { runId });
55
- return { id, promise: wrapped.promise };
56
- }
57
- /**
58
- * 取消指定 runner 或 job
59
- */
60
- cancel(id) {
61
- const entry = this.runners.get(id);
62
- if (!entry)
63
- return false;
64
- if (entry instanceof scriptRunner_js_1.ScriptRunner) {
65
- entry.cancel();
66
- }
67
- else if ("runId" in entry) {
68
- server_1.system.clearRun(entry.runId);
69
- }
70
- this.runners.delete(id);
71
- return true;
72
- }
73
- /**
74
- * 取消所有 runner/job
75
- */
76
- dispose() {
77
- for (const entry of this.runners.values()) {
78
- if (entry instanceof scriptRunner_js_1.ScriptRunner) {
79
- entry.cancel();
80
- }
81
- else if ("runId" in entry) {
82
- server_1.system.clearJob(entry.runId);
83
- }
84
- }
85
- this.runners.clear();
86
- }
87
- get size() {
88
- return this.runners.size;
89
- }
90
- }
91
- exports.RunnerManager = RunnerManager;
92
- function wrapGeneratorWithPromise(gen) {
93
- let resolveFn;
94
- let rejectFn;
95
- const promise = new Promise((resolve, reject) => {
96
- resolveFn = resolve;
97
- rejectFn = reject;
98
- });
99
- function* wrapper() {
100
- try {
101
- let next = gen.next();
102
- while (!next.done) {
103
- yield;
104
- next = gen.next();
105
- }
106
- resolveFn();
107
- }
108
- catch (err) {
109
- rejectFn(err);
110
- }
111
- }
112
- return { gen: wrapper(), promise };
113
- }
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.RunnerManager=void 0;const server_1=require("@minecraft/server"),index_js_1=require("../utils/index.js"),scriptRunner_js_1=require("./scriptRunner.js");class RunnerManager{runners=new Map;idCounter=0;logger;constructor(r){this.logger=new index_js_1.Logger(r+"-runner")}new(){const r="runner-"+ ++this.idCounter,e=new scriptRunner_js_1.ScriptRunner(r,r=>{this.runners.delete(r)});return this.runners.set(r,e),{id:r,runner:e}}run(r){const{id:e,runner:n}=this.new();return n.run(r).catch(r=>{this.logger.error(`runner ${e} 出错了:`,r)}),e}runDelay(r,e){const{id:n,runner:s}=this.new();return s.run(async n=>{await n.wait(e),await r(n)}).catch(r=>{this.logger.error(`runner ${n} 出错了:`,r)}),n}runJob(r){const e="runner-"+ ++this.idCounter,n=wrapGeneratorWithPromise(r),s=server_1.system.runJob(n.gen);return this.runners.set(e,{runId:s}),{id:e,promise:n.promise}}cancel(r){const e=this.runners.get(r);return!!e&&(e instanceof scriptRunner_js_1.ScriptRunner?e.cancel():"runId"in e&&server_1.system.clearRun(e.runId),this.runners.delete(r),!0)}dispose(){for(const r of this.runners.values())r instanceof scriptRunner_js_1.ScriptRunner?r.cancel():"runId"in r&&server_1.system.clearJob(r.runId);this.runners.clear()}get size(){return this.runners.size}}function wrapGeneratorWithPromise(r){let e,n;const s=new Promise((r,s)=>{e=r,n=s});return{gen:function*(){try{let n=r.next();for(;!n.done;)yield,n=r.next();e()}catch(r){n(r)}}(),promise:s}}exports.RunnerManager=RunnerManager;