omegga 0.1.85 → 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 +44 -16
  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 -119
  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,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"}