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,781 @@
1
+ import { EnvironmentPreset } from "./brickadia/presets";
2
+ import { BRBanList, BRPlayerNameCache, BRRoleAssignments, BRRoleSetup } from "./brickadia/types";
3
+ import { ILogMinigame, IMinigameList, IPlayerPositions, IServerStatus } from "./omegga/types";
4
+ import { ReadSaveObject, WriteSaveObject } from 'brs-js';
5
+ export declare const read: typeof import("brs-js").read;
6
+ export declare const write: typeof import("brs-js").write;
7
+ export declare const utils: typeof import("brs-js/dist/src/utils");
8
+ export declare const constants: typeof import("brs-js/dist/src/constants");
9
+ export declare const _OMEGGA_UTILS_IMPORT: {
10
+ chat: {
11
+ EMOTES: string[];
12
+ sanitize: (str: string) => string;
13
+ parseLinks: (message: string) => string;
14
+ attr: (attr: string, param?: string) => (message: string) => string;
15
+ attrParam: <T = string>(attr: string) => (message: string, param: T) => string;
16
+ color: (message: string, param: string) => string;
17
+ bold: (message: string) => string;
18
+ italic: (message: string) => string;
19
+ underline: (message: string) => string;
20
+ emoji: (message: string) => string;
21
+ code: (message: string) => string;
22
+ font: (message: string, param: string) => string;
23
+ size: (message: string, param: number) => string;
24
+ link: (message: string, param: string) => string;
25
+ red: (message: string) => string;
26
+ green: (message: string) => string;
27
+ blue: (message: string) => string;
28
+ yellow: (message: string) => string;
29
+ cyan: (message: string) => string;
30
+ magenta: (message: string) => string;
31
+ black: (message: string) => string;
32
+ white: (message: string) => string;
33
+ gray: (message: string) => string;
34
+ };
35
+ color: {
36
+ hsv: typeof import("./util/color").hsv;
37
+ linearRGB: (rgba: number[]) => number[];
38
+ sRGB: (linear: number[]) => number[];
39
+ rgbToHex: (r: number | [number, number, number] | {
40
+ r: number;
41
+ g: number;
42
+ b: number;
43
+ }, g?: number, b?: number) => string;
44
+ DEFAULT_COLORSET: number[][];
45
+ };
46
+ uuid: {
47
+ UUID_PATTERN: RegExp;
48
+ match: (str: string) => boolean;
49
+ };
50
+ pattern: {
51
+ explode: (str: string) => RegExp;
52
+ };
53
+ time: {
54
+ parseDuration: typeof import("./util/time").parseDuration;
55
+ parseBrickadiaTime: typeof import("./util/time").parseBrickadiaTime;
56
+ };
57
+ map: {
58
+ DEFAULT_MAPS: {
59
+ name: string;
60
+ brName: string;
61
+ }[];
62
+ brn2n: typeof import("./util/map").brn2n;
63
+ n2brn: typeof import("./util/map").n2brn;
64
+ };
65
+ brick: {
66
+ BRICK_CONSTANTS: {
67
+ rotationTable: number[];
68
+ translationTable: (([x, y, z]: [number, number, number]) => [number, number, number])[];
69
+ orientationMap: Record<string, [number, number]>;
70
+ DEFAULT_MATERIALS: string[];
71
+ brickSizeMap: Record<string, [number, number, number]>;
72
+ };
73
+ checkBounds: typeof import("./util/brick").checkBounds;
74
+ getBounds: typeof import("./util/brick").getBounds;
75
+ getBrickSize: typeof import("./util/brick").getBrickSize;
76
+ getScaleAxis: typeof import("./util/brick").getScaleAxis;
77
+ setOwnership: typeof import("./util/brick").setOwnership;
78
+ rotate: (brick: import("brs-js").Brick, rotation: [number, number]) => import("brs-js").Brick;
79
+ rotate_x: (times: number) => (obj: import("brs-js").Brick) => import("brs-js").Brick;
80
+ rotate_y: (times: number) => (obj: import("brs-js").Brick) => import("brs-js").Brick;
81
+ rotate_z: (times: number) => (obj: import("brs-js").Brick) => import("brs-js").Brick;
82
+ d2o: (direction: number, rotation: number) => number;
83
+ o2d: (orientation: number) => number[];
84
+ };
85
+ wsl: () => number;
86
+ brs: typeof import("brs-js");
87
+ };
88
+ declare global {
89
+ export var Omegga: OmeggaLike;
90
+ export var Player: StaticPlayer;
91
+ export var OMEGGA_UTIL: typeof _OMEGGA_UTILS_IMPORT;
92
+ }
93
+ export * from "./brickadia/types";
94
+ export * from "./omegga/types";
95
+ export { OmeggaPlugin };
96
+ export declare type OL = OmeggaLike;
97
+ export declare type OP = OmeggaPlugin;
98
+ export declare type PC<T extends Record<string, unknown> = Record<string, unknown>> = PluginConfig<T>;
99
+ export declare type PS<T extends Record<string, unknown> = Record<string, unknown>> = PluginStore<T>;
100
+ export interface BrickBounds {
101
+ minBound: [number, number, number];
102
+ maxBound: [number, number, number];
103
+ center: [number, number, number];
104
+ }
105
+ /** Created when a player clicks on a brick with an interact component */
106
+ export declare type BrickInteraction = {
107
+ /** Brick name from catalog (Turkey Body, 4x Cube) */
108
+ brick_name: string;
109
+ /** Player information, id, name, controller, and pawn */
110
+ player: {
111
+ id: string;
112
+ name: string;
113
+ controller: string;
114
+ pawn: string;
115
+ };
116
+ /** Brick center position */
117
+ position: [number, number, number];
118
+ };
119
+ /** AutoRestart options */
120
+ export declare type AutoRestartConfig = {
121
+ players: boolean;
122
+ bricks: boolean;
123
+ minigames: boolean;
124
+ environment: boolean;
125
+ announcement: boolean;
126
+ };
127
+ export interface OmeggaPlayer {
128
+ /** player name */
129
+ name: string;
130
+ /** player uuid */
131
+ id: string;
132
+ /** player controller id */
133
+ controller: string;
134
+ /** player state id */
135
+ state: string;
136
+ /**
137
+ * Returns omegga
138
+ */
139
+ getOmegga(): OmeggaLike;
140
+ /**
141
+ * Clone a player
142
+ */
143
+ clone(): OmeggaPlayer;
144
+ /**
145
+ * Get raw player info (to feed into a constructor)
146
+ */
147
+ raw(): [string, string, string, string];
148
+ /**
149
+ * True if the player is the host
150
+ */
151
+ isHost(): boolean;
152
+ /**
153
+ * Clear player's bricks
154
+ * @param quiet clear bricks quietly
155
+ */
156
+ clearBricks(quiet?: boolean): void;
157
+ /**
158
+ * Get player's roles, if any
159
+ */
160
+ getRoles(): readonly string[];
161
+ /**
162
+ * Get player's permissions in a map like `{"Bricks.ClearOwn": true, ...}`
163
+ * @return permissions map
164
+ */
165
+ getPermissions(): Record<string, boolean>;
166
+ /**
167
+ * Get player's name color
168
+ * @return 6 character hex string
169
+ */
170
+ getNameColor(): string;
171
+ /**
172
+ * Get the player's pawn
173
+ * @return pawn
174
+ */
175
+ getPawn(): Promise<string>;
176
+ /**
177
+ * Get player's position
178
+ * @return [x, y, z] coordinates
179
+ */
180
+ getPosition(): Promise<[number, number, number]>;
181
+ /**
182
+ * Gets a user's ghost brick info (by uuid, name, controller, or player object)
183
+ * @return ghost brick data
184
+ */
185
+ getGhostBrick(): Promise<{
186
+ targetGrid: string;
187
+ location: number[];
188
+ orientation: string;
189
+ }>;
190
+ /**
191
+ * gets a user's paint tool properties
192
+ */
193
+ getPaint(): Promise<{
194
+ materialIndex: string;
195
+ materialAlpha: string;
196
+ material: string;
197
+ color: number[];
198
+ }>;
199
+ /**
200
+ * gets whether or not the player is crouching
201
+ */
202
+ isCrouched(pawn?: string): Promise<boolean>;
203
+ /**
204
+ * gets whether or not the player is dead
205
+ */
206
+ isDead(pawn?: string): Promise<boolean>;
207
+ /**
208
+ * Gets the bounds of the template in the user's clipboard (bounds of original selection box)
209
+ * @return template bounds
210
+ */
211
+ getTemplateBounds(): Promise<BrickBounds>;
212
+ /**
213
+ * Get bricks inside template bounds
214
+ * @return BRS JS Save Data
215
+ */
216
+ getTemplateBoundsData(): Promise<ReadSaveObject>;
217
+ /**
218
+ * Load bricks at ghost brick location
219
+ * @param saveData save data to load
220
+ */
221
+ loadDataAtGhostBrick(saveData: WriteSaveObject, options?: {
222
+ rotate?: boolean;
223
+ offX?: number;
224
+ offY?: number;
225
+ offZ?: number;
226
+ quiet?: boolean;
227
+ }): Promise<void>;
228
+ /**
229
+ * Load bricks on this player's clipboard
230
+ * @param saveName Save to load
231
+ */
232
+ loadBricks(saveName: string): void;
233
+ /**
234
+ * Load bricks on this player's clipboard passing save data
235
+ * @param saveData save data to load
236
+ */
237
+ loadSaveData(saveData: WriteSaveObject, options?: {
238
+ rotate?: boolean;
239
+ offX?: number;
240
+ offY?: number;
241
+ offZ?: number;
242
+ quiet?: boolean;
243
+ }): Promise<void>;
244
+ /**
245
+ * Kills this player
246
+ */
247
+ kill(): void;
248
+ /**
249
+ * Damages a player
250
+ * @param amount Amount to damage
251
+ */
252
+ damage(amount: number): void;
253
+ /**
254
+ * Heal this player
255
+ * @param amount to heal
256
+ */
257
+ heal(amount: number): void;
258
+ /**
259
+ * Gives a player an item
260
+ * @param item Item name (Weapon_Bow)
261
+ */
262
+ giveItem(item: string): void;
263
+ /**
264
+ * Removes an item from a player's inventory
265
+ * @param item Item name (Weapon_Bow)
266
+ */
267
+ takeItem(item: string): void;
268
+ }
269
+ export interface StaticPlayer {
270
+ /**
271
+ * get a player's roles, if any
272
+ * @param omegga omegga instance
273
+ * @param id player uuid
274
+ * @return list of roles
275
+ */
276
+ getRoles(omegga: OmeggaLike, id: string): readonly string[];
277
+ /**
278
+ * get a player's permissions in a map like `{"Bricks.ClearOwn": true, ...}`
279
+ * @param omegga Omegga instance
280
+ * @param id player uuid
281
+ * @return permissions map
282
+ */
283
+ getPermissions(omegga: OmeggaLike, id: string): Record<string, boolean>;
284
+ /**
285
+ * Kills a player
286
+ * @param omegga Omegga instance
287
+ * @param target Player or player name/id
288
+ */
289
+ kill(omegga: OmeggaLike, target: string | OmeggaPlayer): void;
290
+ /**
291
+ * Damages a player
292
+ * @param omegga Omegga instance
293
+ * @param target Player or player name/id
294
+ * @param amount Damage amount
295
+ */
296
+ damage(omegga: OmeggaLike, target: string | OmeggaPlayer, amount: number): void;
297
+ /**
298
+ * Heal a player
299
+ * @param omegga Omegga instance
300
+ * @param target Player or player name/id
301
+ * @param amount Heal amount
302
+ */
303
+ heal(omegga: OmeggaLike, target: string | OmeggaPlayer, amount: number): void;
304
+ /**
305
+ * Gives a player an item
306
+ * @param omegga Omegga instance
307
+ * @param target Player or player name/id
308
+ * @param item Item name (Weapon_Bow)
309
+ */
310
+ giveItem(omegga: OmeggaLike, target: string | OmeggaPlayer, item: string): void;
311
+ /**
312
+ * Removes an item from a player's inventory
313
+ * @param omegga Omegga instance
314
+ * @param target Player or player name/id
315
+ * @param item Item name (Weapon_Bow)
316
+ */
317
+ takeItem(omegga: OmeggaLike, target: string | OmeggaPlayer, item: string): void;
318
+ }
319
+ export interface InjectedCommands {
320
+ /** Get server status */
321
+ getServerStatus(this: OmeggaLike): Promise<IServerStatus>;
322
+ /** Get a list of minigames and their indices */
323
+ listMinigames(this: OmeggaLike): Promise<IMinigameList>;
324
+ /** Get all player positions and pawns */
325
+ getAllPlayerPositions(this: OmeggaLike): Promise<IPlayerPositions>;
326
+ /** Get minigames and members */
327
+ getMinigames(this: OmeggaLike): Promise<ILogMinigame[]>;
328
+ }
329
+ export interface MockEventEmitter {
330
+ addListener(event: string, listener: Function): this;
331
+ emit(event: string, ...args: any[]): boolean;
332
+ eventNames(): (string | symbol)[];
333
+ getMaxListeners(): number;
334
+ listenerCount(event: string): number;
335
+ listeners(event: string): Function[];
336
+ off(event: string, listener: Function): this;
337
+ on(event: string, listener: Function): this;
338
+ once(event: string, listener: Function): this;
339
+ prependListener(event: string, listener: Function): this;
340
+ prependOnceListener(event: string, listener: Function): this;
341
+ rawListeners(event: string): Function[];
342
+ removeAllListeners(event?: string): this;
343
+ removeListener(event: string, listener: Function): this;
344
+ setMaxListeners(maxListeners: number): this;
345
+ on(event: 'close', listener: () => void): this;
346
+ on(event: 'line', listener: (line: string) => void): this;
347
+ on(event: 'start', listener: (info: {
348
+ map: string;
349
+ }) => void): this;
350
+ on(event: 'version', listener: (version: number) => void): this;
351
+ on(event: 'unauthorized', listener: () => void): this;
352
+ on(event: 'join', listener: (player: OmeggaPlayer) => void): this;
353
+ on(event: 'leave', listener: (player: OmeggaPlayer) => void): this;
354
+ on(event: 'chat', listener: (name: string, message: string) => void): this;
355
+ on(event: 'mapchange', listener: (info: {
356
+ map: string;
357
+ }) => void): this;
358
+ on(event: 'autorestart', listener: (config: AutoRestartConfig) => void): this;
359
+ on(event: 'interact', listener: (interaction: BrickInteraction) => void): this;
360
+ }
361
+ export interface OmeggaLike extends OmeggaCore, LogWrangling, InjectedCommands, MockEventEmitter {
362
+ writeln(line: string): void;
363
+ /** game CL version*/
364
+ version: number;
365
+ /** verbose logging is enabled*/
366
+ verbose: boolean;
367
+ /** list of players */
368
+ players: OmeggaPlayer[];
369
+ /** server host */
370
+ host?: {
371
+ id: string;
372
+ name: string;
373
+ };
374
+ /** server is started */
375
+ started: boolean;
376
+ /** server is starting */
377
+ starting: boolean;
378
+ /** server is stopping */
379
+ stopping: boolean;
380
+ /** current map */
381
+ currentMap: string;
382
+ /** path to config files */
383
+ configPath: string;
384
+ /** path to saves */
385
+ savePath: string;
386
+ /** path to presets */
387
+ presetPath: string;
388
+ /** get a plugin's name, documentation, and loaded status
389
+ * If run in an unsafe plugin, the emitPlugin method sends events from
390
+ * an "unsafe" plugin
391
+ */
392
+ getPlugin(name: string): Promise<PluginInterop>;
393
+ }
394
+ export interface OmeggaCore {
395
+ /**
396
+ * get a list of players
397
+ * @return list of players {id: uuid, name: name} objects
398
+ */
399
+ getPlayers(): {
400
+ id: string;
401
+ name: string;
402
+ controller: string;
403
+ state: string;
404
+ }[];
405
+ /**
406
+ * find a player by name, id, controller, or state
407
+ * @param target - name, id, controller, or state
408
+ */
409
+ getPlayer(target: string): OmeggaPlayer | null;
410
+ /**
411
+ * find a player by rough name, prioritize exact matches and get fuzzier
412
+ * @param name player name, fuzzy
413
+ */
414
+ findPlayerByName(name: string): OmeggaPlayer | null;
415
+ /**
416
+ * get the host's ID
417
+ * @return Host Id
418
+ */
419
+ getHostId(): string;
420
+ /**
421
+ * broadcast messages to chat
422
+ * messages are broken by new line
423
+ * multiple arguments are additional lines
424
+ * all messages longer than 512 characters are deleted automatically, though omegga wouldn't have sent them anyway
425
+ * @param messages unescaped chat messages to send. may need to wrap messages with quotes
426
+ */
427
+ broadcast(...messages: string[]): void;
428
+ /**
429
+ * whisper messages to a player's chat
430
+ * messages are broken by new line
431
+ * multiple arguments are additional lines
432
+ * all messages longer than 512 characters are deleted automatically, though omegga wouldn't have sent them anyway
433
+ * @param target - player identifier or player object
434
+ * @param messages - unescaped chat messages to send. may need to wrap messages with quotes
435
+ */
436
+ whisper(target: string | OmeggaPlayer, ...messages: string[]): void;
437
+ /**
438
+ * prints text to the middle of a player's screen
439
+ * all messages longer than 512 characters are deleted automatically
440
+ * @param target - player identifier or player object
441
+ * @param message - unescaped chat messages to send. may need to wrap messages with quotes
442
+ */
443
+ middlePrint(target: string | OmeggaPlayer, message: string): void;
444
+ /**
445
+ * Save a minigame preset based on a minigame index
446
+ * @param index minigame index
447
+ * @param name preset name
448
+ */
449
+ saveMinigame(index: number, name: string): void;
450
+ /**
451
+ * Delete a minigame
452
+ * @param index minigame index
453
+ */
454
+ deleteMinigame(index: number): void;
455
+ /**
456
+ * Reset a minigame
457
+ * @param index minigame index
458
+ */
459
+ resetMinigame(index: number): void;
460
+ /**
461
+ * Force the next round in a minigame
462
+ * @param index minigame index
463
+ */
464
+ nextRoundMinigame(index: number): void;
465
+ /**
466
+ * Load an Minigame preset
467
+ * @param presetName preset name
468
+ * @param owner owner id/name
469
+ */
470
+ loadMinigame(presetName: string, owner?: string): void;
471
+ /**
472
+ * Get all presets in the minigame folder and child folders
473
+ */
474
+ getMinigamePresets(): string[];
475
+ /**
476
+ * Reset the environment settings
477
+ */
478
+ resetEnvironment(): void;
479
+ /**
480
+ * Save an environment preset
481
+ * @param presetName preset name
482
+ */
483
+ saveEnvironment(presetName: string): void;
484
+ /**
485
+ * Load an environment preset
486
+ * @param presetName preset name
487
+ */
488
+ loadEnvironment(presetName: string): void;
489
+ /**
490
+ * Load some environment preset data
491
+ * @param preset preset data
492
+ */
493
+ loadEnvironmentData(preset: EnvironmentPreset | EnvironmentPreset['data']['groups']): void;
494
+ /**
495
+ * Get all presets in the environment folder and child folders
496
+ */
497
+ getEnvironmentPresets(): string[];
498
+ /**
499
+ * Clear a user's bricks (by uuid, name, controller, or player object)
500
+ * @param target player or player identifier
501
+ * @param quiet quietly clear bricks
502
+ */
503
+ clearBricks(target: string | {
504
+ id: string;
505
+ }, quiet?: boolean): void;
506
+ /**
507
+ * Clear a region of bricks
508
+ * @param region region to clear
509
+ * @param options optional settings
510
+ */
511
+ clearRegion(region: {
512
+ center: [number, number, number];
513
+ extent: [number, number, number];
514
+ }, options?: {
515
+ target?: string | OmeggaPlayer;
516
+ }): void;
517
+ /**
518
+ * Clear all bricks on the server
519
+ * @param quiet quietly clear bricks
520
+ */
521
+ clearAllBricks(quiet?: boolean): void;
522
+ /**
523
+ * Save bricks under a filename
524
+ * @param saveName save file name
525
+ * @param region region of bricks to save
526
+ */
527
+ saveBricks(saveName: string, region?: {
528
+ center: [number, number, number];
529
+ extent: [number, number, number];
530
+ }): void;
531
+ /**
532
+ * Save bricks under a filename, with a promise
533
+ * @param saveName save file name
534
+ * @param region region of bricks to save
535
+ */
536
+ saveBricksAsync(saveName: string, region?: {
537
+ center: [number, number, number];
538
+ extent: [number, number, number];
539
+ }): Promise<void>;
540
+ /**
541
+ * Load bricks on the server
542
+ */
543
+ loadBricks(saveName: string, options?: {
544
+ offX?: number;
545
+ offY?: number;
546
+ offZ?: number;
547
+ quiet?: boolean;
548
+ correctPalette?: boolean;
549
+ correctCustom?: boolean;
550
+ }): void;
551
+ /**
552
+ * Load bricks on the server into a player's clipbaord
553
+ */
554
+ loadBricksOnPlayer(saveName: string, player: string | OmeggaPlayer, options?: {
555
+ offX?: number;
556
+ offY?: number;
557
+ offZ?: number;
558
+ correctPalette?: boolean;
559
+ correctCustom?: boolean;
560
+ }): void;
561
+ /**
562
+ * Get all saves in the save folder and child folders
563
+ */
564
+ getSaves(): string[];
565
+ /**
566
+ * Checks if a save exists and returns an absolute path
567
+ * @param saveName Save filename
568
+ * @return Path to string
569
+ */
570
+ getSavePath(saveName: string): string;
571
+ /**
572
+ * unsafely load save data (wrap in try/catch)
573
+ * @param saveName save file name
574
+ * @param saveData BRS JS Save data
575
+ */
576
+ writeSaveData(saveName: string, saveData: WriteSaveObject): void;
577
+ /**
578
+ * unsafely read save data (wrap in try/catch)
579
+ * @param saveName save file name
580
+ * @param nobricks only read save header data
581
+ * @return BRS JS Save Data
582
+ */
583
+ readSaveData(saveName: string, nobricks?: boolean): ReadSaveObject;
584
+ /**
585
+ * load bricks from save data and resolve when game finishes loading
586
+ * @param saveData BRS JS Save data
587
+ */
588
+ loadSaveData(saveData: WriteSaveObject, options?: {
589
+ offX?: number;
590
+ offY?: number;
591
+ offZ?: number;
592
+ quiet?: boolean;
593
+ correctPalette?: boolean;
594
+ correctCustom?: boolean;
595
+ }): Promise<void>;
596
+ /**
597
+ * load bricks from save data and resolve when game finishes loading
598
+ * @param saveData BRS JS Save data
599
+ * @param player Player name/id or player object
600
+ */
601
+ loadSaveDataOnPlayer(saveData: WriteSaveObject, player: string | OmeggaPlayer, options?: {
602
+ offX?: number;
603
+ offY?: number;
604
+ offZ?: number;
605
+ correctPalette?: boolean;
606
+ correctCustom?: boolean;
607
+ }): Promise<void>;
608
+ /**
609
+ * get current bricks as save data
610
+ */
611
+ getSaveData(region?: {
612
+ center: [number, number, number];
613
+ extent: [number, number, number];
614
+ }): Promise<ReadSaveObject>;
615
+ /**
616
+ * Change server map
617
+ * @param map Map name
618
+ */
619
+ changeMap(map: string): Promise<boolean>;
620
+ /**
621
+ * Get up-to-date role setup from RoleSetup.json
622
+ */
623
+ getRoleSetup(): BRRoleSetup;
624
+ /**
625
+ * Get up-to-date role assignments from RoleAssignment.json
626
+ */
627
+ getRoleAssignments(): BRRoleAssignments;
628
+ /**
629
+ * Get up-to-date ban list from BanList.json
630
+ */
631
+ getBanList(): BRBanList;
632
+ /**
633
+ * Get up-to-date name cache from PlayerNameCache.json
634
+ */
635
+ getNameCache(): BRPlayerNameCache;
636
+ }
637
+ /** A simple document store for plugins */
638
+ export interface PluginStore<Storage extends Record<string, unknown> = Record<string, unknown>> {
639
+ /** Get a value from plugin storage */
640
+ get<T extends keyof Storage>(key: T): Promise<Storage[T]>;
641
+ /** Set a value to plugin storage */
642
+ set<T extends keyof Storage>(key: T, value: Storage[T]): Promise<void>;
643
+ /** Delete a value from plugin storage */
644
+ delete(key: string): Promise<void>;
645
+ /** Wipe all values in plugin storage */
646
+ wipe(): Promise<void>;
647
+ /** Count entries in plugin storage */
648
+ count(): Promise<number>;
649
+ /** Get a list of keys in plugin storage */
650
+ keys(): Promise<(keyof Storage)[]>;
651
+ }
652
+ /** A config representative of the config outlined in doc.json */
653
+ export declare type PluginConfig<T extends Record<string, unknown> = Record<string, unknown>> = T;
654
+ /** An omegga plugin */
655
+ export default abstract class OmeggaPlugin<Config extends Record<string, unknown> = Record<string, unknown>, Storage extends Record<string, unknown> = Record<string, unknown>> {
656
+ omegga: OmeggaLike;
657
+ config: PluginConfig<Config>;
658
+ store: PluginStore<Storage>;
659
+ constructor(omegga: OmeggaLike, config: PluginConfig<Config>, store: PluginStore<Storage>);
660
+ /** Run when plugin starts, returns /commands it uses */
661
+ abstract init(): Promise<void | {
662
+ registeredCommands?: string[];
663
+ }>;
664
+ /** Run when plugin is stopped */
665
+ abstract stop(): Promise<void>;
666
+ /** Run when another plugin tries to interact with this plugin
667
+ * @param event Event name
668
+ * @param from Name of origin plugin
669
+ * @return value other plugin expects
670
+ */
671
+ abstract pluginEvent?(event: string, from: string, ...args: any[]): Promise<unknown>;
672
+ }
673
+ export interface LogWrangling {
674
+ /** Add a passive pattern on console output that invokes callback on match */
675
+ addMatcher<T>(pattern: IMatcher<T>['pattern'], callback: IMatcher<T>['callback']): void;
676
+ /** Run an active pattern on console output that resolves a match */
677
+ addWatcher<T = RegExpMatchArray>(pattern: IWatcher<T>['pattern'], options?: {
678
+ timeoutDelay?: number;
679
+ bundle?: boolean;
680
+ debounce?: boolean;
681
+ afterMatchDelay?: number;
682
+ last?: IWatcher<T>['last'];
683
+ exec?: () => void;
684
+ }): Promise<IWatcher<T>['matches']>;
685
+ /** Run a command and capture bundled output */
686
+ watchLogChunk<T = string>(cmd: string, pattern: IWatcher<T>['pattern'], options?: {
687
+ first?: 'index' | ((match: T) => boolean);
688
+ last?: IWatcher<T>['last'];
689
+ afterMatchDelay?: number;
690
+ timeoutDelay?: number;
691
+ }): Promise<IWatcher<T>['matches']>;
692
+ /** Run a command and capture bundled output for array functions */
693
+ watchLogArray<Item extends Record<string, string> = Record<string, string>, Member extends Record<string, string> = Record<string, string>>(cmd: string, itemPattern: RegExp, memberPattern: RegExp): Promise<{
694
+ item: Item;
695
+ members: Member[];
696
+ }[]>;
697
+ }
698
+ export declare type WatcherPattern<T> = (line: string, match: RegExpMatchArray) => T | RegExpMatchArray | '[OMEGGA_WATCHER_DONE]';
699
+ export declare type IMatcher<T> = {
700
+ pattern: RegExp;
701
+ callback: (match: RegExpMatchArray) => boolean;
702
+ } | {
703
+ pattern: (line: string, match: RegExpMatchArray) => T;
704
+ callback: (match: RegExpMatchArray) => T;
705
+ };
706
+ export declare type IWatcher<T> = {
707
+ bundle: boolean;
708
+ debounce: boolean;
709
+ timeoutDelay: number;
710
+ afterMatchDelay: number;
711
+ last: (match: T) => boolean;
712
+ callback: () => void;
713
+ resolve: (...args: any[]) => void;
714
+ remove: () => void;
715
+ done: () => void;
716
+ timeout: ReturnType<typeof setTimeout>;
717
+ } & ({
718
+ pattern: WatcherPattern<T>;
719
+ matches: T[];
720
+ } | {
721
+ pattern: RegExp;
722
+ matches: RegExpMatchArray[];
723
+ });
724
+ export declare type IPluginConfigDefinition = {
725
+ description: string;
726
+ } & ({
727
+ type: 'string' | 'password' | 'role';
728
+ default: string;
729
+ } | {
730
+ type: 'boolean';
731
+ default: boolean;
732
+ } | {
733
+ type: 'number';
734
+ default: number;
735
+ } | {
736
+ type: 'enum';
737
+ options: (string | number)[];
738
+ default: string | number;
739
+ } | {
740
+ type: 'players';
741
+ default: {
742
+ id: string;
743
+ name: string;
744
+ };
745
+ } | ({
746
+ type: 'list';
747
+ } & ({
748
+ itemType: 'string';
749
+ default: string[];
750
+ } | {
751
+ itemType: 'number';
752
+ default: number[];
753
+ } | {
754
+ itemType: 'enum';
755
+ options: (string | number)[];
756
+ default: string | number;
757
+ })));
758
+ export interface IPluginCommandArgument {
759
+ name: string;
760
+ description: string;
761
+ required?: boolean;
762
+ }
763
+ export interface IPluginCommand {
764
+ name: string;
765
+ description: string;
766
+ example?: string;
767
+ args: IPluginCommandArgument[];
768
+ }
769
+ export interface IPluginDocumentation {
770
+ name: string;
771
+ description: string;
772
+ author: string;
773
+ config: Record<string, IPluginConfigDefinition>;
774
+ commands: IPluginCommand[];
775
+ }
776
+ export interface PluginInterop {
777
+ name: string;
778
+ documentation: IPluginDocumentation;
779
+ loaded: boolean;
780
+ emitPlugin?(event: string, args: any[]): Promise<any>;
781
+ }