omegga 1.2.9 → 1.4.0

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 (328) hide show
  1. package/README.md +50 -11
  2. package/dist/brickadia/config.js +26 -90
  3. package/dist/brickadia/config.js.map +1 -1
  4. package/dist/brickadia/server.js +290 -293
  5. package/dist/brickadia/server.js.map +1 -1
  6. package/dist/cli/auth.js +149 -177
  7. package/dist/cli/auth.js.map +1 -1
  8. package/dist/cli/config.js +64 -66
  9. package/dist/cli/config.js.map +1 -1
  10. package/dist/cli/index.js +14 -14
  11. package/dist/cli/index.js.map +1 -1
  12. package/dist/cli/installer.js +37 -43
  13. package/dist/cli/installer.js.map +1 -1
  14. package/dist/cli/plugin.js +651 -682
  15. package/dist/cli/plugin.js.map +1 -1
  16. package/dist/cli/terminal.js +811 -733
  17. package/dist/cli/terminal.js.map +1 -1
  18. package/dist/config/formats/format_js.js +6 -6
  19. package/dist/config/formats/format_js.js.map +1 -1
  20. package/dist/config/formats/format_yml.js +7 -10
  21. package/dist/config/formats/format_yml.js.map +1 -1
  22. package/dist/config/index.js +46 -68
  23. package/dist/config/index.js.map +1 -1
  24. package/dist/config/reader.js +16 -27
  25. package/dist/config/reader.js.map +1 -1
  26. package/dist/config/validator.js +23 -25
  27. package/dist/config/validator.js.map +1 -1
  28. package/dist/config/writer.js +11 -21
  29. package/dist/config/writer.js.map +1 -1
  30. package/dist/index.js +18 -64
  31. package/dist/index.js.map +1 -1
  32. package/dist/info/default_commands.json.js +39 -0
  33. package/dist/info/default_commands.json.js.map +1 -0
  34. package/dist/logger.js +61 -60
  35. package/dist/logger.js.map +1 -1
  36. package/dist/main.js +425 -471
  37. package/dist/main.js.map +1 -1
  38. package/dist/omegga/auth.js +101 -148
  39. package/dist/omegga/auth.js.map +1 -1
  40. package/dist/omegga/commandInjector.js +261 -251
  41. package/dist/omegga/commandInjector.js.map +1 -1
  42. package/dist/omegga/index.js +14 -52
  43. package/dist/omegga/index.js.map +1 -1
  44. package/dist/omegga/logWrangler.js +224 -275
  45. package/dist/omegga/logWrangler.js.map +1 -1
  46. package/dist/omegga/matchers/auth.js +36 -50
  47. package/dist/omegga/matchers/auth.js.map +1 -1
  48. package/dist/omegga/matchers/chat.js +49 -71
  49. package/dist/omegga/matchers/chat.js.map +1 -1
  50. package/dist/omegga/matchers/command.js +25 -36
  51. package/dist/omegga/matchers/command.js.map +1 -1
  52. package/dist/omegga/matchers/exit.js +15 -18
  53. package/dist/omegga/matchers/exit.js.map +1 -1
  54. package/dist/omegga/matchers/index.js +26 -40
  55. package/dist/omegga/matchers/index.js.map +1 -1
  56. package/dist/omegga/matchers/init.js +20 -23
  57. package/dist/omegga/matchers/init.js.map +1 -1
  58. package/dist/omegga/matchers/interact.js +58 -64
  59. package/dist/omegga/matchers/interact.js.map +1 -1
  60. package/dist/omegga/matchers/join.js +74 -95
  61. package/dist/omegga/matchers/join.js.map +1 -1
  62. package/dist/omegga/matchers/leave.js +43 -56
  63. package/dist/omegga/matchers/leave.js.map +1 -1
  64. package/dist/omegga/matchers/mapChange.js +26 -35
  65. package/dist/omegga/matchers/mapChange.js.map +1 -1
  66. package/dist/omegga/matchers/minigameJoin.js +24 -31
  67. package/dist/omegga/matchers/minigameJoin.js.map +1 -1
  68. package/dist/omegga/matchers/version.js +42 -49
  69. package/dist/omegga/matchers/version.js.map +1 -1
  70. package/dist/omegga/player.js +562 -528
  71. package/dist/omegga/player.js.map +1 -1
  72. package/dist/omegga/plugin/interface.js +91 -98
  73. package/dist/omegga/plugin/interface.js.map +1 -1
  74. package/dist/omegga/plugin/plugin_jsonrpc_stdio.js +578 -429
  75. package/dist/omegga/plugin/plugin_jsonrpc_stdio.js.map +1 -1
  76. package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.js +282 -294
  77. package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.js.map +1 -1
  78. package/dist/omegga/plugin/plugin_node_safe.js +365 -393
  79. package/dist/omegga/plugin/plugin_node_safe.js.map +1 -1
  80. package/dist/omegga/plugin/plugin_node_unsafe.js +119 -179
  81. package/dist/omegga/plugin/plugin_node_unsafe.js.map +1 -1
  82. package/dist/omegga/plugin.js +402 -347
  83. package/dist/omegga/plugin.js.map +1 -1
  84. package/dist/omegga/server.js +742 -774
  85. package/dist/omegga/server.js.map +1 -1
  86. package/dist/omegga/wrapper.js +64 -91
  87. package/dist/omegga/wrapper.js.map +1 -1
  88. package/dist/plugin.js +11 -31
  89. package/dist/plugin.js.map +1 -1
  90. package/dist/softconfig.js +139 -100
  91. package/dist/softconfig.js.map +1 -1
  92. package/dist/updater/steam.js +104 -114
  93. package/dist/updater/steam.js.map +1 -1
  94. package/dist/util/brdb.js +496 -528
  95. package/dist/util/brdb.js.map +1 -1
  96. package/dist/util/brick/checkBounds.js +11 -15
  97. package/dist/util/brick/checkBounds.js.map +1 -1
  98. package/dist/util/brick/constants.js +723 -174
  99. package/dist/util/brick/constants.js.map +1 -1
  100. package/dist/util/brick/displayName.js +204 -211
  101. package/dist/util/brick/displayName.js.map +1 -1
  102. package/dist/util/brick/getBounds.js +29 -41
  103. package/dist/util/brick/getBounds.js.map +1 -1
  104. package/dist/util/brick/getBrickSize.js +6 -7
  105. package/dist/util/brick/getBrickSize.js.map +1 -1
  106. package/dist/util/brick/getScaleAxis.js +24 -30
  107. package/dist/util/brick/getScaleAxis.js.map +1 -1
  108. package/dist/util/brick/index.js +8 -29
  109. package/dist/util/brick/index.js.map +1 -1
  110. package/dist/util/brick/rotate.js +29 -34
  111. package/dist/util/brick/rotate.js.map +1 -1
  112. package/dist/util/brick/setOwnership.js +13 -19
  113. package/dist/util/brick/setOwnership.js.map +1 -1
  114. package/dist/util/chat.js +53 -44
  115. package/dist/util/chat.js.map +1 -1
  116. package/dist/util/color.js +112 -124
  117. package/dist/util/color.js.map +1 -1
  118. package/dist/util/file.js +54 -98
  119. package/dist/util/file.js.map +1 -1
  120. package/dist/util/index.js +84 -106
  121. package/dist/util/index.js.map +1 -1
  122. package/dist/util/map.js +18 -20
  123. package/dist/util/map.js.map +1 -1
  124. package/dist/util/pattern.js +6 -9
  125. package/dist/util/pattern.js.map +1 -1
  126. package/dist/util/time.js +31 -34
  127. package/dist/util/time.js.map +1 -1
  128. package/dist/util/uuid.js +10 -8
  129. package/dist/util/uuid.js.map +1 -1
  130. package/dist/util/wsl.js +19 -25
  131. package/dist/util/wsl.js.map +1 -1
  132. package/dist/version.js +7 -9
  133. package/dist/version.js.map +1 -1
  134. package/dist/webserver/backend/api.js +784 -874
  135. package/dist/webserver/backend/api.js.map +1 -1
  136. package/dist/webserver/backend/calendar.js +14 -17
  137. package/dist/webserver/backend/calendar.js.map +1 -1
  138. package/dist/webserver/backend/database.js +563 -613
  139. package/dist/webserver/backend/database.js.map +1 -1
  140. package/dist/webserver/backend/index.js +153 -191
  141. package/dist/webserver/backend/index.js.map +1 -1
  142. package/dist/webserver/backend/metrics.js +219 -248
  143. package/dist/webserver/backend/metrics.js.map +1 -1
  144. package/dist/webserver/backend/util.js +47 -68
  145. package/dist/webserver/backend/util.js.map +1 -1
  146. package/dist/worker.js +322 -0
  147. package/dist/worker.js.map +1 -0
  148. package/package.json +16 -11
  149. package/public/app.html +18 -18
  150. package/public/assets/IconArrowRight-BuVxhqKX.js +2 -0
  151. package/public/assets/{IconArrowRight-CA5_cccJ.js.map → IconArrowRight-BuVxhqKX.js.map} +1 -1
  152. package/public/assets/IconCheck-DOe3u7iH.js +2 -0
  153. package/public/assets/{IconCheck-Dyq5qyY1.js.map → IconCheck-DOe3u7iH.js.map} +1 -1
  154. package/public/assets/IconLockOpen-Bs7Tsf6u.js +2 -0
  155. package/public/assets/{IconLockOpen-D95XLORK.js.map → IconLockOpen-Bs7Tsf6u.js.map} +1 -1
  156. package/public/assets/IconWorld-B6GK5qpx.js +2 -0
  157. package/public/assets/{IconWorld-DtARpBKX.js.map → IconWorld-B6GK5qpx.js.map} +1 -1
  158. package/public/assets/IconWorldPlus-DpfueG8_.js +2 -0
  159. package/public/assets/{IconWorldPlus-CGBAsLNj.js.map → IconWorldPlus-DpfueG8_.js.map} +1 -1
  160. package/public/assets/IconX-CvmO0bbE.js +2 -0
  161. package/public/assets/{IconX-SYtbnYKI.js.map → IconX-CvmO0bbE.js.map} +1 -1
  162. package/public/assets/app-nJIpyOiP.js +6 -0
  163. package/public/assets/{app-BtOlgo__.js.map → app-nJIpyOiP.js.map} +1 -1
  164. package/public/assets/{auth-CvxEWAMc.js → auth-6N37o421.js} +2 -2
  165. package/public/assets/{auth-CvxEWAMc.js.map → auth-6N37o421.js.map} +1 -1
  166. package/public/assets/client-BT1QYH0O.js +10 -0
  167. package/public/assets/{client-C5T7_OK9.js.map → client-BT1QYH0O.js.map} +1 -1
  168. package/public/assets/index-2cgXLhrt.js +2 -0
  169. package/public/assets/{index-CRRRLlCc.js.map → index-2cgXLhrt.js.map} +1 -1
  170. package/public/assets/index-3dNmNZ9B.js +10 -0
  171. package/public/assets/{index-Bq9C9SqB.js.map → index-3dNmNZ9B.js.map} +1 -1
  172. package/public/assets/{index-i4mjW0og.js → index-CrN8I5Az.js} +2 -2
  173. package/public/assets/index-CrN8I5Az.js.map +1 -0
  174. package/public/assets/index-CtCtK5BX.js +2 -0
  175. package/public/assets/{index-DqHVrEeL.js.map → index-CtCtK5BX.js.map} +1 -1
  176. package/public/assets/index-D0OPOe3j.js +2 -0
  177. package/public/assets/{index-c0qeY2gs.js.map → index-D0OPOe3j.js.map} +1 -1
  178. package/public/assets/{index-DYcAgWjJ.js → index-DY750sgZ.js} +2 -2
  179. package/public/assets/{index-DYcAgWjJ.js.map → index-DY750sgZ.js.map} +1 -1
  180. package/public/assets/jsx-runtime-BX5r4UiA.js +2 -0
  181. package/public/assets/jsx-runtime-BX5r4UiA.js.map +1 -0
  182. package/public/assets/jsx-runtime-DldvXD6N.js +2 -0
  183. package/public/assets/{jsx-runtime-Bw5QeaCk.js.map → jsx-runtime-DldvXD6N.js.map} +1 -1
  184. package/public/assets/shared/@components-DdtLZOaA.js +2 -0
  185. package/public/assets/shared/@components-DdtLZOaA.js.map +1 -0
  186. package/public/assets/shared/{@hooks-DfTzYBIL.js → @hooks-Ch_hJYh0.js} +2 -2
  187. package/public/assets/shared/{@hooks-DfTzYBIL.js.map → @hooks-Ch_hJYh0.js.map} +1 -1
  188. package/public/assets/shared/{@nanostores_react-HTG3s0lp.js → @nanostores_react-DJPF1Eqx.js} +2 -2
  189. package/public/assets/shared/{@nanostores_react-HTG3s0lp.js.map → @nanostores_react-DJPF1Eqx.js.map} +1 -1
  190. package/public/assets/shared/@tabler_icons-react-B4bN8gHc.js +3 -0
  191. package/public/assets/shared/{@tabler_icons-react--FJWdUou.js.map → @tabler_icons-react-B4bN8gHc.js.map} +1 -1
  192. package/public/assets/shared/nanostores-BFqqIY_c.js.map +1 -1
  193. package/public/assets/shared/react-dom-8Rcmh_FG.js +2 -0
  194. package/public/assets/shared/{react-dom-BznoGTRX.js.map → react-dom-8Rcmh_FG.js.map} +1 -1
  195. package/public/assets/shared/react-iXLZ_Bod.js +2 -0
  196. package/public/assets/shared/{react-CR6vSpIu.js.map → react-iXLZ_Bod.js.map} +1 -1
  197. package/public/assets/shared/react_jsx-runtime-BwhiLcBy.js +2 -0
  198. package/public/assets/shared/{react_jsx-runtime-C15Zu6_p.js.map → react_jsx-runtime-BwhiLcBy.js.map} +1 -1
  199. package/public/assets/shared/{wouter-DbmGxXTo.js → wouter-CUC1caxu.js} +2 -2
  200. package/public/assets/shared/wouter-CUC1caxu.js.map +1 -0
  201. package/public/auth.html +14 -14
  202. package/templates/safe-ts/omegga.d.ts +31 -1
  203. package/dist/brickadia/config.d.ts +0 -3
  204. package/dist/brickadia/presets.d.ts +0 -65
  205. package/dist/brickadia/presets.js +0 -3
  206. package/dist/brickadia/presets.js.map +0 -1
  207. package/dist/brickadia/server.d.ts +0 -36
  208. package/dist/brickadia/types.d.ts +0 -45
  209. package/dist/brickadia/types.js +0 -3
  210. package/dist/brickadia/types.js.map +0 -1
  211. package/dist/cli/auth.d.ts +0 -26
  212. package/dist/cli/config.d.ts +0 -10
  213. package/dist/cli/index.d.ts +0 -30
  214. package/dist/cli/installer.d.ts +0 -1
  215. package/dist/cli/plugin.d.ts +0 -22
  216. package/dist/cli/terminal.d.ts +0 -25
  217. package/dist/config/authorizer.d.ts +0 -2
  218. package/dist/config/authorizer.js +0 -38
  219. package/dist/config/authorizer.js.map +0 -1
  220. package/dist/config/formats/format_js.d.ts +0 -3
  221. package/dist/config/formats/format_yml.d.ts +0 -3
  222. package/dist/config/index.d.ts +0 -18
  223. package/dist/config/reader.d.ts +0 -3
  224. package/dist/config/types.d.ts +0 -50
  225. package/dist/config/types.js +0 -3
  226. package/dist/config/types.js.map +0 -1
  227. package/dist/config/validator.d.ts +0 -6
  228. package/dist/config/writer.d.ts +0 -3
  229. package/dist/index.d.ts +0 -22
  230. package/dist/info/default_commands.json +0 -29
  231. package/dist/logger.d.ts +0 -41
  232. package/dist/main.d.ts +0 -1
  233. package/dist/omegga/auth.d.ts +0 -9
  234. package/dist/omegga/commandInjector.d.ts +0 -35
  235. package/dist/omegga/index.d.ts +0 -7
  236. package/dist/omegga/logWrangler.d.ts +0 -32
  237. package/dist/omegga/matchers/auth.d.ts +0 -10
  238. package/dist/omegga/matchers/chat.d.ts +0 -10
  239. package/dist/omegga/matchers/command.d.ts +0 -7
  240. package/dist/omegga/matchers/exit.d.ts +0 -3
  241. package/dist/omegga/matchers/index.d.ts +0 -3
  242. package/dist/omegga/matchers/init.d.ts +0 -3
  243. package/dist/omegga/matchers/interact.d.ts +0 -4
  244. package/dist/omegga/matchers/join.d.ts +0 -4
  245. package/dist/omegga/matchers/leave.d.ts +0 -4
  246. package/dist/omegga/matchers/mapChange.d.ts +0 -3
  247. package/dist/omegga/matchers/minigameJoin.d.ts +0 -9
  248. package/dist/omegga/matchers/types.d.ts +0 -5
  249. package/dist/omegga/matchers/types.js +0 -3
  250. package/dist/omegga/matchers/types.js.map +0 -1
  251. package/dist/omegga/matchers/version.d.ts +0 -3
  252. package/dist/omegga/player.d.ts +0 -81
  253. package/dist/omegga/plugin/interface.d.ts +0 -30
  254. package/dist/omegga/plugin/plugin_jsonrpc_stdio.d.ts +0 -23
  255. package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.d.ts +0 -145
  256. package/dist/omegga/plugin/plugin_node_safe/worker.d.ts +0 -1
  257. package/dist/omegga/plugin/plugin_node_safe/worker.js +0 -367
  258. package/dist/omegga/plugin/plugin_node_safe/worker.js.map +0 -1
  259. package/dist/omegga/plugin/plugin_node_safe.d.ts +0 -23
  260. package/dist/omegga/plugin/plugin_node_unsafe.d.ts +0 -13
  261. package/dist/omegga/plugin.d.ts +0 -63
  262. package/dist/omegga/server.d.ts +0 -166
  263. package/dist/omegga/types.d.ts +0 -49
  264. package/dist/omegga/types.js +0 -3
  265. package/dist/omegga/types.js.map +0 -1
  266. package/dist/omegga/wrapper.d.ts +0 -32
  267. package/dist/plugin.d.ts +0 -916
  268. package/dist/softconfig.d.ts +0 -67
  269. package/dist/tsconfig.tsbuildinfo +0 -1
  270. package/dist/updater/index.d.ts +0 -1
  271. package/dist/updater/index.js +0 -10
  272. package/dist/updater/index.js.map +0 -1
  273. package/dist/updater/steam.d.ts +0 -52
  274. package/dist/util/brdb.d.ts +0 -31
  275. package/dist/util/brick/checkBounds.d.ts +0 -8
  276. package/dist/util/brick/constants.d.ts +0 -18
  277. package/dist/util/brick/displayName.d.ts +0 -7
  278. package/dist/util/brick/getBounds.d.ts +0 -5
  279. package/dist/util/brick/getBrickSize.d.ts +0 -3
  280. package/dist/util/brick/getScaleAxis.d.ts +0 -3
  281. package/dist/util/brick/index.d.ts +0 -14
  282. package/dist/util/brick/rotate.d.ts +0 -16
  283. package/dist/util/brick/setOwnership.d.ts +0 -12
  284. package/dist/util/chat.d.ts +0 -23
  285. package/dist/util/color.d.ts +0 -13
  286. package/dist/util/file.d.ts +0 -5
  287. package/dist/util/index.d.ts +0 -183
  288. package/dist/util/map.d.ts +0 -6
  289. package/dist/util/pattern.d.ts +0 -1
  290. package/dist/util/time.d.ts +0 -39
  291. package/dist/util/uuid.d.ts +0 -3
  292. package/dist/util/wsl.d.ts +0 -2
  293. package/dist/version.d.ts +0 -2
  294. package/dist/webserver/backend/api.d.ts +0 -115
  295. package/dist/webserver/backend/calendar.d.ts +0 -5
  296. package/dist/webserver/backend/database.d.ts +0 -150
  297. package/dist/webserver/backend/index.d.ts +0 -30
  298. package/dist/webserver/backend/metrics.d.ts +0 -3
  299. package/dist/webserver/backend/types.d.ts +0 -114
  300. package/dist/webserver/backend/types.js +0 -3
  301. package/dist/webserver/backend/types.js.map +0 -1
  302. package/dist/webserver/backend/util.d.ts +0 -2
  303. package/dist/webserver/index.d.ts +0 -2
  304. package/dist/webserver/index.js +0 -9
  305. package/dist/webserver/index.js.map +0 -1
  306. package/public/assets/IconArrowRight-CA5_cccJ.js +0 -7
  307. package/public/assets/IconCheck-Dyq5qyY1.js +0 -17
  308. package/public/assets/IconLockOpen-D95XLORK.js +0 -7
  309. package/public/assets/IconWorld-DtARpBKX.js +0 -72
  310. package/public/assets/IconWorldPlus-CGBAsLNj.js +0 -182
  311. package/public/assets/IconX-SYtbnYKI.js +0 -12
  312. package/public/assets/app-BtOlgo__.js +0 -6
  313. package/public/assets/client-C5T7_OK9.js +0 -26
  314. package/public/assets/index-Bq9C9SqB.js +0 -10
  315. package/public/assets/index-CRRRLlCc.js +0 -10
  316. package/public/assets/index-DqHVrEeL.js +0 -10
  317. package/public/assets/index-c0qeY2gs.js +0 -10
  318. package/public/assets/index-i4mjW0og.js.map +0 -1
  319. package/public/assets/jsx-runtime-Bw5QeaCk.js +0 -10
  320. package/public/assets/jsx-runtime-DoEZbXM1.js +0 -2
  321. package/public/assets/jsx-runtime-DoEZbXM1.js.map +0 -1
  322. package/public/assets/shared/@components-DVehBp7v.js +0 -2
  323. package/public/assets/shared/@components-DVehBp7v.js.map +0 -1
  324. package/public/assets/shared/@tabler_icons-react--FJWdUou.js +0 -29458
  325. package/public/assets/shared/react-CR6vSpIu.js +0 -2
  326. package/public/assets/shared/react-dom-BznoGTRX.js +0 -2
  327. package/public/assets/shared/react_jsx-runtime-C15Zu6_p.js +0 -2
  328. package/public/assets/shared/wouter-DbmGxXTo.js.map +0 -1
