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,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const map_1 = require("../../util/map");
4
+ const mapChange = omegga => {
5
+ // LogLoad: Took 0.396473 seconds to LoadMap(/Game/Maps/Plate/Plate)
6
+ const mapChangeRegExp = /^Took .+ seconds to LoadMap\((?<map>.+)\)$/;
7
+ return {
8
+ // listen for commands messages
9
+ pattern(_line, logMatch) {
10
+ // line is not generic console log
11
+ if (!logMatch)
12
+ return;
13
+ const { generator, data } = logMatch.groups;
14
+ // check if log is a world log
15
+ if (generator !== 'LogLoad')
16
+ return;
17
+ // match the log to the map change finish pattern
18
+ const matchChange = data.match(mapChangeRegExp);
19
+ if (matchChange && matchChange.groups && matchChange.groups.map) {
20
+ return (0, map_1.brn2n)(matchChange.groups.map);
21
+ }
22
+ return null;
23
+ },
24
+ // when there's a match, emit the comand event
25
+ callback(map) {
26
+ // if the only argument is an empty string, ignore it
27
+ if (map) {
28
+ // dont emit on startup or when there is no current map
29
+ if (omegga.started && omegga.currentMap)
30
+ omegga.emit('mapchange', { map });
31
+ // set omegga's current map
32
+ omegga.currentMap = map;
33
+ }
34
+ },
35
+ };
36
+ };
37
+ exports.default = mapChange;
38
+ //# sourceMappingURL=mapChange.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapChange.js","sourceRoot":"","sources":["../../../src/omegga/matchers/mapChange.ts"],"names":[],"mappings":";;AAAA,wCAAkC;AAGlC,MAAM,SAAS,GAA2B,MAAM,CAAC,EAAE;IACjD,oEAAoE;IACpE,MAAM,eAAe,GAAG,4CAA4C,CAAC;IAErE,OAAO;QACL,+BAA+B;QAC/B,OAAO,CAAC,KAAK,EAAE,QAAQ;YACrB,kCAAkC;YAClC,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAEtB,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC5C,8BAA8B;YAC9B,IAAI,SAAS,KAAK,SAAS;gBAAE,OAAO;YAEpC,iDAAiD;YACjD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YAChD,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE;gBAC/D,OAAO,IAAA,WAAK,EAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aACtC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QACD,8CAA8C;QAC9C,QAAQ,CAAC,GAAG;YACV,qDAAqD;YACrD,IAAI,GAAG,EAAE;gBACP,uDAAuD;gBACvD,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,UAAU;oBACrC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;gBAEpC,2BAA2B;gBAC3B,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC;aACzB;QACH,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type Omegga from "../server";
2
+ export declare type MatchGenerator<T> = (omegga: Omegga) => {
3
+ pattern(line: string, logMatch: RegExpMatchArray): T;
4
+ callback(match: T): void;
5
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/omegga/matchers/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,kBAAuB;AACzC,oBAAY,cAAc,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK;IAClD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAG,CAAC,CAAC;IACrD,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;CAC1B,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const server_1 = __importDefault(require("../server"));
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/omegga/matchers/types.ts"],"names":[],"mappings":";;;;;AAAA,uDAAyC"}
@@ -0,0 +1,3 @@
1
+ import { MatchGenerator } from './types';
2
+ declare const version: MatchGenerator<number>;
3
+ export default version;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../src/omegga/matchers/version.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,QAAA,MAAM,OAAO,EAAE,cAAc,CAAC,MAAM,CA2CnC,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const fs_1 = __importDefault(require("fs"));
7
+ const path_1 = __importDefault(require("path"));
8
+ const softconfig_1 = __importDefault(require("../../softconfig"));
9
+ const version = omegga => {
10
+ const versionRegExp = /^Using libcurl (?<curlversion>.+)$/;
11
+ let version;
12
+ return {
13
+ pattern(_line, logMatch) {
14
+ var _a, _b;
15
+ // if the version has already been found - ignore this matcher
16
+ if (version || !logMatch)
17
+ return;
18
+ const { generator, data } = logMatch.groups;
19
+ // check if log is a command log
20
+ if (generator !== 'LogInit')
21
+ return;
22
+ const match = data.match(versionRegExp);
23
+ const branch = (_b = (_a = omegga.config.server) === null || _a === void 0 ? void 0 : _a.branch) !== null && _b !== void 0 ? _b : 'main-server';
24
+ const configPath = path_1.default.join(softconfig_1.default.BRICKADIA_INSTALLS, branch.split(':')[0] + '.json');
25
+ // base game version on curl version
26
+ if (match) {
27
+ try {
28
+ version = Number(JSON.parse(fs_1.default.readFileSync(configPath).toString()).version.substring(2));
29
+ }
30
+ catch (e) {
31
+ console.error('!>'.red, 'Unable to read branch config file: ', e);
32
+ version = -1;
33
+ }
34
+ return version;
35
+ }
36
+ },
37
+ // when there's a match, emit the chat message event
38
+ callback(version) {
39
+ omegga.emit('version', version);
40
+ omegga.version = version;
41
+ },
42
+ };
43
+ };
44
+ exports.default = version;
45
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../../src/omegga/matchers/version.ts"],"names":[],"mappings":";;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,kEAAsC;AAGtC,MAAM,OAAO,GAA2B,MAAM,CAAC,EAAE;IAC/C,MAAM,aAAa,GAAG,oCAAoC,CAAC;IAC3D,IAAI,OAAe,CAAC;IAEpB,OAAO;QACL,OAAO,CAAC,KAAK,EAAE,QAAQ;;YACrB,8DAA8D;YAC9D,IAAI,OAAO,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAEjC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC;YAE5C,gCAAgC;YAChC,IAAI,SAAS,KAAK,SAAS;gBAAE,OAAO;YAEpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAExC,MAAM,MAAM,GAAG,MAAA,MAAA,MAAM,CAAC,MAAM,CAAC,MAAM,0CAAE,MAAM,mCAAI,aAAa,CAAC;YAC7D,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAC1B,oBAAU,CAAC,kBAAkB,EAC7B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAC/B,CAAC;YAEF,oCAAoC;YACpC,IAAI,KAAK,EAAE;gBACT,IAAI;oBACF,OAAO,GAAG,MAAM,CACd,IAAI,CAAC,KAAK,CACR,YAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CACvC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CACvB,CAAC;iBACH;gBAAC,OAAO,CAAC,EAAE;oBACV,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,qCAAqC,EAAE,CAAC,CAAC,CAAC;oBAClE,OAAO,GAAG,CAAC,CAAC,CAAC;iBACd;gBACD,OAAO,OAAO,CAAC;aAChB;QACH,CAAC;QACD,oDAAoD;QACpD,QAAQ,CAAC,OAAO;YACd,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAChC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;QAC3B,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,OAAO,CAAC"}
@@ -0,0 +1,71 @@
1
+ import { WriteSaveObject } from 'brs-js';
2
+ import { IBrickBounds } from "../util/brick";
3
+ import type { OmeggaPlayer, OmeggaLike } from "../plugin";
4
+ declare class Player implements OmeggaPlayer {
5
+ #private;
6
+ name: string;
7
+ id: string;
8
+ controller: string;
9
+ state: string;
10
+ static getRoles(omegga: OmeggaLike, id: string): readonly string[];
11
+ static getPermissions(omegga: OmeggaLike, id: string): Record<string, boolean>;
12
+ static kill(omegga: OmeggaLike, target: string | OmeggaPlayer): void;
13
+ static damage(omegga: OmeggaLike, target: string | OmeggaPlayer, amount: number): void;
14
+ static heal(omegga: OmeggaLike, target: string | OmeggaPlayer, amount: number): void;
15
+ static giveItem(omegga: OmeggaLike, target: string | OmeggaPlayer, item: string): void;
16
+ static takeItem(omegga: OmeggaLike, target: string | OmeggaPlayer, item: string): void;
17
+ /**
18
+ * players are not to be constructed
19
+ * @constructor
20
+ * @param omegga Omegga Instance
21
+ * @param name Player Name
22
+ * @param id Player Id
23
+ * @param controller Player Controller
24
+ * @param state Player State
25
+ */
26
+ constructor(omegga: OmeggaLike, name: string, id: string, controller: string, state: string);
27
+ getOmegga(): OmeggaLike;
28
+ clone(): OmeggaPlayer;
29
+ raw(): [string, string, string, string];
30
+ isHost(): boolean;
31
+ clearBricks(quiet?: boolean): void;
32
+ getRoles(): readonly string[];
33
+ getPermissions(): Record<string, boolean>;
34
+ getNameColor(): string;
35
+ getPawn(): Promise<string>;
36
+ getPosition(): Promise<[number, number, number]>;
37
+ getGhostBrick(): Promise<{
38
+ targetGrid: string;
39
+ location: number[];
40
+ orientation: string;
41
+ }>;
42
+ getPaint(): Promise<{
43
+ materialIndex: string;
44
+ materialAlpha: string;
45
+ material: string;
46
+ color: number[];
47
+ }>;
48
+ isCrouched(pawn?: string): Promise<boolean>;
49
+ isDead(pawn?: string): Promise<boolean>;
50
+ getTemplateBounds(): Promise<IBrickBounds>;
51
+ getTemplateBoundsData(): Promise<import("brs-js").ReadSaveObject>;
52
+ loadBricks(saveName: string): void;
53
+ loadSaveData(saveData: WriteSaveObject, { offX, offY, offZ }?: {
54
+ offX?: number;
55
+ offY?: number;
56
+ offZ?: number;
57
+ }): Promise<void>;
58
+ loadDataAtGhostBrick(saveData: WriteSaveObject, { rotate, offX, offY, offZ, quiet }?: {
59
+ rotate?: boolean;
60
+ offX?: number;
61
+ offY?: number;
62
+ offZ?: number;
63
+ quiet?: boolean;
64
+ }): Promise<void>;
65
+ kill(): void;
66
+ damage(amount: number): void;
67
+ heal(amount: number): void;
68
+ giveItem(item: string): void;
69
+ takeItem(item: string): void;
70
+ }
71
+ export default Player;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"player.d.ts","sourceRoot":"","sources":["../../src/omegga/player.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AAEnC,OAAO,EAAS,KAAK,IAAI,UAAU,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAS,eAAe,EAAE,MAAM,QAAQ,CAAC;AAsChD,cAAM,MAAM;;IAEV,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IAEd;;;;;;;;OAQG;gBAED,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM;IASf;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,KAAK,IAAI,MAAM;IAUf;;OAEG;IACH,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IAIvC;;OAEG;IACH,MAAM,IAAI,OAAO;IAIjB;;OAEG;IACH,WAAW,CAAC,KAAK,UAAQ;IAIzB;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE;IAK9D;;OAEG;IACH,QAAQ,IAAI,SAAS,MAAM,EAAE;IAI7B;;;;;OAKG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAuF1E;;;OAGG;IACH,cAAc;IAId;;;OAGG;IACH,YAAY;IAgCZ;;;OAGG;IACG,WAAW;IA+CjB;;;OAGG;IACG,aAAa;;;;;IA6CnB;;OAEG;IACG,QAAQ;;;;;;IAiEd;;;OAGG;IACG,iBAAiB;IAkEvB;;;OAGG;IACG,qBAAqB;IAyB3B;;;OAGG;IACG,oBAAoB,CACxB,QAAQ,EAAE,eAAe,EACzB,EAAE,MAAa,EAAE,IAAQ,EAAE,IAAQ,EAAE,IAAQ,EAAE,KAAY,EAAE;;;;;;KAAK;CAwCrE;AAID,eAAe,MAAM,CAAC"}
@@ -0,0 +1,442 @@
1
+ "use strict";
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ 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");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ 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");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ var _Player_omegga;
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const util_1 = require("../util/");
16
+ const DEFAULT_PERMS = {
17
+ moderator: [
18
+ 'Bricks.ClearAll',
19
+ 'Minigame.AlwaysLeave',
20
+ 'Players.Kick',
21
+ 'Players.TPInMinigame',
22
+ 'Players.TPOthers',
23
+ 'Self.Ghost',
24
+ ],
25
+ admin: [
26
+ 'Bricks.ClearAll',
27
+ 'Bricks.ClearOwn',
28
+ 'Bricks.IgnoreTrust',
29
+ 'Bricks.Load',
30
+ 'Map.Environment',
31
+ 'Minigame.AlwaysEdit',
32
+ 'Minigame.AlwaysLeave',
33
+ 'Minigame.AlwaysSwitchTeam',
34
+ 'Minigame.MakeDefault',
35
+ 'Minigame.MakePersistent',
36
+ 'Minigame.UseAllBricks',
37
+ 'Players.Ban',
38
+ 'Players.Kick',
39
+ 'Players.TPInMinigame',
40
+ 'Players.TPOthers',
41
+ 'Roles.Grant',
42
+ 'Self.Ghost',
43
+ 'Server.ChangeRoles',
44
+ 'Server.ChangeSettings',
45
+ 'Server.FreezeCamera',
46
+ 'Tools.Selector.BypassLimits',
47
+ 'Tools.Selector.BypassTimeouts',
48
+ ],
49
+ };
50
+ class Player {
51
+ /**
52
+ * players are not to be constructed
53
+ * @constructor
54
+ * @param omegga Omegga Instance
55
+ * @param name Player Name
56
+ * @param id Player Id
57
+ * @param controller Player Controller
58
+ * @param state Player State
59
+ */
60
+ constructor(omegga, name, id, controller, state) {
61
+ _Player_omegga.set(this, void 0);
62
+ __classPrivateFieldSet(this, _Player_omegga, omegga, "f");
63
+ this.name = name;
64
+ this.id = id;
65
+ this.controller = controller;
66
+ this.state = state;
67
+ }
68
+ static getRoles(omegga, id) {
69
+ const data = omegga.getRoleAssignments().savedPlayerRoles[id];
70
+ return Object.freeze(data && data.roles ? data.roles : []);
71
+ }
72
+ static getPermissions(omegga, id) {
73
+ const { roles, defaultRole } = omegga.getRoleSetup();
74
+ // if the player is the host, the player has every permission
75
+ if (omegga.host.id === id) {
76
+ return Object.freeze(Object.fromEntries([].concat(defaultRole.permissions.map(p => [p.name, true]),
77
+ // sometimes the default role does not have every permission listed
78
+ ...roles.map(r => r.permissions.map(p => [p.name, true])))));
79
+ }
80
+ // get the player's roles
81
+ const playerRoles = Player.getRoles(omegga, id).map(r => r.toLowerCase());
82
+ // default player permissions
83
+ const permissions = {
84
+ 'Bricks.ClearAll': false,
85
+ 'Bricks.ClearOwn': true,
86
+ 'Bricks.Delete': true,
87
+ 'Bricks.Edit': true,
88
+ 'Bricks.IgnoreTrust': false,
89
+ 'Bricks.Paint': true,
90
+ 'Bricks.Place': true,
91
+ 'BricksItems.Spawn': true,
92
+ 'Map.Change': false,
93
+ 'Map.Environment': false,
94
+ 'Map.SetSpawn': false,
95
+ 'Minigame.AlwaysEdit': false,
96
+ 'Minigame.AlwaysLeave': false,
97
+ 'Minigame.AlwaysSwitchTeam': false,
98
+ 'Minigame.Create': true,
99
+ 'Minigame.MakePersistent': false,
100
+ 'Minigame.UseAllBricks': false,
101
+ 'Players.Ban': false,
102
+ 'Players.TPInMinigame': false,
103
+ 'Players.TPOthers': false,
104
+ 'Players.TPSelf': true,
105
+ 'Roles.Grant': false,
106
+ 'Self.Flashlight': true,
107
+ 'Self.Fly': true,
108
+ 'Self.FreezeCamera': false,
109
+ 'Self.Ghost': false,
110
+ 'Self.Sprint': true,
111
+ 'Self.Suicide': true,
112
+ 'Tools.Selector.Use': true,
113
+ };
114
+ // apply all permissions from default role
115
+ for (const p of defaultRole.permissions) {
116
+ // technically this can never be Unchanged so it's always on enabled or allowed
117
+ permissions[p.name] =
118
+ p.state === 'Unchanged' ? permissions[p.name] : p.state === 'Allowed';
119
+ }
120
+ // loop through all the roles
121
+ for (const role of roles) {
122
+ // ignore ones the player does not have
123
+ if (!playerRoles.includes(role.name.toLowerCase()))
124
+ continue;
125
+ const defaultPerms = DEFAULT_PERMS[role.name.toLowerCase()] || [];
126
+ // iterate through default permissions
127
+ for (const perm of defaultPerms) {
128
+ // if they are not overriden, set it to true
129
+ if (!role.permissions.find(r => r.name === perm))
130
+ permissions[perm] = true;
131
+ }
132
+ // add all the new permissions the player now has
133
+ for (const p of role.permissions) {
134
+ // permission is disabled on forbidden, persisted on unchanged, and enabled on bEnabled or Allowed
135
+ permissions[p.name] =
136
+ p.state !== 'Forbidden' &&
137
+ (p.state === 'Unchanged'
138
+ ? permissions[p.name]
139
+ : permissions[p.name] || p.state === 'Allowed');
140
+ permissions[p.name] = permissions[p.name];
141
+ }
142
+ }
143
+ return Object.freeze(permissions);
144
+ }
145
+ static kill(omegga, target) {
146
+ if (typeof target === 'string')
147
+ target = omegga.getPlayer(target);
148
+ if (target === null || target === void 0 ? void 0 : target.name)
149
+ omegga.writeln(`Server.Players.Kill "${target === null || target === void 0 ? void 0 : target.name}"`);
150
+ }
151
+ static damage(omegga, target, amount) {
152
+ if (typeof target === 'string')
153
+ target = omegga.getPlayer(target);
154
+ if (amount === 0)
155
+ return;
156
+ if (target === null || target === void 0 ? void 0 : target.name)
157
+ omegga.writeln(`Server.Players.Damage "${target === null || target === void 0 ? void 0 : target.name}" ${amount}`);
158
+ }
159
+ static heal(omegga, target, amount) {
160
+ if (amount === 0)
161
+ return;
162
+ Player.damage(omegga, target, -amount);
163
+ }
164
+ static giveItem(omegga, target, item) {
165
+ if (typeof target === 'string')
166
+ target = omegga.getPlayer(target);
167
+ if (!item)
168
+ return;
169
+ if (target === null || target === void 0 ? void 0 : target.name)
170
+ omegga.writeln(`Server.Players.GiveItem "${target === null || target === void 0 ? void 0 : target.name}" ${item}`);
171
+ }
172
+ static takeItem(omegga, target, item) {
173
+ if (typeof target === 'string')
174
+ target = omegga.getPlayer(target);
175
+ if (!item)
176
+ return;
177
+ if (target === null || target === void 0 ? void 0 : target.name)
178
+ omegga.writeln(`Server.Players.RemoveItem "${target === null || target === void 0 ? void 0 : target.name}" ${item}`);
179
+ }
180
+ getOmegga() {
181
+ return __classPrivateFieldGet(this, _Player_omegga, "f");
182
+ }
183
+ clone() {
184
+ return new Player(__classPrivateFieldGet(this, _Player_omegga, "f"), this.name, this.id, this.controller, this.state);
185
+ }
186
+ raw() {
187
+ return [this.name, this.id, this.controller, this.state];
188
+ }
189
+ isHost() {
190
+ return __classPrivateFieldGet(this, _Player_omegga, "f").host.id === this.id;
191
+ }
192
+ clearBricks(quiet = false) {
193
+ __classPrivateFieldGet(this, _Player_omegga, "f").clearBricks(this.id, quiet);
194
+ }
195
+ getRoles() {
196
+ return Player.getRoles(__classPrivateFieldGet(this, _Player_omegga, "f"), this.id);
197
+ }
198
+ getPermissions() {
199
+ return Player.getPermissions(__classPrivateFieldGet(this, _Player_omegga, "f"), this.id);
200
+ }
201
+ getNameColor() {
202
+ const { roles, defaultRole, ownerRoleColor, bOwnerRoleHasColor } = __classPrivateFieldGet(this, _Player_omegga, "f").getRoleSetup();
203
+ // host check if host has host color
204
+ if (this.isHost() && bOwnerRoleHasColor)
205
+ return util_1.color.rgbToHex(ownerRoleColor);
206
+ // get the player's role
207
+ const playerRoles = this.getRoles().map(r => r.toLowerCase());
208
+ // only if the player actually has roles...
209
+ if (playerRoles.length > 0) {
210
+ // check the role list in reverse for the player's role (highest tier first)
211
+ const found = roles
212
+ .slice()
213
+ .reverse()
214
+ .find(role => role.bHasColor && playerRoles.includes(role.name.toLowerCase()));
215
+ if (found)
216
+ return util_1.color.rgbToHex(found.color);
217
+ }
218
+ return util_1.color.rgbToHex(defaultRole.bHasColor
219
+ ? defaultRole.color
220
+ : { r: 255, g: 255, b: 255, a: 255 });
221
+ }
222
+ async getPawn() {
223
+ // given a player controller, match the player's pawn
224
+ const pawnRegExp = new RegExp(`^(?<index>\\d+)\\) BP_PlayerController_C .+?PersistentLevel\\.${this.controller}\\.Pawn = BP_FigureV2_C'.+?:PersistentLevel.(?<pawn>BP_FigureV2_C_\\d+)'`);
225
+ // wait for the pawn watcher to return a pawn
226
+ const [{ groups: { pawn }, },] = await __classPrivateFieldGet(this, _Player_omegga, "f").watchLogChunk('GetAll BP_PlayerController_C Pawn Name=' + this.controller, pawnRegExp, { first: 'index', timeoutDelay: 500 });
227
+ return pawn;
228
+ }
229
+ async getPosition() {
230
+ // this is here because my text editor had weird syntax highlighting glitches when the other omeggas were replaced with this.#omegga...
231
+ // guess the code is "too new" :egg:
232
+ const omegga = __classPrivateFieldGet(this, _Player_omegga, "f");
233
+ // given a player controller, match the player's pawn
234
+ const pawnRegExp = new RegExp(`BP_PlayerController_C .+?PersistentLevel\\.${this.controller}\\.Pawn = BP_FigureV2_C'.+?:PersistentLevel.(?<pawn>BP_FigureV2_C_\\d+)'`);
235
+ // wait for the pawn watcher to return a pawn
236
+ const [{ groups: { pawn }, },] = await omegga.addWatcher(pawnRegExp, {
237
+ // request the pawn for this player's controller (should only be one)
238
+ exec: () => omegga.writeln(`GetAll BP_PlayerController_C Pawn Name=${this.controller}`),
239
+ timeoutDelay: 100,
240
+ });
241
+ // given a player's pawn, match the player's position
242
+ const posRegExp = new RegExp(`CapsuleComponent .+?PersistentLevel\\.${pawn}\\.CollisionCylinder\\.RelativeLocation = \\(X=(?<x>[\\d\\.-]+),Y=(?<y>[\\d\\.-]+),Z=(?<z>[\\d\\.-]+)\\)`);
243
+ // wait for the position promise
244
+ const [{ groups: { x, y, z }, },] = await omegga.addWatcher(posRegExp, {
245
+ // request the position for this player's pawn
246
+ exec: () => omegga.writeln(`GetAll SceneComponent RelativeLocation Name=CollisionCylinder Outer=${pawn}`),
247
+ timeoutDelay: 100,
248
+ });
249
+ // return the player's position as an array of numbers
250
+ return [Number(x), Number(y), Number(z)];
251
+ }
252
+ async getGhostBrick() {
253
+ const { controller } = this;
254
+ const ownerRegExp = /^(?<index>\d+)\) BrickGridPreviewActor (.+):PersistentLevel\.(?<actor>BrickGridPreviewActor_\d+)\.Owner = BP_PlayerController_C'(.+):PersistentLevel\.(?<controller>BP_PlayerController_C_\d+)'$/;
255
+ const transformParamsRegExp = /^(?<index>\d+)\) BrickGridPreviewActor (.+):PersistentLevel\.(?<actor>BrickGridPreviewActor_\d+)\.TransformParameters = \(TargetGrid=("(?<targetGrid>.+)"|None),Position=\(X=(?<x>.+),Y=(?<y>.+),Z=(?<z>.+)\),Orientation=(?<orientation>.+)\)$/;
256
+ const [owners, transformParams] = await Promise.all([
257
+ __classPrivateFieldGet(this, _Player_omegga, "f").watchLogChunk('GetAll BrickGridPreviewActor Owner', ownerRegExp, { first: 'index', timeoutDelay: 500 }),
258
+ __classPrivateFieldGet(this, _Player_omegga, "f").watchLogChunk('GetAll BrickGridPreviewActor TransformParameters', transformParamsRegExp, { first: 'index', timeoutDelay: 500 }),
259
+ ]);
260
+ // get BrickGridPreviewActor by controller
261
+ const owner = owners.find(owner => owner.groups.controller === controller);
262
+ if (!owner)
263
+ return;
264
+ const actor = owner.groups.actor;
265
+ // get transform parameters for the found actor
266
+ const transformParameters = transformParams.find(transformParameters => transformParameters.groups.actor === actor);
267
+ if (!transformParameters)
268
+ return;
269
+ return {
270
+ targetGrid: transformParameters.groups.targetGrid,
271
+ location: [
272
+ +transformParameters.groups.x,
273
+ +transformParameters.groups.y,
274
+ +transformParameters.groups.z,
275
+ ],
276
+ orientation: transformParameters.groups.orientation,
277
+ };
278
+ }
279
+ async getPaint() {
280
+ const { controller } = this;
281
+ const ownerRegExp = /^(?<index>\d+)\) BP_Item_PaintTool_C (.+):PersistentLevel\.(?<actor>BP_Item_PaintTool_C_\d+)\.Owner = BP_PlayerController_C'(.+):PersistentLevel\.(?<controller>BP_PlayerController_C_\d+)'$/;
282
+ const colorRegExp = /^(?<index>\d+)\) BP_Item_PaintTool_C (.+):PersistentLevel\.(?<actor>BP_Item_PaintTool_C_\d+)\.SelectedColor = \(B=(?<b>.+),G=(?<g>.+),R=(?<r>.+),A=(?<a>.+)\)$/;
283
+ const materialRegExp = /^(?<index>\d+)\) BP_Item_PaintTool_C (.+):PersistentLevel\.(?<actor>BP_Item_PaintTool_C_\d+)\.SelectedMaterialId = (?<materialIndex>\d+)$/;
284
+ const materialAlphaRegExp = /^(?<index>\d+)\) BP_Item_PaintTool_C (.+):PersistentLevel\.(?<actor>BP_Item_PaintTool_C_\d+)\.SelectedMaterialAlpha = (?<materialAlpha>\d+)$/;
285
+ const [owners, colorMatch, materialMatch, materialAlphaMatch] = await Promise.all([
286
+ __classPrivateFieldGet(this, _Player_omegga, "f").watchLogChunk('GetAll BP_Item_PaintTool_C Owner', ownerRegExp, { first: 'index', timeoutDelay: 500 }),
287
+ __classPrivateFieldGet(this, _Player_omegga, "f").watchLogChunk('GetAll BP_Item_PaintTool_C SelectedColor', colorRegExp, { first: 'index', timeoutDelay: 500 }),
288
+ __classPrivateFieldGet(this, _Player_omegga, "f").watchLogChunk('GetAll BP_Item_PaintTool_C SelectedMaterialId', materialRegExp, { first: 'index', timeoutDelay: 500 }),
289
+ __classPrivateFieldGet(this, _Player_omegga, "f").watchLogChunk('GetAll BP_Item_PaintTool_C SelectedMaterialAlpha', materialAlphaRegExp, { first: 'index', timeoutDelay: 500 }),
290
+ ]);
291
+ // get BrickGridPreviewActor by controller
292
+ const owner = owners.find(owner => owner.groups.controller === controller);
293
+ if (!owner)
294
+ return;
295
+ const actor = owner.groups.actor;
296
+ // get transform parameters for the found actor
297
+ const color = colorMatch.find(color => color.groups.actor === actor);
298
+ const material = materialMatch.find(material => material.groups.actor === actor);
299
+ const materialAlpha = materialAlphaMatch.find(materialAlpha => materialAlpha.groups.actor === actor);
300
+ if (!color || !material || !materialAlpha)
301
+ return;
302
+ const colorRaw = [+color.groups.r, +color.groups.g, +color.groups.b];
303
+ return {
304
+ materialIndex: material.groups.materialIndex,
305
+ materialAlpha: materialAlpha.groups.materialAlpha,
306
+ material: util_1.brick.BRICK_CONSTANTS.DEFAULT_MATERIALS[Number(material.groups.materialIndex)],
307
+ color: colorRaw,
308
+ };
309
+ }
310
+ async isCrouched(pawn) {
311
+ if (!pawn)
312
+ pawn = await this.getPawn();
313
+ const reg = /(?<index>\d+)\) BP_FigureV2_C .+?PersistentLevel\.(?<pawn>BP_FigureV2_C_\d+)\.bIsCrouched = (?<crouched>True|False)$/;
314
+ const resp = await __classPrivateFieldGet(this, _Player_omegga, "f").watchLogChunk('GetAll BP_FigureV2_C bIsCrouched Name=' + pawn, reg, { first: 'index', timeoutDelay: 500 });
315
+ const me = resp.find(r => r.groups.pawn === pawn);
316
+ if (!me)
317
+ return false;
318
+ return me.groups.crouched == 'True';
319
+ }
320
+ async isDead(pawn) {
321
+ if (!pawn)
322
+ pawn = await this.getPawn();
323
+ const reg = /(?<index>\d+)\) BP_FigureV2_C .+?PersistentLevel\.(?<pawn>BP_FigureV2_C_\d+)\.bIsDead = (?<dead>True|False)$/;
324
+ const resp = await __classPrivateFieldGet(this, _Player_omegga, "f").watchLogChunk('GetAll BP_FigureV2_C bIsDead Name=' + pawn, reg, { first: 'index', timeoutDelay: 500 });
325
+ const me = resp.find(r => r.groups.pawn === pawn);
326
+ if (!me)
327
+ return true;
328
+ return me.groups.dead == 'True';
329
+ }
330
+ async getTemplateBounds() {
331
+ const { controller } = this;
332
+ const brickTemplateRegExp = /^(?<index>\d+)\) BP_PlayerController_C (.+):PersistentLevel\.(?<controller>BP_PlayerController_C_\d+)\.TEMP_BrickTemplate_Server = BrickBuildingTemplate'(.+)Transient.(?<templateName>BrickBuildingTemplate_\d+)'$/;
333
+ const minBoundsRegExp = /^(?<index>\d+)\) BrickBuildingTemplate (.+)Transient\.(?<templateName>BrickBuildingTemplate_\d+)\.MinBounds = \(X=(?<x>.+),Y=(?<y>.+),Z=(?<z>.+)\)$/;
334
+ const maxBoundsRegExp = /^(?<index>\d+)\) BrickBuildingTemplate (.+)Transient\.(?<templateName>BrickBuildingTemplate_\d+)\.MaxBounds = \(X=(?<x>.+),Y=(?<y>.+),Z=(?<z>.+)\)$/;
335
+ const centerRegExp = /^(?<index>\d+)\) BrickBuildingTemplate (.+)Transient\.(?<templateName>BrickBuildingTemplate_\d+)\.Center = \(X=(?<x>.+),Y=(?<y>.+),Z=(?<z>.+)\)$/;
336
+ const [template, minBounds, maxBounds, centers] = await Promise.all([
337
+ __classPrivateFieldGet(this, _Player_omegga, "f").watchLogChunk(`GetAll BP_PlayerController_C TEMP_BrickTemplate_Server Name=${controller}`, brickTemplateRegExp, { first: 'index' }),
338
+ __classPrivateFieldGet(this, _Player_omegga, "f").watchLogChunk('GetAll BrickBuildingTemplate MinBounds', minBoundsRegExp, { first: 'index' }),
339
+ __classPrivateFieldGet(this, _Player_omegga, "f").watchLogChunk('GetAll BrickBuildingTemplate MaxBounds', maxBoundsRegExp, { first: 'index' }),
340
+ __classPrivateFieldGet(this, _Player_omegga, "f").watchLogChunk('GetAll BrickBuildingTemplate Center', centerRegExp, { first: 'index' }),
341
+ ]);
342
+ if (!template.length ||
343
+ !minBounds.length ||
344
+ !maxBounds.length ||
345
+ !centers.length)
346
+ return;
347
+ // get template name
348
+ const templateName = template[0].groups.templateName;
349
+ // find all values with matching template name
350
+ const minBound = minBounds.find(minBound => minBound.groups.templateName === templateName);
351
+ const maxBound = maxBounds.find(maxBound => maxBound.groups.templateName === templateName);
352
+ const center = centers.find(center => center.groups.templateName === templateName);
353
+ if (!minBound || !maxBound || !center)
354
+ return;
355
+ return {
356
+ minBound: [+minBound.groups.x, +minBound.groups.y, +minBound.groups.z],
357
+ maxBound: [+maxBound.groups.x, +maxBound.groups.y, +maxBound.groups.z],
358
+ center: [+center.groups.x, +center.groups.y, +center.groups.z],
359
+ };
360
+ }
361
+ async getTemplateBoundsData() {
362
+ const templateBounds = await this.getTemplateBounds();
363
+ if (!templateBounds)
364
+ return;
365
+ const saveData = await __classPrivateFieldGet(this, _Player_omegga, "f").getSaveData({
366
+ center: templateBounds.center,
367
+ extent: [
368
+ (templateBounds.maxBound[0] - templateBounds.minBound[0]) / 2,
369
+ (templateBounds.maxBound[1] - templateBounds.minBound[1]) / 2,
370
+ (templateBounds.maxBound[2] - templateBounds.minBound[2]) / 2,
371
+ ],
372
+ });
373
+ if (!saveData)
374
+ return;
375
+ // filter bricks outside the bounds
376
+ // no longer necessary thanks to Bricks.SaveRegion
377
+ /* saveData.bricks = (saveData.bricks as Brick[]).filter(brick => {
378
+ return brickUtils.checkBounds(
379
+ brick,
380
+ saveData.brick_assets,
381
+ templateBounds
382
+ );
383
+ }) as typeof saveData.bricks; */
384
+ if (saveData.bricks.length > 0) {
385
+ return saveData;
386
+ }
387
+ return undefined;
388
+ }
389
+ loadBricks(saveName) {
390
+ __classPrivateFieldGet(this, _Player_omegga, "f").loadBricksOnPlayer(saveName, this);
391
+ }
392
+ async loadSaveData(saveData, { offX = 0, offY = 0, offZ = 0 } = {}) {
393
+ await __classPrivateFieldGet(this, _Player_omegga, "f").loadSaveDataOnPlayer(saveData, this, {
394
+ offX,
395
+ offY,
396
+ offZ,
397
+ });
398
+ }
399
+ async loadDataAtGhostBrick(saveData, { rotate = true, offX = 0, offY = 0, offZ = 0, quiet = true } = {}) {
400
+ const ghostBrickData = await this.getGhostBrick();
401
+ if (!ghostBrickData || !saveData)
402
+ return;
403
+ // get bounds of the bricks
404
+ const bounds = util_1.brick.getBounds(saveData);
405
+ if (rotate) {
406
+ const orientation = util_1.brick.BRICK_CONSTANTS.orientationMap[ghostBrickData.orientation];
407
+ saveData.bricks = saveData.bricks.map(brick => util_1.brick.rotate(brick, orientation));
408
+ // rotate bounds, if we dont use the original bounds they are off by 1 sometimes >:(
409
+ bounds.minBound = util_1.brick.BRICK_CONSTANTS.translationTable[util_1.brick.d2o(...orientation)](bounds.minBound);
410
+ bounds.maxBound = util_1.brick.BRICK_CONSTANTS.translationTable[util_1.brick.d2o(...orientation)](bounds.maxBound);
411
+ bounds.center = util_1.brick.BRICK_CONSTANTS.translationTable[util_1.brick.d2o(...orientation)](bounds.center);
412
+ }
413
+ // calculate offset from bricks center to ghost brick center
414
+ const offset = bounds.center.map((center, index) => ghostBrickData.location[index] - center);
415
+ // load at offset location
416
+ await __classPrivateFieldGet(this, _Player_omegga, "f").loadSaveData(saveData, {
417
+ offX: offX + offset[0],
418
+ offY: offY + offset[1],
419
+ offZ: offZ + offset[2],
420
+ quiet,
421
+ });
422
+ }
423
+ kill() {
424
+ Player.kill(__classPrivateFieldGet(this, _Player_omegga, "f"), this);
425
+ }
426
+ damage(amount) {
427
+ Player.damage(__classPrivateFieldGet(this, _Player_omegga, "f"), this, amount);
428
+ }
429
+ heal(amount) {
430
+ Player.heal(__classPrivateFieldGet(this, _Player_omegga, "f"), this, amount);
431
+ }
432
+ giveItem(item) {
433
+ Player.giveItem(__classPrivateFieldGet(this, _Player_omegga, "f"), this, item);
434
+ }
435
+ takeItem(item) {
436
+ Player.takeItem(__classPrivateFieldGet(this, _Player_omegga, "f"), this, item);
437
+ }
438
+ }
439
+ _Player_omegga = new WeakMap();
440
+ global.Player = Player;
441
+ exports.default = Player;
442
+ //# sourceMappingURL=player.js.map