omegga 0.1.85 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (467) hide show
  1. package/README.md +142 -62
  2. package/bin/omegga +10 -4
  3. package/dist/brickadia/config.d.ts +3 -0
  4. package/dist/brickadia/config.d.ts.map +1 -0
  5. package/dist/brickadia/config.js +61 -0
  6. package/dist/brickadia/config.js.map +1 -0
  7. package/dist/brickadia/presets.d.ts +65 -0
  8. package/dist/brickadia/presets.js +3 -0
  9. package/dist/brickadia/presets.js.map +1 -0
  10. package/dist/brickadia/server.d.ts +20 -0
  11. package/dist/brickadia/server.d.ts.map +1 -0
  12. package/dist/brickadia/server.js +188 -0
  13. package/dist/brickadia/server.js.map +1 -0
  14. package/dist/brickadia/types.d.ts +45 -0
  15. package/dist/brickadia/types.d.ts.map +1 -0
  16. package/dist/brickadia/types.js +3 -0
  17. package/dist/brickadia/types.js.map +1 -0
  18. package/dist/cli/auth.d.ts +20 -0
  19. package/dist/cli/auth.d.ts.map +1 -0
  20. package/dist/cli/auth.js +115 -0
  21. package/dist/cli/auth.js.map +1 -0
  22. package/dist/cli/config.d.ts +10 -0
  23. package/dist/cli/config.d.ts.map +1 -0
  24. package/dist/cli/config.js +72 -0
  25. package/dist/cli/config.js.map +1 -0
  26. package/dist/cli/index.d.ts +20 -0
  27. package/dist/cli/index.d.ts.map +1 -0
  28. package/dist/cli/index.js +15 -0
  29. package/dist/cli/index.js.map +1 -0
  30. package/dist/cli/installer.d.ts +1 -0
  31. package/dist/cli/installer.d.ts.map +1 -0
  32. package/dist/cli/installer.js +55 -0
  33. package/dist/cli/installer.js.map +1 -0
  34. package/dist/cli/plugin.d.ts +11 -0
  35. package/dist/cli/plugin.d.ts.map +1 -0
  36. package/dist/cli/plugin.js +598 -0
  37. package/dist/cli/plugin.js.map +1 -0
  38. package/dist/cli/terminal.d.ts +34 -0
  39. package/dist/cli/terminal.d.ts.map +1 -0
  40. package/dist/cli/terminal.js +395 -0
  41. package/dist/cli/terminal.js.map +1 -0
  42. package/dist/config/authorizer.d.ts +2 -0
  43. package/dist/config/authorizer.d.ts.map +1 -0
  44. package/dist/config/authorizer.js +38 -0
  45. package/dist/config/authorizer.js.map +1 -0
  46. package/dist/config/formats/format_js.d.ts +3 -0
  47. package/dist/config/formats/format_js.d.ts.map +1 -0
  48. package/dist/config/formats/format_js.js +10 -0
  49. package/dist/config/formats/format_js.js.map +1 -0
  50. package/dist/config/formats/format_yml.d.ts +3 -0
  51. package/dist/config/formats/format_yml.d.ts.map +1 -0
  52. package/dist/config/formats/format_yml.js +14 -0
  53. package/dist/config/formats/format_yml.js.map +1 -0
  54. package/dist/config/index.d.ts +18 -0
  55. package/dist/config/index.d.ts.map +1 -0
  56. package/dist/config/index.js +86 -0
  57. package/dist/config/index.js.map +1 -0
  58. package/dist/config/reader.d.ts +3 -0
  59. package/dist/config/reader.d.ts.map +1 -0
  60. package/dist/config/reader.js +30 -0
  61. package/dist/config/reader.js.map +1 -0
  62. package/dist/config/types.d.ts +37 -0
  63. package/dist/config/types.d.ts.map +1 -0
  64. package/dist/config/types.js +3 -0
  65. package/dist/config/types.js.map +1 -0
  66. package/dist/config/validator.d.ts +6 -0
  67. package/dist/config/validator.d.ts.map +1 -0
  68. package/dist/config/validator.js +26 -0
  69. package/dist/config/validator.js.map +1 -0
  70. package/dist/config/writer.d.ts +3 -0
  71. package/dist/config/writer.d.ts.map +1 -0
  72. package/dist/config/writer.js +25 -0
  73. package/dist/config/writer.js.map +1 -0
  74. package/dist/index.d.ts +22 -0
  75. package/dist/index.js +55 -0
  76. package/dist/index.js.map +1 -0
  77. package/dist/info/default_commands.json +28 -0
  78. package/dist/lib.d.ts +21 -0
  79. package/dist/lib.d.ts.map +1 -0
  80. package/dist/lib.js +54 -0
  81. package/dist/lib.js.map +1 -0
  82. package/dist/logger.d.ts +41 -0
  83. package/dist/logger.js +67 -0
  84. package/dist/logger.js.map +1 -0
  85. package/dist/main.d.ts +1 -0
  86. package/dist/main.d.ts.map +1 -0
  87. package/dist/main.js +284 -0
  88. package/dist/main.js.map +1 -0
  89. package/dist/omegga/auth.d.ts +6 -0
  90. package/dist/omegga/auth.d.ts.map +1 -0
  91. package/dist/omegga/auth.js +139 -0
  92. package/dist/omegga/auth.js.map +1 -0
  93. package/dist/omegga/commandInjector.d.ts +35 -0
  94. package/dist/omegga/commandInjector.d.ts.map +1 -0
  95. package/dist/omegga/commandInjector.js +234 -0
  96. package/dist/omegga/commandInjector.js.map +1 -0
  97. package/dist/omegga/index.d.ts +7 -0
  98. package/dist/omegga/index.d.ts.map +1 -0
  99. package/dist/omegga/index.js +43 -0
  100. package/dist/omegga/index.js.map +1 -0
  101. package/dist/omegga/logWrangler.d.ts +32 -0
  102. package/dist/omegga/logWrangler.d.ts.map +1 -0
  103. package/dist/omegga/logWrangler.js +279 -0
  104. package/dist/omegga/logWrangler.js.map +1 -0
  105. package/dist/omegga/matchers/auth.d.ts +9 -0
  106. package/dist/omegga/matchers/auth.d.ts.map +1 -0
  107. package/dist/omegga/matchers/auth.js +53 -0
  108. package/dist/omegga/matchers/auth.js.map +1 -0
  109. package/dist/omegga/matchers/chat.d.ts +9 -0
  110. package/dist/omegga/matchers/chat.d.ts.map +1 -0
  111. package/dist/omegga/matchers/chat.js +68 -0
  112. package/dist/omegga/matchers/chat.js.map +1 -0
  113. package/dist/omegga/matchers/command.d.ts +7 -0
  114. package/dist/omegga/matchers/command.d.ts.map +1 -0
  115. package/dist/omegga/matchers/command.js +39 -0
  116. package/dist/omegga/matchers/command.js.map +1 -0
  117. package/dist/omegga/matchers/exit.d.ts +3 -0
  118. package/dist/omegga/matchers/exit.d.ts.map +1 -0
  119. package/dist/omegga/matchers/exit.js +21 -0
  120. package/dist/omegga/matchers/exit.js.map +1 -0
  121. package/dist/omegga/matchers/index.d.ts +3 -0
  122. package/dist/omegga/matchers/index.d.ts.map +1 -0
  123. package/dist/omegga/matchers/index.js +39 -0
  124. package/dist/omegga/matchers/index.js.map +1 -0
  125. package/dist/omegga/matchers/init.d.ts +3 -0
  126. package/dist/omegga/matchers/init.d.ts.map +1 -0
  127. package/dist/omegga/matchers/init.js +26 -0
  128. package/dist/omegga/matchers/init.js.map +1 -0
  129. package/dist/omegga/matchers/interact.d.ts +4 -0
  130. package/dist/omegga/matchers/interact.js +39 -0
  131. package/dist/omegga/matchers/interact.js.map +1 -0
  132. package/dist/omegga/matchers/join.d.ts +4 -0
  133. package/dist/omegga/matchers/join.d.ts.map +1 -0
  134. package/dist/omegga/matchers/join.js +95 -0
  135. package/dist/omegga/matchers/join.js.map +1 -0
  136. package/dist/omegga/matchers/leave.d.ts +4 -0
  137. package/dist/omegga/matchers/leave.d.ts.map +1 -0
  138. package/dist/omegga/matchers/leave.js +59 -0
  139. package/dist/omegga/matchers/leave.js.map +1 -0
  140. package/dist/omegga/matchers/mapChange.d.ts +3 -0
  141. package/dist/omegga/matchers/mapChange.d.ts.map +1 -0
  142. package/dist/omegga/matchers/mapChange.js +38 -0
  143. package/dist/omegga/matchers/mapChange.js.map +1 -0
  144. package/dist/omegga/matchers/types.d.ts +5 -0
  145. package/dist/omegga/matchers/types.d.ts.map +1 -0
  146. package/dist/omegga/matchers/types.js +7 -0
  147. package/dist/omegga/matchers/types.js.map +1 -0
  148. package/dist/omegga/matchers/version.d.ts +3 -0
  149. package/dist/omegga/matchers/version.d.ts.map +1 -0
  150. package/dist/omegga/matchers/version.js +45 -0
  151. package/dist/omegga/matchers/version.js.map +1 -0
  152. package/dist/omegga/player.d.ts +71 -0
  153. package/dist/omegga/player.d.ts.map +1 -0
  154. package/dist/omegga/player.js +442 -0
  155. package/dist/omegga/player.js.map +1 -0
  156. package/dist/omegga/plugin/plugin_jsonrpc_stdio.d.ts +23 -0
  157. package/dist/omegga/plugin/plugin_jsonrpc_stdio.d.ts.map +1 -0
  158. package/dist/omegga/plugin/plugin_jsonrpc_stdio.js +441 -0
  159. package/dist/omegga/plugin/plugin_jsonrpc_stdio.js.map +1 -0
  160. package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.d.ts +129 -0
  161. package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.d.ts.map +1 -0
  162. package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.js +260 -0
  163. package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.js.map +1 -0
  164. package/dist/omegga/plugin/plugin_node_safe/worker.d.ts +1 -0
  165. package/dist/omegga/plugin/plugin_node_safe/worker.d.ts.map +1 -0
  166. package/dist/omegga/plugin/plugin_node_safe/worker.js +289 -0
  167. package/dist/omegga/plugin/plugin_node_safe/worker.js.map +1 -0
  168. package/dist/omegga/plugin/plugin_node_safe.d.ts +24 -0
  169. package/dist/omegga/plugin/plugin_node_safe.d.ts.map +1 -0
  170. package/dist/omegga/plugin/plugin_node_safe.js +397 -0
  171. package/dist/omegga/plugin/plugin_node_safe.js.map +1 -0
  172. package/dist/omegga/plugin/plugin_node_unsafe.d.ts +13 -0
  173. package/dist/omegga/plugin/plugin_node_unsafe.d.ts.map +1 -0
  174. package/dist/omegga/plugin/plugin_node_unsafe.js +178 -0
  175. package/dist/omegga/plugin/plugin_node_unsafe.js.map +1 -0
  176. package/dist/omegga/plugin.d.ts +86 -0
  177. package/dist/omegga/plugin.d.ts.map +1 -0
  178. package/dist/omegga/plugin.js +458 -0
  179. package/dist/omegga/plugin.js.map +1 -0
  180. package/dist/omegga/server.d.ts +149 -0
  181. package/dist/omegga/server.d.ts.map +1 -0
  182. package/dist/omegga/server.js +601 -0
  183. package/dist/omegga/server.js.map +1 -0
  184. package/dist/omegga/types.d.ts +48 -0
  185. package/dist/omegga/types.d.ts.map +1 -0
  186. package/dist/omegga/types.js +3 -0
  187. package/dist/omegga/types.js.map +1 -0
  188. package/dist/omegga/wrapper.d.ts +22 -0
  189. package/dist/omegga/wrapper.d.ts.map +1 -0
  190. package/dist/omegga/wrapper.js +75 -0
  191. package/dist/omegga/wrapper.js.map +1 -0
  192. package/dist/omeggaplugin.d.ts +1 -0
  193. package/dist/omeggaplugin.js +4 -0
  194. package/dist/omeggaplugin.js.map +1 -0
  195. package/dist/plugin.d.ts +781 -0
  196. package/dist/plugin.js +41 -0
  197. package/dist/plugin.js.map +1 -0
  198. package/dist/softconfig.d.ts +51 -0
  199. package/dist/softconfig.d.ts.map +1 -0
  200. package/dist/softconfig.js +82 -0
  201. package/dist/softconfig.js.map +1 -0
  202. package/dist/util/brick/checkBounds.d.ts +8 -0
  203. package/dist/util/brick/checkBounds.d.ts.map +1 -0
  204. package/dist/util/brick/checkBounds.js +22 -0
  205. package/dist/util/brick/checkBounds.js.map +1 -0
  206. package/dist/util/brick/constants.d.ts +18 -0
  207. package/dist/util/brick/constants.d.ts.map +1 -0
  208. package/dist/util/brick/constants.js +184 -0
  209. package/dist/util/brick/constants.js.map +1 -0
  210. package/dist/util/brick/getBounds.d.ts +4 -0
  211. package/dist/util/brick/getBounds.d.ts.map +1 -0
  212. package/dist/util/brick/getBounds.js +39 -0
  213. package/dist/util/brick/getBounds.js.map +1 -0
  214. package/dist/util/brick/getBrickSize.d.ts +3 -0
  215. package/dist/util/brick/getBrickSize.d.ts.map +1 -0
  216. package/dist/util/brick/getBrickSize.js +12 -0
  217. package/dist/util/brick/getBrickSize.js.map +1 -0
  218. package/dist/util/brick/getScaleAxis.d.ts +3 -0
  219. package/dist/util/brick/getScaleAxis.d.ts.map +1 -0
  220. package/dist/util/brick/getScaleAxis.js +38 -0
  221. package/dist/util/brick/getScaleAxis.js.map +1 -0
  222. package/dist/util/brick/index.d.ts +13 -0
  223. package/dist/util/brick/index.d.ts.map +1 -0
  224. package/dist/util/brick/index.js +29 -0
  225. package/dist/util/brick/index.js.map +1 -0
  226. package/dist/util/brick/rotate.d.ts +17 -0
  227. package/dist/util/brick/rotate.d.ts.map +1 -0
  228. package/dist/util/brick/rotate.js +38 -0
  229. package/dist/util/brick/rotate.js.map +1 -0
  230. package/dist/util/brick/setOwnership.d.ts +12 -0
  231. package/dist/util/brick/setOwnership.d.ts.map +1 -0
  232. package/dist/util/brick/setOwnership.js +21 -0
  233. package/dist/util/brick/setOwnership.js.map +1 -0
  234. package/dist/util/chat.d.ts +23 -0
  235. package/dist/util/chat.d.ts.map +1 -0
  236. package/dist/util/chat.js +50 -0
  237. package/dist/util/chat.js.map +1 -0
  238. package/dist/util/color.d.ts +13 -0
  239. package/dist/util/color.d.ts.map +1 -0
  240. package/dist/util/color.js +130 -0
  241. package/dist/util/color.js.map +1 -0
  242. package/dist/util/file.d.ts +5 -0
  243. package/dist/util/file.d.ts.map +1 -0
  244. package/dist/util/file.js +114 -0
  245. package/dist/util/file.js.map +1 -0
  246. package/dist/util/index.d.ts +162 -0
  247. package/dist/util/index.d.ts.map +1 -0
  248. package/dist/util/index.js +92 -0
  249. package/dist/util/index.js.map +1 -0
  250. package/dist/util/map.d.ts +6 -0
  251. package/dist/util/map.d.ts.map +1 -0
  252. package/dist/util/map.js +26 -0
  253. package/dist/util/map.js.map +1 -0
  254. package/dist/util/pattern.d.ts +1 -0
  255. package/dist/util/pattern.d.ts.map +1 -0
  256. package/dist/util/pattern.js +11 -0
  257. package/dist/util/pattern.js.map +1 -0
  258. package/dist/util/time.d.ts +4 -0
  259. package/dist/util/time.d.ts.map +1 -0
  260. package/dist/util/time.js +41 -0
  261. package/dist/util/time.js.map +1 -0
  262. package/dist/util/uuid.d.ts +2 -0
  263. package/dist/util/uuid.d.ts.map +1 -0
  264. package/dist/util/uuid.js +8 -0
  265. package/dist/util/uuid.js.map +1 -0
  266. package/dist/util/wsl.d.ts +1 -0
  267. package/dist/util/wsl.d.ts.map +1 -0
  268. package/dist/util/wsl.js +14 -0
  269. package/dist/util/wsl.js.map +1 -0
  270. package/dist/webserver/backend/api.d.ts +3 -0
  271. package/dist/webserver/backend/api.d.ts.map +1 -0
  272. package/dist/webserver/backend/api.js +685 -0
  273. package/dist/webserver/backend/api.js.map +1 -0
  274. package/dist/webserver/backend/calendar.d.ts +5 -0
  275. package/dist/webserver/backend/calendar.d.ts.map +1 -0
  276. package/dist/webserver/backend/calendar.js +21 -0
  277. package/dist/webserver/backend/calendar.js.map +1 -0
  278. package/dist/webserver/backend/database.d.ts +149 -0
  279. package/dist/webserver/backend/database.d.ts.map +1 -0
  280. package/dist/webserver/backend/database.js +575 -0
  281. package/dist/webserver/backend/database.js.map +1 -0
  282. package/dist/webserver/backend/index.d.ts +31 -0
  283. package/dist/webserver/backend/index.d.ts.map +1 -0
  284. package/dist/webserver/backend/index.js +189 -0
  285. package/dist/webserver/backend/index.js.map +1 -0
  286. package/dist/webserver/backend/metrics.d.ts +3 -0
  287. package/dist/webserver/backend/metrics.d.ts.map +1 -0
  288. package/dist/webserver/backend/metrics.js +203 -0
  289. package/dist/webserver/backend/metrics.js.map +1 -0
  290. package/dist/webserver/backend/types.d.ts +115 -0
  291. package/dist/webserver/backend/types.d.ts.map +1 -0
  292. package/dist/webserver/backend/types.js +3 -0
  293. package/dist/webserver/backend/types.js.map +1 -0
  294. package/dist/webserver/backend/util.d.ts +2 -0
  295. package/dist/webserver/backend/util.d.ts.map +1 -0
  296. package/dist/webserver/backend/util.js +78 -0
  297. package/dist/webserver/backend/util.js.map +1 -0
  298. package/dist/webserver/index.d.ts +2 -0
  299. package/dist/webserver/index.d.ts.map +1 -0
  300. package/dist/webserver/index.js +9 -0
  301. package/dist/webserver/index.js.map +1 -0
  302. package/{src/webserver/frontend → frontend}/app.html +0 -0
  303. package/{src/webserver/frontend → frontend}/assets/fonts/GlacialIndifferenceBold.ttf +0 -0
  304. package/{src/webserver/frontend → frontend}/assets/fonts/GlacialIndifferenceItalic.otf +0 -0
  305. package/{src/webserver/frontend → frontend}/assets/fonts/GlacialIndifferenceMedium.otf +0 -0
  306. package/{src/webserver/frontend → frontend}/assets/fonts/GlacialIndifferenceRegular.ttf +0 -0
  307. package/{src/webserver/frontend → frontend}/assets/fonts/RobotoBold.ttf +0 -0
  308. package/{src/webserver/frontend → frontend}/assets/fonts/RobotoItalic.ttf +0 -0
  309. package/{src/webserver/frontend → frontend}/assets/fonts/RobotoRegular.ttf +0 -0
  310. package/{src/webserver/frontend → frontend}/assets/img/auth_bg.webp +0 -0
  311. package/{src/webserver/frontend → frontend}/assets/img/dark_bg.webp +0 -0
  312. package/{src/webserver/frontend → frontend}/assets/img/turkey.webp +0 -0
  313. package/{src/webserver/frontend → frontend}/auth.html +0 -0
  314. package/index.js +10 -2
  315. package/package.json +44 -16
  316. package/public/app.bundle.js +537 -73
  317. package/public/app.bundle.js.map +1 -1
  318. package/public/app.css +727 -2
  319. package/public/app.css.map +1 -1
  320. package/public/auth.bundle.js +18 -18
  321. package/public/auth.bundle.js.map +1 -1
  322. package/public/auth.css +364 -2
  323. package/public/auth.css.map +1 -1
  324. package/templates/rpc/README.md +29 -0
  325. package/templates/rpc/doc.json +7 -0
  326. package/templates/rpc/omegga_plugin +0 -0
  327. package/templates/rpc/plugin.json +4 -0
  328. package/templates/rpc/setup.sh +3 -0
  329. package/templates/safe/README.md +29 -0
  330. package/templates/safe/access.json +1 -0
  331. package/templates/safe/doc.json +7 -0
  332. package/templates/safe/omegga.plugin.js +20 -0
  333. package/templates/safe/plugin.json +4 -0
  334. package/templates/safe/setup.sh +4 -0
  335. package/templates/safe-ts/.gitignore.rename +3 -0
  336. package/templates/safe-ts/README.md +29 -0
  337. package/templates/safe-ts/access.json +1 -0
  338. package/templates/safe-ts/doc.json +7 -0
  339. package/templates/safe-ts/omegga.d.ts +1311 -0
  340. package/templates/safe-ts/omegga.plugin.ts +29 -0
  341. package/templates/safe-ts/plugin.json +4 -0
  342. package/templates/safe-ts/setup.sh +4 -0
  343. package/templates/safe-ts/tsconfig.json +10 -0
  344. package/templates/unsafe/README.md +29 -0
  345. package/templates/unsafe/doc.json +7 -0
  346. package/templates/unsafe/omegga.main.js +15 -0
  347. package/templates/unsafe/plugin.json +4 -0
  348. package/templates/unsafe/setup.sh +4 -0
  349. package/.babelrc.json +0 -5
  350. package/.github/workflows/lint.yml +0 -26
  351. package/.prettierrc +0 -7
  352. package/.vscode/extensions.json +0 -5
  353. package/src/OMEGGA_LEGACY_INSTALL +0 -44
  354. package/src/brickadia/config.js +0 -42
  355. package/src/brickadia/server.js +0 -227
  356. package/src/cli/auth.js +0 -104
  357. package/src/cli/config.js +0 -77
  358. package/src/cli/index.js +0 -6
  359. package/src/cli/installer.js +0 -65
  360. package/src/cli/plugin.js +0 -575
  361. package/src/cli/terminal.js +0 -466
  362. package/src/config/authorizer.js +0 -37
  363. package/src/config/formats/format_js.js +0 -6
  364. package/src/config/formats/format_yml.js +0 -8
  365. package/src/config/index.js +0 -81
  366. package/src/config/reader.js +0 -27
  367. package/src/config/validator.js +0 -32
  368. package/src/config/writer.js +0 -20
  369. package/src/info/default_commands.json +0 -26
  370. package/src/lib.js +0 -23
  371. package/src/main.js +0 -332
  372. package/src/omegga/auth.js +0 -138
  373. package/src/omegga/commandInjector.js +0 -228
  374. package/src/omegga/index.js +0 -22
  375. package/src/omegga/logWrangler.js +0 -323
  376. package/src/omegga/matchers/auth.js +0 -49
  377. package/src/omegga/matchers/chat.js +0 -73
  378. package/src/omegga/matchers/command.js +0 -39
  379. package/src/omegga/matchers/exit.js +0 -19
  380. package/src/omegga/matchers/init.js +0 -23
  381. package/src/omegga/matchers/join.js +0 -115
  382. package/src/omegga/matchers/leave.js +0 -58
  383. package/src/omegga/matchers/mapChange.js +0 -37
  384. package/src/omegga/matchers/version.js +0 -45
  385. package/src/omegga/player.js +0 -585
  386. package/src/omegga/plugin/plugin_jsonrpc_stdio.js +0 -526
  387. package/src/omegga/plugin/plugin_node_safe/proxyOmegga.js +0 -117
  388. package/src/omegga/plugin/plugin_node_safe/worker.js +0 -238
  389. package/src/omegga/plugin/plugin_node_safe.js +0 -473
  390. package/src/omegga/plugin/plugin_node_unsafe.js +0 -177
  391. package/src/omegga/plugin.js +0 -565
  392. package/src/omegga/server.js +0 -658
  393. package/src/omegga/wrapper.js +0 -62
  394. package/src/softconfig.js +0 -64
  395. package/src/util/brick/checkBounds.js +0 -22
  396. package/src/util/brick/constants.js +0 -185
  397. package/src/util/brick/getBounds.js +0 -36
  398. package/src/util/brick/getBrickSize.js +0 -9
  399. package/src/util/brick/getScaleAxis.js +0 -31
  400. package/src/util/brick/index.js +0 -9
  401. package/src/util/brick/rotate.js +0 -43
  402. package/src/util/brick/setOwnership.js +0 -20
  403. package/src/util/chat.js +0 -28
  404. package/src/util/color.js +0 -143
  405. package/src/util/file.js +0 -119
  406. package/src/util/index.js +0 -28
  407. package/src/util/map.js +0 -28
  408. package/src/util/pattern.js +0 -14
  409. package/src/util/time.js +0 -46
  410. package/src/util/uuid.js +0 -8
  411. package/src/util/wsl.js +0 -9
  412. package/src/webserver/backend/api.js +0 -795
  413. package/src/webserver/backend/calendar.js +0 -15
  414. package/src/webserver/backend/database.js +0 -725
  415. package/src/webserver/backend/index.js +0 -206
  416. package/src/webserver/backend/metrics.js +0 -148
  417. package/src/webserver/backend/util.js +0 -75
  418. package/src/webserver/frontend/.eslintrc.yml +0 -26
  419. package/src/webserver/frontend/app.js +0 -78
  420. package/src/webserver/frontend/auth.js +0 -16
  421. package/src/webserver/frontend/components/Background.vue +0 -83
  422. package/src/webserver/frontend/components/Button.vue +0 -105
  423. package/src/webserver/frontend/components/ChatEntry.vue +0 -107
  424. package/src/webserver/frontend/components/ChatTime.vue +0 -40
  425. package/src/webserver/frontend/components/Dimmer.vue +0 -43
  426. package/src/webserver/frontend/components/Dropdown.vue +0 -145
  427. package/src/webserver/frontend/components/Footer.vue +0 -29
  428. package/src/webserver/frontend/components/Header.vue +0 -27
  429. package/src/webserver/frontend/components/InfiniteScroll.vue +0 -51
  430. package/src/webserver/frontend/components/Input.vue +0 -93
  431. package/src/webserver/frontend/components/ListInput.vue +0 -105
  432. package/src/webserver/frontend/components/Loader.vue +0 -98
  433. package/src/webserver/frontend/components/MainMenuButton.vue +0 -83
  434. package/src/webserver/frontend/components/Modal.vue +0 -44
  435. package/src/webserver/frontend/components/NavBar.vue +0 -24
  436. package/src/webserver/frontend/components/PlayerDropdown.vue +0 -210
  437. package/src/webserver/frontend/components/PopoutContent.vue +0 -32
  438. package/src/webserver/frontend/components/RoleDropdown.vue +0 -157
  439. package/src/webserver/frontend/components/Scroll.vue +0 -33
  440. package/src/webserver/frontend/components/Toggle.vue +0 -91
  441. package/src/webserver/frontend/components/index.js +0 -33
  442. package/src/webserver/frontend/css/font.scss +0 -53
  443. package/src/webserver/frontend/css/mixins.scss +0 -49
  444. package/src/webserver/frontend/css/style.scss +0 -166
  445. package/src/webserver/frontend/css/theme.scss +0 -64
  446. package/src/webserver/frontend/partials/NavHeader.vue +0 -55
  447. package/src/webserver/frontend/partials/Page.vue +0 -40
  448. package/src/webserver/frontend/partials/PageContent.vue +0 -31
  449. package/src/webserver/frontend/partials/SideNav.vue +0 -115
  450. package/src/webserver/frontend/partials/index.js +0 -4
  451. package/src/webserver/frontend/router.js +0 -83
  452. package/src/webserver/frontend/views/Auth.vue +0 -190
  453. package/src/webserver/frontend/views/History.vue +0 -462
  454. package/src/webserver/frontend/views/Home.vue +0 -251
  455. package/src/webserver/frontend/views/Main.vue +0 -69
  456. package/src/webserver/frontend/views/NotFound.vue +0 -10
  457. package/src/webserver/frontend/views/Players.vue +0 -425
  458. package/src/webserver/frontend/views/PlayersInspector.vue +0 -538
  459. package/src/webserver/frontend/views/Plugins.vue +0 -217
  460. package/src/webserver/frontend/views/PluginsInspector.vue +0 -418
  461. package/src/webserver/frontend/views/Server.vue +0 -167
  462. package/src/webserver/frontend/views/Users.vue +0 -538
  463. package/src/webserver/frontend/widgets/Chat.vue +0 -124
  464. package/src/webserver/frontend/widgets/Status.vue +0 -91
  465. package/src/webserver/frontend/widgets/index.js +0 -2
  466. package/src/webserver/frontend/widgets/tooltip.js +0 -108
  467. package/src/webserver/index.js +0 -4
