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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"player.js","sourceRoot":"","sources":["../../src/omegga/player.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import Omegga from "../server";
2
+ import { Plugin } from "../plugin";
3
+ export default class RpcPlugin extends Plugin {
4
+ #private;
5
+ messageCounter: number;
6
+ static canLoad(pluginPath: string): boolean;
7
+ static getFormat(): string;
8
+ getDocumentation(): import("../..").IPluginDocumentation;
9
+ constructor(pluginPath: string, omegga: Omegga);
10
+ isLoaded(): boolean;
11
+ isCommand(cmd: string): boolean;
12
+ load(): Promise<boolean>;
13
+ unload(): Promise<boolean>;
14
+ attachListeners(): void;
15
+ detachListeners(): void;
16
+ writeln(line: string): void;
17
+ kill(): Promise<void>;
18
+ eventPassthrough(type: string, ...args: any[]): void;
19
+ initRPC(): void;
20
+ emitPlugin(event: string, from: string, args: any[]): Promise<any>;
21
+ emit(type: string, arg?: any): PromiseLike<any>;
22
+ notify(type: string, arg?: any): void;
23
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin_jsonrpc_stdio.d.ts","sourceRoot":"","sources":["../../../src/omegga/plugin/plugin_jsonrpc_stdio.ts"],"names":[],"mappings":""}
@@ -0,0 +1,441 @@
1
+ "use strict";
2
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
5
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
+ };
7
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
8
+ if (kind === "m") throw new TypeError("Private method is not writable");
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
11
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ var _RpcPlugin_child, _RpcPlugin_rpc, _RpcPlugin_errInterface, _RpcPlugin_outInterface;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const child_process_1 = require("child_process");
19
+ const fs_1 = __importDefault(require("fs"));
20
+ const json_rpc_2_0_1 = require("json-rpc-2.0");
21
+ const path_1 = __importDefault(require("path"));
22
+ const readline_1 = __importDefault(require("readline"));
23
+ const server_1 = __importDefault(require("../server"));
24
+ const plugin_1 = require("../plugin");
25
+ const proxyOmegga_1 = require("./plugin_node_safe/proxyOmegga");
26
+ const logger_1 = __importDefault(require("../../logger"));
27
+ // TODO: check if version is compatible (v1 -> v2) from file
28
+ // TODO: write jsonrpc wrappers in a few languages, implement a few simple plugins
29
+ // TODO: languages: [ python, go ]
30
+ const MAIN_FILE = 'omegga_plugin';
31
+ const DOC_FILE = 'doc.json';
32
+ const PLUGIN_FILE = 'plugin.json';
33
+ class RpcPlugin extends plugin_1.Plugin {
34
+ constructor(pluginPath, omegga) {
35
+ super(pluginPath, omegga);
36
+ _RpcPlugin_child.set(this, void 0);
37
+ _RpcPlugin_rpc.set(this, void 0);
38
+ _RpcPlugin_errInterface.set(this, void 0);
39
+ _RpcPlugin_outInterface.set(this, void 0);
40
+ this.messageCounter = 0;
41
+ // TODO: validate documentation
42
+ this.documentation = plugin_1.Plugin.readJSON(path_1.default.join(pluginPath, DOC_FILE));
43
+ this.pluginConfig = plugin_1.Plugin.readJSON(path_1.default.join(pluginPath, PLUGIN_FILE));
44
+ this.pluginFile = path_1.default.join(pluginPath, MAIN_FILE);
45
+ this.eventPassthrough = this.eventPassthrough.bind(this);
46
+ this.commands = [];
47
+ this.initRPC();
48
+ }
49
+ // all RPC plugins require a main (binary) file and a doc file
50
+ static canLoad(pluginPath) {
51
+ return (fs_1.default.existsSync(path_1.default.join(pluginPath, MAIN_FILE)) &&
52
+ fs_1.default.existsSync(path_1.default.join(pluginPath, DOC_FILE)));
53
+ }
54
+ // websocket rpc plugin type
55
+ static getFormat() {
56
+ return 'jsonrpc_stdio';
57
+ }
58
+ // documentation is based on doc.json file
59
+ getDocumentation() {
60
+ return this.documentation;
61
+ }
62
+ isLoaded() {
63
+ return !!__classPrivateFieldGet(this, _RpcPlugin_child, "f") && !__classPrivateFieldGet(this, _RpcPlugin_child, "f").exitCode;
64
+ }
65
+ // determing if a command is registered
66
+ isCommand(cmd) {
67
+ return this.commands.includes(cmd);
68
+ }
69
+ // spawn the plugin as a child process
70
+ async load() {
71
+ var _a;
72
+ const name = this.getName();
73
+ const verbose = (...msg) => logger_1.default.verbose(name.underline, ...msg);
74
+ verbose('Load method invoked');
75
+ let frozen = true, timed = false;
76
+ this.commands = [];
77
+ // can't load the plugin if the child is still running
78
+ if (__classPrivateFieldGet(this, _RpcPlugin_child, "f")) {
79
+ verbose('Plugin already has child process');
80
+ return false;
81
+ }
82
+ let config;
83
+ try {
84
+ verbose('Getting plugin config');
85
+ config = await this.storage.getConfig();
86
+ }
87
+ catch (e) {
88
+ return false;
89
+ }
90
+ try {
91
+ if ((_a = this.pluginConfig) === null || _a === void 0 ? void 0 : _a.emitConfig) {
92
+ verbose('Emitting plugin config');
93
+ await fs_1.default.promises.writeFile(path_1.default.join(this.path, this.pluginConfig.emitConfig), JSON.stringify(config));
94
+ }
95
+ verbose('Spawning child process');
96
+ __classPrivateFieldSet(this, _RpcPlugin_child, (0, child_process_1.spawn)(this.pluginFile), "f");
97
+ __classPrivateFieldGet(this, _RpcPlugin_child, "f").stdin.setDefaultEncoding('utf8');
98
+ __classPrivateFieldSet(this, _RpcPlugin_outInterface, readline_1.default.createInterface({
99
+ input: __classPrivateFieldGet(this, _RpcPlugin_child, "f").stdout,
100
+ terminal: false,
101
+ }), "f");
102
+ __classPrivateFieldSet(this, _RpcPlugin_errInterface, readline_1.default.createInterface({
103
+ input: __classPrivateFieldGet(this, _RpcPlugin_child, "f").stderr,
104
+ terminal: false,
105
+ }), "f");
106
+ this.attachListeners();
107
+ }
108
+ catch (err) {
109
+ logger_1.default.errorp('error loading stdio rpc plugin', name.brightRed.underline, err);
110
+ await this.kill();
111
+ this.emitStatus();
112
+ return false;
113
+ }
114
+ return Promise.race([
115
+ (async () => {
116
+ try {
117
+ // get some initial information to create an omegga proxy
118
+ const initialData = (0, proxyOmegga_1.bootstrap)(this.omegga);
119
+ verbose('Sending initial data');
120
+ // send all of the mock events to the proxy omegga
121
+ for (const ev in initialData) {
122
+ // send some initial information
123
+ this.notify(ev, initialData[ev]);
124
+ }
125
+ verbose('Initializing event passthrough');
126
+ // pass events through
127
+ this.omegga.on('*', this.eventPassthrough);
128
+ try {
129
+ // tell the plugin to start
130
+ verbose('Waiting for plugin to start...');
131
+ const result = await this.emit('init', config);
132
+ verbose('Initialized with result:', result);
133
+ // plugins can return a result object
134
+ if (typeof result === 'object' && result) {
135
+ // if registeredCommands is in the results, register the provided strings as commands
136
+ const cmds = result.registeredCommands;
137
+ if (cmds &&
138
+ cmds instanceof Array &&
139
+ cmds.every(i => typeof i === 'string'))
140
+ this.commands = cmds;
141
+ }
142
+ }
143
+ catch (e) {
144
+ if (!e.message)
145
+ return;
146
+ logger_1.default.errorp(name.brightRed.underline, 'error starting: ', e);
147
+ }
148
+ // plugin is not frozen, resolve that it has loaded
149
+ frozen = false;
150
+ if (timed)
151
+ return;
152
+ this.emitStatus();
153
+ return true;
154
+ }
155
+ catch (e) {
156
+ if (timed)
157
+ return;
158
+ logger_1.default.errorp('error loading stdio rpc plugin', name.brightRed.underline, e);
159
+ await this.kill();
160
+ frozen = false;
161
+ this.emitStatus();
162
+ return false;
163
+ }
164
+ })(),
165
+ new Promise(resolve => {
166
+ // let user know if the child quit while launching
167
+ __classPrivateFieldGet(this, _RpcPlugin_child, "f").once('exit', () => {
168
+ if (!frozen || timed)
169
+ return;
170
+ verbose('Plugin exited during init');
171
+ frozen = false;
172
+ this.emitStatus();
173
+ resolve(false);
174
+ });
175
+ // check if the child is frozen (while true)
176
+ setTimeout(() => {
177
+ if (!frozen)
178
+ return;
179
+ logger_1.default.errorp('I appear to be unresponsive when starting (maybe I forgot to respond to start)', name.brightRed.underline);
180
+ this.kill();
181
+ timed = true;
182
+ this.emitStatus();
183
+ resolve(false);
184
+ }, 5000);
185
+ }),
186
+ ]);
187
+ }
188
+ // kill the child process after requesting it to stop
189
+ unload() {
190
+ if (!__classPrivateFieldGet(this, _RpcPlugin_child, "f") || __classPrivateFieldGet(this, _RpcPlugin_child, "f").exitCode) {
191
+ this.detachListeners();
192
+ this.emitStatus();
193
+ return Promise.resolve(true);
194
+ }
195
+ let frozen = true, timed = false;
196
+ const name = this.getName();
197
+ return Promise.race([
198
+ (async () => {
199
+ try {
200
+ // let the plugin know it's time to stop, if this error it's probably because the method was not implemented
201
+ try {
202
+ await this.emit('stop');
203
+ }
204
+ catch (e) {
205
+ // lazy developer - just implement stop please
206
+ }
207
+ await this.kill();
208
+ frozen = false;
209
+ if (timed)
210
+ return;
211
+ this.emitStatus();
212
+ this.commands = [];
213
+ return true;
214
+ }
215
+ catch (e) {
216
+ if (timed)
217
+ return;
218
+ logger_1.default.errorp('error unloading rpc plugin', name.brightRed.underline, e);
219
+ frozen = false;
220
+ this.emitStatus();
221
+ return false;
222
+ }
223
+ })(),
224
+ // this is wrapped in a promise for the freeze check
225
+ new Promise(resolve => {
226
+ // check if the child is frozen (while true)
227
+ setTimeout(() => {
228
+ if (!frozen)
229
+ return;
230
+ logger_1.default.errorp('I appear to be unresponsive when stopping (maybe I forgot to respond to stop)', name.brightRed.underline);
231
+ this.kill();
232
+ timed = true;
233
+ this.emitStatus();
234
+ resolve(true);
235
+ }, 5000);
236
+ }),
237
+ ]);
238
+ }
239
+ // attaches event listeners
240
+ attachListeners() {
241
+ const name = this.getName();
242
+ __classPrivateFieldGet(this, _RpcPlugin_outInterface, "f").on('line', line => {
243
+ try {
244
+ __classPrivateFieldGet(this, _RpcPlugin_rpc, "f").receiveAndSend(JSON.parse(line));
245
+ }
246
+ catch (e) {
247
+ logger_1.default.error(this.getName().brightRed.underline, '!>'.red, 'error parsing rpc data', e, line);
248
+ }
249
+ });
250
+ // stderr - print out the errors
251
+ __classPrivateFieldGet(this, _RpcPlugin_errInterface, "f").on('line', err => {
252
+ logger_1.default.error(name.brightRed.underline, '!>'.red, err);
253
+ });
254
+ __classPrivateFieldGet(this, _RpcPlugin_child, "f").on('error', () => this.kill());
255
+ __classPrivateFieldGet(this, _RpcPlugin_child, "f").on('close', () => this.kill());
256
+ __classPrivateFieldGet(this, _RpcPlugin_child, "f").on('exit', code => {
257
+ logger_1.default.errorp('!>'.red, 'rpc plugin', name.brightRed.underline, 'exited with code', code);
258
+ this.kill();
259
+ });
260
+ }
261
+ // removes previously attached event listeners
262
+ detachListeners() {
263
+ __classPrivateFieldGet(this, _RpcPlugin_outInterface, "f").removeAllListeners('line');
264
+ __classPrivateFieldGet(this, _RpcPlugin_errInterface, "f").removeAllListeners('line');
265
+ if (__classPrivateFieldGet(this, _RpcPlugin_child, "f")) {
266
+ __classPrivateFieldGet(this, _RpcPlugin_child, "f").removeAllListeners('exit');
267
+ __classPrivateFieldGet(this, _RpcPlugin_child, "f").removeAllListeners('close');
268
+ __classPrivateFieldGet(this, _RpcPlugin_child, "f").removeAllListeners('error');
269
+ }
270
+ }
271
+ // write a string to the child process
272
+ writeln(line) {
273
+ try {
274
+ if (__classPrivateFieldGet(this, _RpcPlugin_child, "f") && !__classPrivateFieldGet(this, _RpcPlugin_child, "f").exitCode)
275
+ __classPrivateFieldGet(this, _RpcPlugin_child, "f").stdin.write(line + '\n');
276
+ }
277
+ catch (e) {
278
+ // the child probably died... oops!
279
+ }
280
+ }
281
+ // forcibly kills the plugin
282
+ async kill() {
283
+ __classPrivateFieldGet(this, _RpcPlugin_rpc, "f").rejectAllPendingRequests('Plugin Terminated');
284
+ this.detachListeners();
285
+ this.omegga.off('*', this.eventPassthrough);
286
+ if (!__classPrivateFieldGet(this, _RpcPlugin_child, "f"))
287
+ return;
288
+ // create a promise for the exit of the process
289
+ const promise = new Promise(resolve => __classPrivateFieldGet(this, _RpcPlugin_child, "f").once('exit', resolve));
290
+ // kill the process
291
+ __classPrivateFieldGet(this, _RpcPlugin_child, "f").kill('SIGINT');
292
+ // ...kill it again just to make sure it's dead
293
+ (0, child_process_1.spawn)('kill', ['-9', __classPrivateFieldGet(this, _RpcPlugin_child, "f").pid + '']);
294
+ // wait for the process to exit
295
+ await promise;
296
+ __classPrivateFieldSet(this, _RpcPlugin_child, undefined, "f");
297
+ this.emitStatus();
298
+ }
299
+ eventPassthrough(type, ...args) {
300
+ if (!__classPrivateFieldGet(this, _RpcPlugin_child, "f"))
301
+ return;
302
+ this.notify(type, args);
303
+ }
304
+ // setup the JSONRPC communication
305
+ initRPC() {
306
+ const server = new json_rpc_2_0_1.JSONRPCServer();
307
+ const client = new json_rpc_2_0_1.JSONRPCClient(req => {
308
+ try {
309
+ this.writeln(JSON.stringify(req));
310
+ return Promise.resolve();
311
+ }
312
+ catch (error) {
313
+ return Promise.reject(error);
314
+ }
315
+ });
316
+ const rpc = (__classPrivateFieldSet(this, _RpcPlugin_rpc, new json_rpc_2_0_1.JSONRPCServerAndClient(server, client), "f"));
317
+ // plugin log generator function
318
+ const ezLog = (logFn, name, symbol) => (line) => console[logFn](name.underline, symbol, line);
319
+ const name = this.getName();
320
+ // server can output logs special formatting for stdout
321
+ rpc.addMethod('log', ezLog('log', name, '>>'.green));
322
+ rpc.addMethod('error', ezLog('error', name.brightRed, '!>'.red));
323
+ rpc.addMethod('info', ezLog('info', name, '#>'.blue));
324
+ rpc.addMethod('debug', ezLog('debug', name, '?>'.blue));
325
+ rpc.addMethod('warn', ezLog('warn', name.brightYellow, ':>'.yellow));
326
+ rpc.addMethod('trace', ezLog('trace', name, 'T>'.grey));
327
+ // plugin store interactions
328
+ rpc.addMethod('store.get', key => this.storage.get(key));
329
+ rpc.addMethod('store.set', ([key, value]) => this.storage.set(key, value));
330
+ rpc.addMethod('store.delete', key => this.storage.delete(key));
331
+ rpc.addMethod('store.wipe', () => this.storage.wipe());
332
+ rpc.addMethod('store.count', () => this.storage.count());
333
+ rpc.addMethod('store.keys', () => this.storage.keys());
334
+ // server can run console commands
335
+ rpc.addMethod('exec', line => this.omegga.writeln(line));
336
+ rpc.addMethod('writeln', line => this.omegga.writeln(line));
337
+ rpc.addMethod('broadcast', line => this.omegga.broadcast(line));
338
+ rpc.addMethod('whisper', ({ target, line }) => this.omegga.whisper(target, line));
339
+ rpc.addMethod('middlePrint', ({ target, line }) => this.omegga.middlePrint(target, line));
340
+ rpc.addMethod('getPlayers', () => this.omegga.getPlayers());
341
+ rpc.addMethod('getPlayerPosition', name => { var _a; return (_a = this.omegga.getPlayer(name)) === null || _a === void 0 ? void 0 : _a.getPosition(); }); // included for compatibility
342
+ rpc.addMethod('getAllPlayerPositions', () => this.omegga.getAllPlayerPositions());
343
+ rpc.addMethod('getEnvironmentPresets', () => this.omegga.getEnvironmentPresets());
344
+ rpc.addMethod('resetEnvironment', () => this.omegga.resetEnvironment());
345
+ rpc.addMethod('saveEnvironment', name => this.omegga.saveEnvironment(name));
346
+ rpc.addMethod('loadEnvironment', name => this.omegga.loadEnvironment(name));
347
+ rpc.addMethod('loadEnvironmentData', data => this.omegga.loadEnvironmentData(data));
348
+ rpc.addMethod('getServerStatus', () => this.omegga.getServerStatus());
349
+ rpc.addMethod('getMinigames', () => this.omegga.getMinigames());
350
+ rpc.addMethod('getMinigamePresets', () => this.omegga.getMinigamePresets());
351
+ rpc.addMethod('saveMinigame', ({ index, name }) => this.omegga.saveMinigame(index, name));
352
+ rpc.addMethod('loadMinigame', ({ name, owner }) => this.omegga.loadMinigame(name, owner));
353
+ rpc.addMethod('nextRoundMinigame', index => this.omegga.nextRoundMinigame(index));
354
+ rpc.addMethod('resetMinigame', index => this.omegga.resetMinigame(index));
355
+ rpc.addMethod('deleteMinigame', index => this.omegga.deleteMinigame(index));
356
+ rpc.addMethod('listMinigames', () => this.omegga.listMinigames());
357
+ rpc.addMethod('getHostId', () => this.omegga.getHostId());
358
+ rpc.addMethod('getRoleSetup', () => this.omegga.getRoleSetup());
359
+ rpc.addMethod('getBanList', () => this.omegga.getBanList());
360
+ rpc.addMethod('getSaves', () => this.omegga.getSaves());
361
+ rpc.addMethod('getSavePath', name => this.omegga.getSavePath(name));
362
+ rpc.addMethod('clearBricks', ({ target, quiet = false }) => this.omegga.clearBricks(target, quiet));
363
+ rpc.addMethod('clearAllBricks', quiet => this.omegga.clearAllBricks(quiet));
364
+ rpc.addMethod('saveBricks', name => this.omegga.saveBricks(name));
365
+ rpc.addMethod('loadBricks', ({ name, offX = 0, offY = 0, offZ = 0, quiet = false, }) => this.omegga.loadBricks(name, { offX, offY, offZ, quiet }));
366
+ rpc.addMethod('loadBricksOnPlayer', ({ name, player, offX = 0, offY = 0, offZ = 0, }) => this.omegga.loadBricksOnPlayer(name, player, { offX, offY, offZ }));
367
+ rpc.addMethod('readSaveData', name => this.omegga.readSaveData(name));
368
+ rpc.addMethod('getSaveData', () => this.omegga.getSaveData());
369
+ rpc.addMethod('loadSaveData', ({ data, offX = 0, offY = 0, offZ = 0, quiet = false, }) => this.omegga.loadSaveData(data, { offX, offY, offZ, quiet }));
370
+ rpc.addMethod('loadSaveDataOnPlayer', ({ data, player, offX = 0, offY = 0, offZ = 0, }) => this.omegga.loadSaveDataOnPlayer(data, player, { offX, offY, offZ }));
371
+ rpc.addMethod('changeMap', map => this.omegga.changeMap(map));
372
+ rpc.addMethod('unload', () => this.unload());
373
+ rpc.addMethod('reload', async () => {
374
+ await this.unload();
375
+ await this.load();
376
+ });
377
+ // player related operations
378
+ const addPlayerMethod = (name) => rpc.addMethod(`player.${name}`, player => { var _a; return (_a = this.omegga.getPlayer(player)) === null || _a === void 0 ? void 0 : _a[name](); });
379
+ rpc.addMethod('player.get', target => {
380
+ let player = this.omegga.getPlayer(target);
381
+ return player && Object.assign(Object.assign({}, player), { host: player.isHost() });
382
+ });
383
+ addPlayerMethod('getRoles');
384
+ addPlayerMethod('getPermissions');
385
+ addPlayerMethod('getNameColor');
386
+ addPlayerMethod('getPosition');
387
+ addPlayerMethod('getGhostBrick');
388
+ addPlayerMethod('getPaint');
389
+ addPlayerMethod('getTemplateBounds');
390
+ addPlayerMethod('getTemplateBoundsData');
391
+ rpc.addMethod('player.loadDataAtGhostBrick', ({ target, data, rotate = true, offX = 0, offY = 0, offZ = 0, quiet = false, }) => {
392
+ var _a;
393
+ return (_a = this.omegga
394
+ .getPlayer(target)) === null || _a === void 0 ? void 0 : _a.loadDataAtGhostBrick(data, { rotate, offX, offY, offZ, quiet });
395
+ });
396
+ rpc.addMethod('player.loadSaveData', ({ target, data, offX = 0, offY = 0, offZ = 0, }) => { var _a; return (_a = this.omegga.getPlayer(target)) === null || _a === void 0 ? void 0 : _a.loadSaveData(data, { offX, offY, offZ }); });
397
+ // plugin related operations
398
+ rpc.addMethod('plugin.get', async (name) => {
399
+ const plugin = this.omegga.pluginLoader.plugins.find(p => p.getName() === name);
400
+ if (plugin) {
401
+ return {
402
+ name,
403
+ documentation: plugin.getDocumentation(),
404
+ loaded: plugin.isLoaded(),
405
+ };
406
+ }
407
+ else {
408
+ return null;
409
+ }
410
+ });
411
+ rpc.addMethod('plugin.emit', async ([name, event, ...args]) => {
412
+ const plugin = this.omegga.pluginLoader.plugins.find(p => p.getName() === name);
413
+ if (plugin) {
414
+ return plugin.emitPlugin(event, this.getName(), args);
415
+ }
416
+ else {
417
+ return null;
418
+ }
419
+ });
420
+ }
421
+ // emit a custom plugin event
422
+ async emitPlugin(event, from, args) {
423
+ return await this.emit('plugin:emit', [event, from, ...args]);
424
+ }
425
+ // emit a message to the plugin via the jsonrpc client and expect a response
426
+ emit(type, arg) {
427
+ return __classPrivateFieldGet(this, _RpcPlugin_rpc, "f").request(type, arg);
428
+ }
429
+ // emit a message to the plugin via the jsonrpc client, don't expect a response
430
+ notify(type, arg) {
431
+ try {
432
+ __classPrivateFieldGet(this, _RpcPlugin_rpc, "f").notify(type, arg);
433
+ }
434
+ catch (e) {
435
+ // this only happens if the RPC library is hitting some issues - probably redundant
436
+ }
437
+ }
438
+ }
439
+ exports.default = RpcPlugin;
440
+ _RpcPlugin_child = new WeakMap(), _RpcPlugin_rpc = new WeakMap(), _RpcPlugin_errInterface = new WeakMap(), _RpcPlugin_outInterface = new WeakMap();
441
+ //# sourceMappingURL=plugin_jsonrpc_stdio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin_jsonrpc_stdio.js","sourceRoot":"","sources":["../../../src/omegga/plugin/plugin_jsonrpc_stdio.ts"],"names":[],"mappings":"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"}