omegga 0.1.83 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (463) hide show
  1. package/.vscode/settings.json +20 -0
  2. package/README.md +142 -62
  3. package/bin/omegga +10 -4
  4. package/dist/brickadia/config.d.ts +3 -0
  5. package/dist/brickadia/config.d.ts.map +1 -0
  6. package/dist/brickadia/config.js +61 -0
  7. package/dist/brickadia/config.js.map +1 -0
  8. package/dist/brickadia/presets.d.ts +65 -0
  9. package/dist/brickadia/presets.js +3 -0
  10. package/dist/brickadia/presets.js.map +1 -0
  11. package/dist/brickadia/server.d.ts +20 -0
  12. package/dist/brickadia/server.d.ts.map +1 -0
  13. package/dist/brickadia/server.js +188 -0
  14. package/dist/brickadia/server.js.map +1 -0
  15. package/dist/brickadia/types.d.ts +45 -0
  16. package/dist/brickadia/types.d.ts.map +1 -0
  17. package/dist/brickadia/types.js +3 -0
  18. package/dist/brickadia/types.js.map +1 -0
  19. package/dist/cli/auth.d.ts +20 -0
  20. package/dist/cli/auth.d.ts.map +1 -0
  21. package/dist/cli/auth.js +115 -0
  22. package/dist/cli/auth.js.map +1 -0
  23. package/dist/cli/config.d.ts +10 -0
  24. package/dist/cli/config.d.ts.map +1 -0
  25. package/dist/cli/config.js +72 -0
  26. package/dist/cli/config.js.map +1 -0
  27. package/dist/cli/index.d.ts +20 -0
  28. package/dist/cli/index.d.ts.map +1 -0
  29. package/dist/cli/index.js +15 -0
  30. package/dist/cli/index.js.map +1 -0
  31. package/dist/cli/installer.d.ts +1 -0
  32. package/dist/cli/installer.d.ts.map +1 -0
  33. package/dist/cli/installer.js +55 -0
  34. package/dist/cli/installer.js.map +1 -0
  35. package/dist/cli/plugin.d.ts +11 -0
  36. package/dist/cli/plugin.d.ts.map +1 -0
  37. package/dist/cli/plugin.js +596 -0
  38. package/dist/cli/plugin.js.map +1 -0
  39. package/dist/cli/terminal.d.ts +34 -0
  40. package/dist/cli/terminal.d.ts.map +1 -0
  41. package/dist/cli/terminal.js +395 -0
  42. package/dist/cli/terminal.js.map +1 -0
  43. package/dist/config/authorizer.d.ts +2 -0
  44. package/dist/config/authorizer.d.ts.map +1 -0
  45. package/dist/config/authorizer.js +38 -0
  46. package/dist/config/authorizer.js.map +1 -0
  47. package/dist/config/formats/format_js.d.ts +3 -0
  48. package/dist/config/formats/format_js.d.ts.map +1 -0
  49. package/dist/config/formats/format_js.js +10 -0
  50. package/dist/config/formats/format_js.js.map +1 -0
  51. package/dist/config/formats/format_yml.d.ts +3 -0
  52. package/dist/config/formats/format_yml.d.ts.map +1 -0
  53. package/dist/config/formats/format_yml.js +14 -0
  54. package/dist/config/formats/format_yml.js.map +1 -0
  55. package/dist/config/index.d.ts +18 -0
  56. package/dist/config/index.d.ts.map +1 -0
  57. package/dist/config/index.js +86 -0
  58. package/dist/config/index.js.map +1 -0
  59. package/dist/config/reader.d.ts +3 -0
  60. package/dist/config/reader.d.ts.map +1 -0
  61. package/dist/config/reader.js +30 -0
  62. package/dist/config/reader.js.map +1 -0
  63. package/dist/config/types.d.ts +37 -0
  64. package/dist/config/types.d.ts.map +1 -0
  65. package/dist/config/types.js +3 -0
  66. package/dist/config/types.js.map +1 -0
  67. package/dist/config/validator.d.ts +6 -0
  68. package/dist/config/validator.d.ts.map +1 -0
  69. package/dist/config/validator.js +26 -0
  70. package/dist/config/validator.js.map +1 -0
  71. package/dist/config/writer.d.ts +3 -0
  72. package/dist/config/writer.d.ts.map +1 -0
  73. package/dist/config/writer.js +25 -0
  74. package/dist/config/writer.js.map +1 -0
  75. package/dist/index.d.ts +22 -0
  76. package/dist/index.js +55 -0
  77. package/dist/index.js.map +1 -0
  78. package/dist/info/default_commands.json +28 -0
  79. package/dist/lib.d.ts +21 -0
  80. package/dist/lib.d.ts.map +1 -0
  81. package/dist/lib.js +54 -0
  82. package/dist/lib.js.map +1 -0
  83. package/dist/logger.d.ts +41 -0
  84. package/dist/logger.js +67 -0
  85. package/dist/logger.js.map +1 -0
  86. package/dist/main.d.ts +1 -0
  87. package/dist/main.d.ts.map +1 -0
  88. package/dist/main.js +284 -0
  89. package/dist/main.js.map +1 -0
  90. package/dist/omegga/auth.d.ts +6 -0
  91. package/dist/omegga/auth.d.ts.map +1 -0
  92. package/dist/omegga/auth.js +139 -0
  93. package/dist/omegga/auth.js.map +1 -0
  94. package/dist/omegga/commandInjector.d.ts +35 -0
  95. package/dist/omegga/commandInjector.d.ts.map +1 -0
  96. package/dist/omegga/commandInjector.js +234 -0
  97. package/dist/omegga/commandInjector.js.map +1 -0
  98. package/dist/omegga/index.d.ts +7 -0
  99. package/dist/omegga/index.d.ts.map +1 -0
  100. package/dist/omegga/index.js +43 -0
  101. package/dist/omegga/index.js.map +1 -0
  102. package/dist/omegga/logWrangler.d.ts +32 -0
  103. package/dist/omegga/logWrangler.d.ts.map +1 -0
  104. package/dist/omegga/logWrangler.js +279 -0
  105. package/dist/omegga/logWrangler.js.map +1 -0
  106. package/dist/omegga/matchers/auth.d.ts +9 -0
  107. package/dist/omegga/matchers/auth.d.ts.map +1 -0
  108. package/dist/omegga/matchers/auth.js +53 -0
  109. package/dist/omegga/matchers/auth.js.map +1 -0
  110. package/dist/omegga/matchers/chat.d.ts +9 -0
  111. package/dist/omegga/matchers/chat.d.ts.map +1 -0
  112. package/dist/omegga/matchers/chat.js +68 -0
  113. package/dist/omegga/matchers/chat.js.map +1 -0
  114. package/dist/omegga/matchers/command.d.ts +7 -0
  115. package/dist/omegga/matchers/command.d.ts.map +1 -0
  116. package/dist/omegga/matchers/command.js +39 -0
  117. package/dist/omegga/matchers/command.js.map +1 -0
  118. package/dist/omegga/matchers/exit.d.ts +3 -0
  119. package/dist/omegga/matchers/exit.d.ts.map +1 -0
  120. package/dist/omegga/matchers/exit.js +21 -0
  121. package/dist/omegga/matchers/exit.js.map +1 -0
  122. package/dist/omegga/matchers/index.d.ts +3 -0
  123. package/dist/omegga/matchers/index.d.ts.map +1 -0
  124. package/dist/omegga/matchers/index.js +39 -0
  125. package/dist/omegga/matchers/index.js.map +1 -0
  126. package/dist/omegga/matchers/init.d.ts +3 -0
  127. package/dist/omegga/matchers/init.d.ts.map +1 -0
  128. package/dist/omegga/matchers/init.js +26 -0
  129. package/dist/omegga/matchers/init.js.map +1 -0
  130. package/dist/omegga/matchers/interact.d.ts +4 -0
  131. package/dist/omegga/matchers/interact.js +39 -0
  132. package/dist/omegga/matchers/interact.js.map +1 -0
  133. package/dist/omegga/matchers/join.d.ts +4 -0
  134. package/dist/omegga/matchers/join.d.ts.map +1 -0
  135. package/dist/omegga/matchers/join.js +95 -0
  136. package/dist/omegga/matchers/join.js.map +1 -0
  137. package/dist/omegga/matchers/leave.d.ts +4 -0
  138. package/dist/omegga/matchers/leave.d.ts.map +1 -0
  139. package/dist/omegga/matchers/leave.js +59 -0
  140. package/dist/omegga/matchers/leave.js.map +1 -0
  141. package/dist/omegga/matchers/mapChange.d.ts +3 -0
  142. package/dist/omegga/matchers/mapChange.d.ts.map +1 -0
  143. package/dist/omegga/matchers/mapChange.js +38 -0
  144. package/dist/omegga/matchers/mapChange.js.map +1 -0
  145. package/dist/omegga/matchers/types.d.ts +5 -0
  146. package/dist/omegga/matchers/types.d.ts.map +1 -0
  147. package/dist/omegga/matchers/types.js +7 -0
  148. package/dist/omegga/matchers/types.js.map +1 -0
  149. package/dist/omegga/matchers/version.d.ts +3 -0
  150. package/dist/omegga/matchers/version.d.ts.map +1 -0
  151. package/dist/omegga/matchers/version.js +45 -0
  152. package/dist/omegga/matchers/version.js.map +1 -0
  153. package/dist/omegga/player.d.ts +71 -0
  154. package/dist/omegga/player.d.ts.map +1 -0
  155. package/dist/omegga/player.js +442 -0
  156. package/dist/omegga/player.js.map +1 -0
  157. package/dist/omegga/plugin/plugin_jsonrpc_stdio.d.ts +23 -0
  158. package/dist/omegga/plugin/plugin_jsonrpc_stdio.d.ts.map +1 -0
  159. package/dist/omegga/plugin/plugin_jsonrpc_stdio.js +441 -0
  160. package/dist/omegga/plugin/plugin_jsonrpc_stdio.js.map +1 -0
  161. package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.d.ts +129 -0
  162. package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.d.ts.map +1 -0
  163. package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.js +260 -0
  164. package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.js.map +1 -0
  165. package/dist/omegga/plugin/plugin_node_safe/worker.d.ts +1 -0
  166. package/dist/omegga/plugin/plugin_node_safe/worker.d.ts.map +1 -0
  167. package/dist/omegga/plugin/plugin_node_safe/worker.js +289 -0
  168. package/dist/omegga/plugin/plugin_node_safe/worker.js.map +1 -0
  169. package/dist/omegga/plugin/plugin_node_safe.d.ts +24 -0
  170. package/dist/omegga/plugin/plugin_node_safe.d.ts.map +1 -0
  171. package/dist/omegga/plugin/plugin_node_safe.js +397 -0
  172. package/dist/omegga/plugin/plugin_node_safe.js.map +1 -0
  173. package/dist/omegga/plugin/plugin_node_unsafe.d.ts +13 -0
  174. package/dist/omegga/plugin/plugin_node_unsafe.d.ts.map +1 -0
  175. package/dist/omegga/plugin/plugin_node_unsafe.js +178 -0
  176. package/dist/omegga/plugin/plugin_node_unsafe.js.map +1 -0
  177. package/dist/omegga/plugin.d.ts +86 -0
  178. package/dist/omegga/plugin.d.ts.map +1 -0
  179. package/dist/omegga/plugin.js +458 -0
  180. package/dist/omegga/plugin.js.map +1 -0
  181. package/dist/omegga/server.d.ts +149 -0
  182. package/dist/omegga/server.d.ts.map +1 -0
  183. package/dist/omegga/server.js +601 -0
  184. package/dist/omegga/server.js.map +1 -0
  185. package/dist/omegga/types.d.ts +48 -0
  186. package/dist/omegga/types.d.ts.map +1 -0
  187. package/dist/omegga/types.js +3 -0
  188. package/dist/omegga/types.js.map +1 -0
  189. package/dist/omegga/wrapper.d.ts +22 -0
  190. package/dist/omegga/wrapper.d.ts.map +1 -0
  191. package/dist/omegga/wrapper.js +75 -0
  192. package/dist/omegga/wrapper.js.map +1 -0
  193. package/dist/omeggaplugin.d.ts +1 -0
  194. package/dist/omeggaplugin.js +4 -0
  195. package/dist/omeggaplugin.js.map +1 -0
  196. package/dist/plugin.d.ts +781 -0
  197. package/dist/plugin.js +41 -0
  198. package/dist/plugin.js.map +1 -0
  199. package/dist/softconfig.d.ts +51 -0
  200. package/dist/softconfig.d.ts.map +1 -0
  201. package/dist/softconfig.js +82 -0
  202. package/dist/softconfig.js.map +1 -0
  203. package/dist/util/brick/checkBounds.d.ts +8 -0
  204. package/dist/util/brick/checkBounds.d.ts.map +1 -0
  205. package/dist/util/brick/checkBounds.js +22 -0
  206. package/dist/util/brick/checkBounds.js.map +1 -0
  207. package/dist/util/brick/constants.d.ts +18 -0
  208. package/dist/util/brick/constants.d.ts.map +1 -0
  209. package/dist/util/brick/constants.js +184 -0
  210. package/dist/util/brick/constants.js.map +1 -0
  211. package/dist/util/brick/getBounds.d.ts +4 -0
  212. package/dist/util/brick/getBounds.d.ts.map +1 -0
  213. package/dist/util/brick/getBounds.js +39 -0
  214. package/dist/util/brick/getBounds.js.map +1 -0
  215. package/dist/util/brick/getBrickSize.d.ts +3 -0
  216. package/dist/util/brick/getBrickSize.d.ts.map +1 -0
  217. package/dist/util/brick/getBrickSize.js +12 -0
  218. package/dist/util/brick/getBrickSize.js.map +1 -0
  219. package/dist/util/brick/getScaleAxis.d.ts +3 -0
  220. package/dist/util/brick/getScaleAxis.d.ts.map +1 -0
  221. package/dist/util/brick/getScaleAxis.js +38 -0
  222. package/dist/util/brick/getScaleAxis.js.map +1 -0
  223. package/dist/util/brick/index.d.ts +13 -0
  224. package/dist/util/brick/index.d.ts.map +1 -0
  225. package/dist/util/brick/index.js +29 -0
  226. package/dist/util/brick/index.js.map +1 -0
  227. package/dist/util/brick/rotate.d.ts +17 -0
  228. package/dist/util/brick/rotate.d.ts.map +1 -0
  229. package/dist/util/brick/rotate.js +38 -0
  230. package/dist/util/brick/rotate.js.map +1 -0
  231. package/dist/util/brick/setOwnership.d.ts +12 -0
  232. package/dist/util/brick/setOwnership.d.ts.map +1 -0
  233. package/dist/util/brick/setOwnership.js +21 -0
  234. package/dist/util/brick/setOwnership.js.map +1 -0
  235. package/dist/util/chat.d.ts +23 -0
  236. package/dist/util/chat.d.ts.map +1 -0
  237. package/dist/util/chat.js +50 -0
  238. package/dist/util/chat.js.map +1 -0
  239. package/dist/util/color.d.ts +13 -0
  240. package/dist/util/color.d.ts.map +1 -0
  241. package/dist/util/color.js +130 -0
  242. package/dist/util/color.js.map +1 -0
  243. package/dist/util/file.d.ts +5 -0
  244. package/dist/util/file.d.ts.map +1 -0
  245. package/dist/util/file.js +114 -0
  246. package/dist/util/file.js.map +1 -0
  247. package/dist/util/index.d.ts +162 -0
  248. package/dist/util/index.d.ts.map +1 -0
  249. package/dist/util/index.js +92 -0
  250. package/dist/util/index.js.map +1 -0
  251. package/dist/util/map.d.ts +6 -0
  252. package/dist/util/map.d.ts.map +1 -0
  253. package/dist/util/map.js +26 -0
  254. package/dist/util/map.js.map +1 -0
  255. package/dist/util/pattern.d.ts +1 -0
  256. package/dist/util/pattern.d.ts.map +1 -0
  257. package/dist/util/pattern.js +11 -0
  258. package/dist/util/pattern.js.map +1 -0
  259. package/dist/util/time.d.ts +4 -0
  260. package/dist/util/time.d.ts.map +1 -0
  261. package/dist/util/time.js +41 -0
  262. package/dist/util/time.js.map +1 -0
  263. package/dist/util/uuid.d.ts +2 -0
  264. package/dist/util/uuid.d.ts.map +1 -0
  265. package/dist/util/uuid.js +8 -0
  266. package/dist/util/uuid.js.map +1 -0
  267. package/dist/util/wsl.d.ts +1 -0
  268. package/dist/util/wsl.d.ts.map +1 -0
  269. package/dist/util/wsl.js +14 -0
  270. package/dist/util/wsl.js.map +1 -0
  271. package/dist/webserver/backend/api.d.ts +3 -0
  272. package/dist/webserver/backend/api.d.ts.map +1 -0
  273. package/dist/webserver/backend/api.js +685 -0
  274. package/dist/webserver/backend/api.js.map +1 -0
  275. package/dist/webserver/backend/calendar.d.ts +5 -0
  276. package/dist/webserver/backend/calendar.d.ts.map +1 -0
  277. package/dist/webserver/backend/calendar.js +21 -0
  278. package/dist/webserver/backend/calendar.js.map +1 -0
  279. package/dist/webserver/backend/database.d.ts +149 -0
  280. package/dist/webserver/backend/database.d.ts.map +1 -0
  281. package/dist/webserver/backend/database.js +575 -0
  282. package/dist/webserver/backend/database.js.map +1 -0
  283. package/dist/webserver/backend/index.d.ts +31 -0
  284. package/dist/webserver/backend/index.d.ts.map +1 -0
  285. package/dist/webserver/backend/index.js +189 -0
  286. package/dist/webserver/backend/index.js.map +1 -0
  287. package/dist/webserver/backend/metrics.d.ts +3 -0
  288. package/dist/webserver/backend/metrics.d.ts.map +1 -0
  289. package/dist/webserver/backend/metrics.js +203 -0
  290. package/dist/webserver/backend/metrics.js.map +1 -0
  291. package/dist/webserver/backend/types.d.ts +115 -0
  292. package/dist/webserver/backend/types.d.ts.map +1 -0
  293. package/dist/webserver/backend/types.js +3 -0
  294. package/dist/webserver/backend/types.js.map +1 -0
  295. package/dist/webserver/backend/util.d.ts +2 -0
  296. package/dist/webserver/backend/util.d.ts.map +1 -0
  297. package/dist/webserver/backend/util.js +78 -0
  298. package/dist/webserver/backend/util.js.map +1 -0
  299. package/dist/webserver/index.d.ts +2 -0
  300. package/dist/webserver/index.d.ts.map +1 -0
  301. package/dist/webserver/index.js +9 -0
  302. package/dist/webserver/index.js.map +1 -0
  303. package/{src/webserver/frontend → frontend}/app.html +0 -0
  304. package/{src/webserver/frontend → frontend}/assets/fonts/GlacialIndifferenceBold.ttf +0 -0
  305. package/{src/webserver/frontend → frontend}/assets/fonts/GlacialIndifferenceItalic.otf +0 -0
  306. package/{src/webserver/frontend → frontend}/assets/fonts/GlacialIndifferenceMedium.otf +0 -0
  307. package/{src/webserver/frontend → frontend}/assets/fonts/GlacialIndifferenceRegular.ttf +0 -0
  308. package/{src/webserver/frontend → frontend}/assets/fonts/RobotoBold.ttf +0 -0
  309. package/{src/webserver/frontend → frontend}/assets/fonts/RobotoItalic.ttf +0 -0
  310. package/{src/webserver/frontend → frontend}/assets/fonts/RobotoRegular.ttf +0 -0
  311. package/{src/webserver/frontend → frontend}/assets/img/auth_bg.webp +0 -0
  312. package/{src/webserver/frontend → frontend}/assets/img/dark_bg.webp +0 -0
  313. package/{src/webserver/frontend → frontend}/assets/img/turkey.webp +0 -0
  314. package/{src/webserver/frontend → frontend}/auth.html +0 -0
  315. package/index.js +10 -2
  316. package/package.json +43 -15
  317. package/public/app.bundle.js +537 -73
  318. package/public/app.bundle.js.map +1 -1
  319. package/public/app.css +727 -2
  320. package/public/app.css.map +1 -1
  321. package/public/auth.bundle.js +18 -18
  322. package/public/auth.bundle.js.map +1 -1
  323. package/public/auth.css +364 -2
  324. package/public/auth.css.map +1 -1
  325. package/templates/rpc/README.md +29 -0
  326. package/templates/rpc/doc.json +7 -0
  327. package/templates/rpc/omegga_plugin +0 -0
  328. package/templates/rpc/plugin.json +4 -0
  329. package/templates/rpc/setup.sh +3 -0
  330. package/templates/safe/README.md +29 -0
  331. package/templates/safe/access.json +1 -0
  332. package/templates/safe/doc.json +7 -0
  333. package/templates/safe/omegga.plugin.js +20 -0
  334. package/templates/safe/plugin.json +4 -0
  335. package/templates/safe/setup.sh +4 -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.plugin.ts +29 -0
  340. package/templates/safe-ts/plugin.json +4 -0
  341. package/templates/safe-ts/setup.sh +4 -0
  342. package/templates/safe-ts/tsconfig.json +10 -0
  343. package/templates/unsafe/README.md +29 -0
  344. package/templates/unsafe/doc.json +7 -0
  345. package/templates/unsafe/omegga.main.js +15 -0
  346. package/templates/unsafe/plugin.json +4 -0
  347. package/templates/unsafe/setup.sh +4 -0
  348. package/.prettierrc +0 -7
  349. package/src/OMEGGA_LEGACY_INSTALL +0 -44
  350. package/src/brickadia/config.js +0 -42
  351. package/src/brickadia/server.js +0 -227
  352. package/src/cli/auth.js +0 -104
  353. package/src/cli/config.js +0 -77
  354. package/src/cli/index.js +0 -6
  355. package/src/cli/installer.js +0 -65
  356. package/src/cli/plugin.js +0 -575
  357. package/src/cli/terminal.js +0 -466
  358. package/src/config/authorizer.js +0 -37
  359. package/src/config/formats/format_js.js +0 -6
  360. package/src/config/formats/format_yml.js +0 -8
  361. package/src/config/index.js +0 -81
  362. package/src/config/reader.js +0 -27
  363. package/src/config/validator.js +0 -32
  364. package/src/config/writer.js +0 -20
  365. package/src/info/default_commands.json +0 -26
  366. package/src/lib.js +0 -23
  367. package/src/main.js +0 -332
  368. package/src/omegga/auth.js +0 -138
  369. package/src/omegga/commandInjector.js +0 -228
  370. package/src/omegga/index.js +0 -22
  371. package/src/omegga/logWrangler.js +0 -323
  372. package/src/omegga/matchers/auth.js +0 -49
  373. package/src/omegga/matchers/chat.js +0 -73
  374. package/src/omegga/matchers/command.js +0 -39
  375. package/src/omegga/matchers/exit.js +0 -19
  376. package/src/omegga/matchers/init.js +0 -23
  377. package/src/omegga/matchers/join.js +0 -115
  378. package/src/omegga/matchers/leave.js +0 -58
  379. package/src/omegga/matchers/mapChange.js +0 -37
  380. package/src/omegga/matchers/version.js +0 -45
  381. package/src/omegga/player.js +0 -585
  382. package/src/omegga/plugin/plugin_jsonrpc_stdio.js +0 -526
  383. package/src/omegga/plugin/plugin_node_safe/proxyOmegga.js +0 -117
  384. package/src/omegga/plugin/plugin_node_safe/worker.js +0 -238
  385. package/src/omegga/plugin/plugin_node_safe.js +0 -473
  386. package/src/omegga/plugin/plugin_node_unsafe.js +0 -177
  387. package/src/omegga/plugin.js +0 -565
  388. package/src/omegga/server.js +0 -658
  389. package/src/omegga/wrapper.js +0 -62
  390. package/src/softconfig.js +0 -64
  391. package/src/util/brick/checkBounds.js +0 -22
  392. package/src/util/brick/constants.js +0 -185
  393. package/src/util/brick/getBounds.js +0 -36
  394. package/src/util/brick/getBrickSize.js +0 -9
  395. package/src/util/brick/getScaleAxis.js +0 -31
  396. package/src/util/brick/index.js +0 -9
  397. package/src/util/brick/rotate.js +0 -43
  398. package/src/util/brick/setOwnership.js +0 -20
  399. package/src/util/chat.js +0 -28
  400. package/src/util/color.js +0 -143
  401. package/src/util/file.js +0 -118
  402. package/src/util/index.js +0 -28
  403. package/src/util/map.js +0 -28
  404. package/src/util/pattern.js +0 -14
  405. package/src/util/time.js +0 -46
  406. package/src/util/uuid.js +0 -8
  407. package/src/util/wsl.js +0 -9
  408. package/src/webserver/backend/api.js +0 -795
  409. package/src/webserver/backend/calendar.js +0 -15
  410. package/src/webserver/backend/database.js +0 -725
  411. package/src/webserver/backend/index.js +0 -206
  412. package/src/webserver/backend/metrics.js +0 -148
  413. package/src/webserver/backend/util.js +0 -75
  414. package/src/webserver/frontend/.eslintrc.yml +0 -26
  415. package/src/webserver/frontend/app.js +0 -78
  416. package/src/webserver/frontend/auth.js +0 -16
  417. package/src/webserver/frontend/components/Background.vue +0 -83
  418. package/src/webserver/frontend/components/Button.vue +0 -105
  419. package/src/webserver/frontend/components/ChatEntry.vue +0 -107
  420. package/src/webserver/frontend/components/ChatTime.vue +0 -40
  421. package/src/webserver/frontend/components/Dimmer.vue +0 -43
  422. package/src/webserver/frontend/components/Dropdown.vue +0 -145
  423. package/src/webserver/frontend/components/Footer.vue +0 -29
  424. package/src/webserver/frontend/components/Header.vue +0 -27
  425. package/src/webserver/frontend/components/InfiniteScroll.vue +0 -51
  426. package/src/webserver/frontend/components/Input.vue +0 -93
  427. package/src/webserver/frontend/components/ListInput.vue +0 -105
  428. package/src/webserver/frontend/components/Loader.vue +0 -98
  429. package/src/webserver/frontend/components/MainMenuButton.vue +0 -83
  430. package/src/webserver/frontend/components/Modal.vue +0 -44
  431. package/src/webserver/frontend/components/NavBar.vue +0 -24
  432. package/src/webserver/frontend/components/PlayerDropdown.vue +0 -210
  433. package/src/webserver/frontend/components/PopoutContent.vue +0 -32
  434. package/src/webserver/frontend/components/RoleDropdown.vue +0 -157
  435. package/src/webserver/frontend/components/Scroll.vue +0 -33
  436. package/src/webserver/frontend/components/Toggle.vue +0 -91
  437. package/src/webserver/frontend/components/index.js +0 -33
  438. package/src/webserver/frontend/css/font.scss +0 -53
  439. package/src/webserver/frontend/css/mixins.scss +0 -49
  440. package/src/webserver/frontend/css/style.scss +0 -166
  441. package/src/webserver/frontend/css/theme.scss +0 -64
  442. package/src/webserver/frontend/partials/NavHeader.vue +0 -55
  443. package/src/webserver/frontend/partials/Page.vue +0 -40
  444. package/src/webserver/frontend/partials/PageContent.vue +0 -31
  445. package/src/webserver/frontend/partials/SideNav.vue +0 -115
  446. package/src/webserver/frontend/partials/index.js +0 -4
  447. package/src/webserver/frontend/router.js +0 -83
  448. package/src/webserver/frontend/views/Auth.vue +0 -190
  449. package/src/webserver/frontend/views/History.vue +0 -462
  450. package/src/webserver/frontend/views/Home.vue +0 -251
  451. package/src/webserver/frontend/views/Main.vue +0 -69
  452. package/src/webserver/frontend/views/NotFound.vue +0 -10
  453. package/src/webserver/frontend/views/Players.vue +0 -425
  454. package/src/webserver/frontend/views/PlayersInspector.vue +0 -538
  455. package/src/webserver/frontend/views/Plugins.vue +0 -217
  456. package/src/webserver/frontend/views/PluginsInspector.vue +0 -418
  457. package/src/webserver/frontend/views/Server.vue +0 -167
  458. package/src/webserver/frontend/views/Users.vue +0 -538
  459. package/src/webserver/frontend/widgets/Chat.vue +0 -124
  460. package/src/webserver/frontend/widgets/Status.vue +0 -91
  461. package/src/webserver/frontend/widgets/index.js +0 -2
  462. package/src/webserver/frontend/widgets/tooltip.js +0 -108
  463. 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