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,9 @@
1
+ import { MatchGenerator } from './types';
2
+ declare const auth: MatchGenerator<[
3
+ 'host' | 'invalid' | 'valid',
4
+ {
5
+ name: string;
6
+ id: string;
7
+ } | null
8
+ ]>;
9
+ export default auth;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/omegga/matchers/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,QAAA,MAAM,IAAI,EAAE,cAAc,CACxB;IAAC,MAAM,GAAG,SAAS,GAAG,OAAO;IAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;CAAC,CAiDpE,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const auth = omegga => {
4
+ // patterns for leave message and host detection
5
+ const hostRegExp = /^Logged in as (?<name>.+) \((?<id>[0-9a-fA-F-]{36})\)\.$/;
6
+ const invalidRegExp = /^(Error: AuthState is Invalid on dedicated server - exiting\.|Changing AuthState from \w+ to Invalid\.)$/;
7
+ const validRegExp = /^Changing AuthState from \w+ to Valid(Online|Offline)\.$/;
8
+ return {
9
+ // listen for auth messages
10
+ pattern(_line, logMatch) {
11
+ // line is not generic console log
12
+ if (!logMatch)
13
+ return;
14
+ const { generator, data } = logMatch.groups;
15
+ // check if log is an auth log
16
+ if (generator !== 'LogAuthManager' && generator !== 'LogAuthSubsystem')
17
+ return;
18
+ // match against the patterns
19
+ const hostMatch = data.match(hostRegExp);
20
+ const invalidMatch = data.match(invalidRegExp);
21
+ const validMatch = data.match(validRegExp);
22
+ // if the log matches one of the patterns, return the result
23
+ if (hostMatch) {
24
+ const { name, id } = hostMatch.groups;
25
+ return ['host', { name, id }];
26
+ }
27
+ else if (invalidMatch) {
28
+ return ['invalid', null];
29
+ }
30
+ else if (validMatch) {
31
+ return ['valid', null];
32
+ }
33
+ },
34
+ // when there's a match, emit the chat message event
35
+ callback([type, host]) {
36
+ if (type == 'host') {
37
+ // store the host info
38
+ omegga.host = Object.freeze(host);
39
+ omegga.emit('host', Object.freeze(host));
40
+ }
41
+ else if (type === 'valid') {
42
+ // let the server know it has started
43
+ omegga.emit('start', { map: omegga.currentMap });
44
+ }
45
+ else if (type === 'invalid') {
46
+ omegga.emit('unauthorized');
47
+ // do nothing with invalid auth?? how did we get here
48
+ }
49
+ },
50
+ };
51
+ };
52
+ exports.default = auth;
53
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/omegga/matchers/auth.ts"],"names":[],"mappings":";;AAEA,MAAM,IAAI,GAEN,MAAM,CAAC,EAAE;IACX,gDAAgD;IAChD,MAAM,UAAU,GAAG,0DAA0D,CAAC;IAC9E,MAAM,aAAa,GACjB,0GAA0G,CAAC;IAC7G,MAAM,WAAW,GACf,0DAA0D,CAAC;IAE7D,OAAO;QACL,2BAA2B;QAC3B,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,gBAAgB,IAAI,SAAS,KAAK,kBAAkB;gBACpE,OAAO;YAET,6BAA6B;YAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACzC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAE3C,4DAA4D;YAC5D,IAAI,SAAS,EAAE;gBACb,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC;gBACtC,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;aAC/B;iBAAM,IAAI,YAAY,EAAE;gBACvB,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;aAC1B;iBAAM,IAAI,UAAU,EAAE;gBACrB,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;aACxB;QACH,CAAC;QACD,oDAAoD;QACpD,QAAQ,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;YACnB,IAAI,IAAI,IAAI,MAAM,EAAE;gBAClB,sBAAsB;gBACtB,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;aAC1C;iBAAM,IAAI,IAAI,KAAK,OAAO,EAAE;gBAC3B,qCAAqC;gBACrC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;aAClD;iBAAM,IAAI,IAAI,KAAK,SAAS,EAAE;gBAC7B,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC5B,qDAAqD;aACtD;QACH,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,IAAI,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { MatchGenerator } from './types';
2
+ declare const chat: MatchGenerator<{
3
+ type: string;
4
+ name: string;
5
+ kicker?: string;
6
+ reason?: string;
7
+ message?: string;
8
+ }>;
9
+ export default chat;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../src/omegga/matchers/chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,QAAA,MAAM,IAAI,EAAE,cAAc,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAwEA,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const chat = omegga => {
4
+ // pattern to get PlayerController from a leave message
5
+ const chatRegExp = /^(?<name>.+?): (?<message>.+)$/;
6
+ const kickRegExp = /^(?<name>.+?) was kicked by (?<kicker>.+?) \((?<reason>.+?)\)$/;
7
+ const exists = (name) => omegga.players.some(p => p.name === name);
8
+ const sanitizeMsg = (msg) => msg
9
+ .toString()
10
+ .replace(/&gt;/g, '>')
11
+ .replace(/&und;/g, '_')
12
+ .replace(/&lt;/g, '<')
13
+ .replace(/&scl;/g, ';');
14
+ const sanitizeName = (name) => name.toString().replace(/&und;/g, '_');
15
+ return {
16
+ // listen for chat messages
17
+ pattern(_line, logMatch) {
18
+ // line is not generic console log
19
+ if (!logMatch)
20
+ return;
21
+ const { generator, data } = logMatch.groups;
22
+ // check if log is a chat log
23
+ if (generator !== 'LogChat')
24
+ return;
25
+ // match the chat log to the chat message pattern
26
+ const chatMatch = data.match(chatRegExp);
27
+ const kickMatch = data.match(kickRegExp);
28
+ if (chatMatch) {
29
+ let { name, message } = chatMatch.groups;
30
+ name = sanitizeName(name);
31
+ message = sanitizeMsg(message);
32
+ // no player has this name. probably a bug
33
+ if (!exists(name))
34
+ return;
35
+ // return the player with the corresponding controller
36
+ return { type: 'chat', name, message };
37
+ }
38
+ else if (kickMatch) {
39
+ let { name, kicker, reason } = kickMatch.groups;
40
+ name = sanitizeName(name);
41
+ kicker = sanitizeName(kicker);
42
+ reason = sanitizeMsg(reason);
43
+ if (!exists(name) || !exists(kicker))
44
+ return;
45
+ return { type: 'kick', name, kicker, reason };
46
+ }
47
+ },
48
+ // when there's a match, emit the chat message event
49
+ callback({ type, name, kicker, message, reason }) {
50
+ if (type === 'chat') {
51
+ omegga.emit('chat', name, message);
52
+ // chat command parsing, emit `chatcmd:test` when `!test` is sent in chat
53
+ if (message.startsWith('!')) {
54
+ const [cmd, ...args] = message.slice(1).split(' ');
55
+ if (cmd.length > 0) {
56
+ omegga.emit('chatcmd:' + cmd.toLowerCase(), name, ...args);
57
+ omegga.emit('chatcmd', cmd.toLowerCase(), name, ...args);
58
+ }
59
+ }
60
+ }
61
+ else if (type === 'kick') {
62
+ omegga.emit('kick', name, kicker, reason);
63
+ }
64
+ },
65
+ };
66
+ };
67
+ exports.default = chat;
68
+ //# sourceMappingURL=chat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../src/omegga/matchers/chat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { MatchGenerator } from './types';
2
+ declare const command: MatchGenerator<{
3
+ name: string;
4
+ command: string;
5
+ args: string[];
6
+ }>;
7
+ export default command;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/omegga/matchers/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA+CpC,eAAe,OAAO,CAAC"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const command = omegga => {
4
+ // pattern to get PlayerController from a leave message
5
+ const commandRegExp = /^Player (?<name>.+?) is trying to call command "\/(?<command>.+?)" with arg string "(?<args>.*?)".$/;
6
+ return {
7
+ // listen for commands messages
8
+ pattern(_line, logMatch) {
9
+ // line is not generic console log
10
+ if (!logMatch)
11
+ return;
12
+ const { generator, data } = logMatch.groups;
13
+ // check if log is a command log
14
+ if (generator !== 'LogChatCommands')
15
+ return;
16
+ // match the log to the command pattern
17
+ const match = data.match(commandRegExp);
18
+ if (match) {
19
+ const { name, command, args } = match.groups;
20
+ // no player has this name. probably a bug
21
+ if (!omegga.players.some(p => p.name === name))
22
+ return;
23
+ // return the player and the command
24
+ return { name, command, args: args.split(' ') };
25
+ }
26
+ return;
27
+ },
28
+ // when there's a match, emit the comand event
29
+ callback({ name, command, args }) {
30
+ // if the only argument is an empty string, ignore it
31
+ if (args.length === 1 && args[0].length === 0)
32
+ args.pop();
33
+ omegga.emit('cmd:' + command.toLowerCase(), name, ...args);
34
+ omegga.emit('cmd', command.toLowerCase(), name, ...args);
35
+ },
36
+ };
37
+ };
38
+ exports.default = command;
39
+ //# sourceMappingURL=command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/omegga/matchers/command.ts"],"names":[],"mappings":";;AAEA,MAAM,OAAO,GAIR,MAAM,CAAC,EAAE;IACZ,uDAAuD;IACvD,MAAM,aAAa,GACjB,qGAAqG,CAAC;IAExG,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,gCAAgC;YAChC,IAAI,SAAS,KAAK,iBAAiB;gBAAE,OAAO;YAE5C,uCAAuC;YACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YACxC,IAAI,KAAK,EAAE;gBACT,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;gBAE7C,0CAA0C;gBAC1C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;oBAAE,OAAO;gBAEvD,oCAAoC;gBACpC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;aACjD;YAED,OAAO;QACT,CAAC;QACD,8CAA8C;QAC9C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;YAC9B,qDAAqD;YACrD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,IAAI,CAAC,GAAG,EAAE,CAAC;YAE1D,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;YAC3D,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;QAC3D,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,OAAO,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { MatchGenerator } from './types';
2
+ declare const exit: MatchGenerator<RegExpMatchArray>;
3
+ export default exit;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exit.d.ts","sourceRoot":"","sources":["../../../src/omegga/matchers/exit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,QAAA,MAAM,IAAI,EAAE,cAAc,CAAC,gBAAgB,CAkB1C,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const exit = omegga => {
4
+ return {
5
+ // listen for exit messages
6
+ pattern(_line, logMatch) {
7
+ // line is not generic console log
8
+ if (!logMatch)
9
+ return;
10
+ const { generator, data } = logMatch.groups;
11
+ // check if log is the kill server log
12
+ return (generator.match(/^LogExit$/) && data.match(/^Game engine shut down$/));
13
+ },
14
+ // when there's a match, emit the exit message event
15
+ callback() {
16
+ omegga.emit('exit');
17
+ },
18
+ };
19
+ };
20
+ exports.default = exit;
21
+ //# sourceMappingURL=exit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exit.js","sourceRoot":"","sources":["../../../src/omegga/matchers/exit.ts"],"names":[],"mappings":";;AAEA,MAAM,IAAI,GAAqC,MAAM,CAAC,EAAE;IACtD,OAAO;QACL,2BAA2B;QAC3B,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,sCAAsC;YACtC,OAAO,CACL,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CACtE,CAAC;QACJ,CAAC;QACD,oDAAoD;QACpD,QAAQ;YACN,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,IAAI,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { MatchGenerator } from './types';
2
+ declare const _default: MatchGenerator<any>[];
3
+ export default _default;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/omegga/matchers/index.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;;AAGzC,wBAU2B"}
@@ -0,0 +1,39 @@
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 join_1 = __importDefault(require("./join"));
7
+ // 'join' event => { name, id, state, controller }
8
+ const leave_1 = __importDefault(require("./leave"));
9
+ // 'leave' event => { name, id, state, controller }
10
+ const chat_1 = __importDefault(require("./chat"));
11
+ // 'chat' event => name, message; 'chatcmd:command' event => name, [...args]
12
+ // 'kick' event => name, kicker, reason
13
+ const command_1 = __importDefault(require("./command"));
14
+ // 'cmd:command' event => name, args (string)
15
+ const auth_1 = __importDefault(require("./auth"));
16
+ // assigns host, 'host' event, 'start' event, 'unauthorized' event
17
+ const exit_1 = __importDefault(require("./exit"));
18
+ // 'exit' event
19
+ const version_1 = __importDefault(require("./version"));
20
+ // 'version' event, check game version
21
+ const init_1 = __importDefault(require("./init"));
22
+ // watch loginit for any funny business
23
+ const mapChange_1 = __importDefault(require("./mapChange"));
24
+ // 'mapchange' event
25
+ // interaction event
26
+ const interact_1 = __importDefault(require("./interact"));
27
+ exports.default = [
28
+ join_1.default,
29
+ leave_1.default,
30
+ chat_1.default,
31
+ command_1.default,
32
+ auth_1.default,
33
+ exit_1.default,
34
+ version_1.default,
35
+ init_1.default,
36
+ mapChange_1.default,
37
+ interact_1.default,
38
+ ];
39
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/omegga/matchers/index.ts"],"names":[],"mappings":";;;;;AAEA,kDAA0B;AAC1B,kDAAkD;AAElD,oDAA4B;AAC5B,mDAAmD;AAEnD,kDAA0B;AAC1B,4EAA4E;AAC5E,uCAAuC;AAEvC,wDAAgC;AAChC,6CAA6C;AAE7C,kDAA0B;AAC1B,kEAAkE;AAElE,kDAA0B;AAC1B,eAAe;AAEf,wDAAgC;AAChC,sCAAsC;AAEtC,kDAA0B;AAC1B,uCAAuC;AAEvC,4DAAoC;AACpC,oBAAoB;AAEpB,oBAAoB;AACpB,0DAAkC;AAElC,kBAAe;IACb,cAAI;IACJ,eAAK;IACL,cAAI;IACJ,iBAAO;IACP,cAAI;IACJ,cAAI;IACJ,iBAAO;IACP,cAAI;IACJ,mBAAS;IACT,kBAAQ;CACgB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { MatchGenerator } from './types';
2
+ declare const init: MatchGenerator<void>;
3
+ export default init;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/omegga/matchers/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,QAAA,MAAM,IAAI,EAAE,cAAc,CAAC,IAAI,CAsB9B,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -0,0 +1,26 @@
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 logger_1 = __importDefault(require("../../logger"));
7
+ const init = _omegga => {
8
+ return {
9
+ // listen for auth messages
10
+ pattern(_line, logMatch) {
11
+ // line is not generic console log
12
+ if (!logMatch)
13
+ return;
14
+ const { generator, data } = logMatch.groups;
15
+ if (!generator.match(/^LogInit$/))
16
+ return;
17
+ // check if log is the kill server log
18
+ if (data.match(/we are not the first instance of this executable/)) {
19
+ logger_1.default.warn('W> WARNING'.yellow, 'You are running multiple brickadia instances, this better be intentional');
20
+ }
21
+ },
22
+ callback() { },
23
+ };
24
+ };
25
+ exports.default = init;
26
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/omegga/matchers/init.ts"],"names":[],"mappings":";;;;;AAAA,0DAA8B;AAG9B,MAAM,IAAI,GAAyB,OAAO,CAAC,EAAE;IAC3C,OAAO;QACL,2BAA2B;QAC3B,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;YAE5C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC;gBAAE,OAAO;YAE1C,sCAAsC;YACtC,IAAI,IAAI,CAAC,KAAK,CAAC,kDAAkD,CAAC,EAAE;gBAClE,gBAAM,CAAC,IAAI,CACT,YAAY,CAAC,MAAM,EACnB,0EAA0E,CAC3E,CAAC;aACH;QACH,CAAC;QAED,QAAQ,KAAI,CAAC;KACd,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,IAAI,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { MatchGenerator } from './types';
2
+ import { BrickInteraction } from "../../plugin";
3
+ declare const interact: MatchGenerator<BrickInteraction>;
4
+ export default interact;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const interactRegExp = /^Player "(?<name>[^"]+)" \((?<id>[^,]+), (?<pawn>[^,]+), (?<controller>[^)]+)\) interacted with brick "(?<brick>[^\"]+)" at (?<x>-?\d+) (?<y>-?\d+) (?<z>-?\d+).$/;
4
+ const interact = omegga => {
5
+ return {
6
+ // listen for auth messages
7
+ pattern(_line, logMatch) {
8
+ // line is not generic console log
9
+ if (!logMatch)
10
+ return;
11
+ const { generator, data } = logMatch.groups;
12
+ if (generator !== 'LogBrickadia')
13
+ return;
14
+ const match = data.match(interactRegExp);
15
+ // check if log is the kill server log
16
+ if (match) {
17
+ return {
18
+ player: {
19
+ id: match.groups.id,
20
+ name: match.groups.name,
21
+ controller: match.groups.controller,
22
+ pawn: match.groups.pawn,
23
+ },
24
+ brick_name: match.groups.brick,
25
+ position: [
26
+ Number(match.groups.x),
27
+ Number(match.groups.y),
28
+ Number(match.groups.z),
29
+ ],
30
+ };
31
+ }
32
+ },
33
+ callback(interaction) {
34
+ omegga.emit('interact', interaction);
35
+ },
36
+ };
37
+ };
38
+ exports.default = interact;
39
+ //# sourceMappingURL=interact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interact.js","sourceRoot":"","sources":["../../../src/omegga/matchers/interact.ts"],"names":[],"mappings":";;AAGA,MAAM,cAAc,GAClB,mKAAmK,CAAC;AAEtK,MAAM,QAAQ,GAAqC,MAAM,CAAC,EAAE;IAC1D,OAAO;QACL,2BAA2B;QAC3B,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;YAE5C,IAAI,SAAS,KAAK,cAAc;gBAAE,OAAO;YAEzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAEzC,sCAAsC;YACtC,IAAI,KAAK,EAAE;gBACT,OAAO;oBACL,MAAM,EAAE;wBACN,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;wBACnB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;wBACvB,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU;wBACnC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;qBACxB;oBACD,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;oBAC9B,QAAQ,EAAE;wBACR,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;wBACtB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;wBACtB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;qBACvB;iBACkB,CAAC;aACvB;QACH,CAAC;QAED,QAAQ,CAAC,WAAW;YAClB,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QACvC,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,QAAQ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import Player from "../player";
2
+ import { MatchGenerator } from './types';
3
+ declare const join: MatchGenerator<Player>;
4
+ export default join;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"join.d.ts","sourceRoot":"","sources":["../../../src/omegga/matchers/join.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,kBAAuB;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,QAAA,MAAM,IAAI,EAAE,cAAc,CAAC,MAAM,CAyHhC,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -0,0 +1,95 @@
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 player_1 = __importDefault(require("../player"));
7
+ const join = omegga => {
8
+ // username + id and a log counter to keep track of actual join messages
9
+ const userJoinInfo = [];
10
+ // username + id to get player state and controller
11
+ const joiningPlayers = [];
12
+ // patterns to match PlayerState and PlayerController objects in GetAll commands
13
+ const stateRegExp = /BP_PlayerState_C .+?PersistentLevel\.(?<state>BP_PlayerState_C_\d+)\.PlayerNamePrivate = (?<name>.+)$/;
14
+ const controllerRegExp = /BP_PlayerState_C .+?PersistentLevel\.(?<state>BP_PlayerState_C_\d+)\.Owner = BP_PlayerController_C'.+?:PersistentLevel.(?<controller>BP_PlayerController_C_\d+)'/;
15
+ return {
16
+ // listen for join events and wait for PlayerController info
17
+ pattern(line, logMatch) {
18
+ if (logMatch) {
19
+ const { generator, counter, data } = logMatch.groups;
20
+ let joinData = userJoinInfo.find(l => l.counter === counter);
21
+ // LogServerList includes the new user information
22
+ if (generator === 'LogServerList') {
23
+ // create joindata if it doesn't exist
24
+ if (!joinData) {
25
+ joinData = { counter };
26
+ userJoinInfo.push(joinData);
27
+ }
28
+ // match on username or user id
29
+ const match = data.match(/^(?<field>UserName|UserId): (?<value>.+)$/);
30
+ // put that value in the join data
31
+ if (match)
32
+ joinData[match.groups.field] =
33
+ match.groups.value;
34
+ // LogNet lets us know the player successfully joined
35
+ }
36
+ else if (generator == 'LogNet') {
37
+ // find which player joined
38
+ const match = data.match(/^Join succeeded: (.+)$/);
39
+ // make sure this joindata corresponds to this player
40
+ if (match && joinData.UserName === match[1]) {
41
+ // remove that player from our buffer
42
+ userJoinInfo.splice(userJoinInfo.indexOf(joinData), 1);
43
+ // found joined player, now we need to find the BRPlayerState
44
+ joiningPlayers.push({
45
+ name: joinData.UserName,
46
+ id: joinData.UserId,
47
+ });
48
+ // get the state of all players (including the one that is joining)
49
+ omegga.writeln('GetAll BRPlayerState PlayerNamePrivate');
50
+ }
51
+ }
52
+ // only match state and controllers if we have joining players
53
+ }
54
+ else if (joiningPlayers.length) {
55
+ const stateMatch = line.match(stateRegExp);
56
+ const controllerMatch = line.match(controllerRegExp);
57
+ // this line matches our PlayerName -> PlayerState pattern
58
+ if (stateMatch) {
59
+ const { name, state } = stateMatch.groups;
60
+ // find the joining player that has a matching name
61
+ const player = joiningPlayers.find(p => p.name === name);
62
+ // check if another player is already using this state or if there's any joining player with this name
63
+ if (!player || omegga.players.some(p => p.state === state))
64
+ return;
65
+ // this player owns this state, find the controller now
66
+ player.state = state;
67
+ omegga.writeln(`GetAll BRPlayerState Owner Name=${state}`);
68
+ // this line matches our PlayerState -> PlayerController pattern
69
+ }
70
+ else if (controllerMatch) {
71
+ const { controller, state } = controllerMatch.groups;
72
+ // find the joining player that has a matching state
73
+ const player = joiningPlayers.find(p => p.state === state);
74
+ // no player found
75
+ if (!player)
76
+ return;
77
+ // assign the controller and state, remove the player from the joining players
78
+ player.controller = controller;
79
+ player.state = state;
80
+ joiningPlayers.splice(joiningPlayers.indexOf(player), 1);
81
+ // return the newly joined player
82
+ return new player_1.default(omegga, player.name, player.id, player.controller, player.state);
83
+ }
84
+ }
85
+ },
86
+ // when there's a match, emit a join event and add the player to the player list
87
+ callback(player) {
88
+ omegga.emit('join', player);
89
+ omegga.players.push(player);
90
+ omegga.emit('plugin:players:raw', omegga.players.map(p => p.raw()));
91
+ },
92
+ };
93
+ };
94
+ exports.default = join;
95
+ //# sourceMappingURL=join.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"join.js","sourceRoot":"","sources":["../../../src/omegga/matchers/join.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { MatchGenerator } from './types';
2
+ import { OmeggaPlayer } from "../../plugin";
3
+ declare const leave: MatchGenerator<Promise<OmeggaPlayer>>;
4
+ export default leave;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leave.d.ts","sourceRoot":"","sources":["../../../src/omegga/matchers/leave.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,kBAAuB;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,QAAA,MAAM,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAyD1C,CAAC;AAEF,eAAe,KAAK,CAAC"}
@@ -0,0 +1,59 @@
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 logger_1 = __importDefault(require("../../logger"));
7
+ const leave = omegga => {
8
+ // pattern to get PlayerController from a leave message
9
+ const ownerRegExp = /Owner: (BP_PlayerController_C_\d+)/;
10
+ return {
11
+ // listen for leave events and wait for PlayerController info
12
+ pattern(_line, logMatch) {
13
+ // line is not generic console log
14
+ if (!logMatch)
15
+ return;
16
+ const { generator, data } = logMatch.groups;
17
+ // check if log is a disconnect log
18
+ if (generator !== 'LogNet' || !data.startsWith('UChannel::Close:'))
19
+ return;
20
+ // get the PlayerController from the leave message if there is one (there should be)
21
+ const match = data.match(ownerRegExp);
22
+ if (!match)
23
+ return null;
24
+ // helper func for finding player with this controller
25
+ const getLeavingPlayer = () => omegga.players.find(p => p.controller === match[1]);
26
+ let found = getLeavingPlayer();
27
+ // attempt to find the player over the course of 2 seconds
28
+ // this is because a player can join before all their data is collected
29
+ return new Promise((resolve, reject) => {
30
+ let tries = 50;
31
+ function attempt() {
32
+ found = getLeavingPlayer();
33
+ if (found)
34
+ return resolve(found);
35
+ if (tries-- < 0)
36
+ return reject('ghost player ' + match[1]);
37
+ setTimeout(attempt, 50);
38
+ }
39
+ attempt();
40
+ });
41
+ },
42
+ // when there's a match, remove the player from the player list, emit a leave event
43
+ async callback(res) {
44
+ if (!(res instanceof Promise))
45
+ return;
46
+ try {
47
+ const player = await res;
48
+ omegga.players.splice(omegga.players.indexOf(player), 1);
49
+ omegga.emit('leave', player);
50
+ omegga.emit('plugin:players:raw', omegga.players.map(p => p.raw()));
51
+ }
52
+ catch (e) {
53
+ logger_1.default.error('error getting player leave', e);
54
+ }
55
+ },
56
+ };
57
+ };
58
+ exports.default = leave;
59
+ //# sourceMappingURL=leave.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leave.js","sourceRoot":"","sources":["../../../src/omegga/matchers/leave.ts"],"names":[],"mappings":";;;;;AAEA,0DAA8B;AAE9B,MAAM,KAAK,GAA0C,MAAM,CAAC,EAAE;IAC5D,uDAAuD;IACvD,MAAM,WAAW,GAAG,oCAAoC,CAAC;IAEzD,OAAO;QACL,6DAA6D;QAC7D,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,mCAAmC;YACnC,IAAI,SAAS,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC;gBAChE,OAAO;YAET,oFAAoF;YACpF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACtC,IAAI,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC;YAExB,sDAAsD;YACtD,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAC5B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAEtD,IAAI,KAAK,GAAG,gBAAgB,EAAE,CAAC;YAE/B,0DAA0D;YAC1D,uEAAuE;YACvE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,IAAI,KAAK,GAAG,EAAE,CAAC;gBACf,SAAS,OAAO;oBACd,KAAK,GAAG,gBAAgB,EAAE,CAAC;oBAE3B,IAAI,KAAK;wBAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;oBACjC,IAAI,KAAK,EAAE,GAAG,CAAC;wBAAE,OAAO,MAAM,CAAC,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAE3D,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC1B,CAAC;gBACD,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC;QACD,mFAAmF;QACnF,KAAK,CAAC,QAAQ,CAAC,GAAG;YAChB,IAAI,CAAC,CAAC,GAAG,YAAY,OAAO,CAAC;gBAAE,OAAO;YAEtC,IAAI;gBACF,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC;gBACzB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;gBACzD,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC7B,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CACjC,CAAC;aACH;YAAC,OAAO,CAAC,EAAE;gBACV,gBAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,CAAC,CAAC,CAAC;aAC/C;QACH,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,KAAK,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { MatchGenerator } from './types';
2
+ declare const mapChange: MatchGenerator<string>;
3
+ export default mapChange;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapChange.d.ts","sourceRoot":"","sources":["../../../src/omegga/matchers/mapChange.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,QAAA,MAAM,SAAS,EAAE,cAAc,CAAC,MAAM,CAmCrC,CAAC;AAEF,eAAe,SAAS,CAAC"}