@@ -1,526 +0,0 @@
1
- const fs = require('fs');
2
- const path = require('path');
3
- const { spawn } = require('child_process');
4
-
5
- const readline = require('readline');
6
- const {
7
- JSONRPCServer,
8
- JSONRPCClient,
9
- JSONRPCServerAndClient,
10
- } = require('json-rpc-2.0');
11
-
12
- const { Plugin } = require('../plugin.js');
13
- const { bootstrap } = require('./plugin_node_safe/proxyOmegga.js');
14
-
15
- // TODO: check if version is compatible (v1 -> v2) from file
16
- // TODO: write jsonrpc wrappers in a few languages, implement a few simple plugins
17
- // TODO: languages: [ python, go ]
18
-
19
- const MAIN_FILE = 'omegga_plugin';
20
- const DOC_FILE = 'doc.json';
21
- const PLUGIN_FILE = 'plugin.json';
22
-
23
- class RpcPlugin extends Plugin {
24
- #child = null;
25
- #rpc = null;
26
- #errInterface = null;
27
- #outInterface = null;
28
-
29
- // all RPC plugins require a main (binary) file and a doc file
30
- static canLoad(pluginPath) {
31
- return (
32
- fs.existsSync(path.join(pluginPath, MAIN_FILE)) &&
33
- fs.existsSync(path.join(pluginPath, DOC_FILE))
34
- );
35
- }
36
-
37
- // websocket rpc plugin type
38
- static getFormat() {
39
- return 'jsonrpc_stdio';
40
- }
41
-
42
- // documentation is based on doc.json file
43
- getDocumentation() {
44
- return this.documentation;
45
- }
46
-
47
- constructor(pluginPath, omegga) {
48
- super(pluginPath, omegga);
49
-
50
- this.messageCounter = 0;
51
-
52
- // TODO: validate documentation
53
- this.documentation = Plugin.readJSON(path.join(pluginPath, DOC_FILE));
54
- this.pluginConfig = Plugin.readJSON(path.join(pluginPath, PLUGIN_FILE));
55
- this.pluginFile = path.join(pluginPath, MAIN_FILE);
56
-
57
- this.eventPassthrough = this.eventPassthrough.bind(this);
58
- this.commands = [];
59
-
60
- this.initRPC();
61
- }
62
-
63
- isLoaded() {
64
- return !!this.#child && !this.#child.exitCode;
65
- }
66
-
67
- // determing if a command is registered
68
- isCommand(cmd) {
69
- return this.commands.includes(cmd);
70
- }
71
-
72
- // spawn the plugin as a child process
73
- async load() {
74
- const name = this.getName();
75
- const verbose = (...msg) => Omegga.verbose(name.underline, ...msg);
76
- verbose('Load method invoked');
77
- let frozen = true,
78
- timed = false;
79
- this.commands = [];
80
-
81
- // can't load the plugin if the child is still running
82
- if (this.#child) {
83
- verbose('Plugin already has child process');
84
- return false;
85
- }
86
-
87
- let config;
88
- try {
89
- verbose('Getting plugin config');
90
- config = await this.storage.getConfig();
91
- } catch (e) {
92
- return false;
93
- }
94
-
95
- try {
96
- if (this.pluginConfig?.emitConfig) {
97
- verbose('Emitting plugin config');
98
- await fs.promises.writeFile(
99
- path.join(this.path, this.pluginConfig.emitConfig),
100
- JSON.stringify(config)
101
- );
102
- }
103
- verbose('Spawning child process');
104
- this.#child = spawn(this.pluginFile);
105
- this.#child.stdin.setEncoding('utf8');
106
- this.#outInterface = readline.createInterface({
107
- input: this.#child.stdout,
108
- terminal: false,
109
- });
110
- this.#errInterface = readline.createInterface({
111
- input: this.#child.stderr,
112
- terminal: false,
113
- });
114
- this.attachListeners();
115
- } catch (err) {
116
- Omegga.error(
117
- '!>'.red,
118
- 'error loading stdio rpc plugin',
119
- name.brightRed.underline,
120
- err
121
- );
122
- await this.kill();
123
- this.emitStatus();
124
- return false;
125
- }
126
-
127
- return Promise.race([
128
- (async () => {
129
- try {
130
- // get some initial information to create an omegga proxy
131
- const initialData = bootstrap(this.omegga);
132
-
133
- verbose('Sending initial data');
134
- // send all of the mock events to the proxy omegga
135
- for (const ev in initialData) {
136
- // send some initial information
137
- this.notify(ev, initialData[ev]);
138
- }
139
-
140
- verbose('Initializing event passthrough');
141
- // pass events through
142
- this.omegga.on('*', this.eventPassthrough);
143
-
144
- try {
145
- // tell the plugin to start
146
- verbose('Waiting for plugin to start...');
147
- const result = await this.emit('init', config);
148
-
149
- verbose('Initialized with result:', result);
150
- // plugins can return a result object
151
- if (typeof result === 'object' && result) {
152
- // if registeredCommands is in the results, register the provided strings as commands
153
- const cmds = result.registeredCommands;
154
- if (
155
- cmds &&
156
- cmds instanceof Array &&
157
- cmds.every(i => typeof i === 'string')
158
- )
159
- this.commands = cmds;
160
- }
161
- } catch (e) {
162
- if (!e.message) return;
163
- Omegga.error(
164
- '!>'.red,
165
- name.brightRed.underline,
166
- 'error starting: ',
167
- e
168
- );
169
- }
170
-
171
- // plugin is not frozen, resolve that it has loaded
172
- frozen = false;
173
- if (timed) return;
174
- this.emitStatus();
175
- return true;
176
- } catch (e) {
177
- if (timed) return;
178
- Omegga.error(
179
- '!>'.red,
180
- 'error loading stdio rpc plugin',
181
- name.brightRed.underline,
182
- e
183
- );
184
- await this.kill();
185
- frozen = false;
186
- this.emitStatus();
187
- return false;
188
- }
189
- })(),
190
- new Promise(resolve => {
191
- // let user know if the child quit while launching
192
- this.#child.once('exit', () => {
193
- if (!frozen || timed) return;
194
- verbose('Plugin exited during init');
195
- frozen = false;
196
- this.emitStatus();
197
- resolve(false);
198
- });
199
-
200
- // check if the child is frozen (while true)
201
- setTimeout(() => {
202
- if (!frozen) return;
203
- Omegga.error(
204
- '!>'.red,
205
- 'I appear to be unresponsive when starting (maybe I forgot to respond to start)',
206
- name.brightRed.underline
207
- );
208
- this.kill();
209
- timed = true;
210
- this.emitStatus();
211
- resolve(false);
212
- }, 5000);
213
- }),
214
- ]);
215
- }
216
-
217
- // kill the child process after requesting it to stop
218
- unload() {
219
- if (!this.#child || this.#child.exitCode) {
220
- this.detachListeners();
221
- this.emitStatus();
222
- return Promise.resolve(true);
223
- }
224
- let frozen = true,
225
- timed = false;
226
- const name = this.getName();
227
-
228
- return Promise.race([
229
- (async () => {
230
- try {
231
- // let the plugin know it's time to stop, if this error it's probably because the method was not implemented
232
- try {
233
- await this.emit('stop');
234
- } catch (e) {
235
- // lazy developer - just implement stop please
236
- }
237
-
238
- await this.kill();
239
-
240
- frozen = false;
241
- if (timed) return;
242
- this.emitStatus();
243
- this.commands = [];
244
- return true;
245
- } catch (e) {
246
- if (timed) return;
247
- Omegga.error(
248
- '!>'.red,
249
- 'error unloading rpc plugin',
250
- name.brightRed.underline,
251
- e
252
- );
253
- frozen = false;
254
- this.emitStatus();
255
- return false;
256
- }
257
- })(),
258
- // this is wrapped in a promise for the freeze check
259
- new Promise(resolve => {
260
- // check if the child is frozen (while true)
261
- setTimeout(() => {
262
- if (!frozen) return;
263
- Omegga.error(
264
- '!>'.red,
265
- 'I appear to be unresponsive when stopping (maybe I forgot to respond to stop)',
266
- name.brightRed.underline
267
- );
268
- this.kill();
269
- timed = true;
270
- this.emitStatus();
271
- resolve(true);
272
- }, 5000);
273
- }),
274
- ]);
275
- }
276
-
277
- // attaches event listeners
278
- attachListeners() {
279
- const name = this.getName();
280
-
281
- this.#outInterface.on('line', line => {
282
- try {
283
- this.#rpc.receiveAndSend(JSON.parse(line));
284
- } catch (e) {
285
- Omegga.error(
286
- this.getName().brightRed.underline,
287
- '!>'.red,
288
- 'error parsing rpc data',
289
- e,
290
- line
291
- );
292
- }
293
- });
294
-
295
- // stderr - print out the errors
296
- this.#errInterface.on('line', err => {
297
- Omegga.error(name.brightRed.underline, '!>'.red, err);
298
- });
299
-
300
- this.#child.on('error', () => this.kill());
301
- this.#child.on('close', () => this.kill());
302
- this.#child.on('exit', code => {
303
- Omegga.error(
304
- '!>'.red,
305
- 'rpc plugin',
306
- name.brightRed.underline,
307
- 'exited with code',
308
- code
309
- );
310
- this.kill();
311
- });
312
- }
313
-
314
- // removes previously attached event listeners
315
- detachListeners() {
316
- this.#outInterface.removeAllListeners('line');
317
- this.#errInterface.removeAllListeners('line');
318
- if (this.#child) {
319
- this.#child.removeAllListeners('exit');
320
- this.#child.removeAllListeners('close');
321
- this.#child.removeAllListeners('error');
322
- }
323
- }
324
-
325
- // write a string to the child process
326
- writeln(line) {
327
- try {
328
- if (this.#child && !this.#child.exitCode)
329
- this.#child.stdin.write(line + '\n');
330
- } catch (e) {
331
- // the child probably died... oops!
332
- }
333
- }
334
-
335
- // forcibly kills the plugin
336
- async kill() {
337
- this.#rpc.rejectAllPendingRequests();
338
- this.detachListeners();
339
- this.omegga.off('*', this.eventPassthrough);
340
- if (!this.#child) return;
341
-
342
- // create a promise for the exit of the process
343
- const promise = new Promise(resolve => this.#child.once('exit', resolve));
344
-
345
- // kill the process
346
- this.#child.kill('SIGINT');
347
-
348
- // ...kill it again just to make sure it's dead
349
- spawn('kill', ['-9', this.#child.pid]);
350
-
351
- // wait for the process to exit
352
- await promise;
353
- this.#child = undefined;
354
- this.emitStatus();
355
- }
356
-
357
- eventPassthrough(type, ...args) {
358
- if (!this.#child) return;
359
- this.notify(type, args);
360
- }
361
-
362
- // setup the JSONRPC communication
363
- initRPC() {
364
- const server = new JSONRPCServer();
365
- const client = new JSONRPCClient(req => {
366
- try {
367
- this.writeln(JSON.stringify(req));
368
- return Promise.resolve();
369
- } catch (error) {
370
- return Promise.reject(error);
371
- }
372
- });
373
- const rpc = (this.#rpc = new JSONRPCServerAndClient(server, client));
374
-
375
- // plugin log generator function
376
- const ezLog = (logFn, name, symbol) => line =>
377
- console[logFn](name.underline, symbol, line);
378
-
379
- const name = this.getName();
380
-
381
- // server can output logs special formatting for stdout
382
- rpc.addMethod('log', ezLog('log', name, '>>'.green));
383
- rpc.addMethod('error', ezLog('error', name.brightRed, '!>'.red));
384
- rpc.addMethod('info', ezLog('info', name, '#>'.blue));
385
- rpc.addMethod('warn', ezLog('warn', name.brightYellow, ':>'.yellow));
386
- rpc.addMethod('trace', ezLog('trace', name, 'T>'.grey));
387
-
388
- // plugin store interactions
389
- rpc.addMethod('store.get', key => this.storage.get(key));
390
- rpc.addMethod('store.set', ([key, value]) => this.storage.set(key, value));
391
- rpc.addMethod('store.delete', key => this.storage.delete(key));
392
- rpc.addMethod('store.wipe', () => this.storage.wipe());
393
- rpc.addMethod('store.count', () => this.storage.count());
394
- rpc.addMethod('store.keys', () => this.storage.keys());
395
-
396
- // server can run console commands
397
- rpc.addMethod('exec', line => this.omegga.writeln(line));
398
- rpc.addMethod('writeln', line => this.omegga.writeln(line));
399
- rpc.addMethod('broadcast', line => this.omegga.broadcast(line));
400
- rpc.addMethod('whisper', ({ target, line }) =>
401
- this.omegga.whisper(target, line)
402
- );
403
- rpc.addMethod('getPlayers', () => this.omegga.getPlayers());
404
- rpc.addMethod('getPlayerPosition', name =>
405
- this.omegga.getPlayer(name)?.getPosition()
406
- ); // included for compatibility
407
- rpc.addMethod('getAllPlayerPositions', () =>
408
- this.omegga.getAllPlayerPositions()
409
- );
410
- rpc.addMethod('getServerStatus', () => this.omegga.getServerStatus());
411
- rpc.addMethod('getMinigames', () => this.omegga.getMinigames());
412
- rpc.addMethod('getHostId', () => this.omegga.getHostId());
413
- rpc.addMethod('getRoleSetup', () => this.omegga.getRoleSetup());
414
- rpc.addMethod('getBanList', () => this.omegga.getBanList());
415
- rpc.addMethod('getSaves', () => this.omegga.getSaves());
416
- rpc.addMethod('getSavePath', name => this.omegga.getSavePath(name));
417
- rpc.addMethod('clearBricks', ({ target, quiet = false }) =>
418
- this.omegga.clearBricks(target, quiet)
419
- );
420
- rpc.addMethod('clearAllBricks', (quiet = false) =>
421
- this.omegga.clearAllBricks(quiet)
422
- );
423
- rpc.addMethod('saveBricks', name => this.omegga.saveBricks(name));
424
- rpc.addMethod(
425
- 'loadBricks',
426
- ({ name, offX = 0, offY = 0, offZ = 0, quiet = false }) =>
427
- this.omegga.loadBricks(name, { offX, offY, offZ, quiet })
428
- );
429
- rpc.addMethod('readSaveData', name => this.omegga.readSaveData(name));
430
- rpc.addMethod('getSaveData', () => this.omegga.getSaveData());
431
- rpc.addMethod(
432
- 'loadSaveData',
433
- ({ data, offX = 0, offY = 0, offZ = 0, quiet = false }) =>
434
- this.omegga.loadSaveData(data, { offX, offY, offZ, quiet })
435
- );
436
- rpc.addMethod('changeMap', map => this.omegga.changeMap(map));
437
- rpc.addMethod('unload', () => this.unload());
438
- rpc.addMethod('reload', async () => {
439
- await this.unload();
440
- await this.load();
441
- });
442
-
443
- // player related operations
444
- const addPlayerMethod = name =>
445
- rpc.addMethod(`player.${name}`, player =>
446
- this.omegga.getPlayer(player)?.[name]()
447
- );
448
- rpc.addMethod('player.get', target => {
449
- let player = this.omegga.getPlayer(target);
450
- return player && { ...player, host: player.isHost() };
451
- });
452
- addPlayerMethod('getRoles');
453
- addPlayerMethod('getPermissions');
454
- addPlayerMethod('getNameColor');
455
- addPlayerMethod('getPosition');
456
- addPlayerMethod('getGhostBrick');
457
- addPlayerMethod('getPaint');
458
- addPlayerMethod('getTemplateBounds');
459
- addPlayerMethod('getTemplateBoundsData');
460
- rpc.addMethod(
461
- 'player.loadDataAtGhostBrick',
462
- ({
463
- target,
464
- data,
465
- rotate = true,
466
- offX = 0,
467
- offY = 0,
468
- offZ = 0,
469
- quiet = false,
470
- }) =>
471
- this.omegga
472
- .getPlayer(target)
473
- ?.loadDataAtGhostBrick(data, { rotate, offX, offY, offZ, quiet })
474
- );
475
-
476
- // plugin related operations
477
- rpc.addMethod('plugin.get', async name => {
478
- const plugin = this.omegga.pluginLoader.plugins.find(
479
- p => p.getName() === name
480
- );
481
-
482
- if (plugin) {
483
- return {
484
- name,
485
- documentation: plugin.getDocumentation(),
486
- loaded: plugin.isLoaded(),
487
- };
488
- } else {
489
- return null;
490
- }
491
- });
492
-
493
- rpc.addMethod('plugin.emit', async ([name, event, ...args]) => {
494
- const plugin = this.omegga.pluginLoader.plugins.find(
495
- p => p.getName() === name
496
- );
497
-
498
- if (plugin) {
499
- return plugin.emitPlugin(event, this.getName(), args);
500
- } else {
501
- return null;
502
- }
503
- });
504
- }
505
-
506
- // emit a custom plugin event
507
- async emitPlugin(event, from, args) {
508
- return await this.emit('plugin:emit', [event, from, ...args]);
509
- }
510
-
511
- // emit a message to the plugin via the jsonrpc client and expect a response
512
- emit(type, arg) {
513
- return this.#rpc.request(type, arg);
514
- }
515
-
516
- // emit a message to the plugin via the jsonrpc client, don't expect a response
517
- notify(type, arg) {
518
- try {
519
- this.#rpc.notify(type, arg);
520
- } catch (e) {
521
- // this only happens if the RPC library is hitting some issues - probably redundant
522
- }
523
- }
524
- }
525
-
526
- module.exports = RpcPlugin;
@@ -1,117 +0,0 @@
1
- const { EventEmitter } = require('events');
2
-
3
- const LogWrangler = require('../../logWrangler.js');
4
- const Player = require('../../player.js');
5
- const Omegga = require('../../server.js');
6
- const commandInjector = require('../../commandInjector.js');
7
-
8
- // bootstrap the proxy with initial omegga data
9
- const bootstrap = omegga => ({
10
- 'plugin:players:raw': [omegga.players.map(p => p.raw())],
11
- bootstrap: [
12
- {
13
- host: Object.freeze({ ...omegga.host }),
14
- version: omegga.version,
15
- verbose: global.VERBOSE,
16
- savePath: omegga.savePath,
17
- path: omegga.path,
18
- configPath: omegga.configPath,
19
- starting: omegga.starting,
20
- started: omegga.started,
21
- config: omegga.config,
22
- currentMap: omegga.currentMap,
23
- },
24
- ],
25
- });
26
-
27
- // prototypes that can be directly stolen from omegga
28
- const STEAL_PROTOTYPES = [
29
- 'broadcast',
30
- 'whisper',
31
- 'getPlayer',
32
- 'getPlayers',
33
- 'findPlayerByName',
34
- 'getHostId',
35
- 'clearBricks',
36
- 'clearAllBricks',
37
- 'loadBricks',
38
- 'saveBricks',
39
- 'getSavePath',
40
- 'getSaves',
41
- 'writeSaveData',
42
- 'readSaveData',
43
- 'loadSaveData',
44
- 'getSaveData',
45
- 'getRoleSetup',
46
- 'getRoleAssignments',
47
- 'getBanList',
48
- 'getNameCache',
49
- 'changeMap',
50
- ];
51
-
52
- // this is a "soft" omegga
53
- // it is built to mimic the core omegga
54
- // it does not provide direct write access to
55
- class ProxyOmegga extends EventEmitter {
56
- _tempSaveCounter = 0;
57
- _tempSavePrefix = 'omegga_plugin_temp_';
58
-
59
- constructor(exec) {
60
- super();
61
- this.setMaxListeners(Infinity);
62
-
63
- this.writeln = exec;
64
-
65
- this.version = -1;
66
-
67
- this.players = [];
68
-
69
- // log wrangler wrangles logs... it reads brickadia logs and clumps them together
70
- this.logWrangler = new LogWrangler(this);
71
- this.on('line', this.logWrangler.callback);
72
- this.addMatcher = this.logWrangler.addMatcher;
73
- this.addWatcher = this.logWrangler.addWatcher;
74
- this.watchLogArray = this.logWrangler.watchLogArray;
75
- this.watchLogChunk = this.logWrangler.watchLogChunk;
76
-
77
- // inject commands
78
- commandInjector(this, this.logWrangler);
79
-
80
- // blanket apply fields
81
- this.once('bootstrap', data => {
82
- for (const key in data) {
83
- this[key] = data[key];
84
- }
85
- });
86
-
87
- // data synchronization
88
- this.on('host', host => (this.host = host));
89
- this.on('version', version => (this.version = version));
90
-
91
- // create players from raw constructor data
92
- this.on(
93
- 'plugin:players:raw',
94
- players => (this.players = players.map(p => new Player(this, ...p)))
95
- );
96
-
97
- this.on('start', ({ map }) => {
98
- this.started = true;
99
- this.starting = false;
100
- this.currentMap = map;
101
- });
102
- this.on('exit', () => {
103
- this.started = false;
104
- this.starting = false;
105
- });
106
- this.on('mapchange', ({ map }) => {
107
- this.currentMap = map;
108
- });
109
- }
110
- }
111
-
112
- // copy prototypes from core omegga to the proxy omegga
113
- for (const fn of STEAL_PROTOTYPES) {
114
- ProxyOmegga.prototype[fn] = Omegga.prototype[fn];
115
- }
116
-
117
- module.exports = { ProxyOmegga, bootstrap };