@@ -1,367 +0,0 @@
1
- "use strict";
2
- // The safe node plugin is run inside of a worker
3
- // so if the plugin inevitably crashes, only the worker dies
4
- // this also lets plugins get terminated easier by killing the worker
5
- // rather than unloading and reloading code
6
- var __importDefault = (this && this.__importDefault) || function (mod) {
7
- return (mod && mod.__esModule) ? mod : { "default": mod };
8
- };
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- const logger_1 = __importDefault(require("../../../logger"));
11
- const player_1 = __importDefault(require("../../player"));
12
- const server_1 = __importDefault(require("../../server"));
13
- const _util_1 = __importDefault(require("../../../util"));
14
- const file_1 = require("../../../util/file");
15
- require("colors");
16
- const events_1 = __importDefault(require("events"));
17
- const fs_1 = __importDefault(require("fs"));
18
- const lodash_1 = require("lodash");
19
- const path_1 = __importDefault(require("path"));
20
- const vm2_1 = require("vm2");
21
- const webpack_1 = __importDefault(require("webpack"));
22
- const worker_threads_1 = require("worker_threads");
23
- const proxyOmegga_1 = require("./proxyOmegga");
24
- logger_1.default.VERBOSE = process.env.VERBOSE === 'true';
25
- const MAIN_FILE = 'omegga.plugin.js';
26
- const MAIN_FILE_TS = 'omegga.plugin.ts';
27
- const TS_BUILD_DIR = '.build';
28
- const TS_BUILD_FILE = 'plugin.js';
29
- let vm, PluginClass, pluginInstance;
30
- let pluginName = 'unnamed plugin';
31
- let messageCounter = 0;
32
- // emitter that receives messages from the parent
33
- const parent = new events_1.default();
34
- // handle message passing
35
- worker_threads_1.parentPort.on('message', ({ action, args }) => parent.emit(action, ...args));
36
- // emit a message to the parent port - async wait for a reponse
37
- const emit = (action, ...args) => {
38
- const messageId = 'message:' + messageCounter++;
39
- let rejectFn;
40
- // promise waits for the message to resolve
41
- const promise = new Promise((resolve, reject) => {
42
- parent.once(messageId, resolve);
43
- rejectFn = reject;
44
- });
45
- try {
46
- // post the message
47
- worker_threads_1.parentPort.postMessage({ action, args: [messageId, ...args] });
48
- }
49
- catch (err) {
50
- rejectFn(err);
51
- }
52
- // return the promise
53
- return promise;
54
- };
55
- // tell omegga to exec a command
56
- const exec = (cmd) => emit('exec', cmd);
57
- // create the proxy omegga
58
- (0, proxyOmegga_1.injectOmeggaPrototypes)(proxyOmegga_1.ProxyOmegga, server_1.default);
59
- const omegga = new proxyOmegga_1.ProxyOmegga(exec);
60
- // add plugin fetcher
61
- omegga.getPlugin = async (name) => {
62
- let plugin = (await emit('getPlugin', name));
63
- if (plugin) {
64
- plugin.emitPlugin = async (ev, ...args) => {
65
- return await emit('emitPlugin', name, ev, (0, lodash_1.cloneDeep)(args));
66
- };
67
- return plugin;
68
- }
69
- else {
70
- return null;
71
- }
72
- };
73
- // interface with plugin store
74
- const store = {
75
- get: (key) => emit('store.get', key),
76
- set: (key, value) => emit('store.set', key, JSON.stringify(value)),
77
- delete: (key) => emit('store.delete', key),
78
- wipe: () => emit('store.wipe'),
79
- count: () => emit('store.count'),
80
- keys: () => emit('store.keys'),
81
- };
82
- // generic brickadia events are forwarded to the proxy omegga
83
- parent.on('brickadiaEvent', (type, ...args) => {
84
- var _a;
85
- if (!vm)
86
- return;
87
- if (type === 'error') {
88
- logger_1.default.errorp(pluginName.brightRed, 'Received error', ...args);
89
- return;
90
- }
91
- try {
92
- omegga.emit(type, ...args);
93
- }
94
- catch (e) {
95
- logger_1.default.errorp(pluginName.brightRed, `Error in safe plugin worker's brickadiaEvent (${type}):`, (_a = e === null || e === void 0 ? void 0 : e.stack) !== null && _a !== void 0 ? _a : e.toString());
96
- }
97
- });
98
- // create the node vm
99
- async function createVm(pluginPath, { builtin = ['*'], external = true, isTypeScript = false } = {}) {
100
- var _a, _b, _c, _d;
101
- let pluginCode;
102
- if (isTypeScript) {
103
- const tsBuildPath = path_1.default.join(pluginPath, TS_BUILD_DIR);
104
- const sourceFileName = path_1.default.join(pluginPath, MAIN_FILE_TS);
105
- const outputPath = path_1.default.join(tsBuildPath, TS_BUILD_FILE);
106
- try {
107
- (0, file_1.mkdir)(tsBuildPath);
108
- (0, file_1.mkdir)(path_1.default.join(tsBuildPath, '.cache'));
109
- const stats = await new Promise((resolve, reject) => {
110
- (0, webpack_1.default)(Object.freeze({
111
- target: 'node',
112
- context: __dirname,
113
- mode: fs_1.default.existsSync(path_1.default.resolve(pluginPath, '.development'))
114
- ? 'development'
115
- : 'production',
116
- entry: sourceFileName,
117
- devtool: 'source-map',
118
- output: {
119
- iife: false,
120
- library: {
121
- type: 'commonjs',
122
- },
123
- path: tsBuildPath,
124
- filename: TS_BUILD_FILE,
125
- },
126
- externals: [
127
- function ({ request }, callback) {
128
- if (request.match(/\.node$/)) {
129
- return callback(null, 'commonjs ' + path_1.default.resolve(pluginPath, request));
130
- }
131
- callback();
132
- },
133
- ],
134
- resolve: {
135
- extensions: ['.ts', '.js', '.json', '.node'],
136
- alias: {
137
- // src is the only hard coded path
138
- src: path_1.default.resolve(pluginPath, 'src'),
139
- },
140
- },
141
- cache: {
142
- type: 'filesystem',
143
- cacheLocation: path_1.default.join(tsBuildPath, '.cache'),
144
- allowCollectingMemory: false,
145
- idleTimeout: 0,
146
- idleTimeoutForInitialStore: 0,
147
- // cache age is one week. plugins probably do not need
148
- // to be rebuilt every day
149
- maxAge: 1000 * 60 * 60 * 24 * 7,
150
- profile: true,
151
- },
152
- module: {
153
- rules: [
154
- {
155
- test: /\.[jt]s$/,
156
- exclude: /(node_modules)/,
157
- use: {
158
- loader: 'swc-loader',
159
- options: {
160
- sourceMaps: true,
161
- cwd: pluginPath,
162
- isModule: true,
163
- jsc: {
164
- target: 'es2020',
165
- parser: {
166
- syntax: 'typescript',
167
- },
168
- transform: {},
169
- },
170
- module: {
171
- type: 'commonjs',
172
- strictMode: false,
173
- },
174
- },
175
- },
176
- },
177
- ],
178
- },
179
- }), (err, stats) => (err ? reject(err) : resolve(stats)));
180
- });
181
- if (stats.hasErrors()) {
182
- for (const err of stats.toJson().errors) {
183
- logger_1.default.errorp(err.moduleName, err.file);
184
- logger_1.default.errorp(err.message);
185
- }
186
- }
187
- if (stats.hasWarnings()) {
188
- for (const warning of stats.toJson().warnings) {
189
- logger_1.default.warnp(warning.moduleName, warning.file);
190
- logger_1.default.warnp(warning.message);
191
- }
192
- }
193
- pluginCode = fs_1.default.readFileSync(outputPath).toString();
194
- }
195
- catch (err) {
196
- logger_1.default.errorp(pluginName.brightRed, err);
197
- return [false, 'failed compiling building typescript'];
198
- }
199
- // update omegga.d.ts to latest on plugin compile
200
- try {
201
- const gitIgnore = path_1.default.join(pluginPath, '.gitignore');
202
- const omeggaTypesDst = path_1.default.join(pluginPath, 'omegga.d.ts');
203
- const omeggaTypesSrc = path_1.default.join(__dirname, '../../../../templates/safe-ts/omegga.d.ts');
204
- // plugin has gitignore with "omegga.d.ts" in it and omegga has omegga.d.ts
205
- if (fs_1.default.existsSync(gitIgnore) && fs_1.default.existsSync(omeggaTypesSrc)) {
206
- // and the gitignore covers the omegga.d.ts
207
- const hasOmeggaTypesIgnored = fs_1.default
208
- .readFileSync(gitIgnore)
209
- .toString()
210
- .match(/(\.\/)?omegga\.d\.ts/);
211
- // compare last modified times to avoid unnecessary copies
212
- const srcLastModified = fs_1.default.statSync(omeggaTypesSrc).mtime.getTime();
213
- const dstLastModified = fs_1.default.existsSync(omeggaTypesDst)
214
- ? fs_1.default.statSync(omeggaTypesDst).mtime.getTime()
215
- : null;
216
- if (hasOmeggaTypesIgnored &&
217
- (!dstLastModified || srcLastModified > dstLastModified)) {
218
- fs_1.default.copyFileSync(omeggaTypesSrc, omeggaTypesDst);
219
- }
220
- }
221
- }
222
- catch (err) {
223
- logger_1.default.errorp(pluginName.brightRed, 'error copying latest omegga.d.ts to typescript plugin', err);
224
- }
225
- }
226
- if (vm !== undefined)
227
- return [false, 'vm is already created'];
228
- // create the vm
229
- vm = new vm2_1.NodeVM({
230
- console: 'redirect',
231
- sandbox: {},
232
- require: {
233
- external,
234
- builtin,
235
- root: pluginPath,
236
- },
237
- });
238
- // plugin log generator function
239
- const ezLog = (logFn, name, symbol) => (...args) => console[logFn](name.underline, symbol, ...args);
240
- // special formatting for stdout
241
- vm.on('console.log', ezLog('log', pluginName, '>>'.green));
242
- vm.on('console.error', ezLog('error', pluginName.brightRed, '!>'.red));
243
- vm.on('console.info', ezLog('info', pluginName, '#>'.blue));
244
- vm.on('console.debug', ezLog('debug', pluginName, '?>'.blue));
245
- vm.on('console.warn', ezLog('warn', pluginName.brightYellow, ':>'.yellow));
246
- vm.on('console.trace', ezLog('trace', pluginName, 'T>'.grey));
247
- global.OMEGGA_UTIL = _util_1.default;
248
- // pass in util functions
249
- vm.freeze(global.OMEGGA_UTIL, 'OMEGGA_UTIL');
250
- vm.freeze(omegga, 'Omegga');
251
- vm.freeze(player_1.default, 'Player');
252
- const file = path_1.default.join(pluginPath, isTypeScript ? path_1.default.join(TS_BUILD_DIR, TS_BUILD_FILE) : MAIN_FILE);
253
- if (!isTypeScript) {
254
- try {
255
- pluginCode = fs_1.default.readFileSync(file).toString();
256
- }
257
- catch (e) {
258
- emit('error', 'failed to read plugin source: ' + ((_a = e === null || e === void 0 ? void 0 : e.stack) !== null && _a !== void 0 ? _a : e.toString()));
259
- throw 'failed to read plugin source: ' + ((_b = e === null || e === void 0 ? void 0 : e.stack) !== null && _b !== void 0 ? _b : e.toString());
260
- }
261
- }
262
- // proxy the plugin out of the vm
263
- // potential for performance improvement by using VM.script to precompile plugins
264
- try {
265
- const pluginOutput = vm.run(pluginCode, file);
266
- PluginClass = (_c = pluginOutput === null || pluginOutput === void 0 ? void 0 : pluginOutput.default) !== null && _c !== void 0 ? _c : pluginOutput;
267
- }
268
- catch (e) {
269
- emit('error', 'plugin failed to init');
270
- logger_1.default.errorp(pluginName.brightRed, e);
271
- throw 'plugin failed to init: ' + ((_d = e === null || e === void 0 ? void 0 : e.stack) !== null && _d !== void 0 ? _d : e.toString());
272
- }
273
- if (!PluginClass ||
274
- typeof PluginClass !== 'function' ||
275
- typeof PluginClass.prototype !== 'object') {
276
- PluginClass = undefined;
277
- emit('error', 'plugin does not export a class');
278
- throw 'plugin does not export a class';
279
- }
280
- if (typeof PluginClass.prototype.init !== 'function') {
281
- PluginClass = undefined;
282
- emit('error', 'plugin is missing init() function');
283
- throw 'plugin is missing init() function';
284
- }
285
- if (typeof PluginClass.prototype.stop !== 'function') {
286
- PluginClass = undefined;
287
- emit('error', 'plugin is missing stop() function');
288
- throw 'plugin is missing stop() function';
289
- }
290
- }
291
- // kill this plugin
292
- parent.on('kill', resp => {
293
- emit(resp);
294
- process.exit(0);
295
- });
296
- // set plugin name
297
- parent.on('name', (resp, name) => {
298
- pluginName = name;
299
- // temp save prefix changes to avoid collision
300
- omegga._tempSavePrefix = 'omegga_' + name + '_temp';
301
- emit(resp);
302
- });
303
- // get memory usage for this plugin
304
- parent.on('mem', resp => emit(resp, 'mem', process.memoryUsage()));
305
- // create the vm
306
- parent.on('load', async (resp, pluginPath, options) => {
307
- var _a;
308
- try {
309
- await createVm(pluginPath, options);
310
- emit(resp, true);
311
- }
312
- catch (err) {
313
- logger_1.default.errorp(pluginName.brightRed, 'error creating vm', (_a = err === null || err === void 0 ? void 0 : err.stack) !== null && _a !== void 0 ? _a : err.toString());
314
- emit(resp, false);
315
- }
316
- });
317
- // start the plugin with a faux omegga
318
- // resp is an action sent back to the parent process
319
- // to coordinate async funcs
320
- parent.on('start', async (resp, config) => {
321
- var _a;
322
- try {
323
- pluginInstance = new PluginClass(omegga, config, store);
324
- const result = await pluginInstance.init();
325
- // if a plugin init returns a list of strings, treat them as the list of commands
326
- if (typeof result === 'object' && result) {
327
- // if registeredCommands is in the results, register the provided strings as commands
328
- const cmds = result.registeredCommands;
329
- if (cmds &&
330
- cmds instanceof Array &&
331
- cmds.every(i => typeof i === 'string')) {
332
- emit('command.registers', JSON.stringify(cmds));
333
- }
334
- }
335
- emit(resp, true);
336
- }
337
- catch (err) {
338
- emit('error', 'error starting plugin', (_a = err === null || err === void 0 ? void 0 : err.stack) !== null && _a !== void 0 ? _a : JSON.stringify(err));
339
- emit(resp, false);
340
- logger_1.default.errorp(pluginName.brightRed, 'Error starting plugin', err);
341
- }
342
- });
343
- // stop the plugin
344
- parent.on('stop', async (resp) => {
345
- var _a;
346
- try {
347
- if (pluginInstance) {
348
- await pluginInstance.stop.bind(pluginInstance)();
349
- }
350
- pluginInstance = undefined;
351
- emit(resp, true);
352
- }
353
- catch (err) {
354
- emit('error', 'error stopping plugin', (_a = err === null || err === void 0 ? void 0 : err.stack) !== null && _a !== void 0 ? _a : err.toString());
355
- emit(resp, false);
356
- }
357
- });
358
- // handle emitPlugins
359
- parent.on('emitPlugin', async (resp, ev, from, args) => {
360
- if (pluginInstance === null || pluginInstance === void 0 ? void 0 : pluginInstance.pluginEvent) {
361
- emit(resp, await pluginInstance.pluginEvent(ev, from, ...args));
362
- }
363
- else {
364
- emit(resp, null);
365
- }
366
- });
367
- //# sourceMappingURL=worker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../../src/omegga/plugin/plugin_node_safe/worker.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- import Omegga from "../server";
2
- import EventEmitter from 'events';
3
- import { Plugin } from './interface';
4
- export default class NodeVmPlugin extends Plugin {
5
- #private;
6
- static canLoad(pluginPath: string): boolean;
7
- static getFormat(): string;
8
- plugin: EventEmitter;
9
- messageCounter: number;
10
- access: string[];
11
- isTypeScript: boolean;
12
- constructor(pluginPath: string, omegga: Omegga);
13
- emitPlugin(ev: string, from: string, args: any[]): Promise<any>;
14
- getDocumentation(): import("../..").IPluginDocumentation;
15
- isLoaded(): boolean;
16
- isCommand(cmd: string): boolean;
17
- load(): Promise<boolean>;
18
- unload(): Promise<boolean>;
19
- emit(action: string, ...args: any[]): Promise<unknown[]>;
20
- notify(action: string, ...args: any[]): void;
21
- createWorker(): void;
22
- eventPassthrough(...args: any[]): void;
23
- }
@@ -1,13 +0,0 @@
1
- import type Omegga from "../server";
2
- import { Plugin } from './interface';
3
- export default class NodePlugin extends Plugin {
4
- static canLoad(pluginPath: string): boolean;
5
- static getFormat(): string;
6
- constructor(pluginPath: string, omegga: Omegga);
7
- getDocumentation(): import("../../plugin").IPluginDocumentation;
8
- isLoaded(): boolean;
9
- isCommand(cmd: string): boolean;
10
- load(): Promise<boolean>;
11
- unload(): Promise<boolean>;
12
- disrequireAll(): void;
13
- }
@@ -1,63 +0,0 @@
1
- import { IPluginCommand, IPluginDocumentation } from "../plugin";
2
- import Datastore from 'nedb-promises';
3
- import type Player from './player';
4
- import { Plugin } from './plugin/interface';
5
- import type Omegga from './server';
6
- export interface IPluginJSON {
7
- formatVersion: number;
8
- omeggaVersion: string;
9
- emitConfig?: string;
10
- }
11
- export interface IStoreItem<T = unknown> {
12
- type: 'store';
13
- key: string;
14
- plugin: string;
15
- value: T;
16
- }
17
- export interface IStoreConfig {
18
- type: 'config';
19
- plugin: string;
20
- value: Record<string, unknown>;
21
- }
22
- export declare class PluginStorage {
23
- store: Datastore;
24
- plugin: Plugin;
25
- name: string;
26
- constructor(store: Datastore, plugin: Plugin);
27
- getDefaultConfig(): Record<string, unknown>;
28
- setConfig(value: unknown): Promise<void>;
29
- getConfig(): Promise<Record<string, unknown>>;
30
- /** Wipes the configs for the plugin. */
31
- wipeConfig(): Promise<void>;
32
- /** Initializes the configs for the plugin into the database and sets default configs. */
33
- init(): Promise<void>;
34
- get<T>(key: string): Promise<T>;
35
- delete(key: string): Promise<void>;
36
- wipe(): Promise<void>;
37
- count(): Promise<number>;
38
- keys(): Promise<string[]>;
39
- set<T = unknown>(key: string, value: T): Promise<void>;
40
- }
41
- export declare class PluginLoader {
42
- path: string;
43
- omegga: Omegga;
44
- store: Datastore;
45
- formats: (typeof Plugin)[];
46
- plugins: Plugin[];
47
- commands: Record<string, IPluginCommand & {
48
- _plugin: Plugin;
49
- }>;
50
- documentation: Record<string, IPluginDocumentation & {
51
- _plugin: Plugin;
52
- }>;
53
- constructor(workDir: string, omegga?: Omegga);
54
- isCommand(cmd: string): boolean;
55
- reload(): Promise<boolean>;
56
- unload(): Promise<boolean>;
57
- /** Scans a plugin at the specified directory and create a Plugin object. */
58
- scanPlugin(dir: string): Promise<Plugin>;
59
- /** Scans plugin directory for plugins and builds their documentation. */
60
- scan(): Promise<boolean>;
61
- showHelp(player: string | Player, ...args: string[]): void;
62
- buildDocumentation(): void;
63
- }
@@ -1,166 +0,0 @@
1
- import { OmeggaLike, OmeggaPlayer, PluginInterop } from "../plugin";
2
- import { EnvironmentPreset } from "../brickadia/presets";
3
- import { BRBanList, BRPlayerNameCache, BRRoleAssignments, BRRoleSetup } from "../brickadia/types";
4
- import { IConfig } from "../config/types";
5
- import Webserver from "../webserver/backend";
6
- import { ReadSaveObject, WriteSaveObject } from 'brs-js';
7
- import 'colors';
8
- import { AutoRestartConfig } from '..';
9
- import { PluginLoader } from './plugin';
10
- import { ILogMinigame, IMinigameList, IOmeggaOptions, IPlayerPositions, IServerStatus } from './types';
11
- import OmeggaWrapper from './wrapper';
12
- export default class Omegga extends OmeggaWrapper implements OmeggaLike {
13
- /** The save counter prevents omegga from saving over the same file */
14
- _tempCounter: {
15
- save: number;
16
- environment: number;
17
- };
18
- /** The save prefix is prepended to all temporary saves */
19
- _tempSavePrefix: string;
20
- pluginLoader: PluginLoader;
21
- webserver: Webserver;
22
- verbose: boolean;
23
- savePath: string;
24
- worldPath: string;
25
- presetPath: string;
26
- configPath: string;
27
- options: IOmeggaOptions;
28
- version: number;
29
- host?: {
30
- id: string;
31
- name: string;
32
- };
33
- players: OmeggaPlayer[];
34
- started: boolean;
35
- starting: boolean;
36
- stopping: boolean;
37
- currentMap: string;
38
- getServerStatus: () => Promise<IServerStatus>;
39
- listMinigames: () => Promise<IMinigameList>;
40
- getAllPlayerPositions: () => Promise<IPlayerPositions>;
41
- getMinigames: () => Promise<ILogMinigame[]>;
42
- /**
43
- * Omegga instance
44
- */
45
- constructor(serverPath: string, cfg: IConfig, options?: IOmeggaOptions);
46
- /** attempt to save server state */
47
- saveServer(config: AutoRestartConfig): Promise<void>;
48
- restartServer(): Promise<any>;
49
- /** attempt to restore the server's state */
50
- restoreServer(): Promise<void>;
51
- /**
52
- * start webserver, load plugins, start the brickadia server
53
- * this should not be called by a plugin
54
- */
55
- start(): Promise<any>;
56
- /**
57
- * unload plugins and stop the server
58
- * this should not be called by a plugin
59
- */
60
- stop(): Promise<void>;
61
- /**
62
- * Copies auth files from home config dir
63
- * this should never be called by a plugin
64
- */
65
- copyAuthFiles(): void;
66
- broadcast(...messages: string[]): void;
67
- whisper(target: string | OmeggaPlayer, ...messages: string[]): void;
68
- middlePrint(target: string | OmeggaPlayer, message: string): void;
69
- getPlayers(): {
70
- id: string;
71
- name: string;
72
- displayName: string;
73
- controller: string;
74
- state: string;
75
- }[];
76
- getRoleSetup(): BRRoleSetup;
77
- getRoleAssignments(): BRRoleAssignments;
78
- getBanList(): BRBanList;
79
- getNameCache(): BRPlayerNameCache;
80
- getPlayer(target: string): OmeggaPlayer;
81
- findPlayerByName(name: string): OmeggaPlayer;
82
- getHostId(): string;
83
- saveMinigame(index: number, name: string): void;
84
- deleteMinigame(index: number): void;
85
- resetMinigame(index: number): void;
86
- nextRoundMinigame(index: number): void;
87
- loadMinigame(presetName: string, owner?: string): void;
88
- getMinigamePresets(): string[];
89
- resetEnvironment(): void;
90
- saveEnvironment(presetName: string): Promise<void>;
91
- getEnvironmentData(): Promise<EnvironmentPreset>;
92
- readEnvironmentData(saveName: string): EnvironmentPreset;
93
- loadEnvironment(presetName: string): void;
94
- loadEnvironmentData(preset: EnvironmentPreset | EnvironmentPreset['data']['groups']): void;
95
- getEnvironmentPresets(): string[];
96
- clearBricks(target: string | {
97
- id: string;
98
- }, quiet?: boolean): void;
99
- clearRegion(region: {
100
- center: [number, number, number];
101
- extent: [number, number, number];
102
- }, options?: {
103
- target: string | OmeggaPlayer;
104
- }): void;
105
- clearAllBricks(quiet?: boolean): void;
106
- saveBricks(saveName: string, region?: {
107
- center: [number, number, number];
108
- extent: [number, number, number];
109
- }): void;
110
- saveBricksAsync(saveName: string, region?: {
111
- center: [number, number, number];
112
- extent: [number, number, number];
113
- }): Promise<void>;
114
- loadBricks(saveName: string, { offX, offY, offZ, quiet, correctPalette, correctCustom, }?: {
115
- offX?: number;
116
- offY?: number;
117
- offZ?: number;
118
- quiet?: boolean;
119
- correctPalette?: boolean;
120
- correctCustom?: boolean;
121
- }): void;
122
- loadBricksOnPlayer(saveName: string, player: string | OmeggaPlayer, { offX, offY, offZ, correctPalette, correctCustom, }?: {
123
- offX?: number;
124
- offY?: number;
125
- offZ?: number;
126
- correctPalette?: boolean;
127
- correctCustom?: boolean;
128
- }): void;
129
- getSaves(): string[];
130
- getWorlds(): string[];
131
- getSavePath(saveName: string): string;
132
- getWorldPath(worldName: string): string;
133
- getWorldRevisions(worldName: string): Promise<{
134
- index: number;
135
- date: Date;
136
- note: string;
137
- }[]>;
138
- loadWorld(worldName: string): Promise<boolean>;
139
- loadWorldRevision(worldName: string, revision: number): Promise<boolean>;
140
- saveWorldAs(worldName: string): Promise<any>;
141
- saveWorld(): Promise<boolean>;
142
- createEmptyWorld(worldName: string, map?: 'Plate' | 'Space' | 'Studio' | 'Peaks'): Promise<boolean>;
143
- writeSaveData(saveName: string, saveData: WriteSaveObject): void;
144
- readSaveData(saveName: string, nobricks?: boolean): ReadSaveObject;
145
- loadSaveData(saveData: WriteSaveObject, { offX, offY, offZ, quiet, correctPalette, correctCustom, }?: {
146
- offX?: number;
147
- offY?: number;
148
- offZ?: number;
149
- quiet?: boolean;
150
- correctPalette?: boolean;
151
- correctCustom?: boolean;
152
- }): Promise<void>;
153
- loadSaveDataOnPlayer(saveData: WriteSaveObject, player: string | OmeggaPlayer, { offX, offY, offZ, correctPalette, correctCustom, }?: {
154
- offX?: number;
155
- offY?: number;
156
- offZ?: number;
157
- correctPalette?: boolean;
158
- correctCustom?: boolean;
159
- }): Promise<void>;
160
- getSaveData(region?: {
161
- center: [number, number, number];
162
- extent: [number, number, number];
163
- }): Promise<ReadSaveObject>;
164
- changeMap(map: string): Promise<boolean>;
165
- getPlugin(name: string): Promise<PluginInterop>;
166
- }