omegga 1.2.8 → 1.3.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 (255) hide show
  1. package/README.md +20 -1
  2. package/dist/brickadia/config.js +26 -90
  3. package/dist/brickadia/config.js.map +1 -1
  4. package/dist/brickadia/server.js +294 -293
  5. package/dist/brickadia/server.js.map +1 -1
  6. package/dist/cli/auth.js +149 -177
  7. package/dist/cli/auth.js.map +1 -1
  8. package/dist/cli/config.js +64 -66
  9. package/dist/cli/config.js.map +1 -1
  10. package/dist/cli/index.js +14 -14
  11. package/dist/cli/index.js.map +1 -1
  12. package/dist/cli/installer.js +37 -43
  13. package/dist/cli/installer.js.map +1 -1
  14. package/dist/cli/plugin.js +651 -682
  15. package/dist/cli/plugin.js.map +1 -1
  16. package/dist/cli/terminal.js +811 -733
  17. package/dist/cli/terminal.js.map +1 -1
  18. package/dist/config/formats/format_js.js +6 -6
  19. package/dist/config/formats/format_js.js.map +1 -1
  20. package/dist/config/formats/format_yml.js +7 -10
  21. package/dist/config/formats/format_yml.js.map +1 -1
  22. package/dist/config/index.js +46 -68
  23. package/dist/config/index.js.map +1 -1
  24. package/dist/config/reader.js +16 -27
  25. package/dist/config/reader.js.map +1 -1
  26. package/dist/config/validator.js +23 -25
  27. package/dist/config/validator.js.map +1 -1
  28. package/dist/config/writer.js +11 -21
  29. package/dist/config/writer.js.map +1 -1
  30. package/dist/index.js +18 -64
  31. package/dist/index.js.map +1 -1
  32. package/dist/info/default_commands.json.js +39 -0
  33. package/dist/info/default_commands.json.js.map +1 -0
  34. package/dist/logger.js +61 -60
  35. package/dist/logger.js.map +1 -1
  36. package/dist/main.js +424 -471
  37. package/dist/main.js.map +1 -1
  38. package/dist/omegga/auth.js +101 -148
  39. package/dist/omegga/auth.js.map +1 -1
  40. package/dist/omegga/commandInjector.js +261 -251
  41. package/dist/omegga/commandInjector.js.map +1 -1
  42. package/dist/omegga/index.js +14 -52
  43. package/dist/omegga/index.js.map +1 -1
  44. package/dist/omegga/logWrangler.js +224 -275
  45. package/dist/omegga/logWrangler.js.map +1 -1
  46. package/dist/omegga/matchers/auth.js +36 -50
  47. package/dist/omegga/matchers/auth.js.map +1 -1
  48. package/dist/omegga/matchers/chat.js +49 -71
  49. package/dist/omegga/matchers/chat.js.map +1 -1
  50. package/dist/omegga/matchers/command.js +25 -36
  51. package/dist/omegga/matchers/command.js.map +1 -1
  52. package/dist/omegga/matchers/exit.js +15 -18
  53. package/dist/omegga/matchers/exit.js.map +1 -1
  54. package/dist/omegga/matchers/index.js +26 -40
  55. package/dist/omegga/matchers/index.js.map +1 -1
  56. package/dist/omegga/matchers/init.js +20 -23
  57. package/dist/omegga/matchers/init.js.map +1 -1
  58. package/dist/omegga/matchers/interact.js +58 -64
  59. package/dist/omegga/matchers/interact.js.map +1 -1
  60. package/dist/omegga/matchers/join.js +74 -95
  61. package/dist/omegga/matchers/join.js.map +1 -1
  62. package/dist/omegga/matchers/leave.js +43 -56
  63. package/dist/omegga/matchers/leave.js.map +1 -1
  64. package/dist/omegga/matchers/mapChange.js +26 -35
  65. package/dist/omegga/matchers/mapChange.js.map +1 -1
  66. package/dist/omegga/matchers/minigameJoin.js +24 -31
  67. package/dist/omegga/matchers/minigameJoin.js.map +1 -1
  68. package/dist/omegga/matchers/version.js +42 -49
  69. package/dist/omegga/matchers/version.js.map +1 -1
  70. package/dist/omegga/player.js +527 -527
  71. package/dist/omegga/player.js.map +1 -1
  72. package/dist/omegga/plugin/interface.js +91 -98
  73. package/dist/omegga/plugin/interface.js.map +1 -1
  74. package/dist/omegga/plugin/plugin_jsonrpc_stdio.js +524 -429
  75. package/dist/omegga/plugin/plugin_jsonrpc_stdio.js.map +1 -1
  76. package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.js +282 -294
  77. package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.js.map +1 -1
  78. package/dist/omegga/plugin/plugin_node_safe.js +365 -393
  79. package/dist/omegga/plugin/plugin_node_safe.js.map +1 -1
  80. package/dist/omegga/plugin/plugin_node_unsafe.js +119 -179
  81. package/dist/omegga/plugin/plugin_node_unsafe.js.map +1 -1
  82. package/dist/omegga/plugin.js +402 -347
  83. package/dist/omegga/plugin.js.map +1 -1
  84. package/dist/omegga/server.js +742 -774
  85. package/dist/omegga/server.js.map +1 -1
  86. package/dist/omegga/wrapper.js +64 -91
  87. package/dist/omegga/wrapper.js.map +1 -1
  88. package/dist/plugin.js +11 -31
  89. package/dist/plugin.js.map +1 -1
  90. package/dist/softconfig.js +121 -100
  91. package/dist/softconfig.js.map +1 -1
  92. package/dist/updater/steam.js +97 -112
  93. package/dist/updater/steam.js.map +1 -1
  94. package/dist/util/brdb.js +496 -528
  95. package/dist/util/brdb.js.map +1 -1
  96. package/dist/util/brick/checkBounds.js +11 -15
  97. package/dist/util/brick/checkBounds.js.map +1 -1
  98. package/dist/util/brick/constants.js +723 -174
  99. package/dist/util/brick/constants.js.map +1 -1
  100. package/dist/util/brick/displayName.js +204 -211
  101. package/dist/util/brick/displayName.js.map +1 -1
  102. package/dist/util/brick/getBounds.js +29 -41
  103. package/dist/util/brick/getBounds.js.map +1 -1
  104. package/dist/util/brick/getBrickSize.js +6 -7
  105. package/dist/util/brick/getBrickSize.js.map +1 -1
  106. package/dist/util/brick/getScaleAxis.js +24 -30
  107. package/dist/util/brick/getScaleAxis.js.map +1 -1
  108. package/dist/util/brick/index.js +8 -29
  109. package/dist/util/brick/index.js.map +1 -1
  110. package/dist/util/brick/rotate.js +29 -34
  111. package/dist/util/brick/rotate.js.map +1 -1
  112. package/dist/util/brick/setOwnership.js +13 -19
  113. package/dist/util/brick/setOwnership.js.map +1 -1
  114. package/dist/util/chat.js +53 -44
  115. package/dist/util/chat.js.map +1 -1
  116. package/dist/util/color.js +112 -124
  117. package/dist/util/color.js.map +1 -1
  118. package/dist/util/file.js +54 -98
  119. package/dist/util/file.js.map +1 -1
  120. package/dist/util/index.js +84 -106
  121. package/dist/util/index.js.map +1 -1
  122. package/dist/util/map.js +18 -20
  123. package/dist/util/map.js.map +1 -1
  124. package/dist/util/pattern.js +6 -9
  125. package/dist/util/pattern.js.map +1 -1
  126. package/dist/util/time.js +31 -34
  127. package/dist/util/time.js.map +1 -1
  128. package/dist/util/uuid.js +10 -8
  129. package/dist/util/uuid.js.map +1 -1
  130. package/dist/util/wsl.js +19 -25
  131. package/dist/util/wsl.js.map +1 -1
  132. package/dist/version.js +7 -9
  133. package/dist/version.js.map +1 -1
  134. package/dist/webserver/backend/api.js +784 -874
  135. package/dist/webserver/backend/api.js.map +1 -1
  136. package/dist/webserver/backend/calendar.js +14 -17
  137. package/dist/webserver/backend/calendar.js.map +1 -1
  138. package/dist/webserver/backend/database.js +563 -613
  139. package/dist/webserver/backend/database.js.map +1 -1
  140. package/dist/webserver/backend/index.js +153 -191
  141. package/dist/webserver/backend/index.js.map +1 -1
  142. package/dist/webserver/backend/metrics.js +219 -248
  143. package/dist/webserver/backend/metrics.js.map +1 -1
  144. package/dist/webserver/backend/util.js +47 -68
  145. package/dist/webserver/backend/util.js.map +1 -1
  146. package/dist/worker.js +322 -0
  147. package/dist/worker.js.map +1 -0
  148. package/package.json +14 -10
  149. package/templates/safe-ts/omegga.d.ts +2 -2
  150. package/vite.backend.config.mts +46 -0
  151. package/vite.frontend.config.mts +58 -0
  152. package/vitest.backend.config.mts +7 -0
  153. package/dist/brickadia/config.d.ts +0 -3
  154. package/dist/brickadia/presets.d.ts +0 -65
  155. package/dist/brickadia/presets.js +0 -3
  156. package/dist/brickadia/presets.js.map +0 -1
  157. package/dist/brickadia/server.d.ts +0 -36
  158. package/dist/brickadia/types.d.ts +0 -45
  159. package/dist/brickadia/types.js +0 -3
  160. package/dist/brickadia/types.js.map +0 -1
  161. package/dist/cli/auth.d.ts +0 -26
  162. package/dist/cli/config.d.ts +0 -10
  163. package/dist/cli/index.d.ts +0 -30
  164. package/dist/cli/installer.d.ts +0 -1
  165. package/dist/cli/plugin.d.ts +0 -22
  166. package/dist/cli/terminal.d.ts +0 -25
  167. package/dist/config/authorizer.d.ts +0 -2
  168. package/dist/config/authorizer.js +0 -38
  169. package/dist/config/authorizer.js.map +0 -1
  170. package/dist/config/formats/format_js.d.ts +0 -3
  171. package/dist/config/formats/format_yml.d.ts +0 -3
  172. package/dist/config/index.d.ts +0 -18
  173. package/dist/config/reader.d.ts +0 -3
  174. package/dist/config/types.d.ts +0 -50
  175. package/dist/config/types.js +0 -3
  176. package/dist/config/types.js.map +0 -1
  177. package/dist/config/validator.d.ts +0 -6
  178. package/dist/config/writer.d.ts +0 -3
  179. package/dist/index.d.ts +0 -22
  180. package/dist/info/default_commands.json +0 -29
  181. package/dist/logger.d.ts +0 -41
  182. package/dist/main.d.ts +0 -1
  183. package/dist/omegga/auth.d.ts +0 -9
  184. package/dist/omegga/commandInjector.d.ts +0 -35
  185. package/dist/omegga/index.d.ts +0 -7
  186. package/dist/omegga/logWrangler.d.ts +0 -32
  187. package/dist/omegga/matchers/auth.d.ts +0 -10
  188. package/dist/omegga/matchers/chat.d.ts +0 -10
  189. package/dist/omegga/matchers/command.d.ts +0 -7
  190. package/dist/omegga/matchers/exit.d.ts +0 -3
  191. package/dist/omegga/matchers/index.d.ts +0 -3
  192. package/dist/omegga/matchers/init.d.ts +0 -3
  193. package/dist/omegga/matchers/interact.d.ts +0 -4
  194. package/dist/omegga/matchers/join.d.ts +0 -4
  195. package/dist/omegga/matchers/leave.d.ts +0 -4
  196. package/dist/omegga/matchers/mapChange.d.ts +0 -3
  197. package/dist/omegga/matchers/minigameJoin.d.ts +0 -9
  198. package/dist/omegga/matchers/types.d.ts +0 -5
  199. package/dist/omegga/matchers/types.js +0 -3
  200. package/dist/omegga/matchers/types.js.map +0 -1
  201. package/dist/omegga/matchers/version.d.ts +0 -3
  202. package/dist/omegga/player.d.ts +0 -81
  203. package/dist/omegga/plugin/interface.d.ts +0 -30
  204. package/dist/omegga/plugin/plugin_jsonrpc_stdio.d.ts +0 -23
  205. package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.d.ts +0 -145
  206. package/dist/omegga/plugin/plugin_node_safe/worker.d.ts +0 -1
  207. package/dist/omegga/plugin/plugin_node_safe/worker.js +0 -367
  208. package/dist/omegga/plugin/plugin_node_safe/worker.js.map +0 -1
  209. package/dist/omegga/plugin/plugin_node_safe.d.ts +0 -23
  210. package/dist/omegga/plugin/plugin_node_unsafe.d.ts +0 -13
  211. package/dist/omegga/plugin.d.ts +0 -63
  212. package/dist/omegga/server.d.ts +0 -166
  213. package/dist/omegga/types.d.ts +0 -49
  214. package/dist/omegga/types.js +0 -3
  215. package/dist/omegga/types.js.map +0 -1
  216. package/dist/omegga/wrapper.d.ts +0 -32
  217. package/dist/plugin.d.ts +0 -916
  218. package/dist/softconfig.d.ts +0 -67
  219. package/dist/tsconfig.tsbuildinfo +0 -1
  220. package/dist/updater/index.d.ts +0 -1
  221. package/dist/updater/index.js +0 -10
  222. package/dist/updater/index.js.map +0 -1
  223. package/dist/updater/steam.d.ts +0 -52
  224. package/dist/util/brdb.d.ts +0 -31
  225. package/dist/util/brick/checkBounds.d.ts +0 -8
  226. package/dist/util/brick/constants.d.ts +0 -18
  227. package/dist/util/brick/displayName.d.ts +0 -7
  228. package/dist/util/brick/getBounds.d.ts +0 -5
  229. package/dist/util/brick/getBrickSize.d.ts +0 -3
  230. package/dist/util/brick/getScaleAxis.d.ts +0 -3
  231. package/dist/util/brick/index.d.ts +0 -14
  232. package/dist/util/brick/rotate.d.ts +0 -16
  233. package/dist/util/brick/setOwnership.d.ts +0 -12
  234. package/dist/util/chat.d.ts +0 -23
  235. package/dist/util/color.d.ts +0 -13
  236. package/dist/util/file.d.ts +0 -5
  237. package/dist/util/index.d.ts +0 -183
  238. package/dist/util/map.d.ts +0 -6
  239. package/dist/util/pattern.d.ts +0 -1
  240. package/dist/util/time.d.ts +0 -39
  241. package/dist/util/uuid.d.ts +0 -3
  242. package/dist/util/wsl.d.ts +0 -2
  243. package/dist/version.d.ts +0 -2
  244. package/dist/webserver/backend/api.d.ts +0 -115
  245. package/dist/webserver/backend/calendar.d.ts +0 -5
  246. package/dist/webserver/backend/database.d.ts +0 -150
  247. package/dist/webserver/backend/index.d.ts +0 -30
  248. package/dist/webserver/backend/metrics.d.ts +0 -3
  249. package/dist/webserver/backend/types.d.ts +0 -114
  250. package/dist/webserver/backend/types.js +0 -3
  251. package/dist/webserver/backend/types.js.map +0 -1
  252. package/dist/webserver/backend/util.d.ts +0 -2
  253. package/dist/webserver/index.d.ts +0 -2
  254. package/dist/webserver/index.js +0 -9
  255. package/dist/webserver/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"logWrangler.js","sourceRoot":"","sources":["../../src/omegga/logWrangler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logWrangler.js","sources":["../../src/omegga/logWrangler.ts"],"sourcesContent":["/*\nThe wrapper combines the things looking at or waiting for logs with the actual server logs\n*/\n\nimport Omegga from './server';\n\nimport { IMatcher, IWatcher, LogWrangling } from '@/plugin';\nimport Logger from '@/logger';\n\nconst GENERIC_LINE_REGEX =\n /^(\\[(?<date>\\d{4}\\.\\d\\d.\\d\\d-\\d\\d.\\d\\d.\\d\\d:\\d{3})\\]\\[\\s*(?<counter>\\d+)\\])?(?<generator>\\w+): (?<data>.+)$/;\n\nclass LogWrangler implements LogWrangling {\n // list of patterns and callbacks watching the brickadia logs in general\n #matchers: IMatcher<unknown>[] = [];\n\n // list of patterns and promises waiting for specific console logs\n #watchers: IWatcher<unknown>[] = [];\n\n exec: (cmd: string) => void;\n getPlayer: Omegga['getPlayer'];\n getVersion: () => number;\n omegga: Omegga;\n callback: LogWrangler['handleLog'];\n\n constructor(omegga: Omegga) {\n // passthru functions\n this.exec = cmd => omegga.writeln(cmd);\n this.getPlayer = (arg: string) => omegga.getPlayer(arg);\n this.getVersion = () => omegga.version;\n\n // callback reads in new lines\n this.callback = this.handleLog.bind(this);\n\n this.addMatcher = this.addMatcher.bind(this);\n this.addWatcher = this.addWatcher.bind(this);\n this.watchLogArray = this.watchLogArray.bind(this);\n this.watchLogChunk = this.watchLogChunk.bind(this);\n this.omegga = omegga;\n }\n\n // add a new matcher to listen in on the logs\n // pattern is regex or a function that returns a match\n // callback is a function that receives the result of the pattern\n // returns a deregister function\n addMatcher<T>(\n pattern: IMatcher<T>['pattern'],\n callback: IMatcher<T>['callback'],\n ) {\n if (\n (typeof pattern !== 'function' && !(pattern instanceof RegExp)) ||\n typeof callback !== 'function'\n )\n return undefined;\n\n // create the matcher from the callback and pattern, add it to the matchers\n const matcher = { pattern, callback } as IMatcher<T>;\n this.#matchers.push(matcher);\n\n // return a function to remove this matcher from the list of matchers\n return () => {\n const index = this.#matchers.indexOf(matcher);\n if (index > -1) this.#matchers.splice(index, 0);\n };\n }\n\n // wait for stdout to match this regex or matcher fn, returns the match or times out\n // pattern is regex or a function that returns a match\n // if bundle is set to true, it returns all matches after the timeout ends rather than resolving (can't be used with delay 0)\n // exec is a function run after adding the watcher\n // debounce (used with bundle) waits extra time after each match before timing out\n // afterMatchDelay (used with debounce) indicates to run a new timeout after the first match\n // last (used with bundle) is a function run on the match. when it returns true, the watcher resolves early\n // returns a promise, rejects after timeout ends\n addWatcher<T = RegExpMatchArray>(\n pattern: IWatcher<T>['pattern'],\n {\n timeoutDelay = 50,\n bundle = false,\n debounce = false,\n afterMatchDelay = 0,\n last,\n exec,\n }: {\n timeoutDelay?: number;\n bundle?: boolean;\n debounce?: boolean;\n afterMatchDelay?: number;\n last?: IWatcher<T>['last'];\n exec?: () => void;\n } = {},\n ): Promise<IWatcher<T>['matches']> {\n if (typeof pattern !== 'function' && !(pattern instanceof RegExp))\n return undefined;\n\n return new Promise((resolve, reject) => {\n // create the watcher\n const watcher = {\n pattern,\n bundle,\n debounce,\n timeoutDelay,\n afterMatchDelay,\n last,\n matches: [],\n } as Partial<IWatcher<T>>;\n\n watcher.resolve = (...args) => {\n clearTimeout(watcher.timeout);\n resolve(args);\n };\n\n // remove helper\n watcher.remove = () => {\n const index = this.#watchers.indexOf(watcher as IWatcher<T>);\n if (index > -1) {\n this.#watchers.splice(index, 1);\n }\n };\n\n // what the watcher dones when it completes\n watcher.done = () => {\n // remove the watcher if it exists\n watcher.remove();\n\n // if the bundle option is set to true, resolve on timeout end\n if (bundle) {\n resolve(watcher.matches);\n } else {\n Logger.verbose('Watcher', pattern.toString(), 'timed out');\n // reject the promise\n reject('timed out');\n }\n };\n\n // if the delay is non 0, kill the promise after some time\n if (timeoutDelay !== 0) {\n watcher.timeout = setTimeout(watcher.done, timeoutDelay);\n }\n\n this.#watchers.push(watcher as IWatcher<T>);\n exec && exec();\n });\n }\n\n // match a group of console logs that have the same counter (ran on the same thread)\n // first is a function or 'index' for the index capture group that determines if this is match is the first log\n // last is a function that determines if this match is the last log (and can terminate early)\n // aftermatch delay is borrowed from addWatcher\n watchLogChunk<T = string>(\n cmd: string,\n pattern: IWatcher<T>['pattern'],\n {\n first,\n last,\n afterMatchDelay = 10,\n timeoutDelay = 100,\n }: {\n first?: 'index' | ((match: T) => boolean);\n last?: IWatcher<T>['last'];\n afterMatchDelay?: number;\n timeoutDelay?: number;\n } = {},\n ): Promise<IWatcher<T>['matches']> {\n // we're focused on the counter part of this, the rest will be passed to the pattern matcher\n const logLineRegExp =\n /\\[(?<date>\\d{4}\\.\\d\\d.\\d\\d-\\d\\d.\\d\\d.\\d\\d:\\d{3})\\]\\[\\s*(?<counter>\\d+)\\](?<rest>.*)$/;\n\n // keep track of the current log line\n let currentCounter: number | string = -1;\n\n // create the\n return this.addWatcher<T>(\n (line: string, _match: RegExpMatchArray) => {\n const logLineMatch = line.match(logLineRegExp);\n if (!logLineMatch) return;\n\n // get the counter and rest of line from the log line match\n const {\n groups: { counter, rest },\n } = logLineMatch;\n\n // run the regular pattern matcher\n const match =\n pattern instanceof RegExp\n ? rest.match(pattern)\n : pattern(rest, rest.match(GENERIC_LINE_REGEX));\n\n // end the watcher early if there is no match and the match has started (log chunks are uninterrupted)\n // this usually means that two commands were run so quickly that the output occured on the same counter\n if (!match && currentCounter !== -1) {\n return '[OMEGGA_WATCHER_DONE]';\n }\n\n // ignore things that don't match\n if (!match) return;\n\n // determine if this is the first log in the chunk\n let isFirst = false;\n\n // if there is a first parameter\n if (first) {\n // if it's a function, use that function to match\n if (typeof first === 'function') isFirst = first(match as T);\n // if it's 'index', use the index capture group\n else if (\n first === 'index' &&\n typeof match === 'object' &&\n 'groups' in match\n )\n isFirst = match.groups.index === '0';\n } else {\n // otherwise, it doesn't matter\n isFirst = true;\n }\n\n // assign counter if it's not set and it's the first, or no first function is set\n if (currentCounter === -1 && isFirst) {\n currentCounter = counter;\n }\n if (currentCounter === -1 && !isFirst) {\n return;\n }\n\n // prematurely terminate the match if another log is found\n if (counter !== currentCounter) {\n // long running commands\n if (Number(counter) - 1 + '' === currentCounter) {\n currentCounter = counter;\n } else {\n return '[OMEGGA_WATCHER_DONE]';\n }\n }\n\n // add the match to the bundle\n return match;\n },\n {\n last,\n exec: () => this.exec(cmd),\n bundle: true,\n debounce: true,\n timeoutDelay,\n afterMatchDelay,\n },\n );\n }\n\n // get a chunked array from the log\n // patterns are actually regex and must have capture groups\n // the itemPattern must have an (?<index>) capture group\n // the return is in the format of:\n /*\n [{\n item: (itemPattern group),\n members: [\n ...memberPattern groups,\n ],\n }, ...]\n */\n async watchLogArray<\n Item extends Record<string, string> = Record<string, string>,\n Member extends Record<string, string> = Record<string, string>,\n >(cmd: string, itemPattern: RegExp, memberPattern: RegExp) {\n const results = (await this.watchLogChunk<[string, RegExpMatchArray]>(\n cmd,\n (line: string) => {\n // match on items\n const itemMatch = line.match(itemPattern);\n if (itemMatch) return ['item', itemMatch];\n\n // match on members\n const memberMatch = line.match(memberPattern);\n if (memberMatch) return ['member', memberMatch];\n },\n { first: arr => arr[0] === 'item' && arr[1].groups.index === '0' },\n )) as [string, RegExpMatchArray][];\n\n const array: { item: Item; members: Member[] }[] = [];\n\n // insert the results into the array\n for (const [type, { groups }] of results) {\n // insert an item into the array\n if (type === 'item') {\n array.push({ item: groups as Item, members: [] });\n\n // insert a member into an item\n } else if (type === 'member' && array.length > 0) {\n array[array.length - 1].members.push(groups as Member);\n }\n }\n\n return array;\n }\n\n // check all the matchers against this line\n handleLog(line: string) {\n // generic match the log\n const logMatch = line.match(GENERIC_LINE_REGEX);\n\n // pattern matcher handlers\n const patternMatchers = [\n {\n array: this.#matchers,\n onMatch<T>(match: RegExpMatchArray, matcher: IMatcher<T>) {\n matcher.callback?.(match);\n },\n },\n {\n array: this.#watchers,\n onMatch<T>(\n match: T | RegExpMatchArray | '[OMEGGA_WATCHER_DONE]',\n watcher: IWatcher<T>,\n ) {\n // if the watcher is in bundle mode, add the match to its matches\n if (watcher.bundle) {\n // allow the watcher to terminate early\n if (match === '[OMEGGA_WATCHER_DONE]') {\n clearTimeout(watcher.timeout);\n watcher.done();\n return;\n }\n\n watcher.matches = [...watcher.matches, match] as\n | RegExpMatchArray[]\n | T[];\n\n // check if this is the last line and terminate early\n if (watcher?.last?.(match as T)) {\n clearTimeout(watcher.timeout);\n watcher.done();\n return;\n }\n\n // if the watcher is debounced, reset the timer\n if (watcher.debounce) {\n clearTimeout(watcher.timeout);\n watcher.timeout = setTimeout(\n watcher.done,\n watcher.afterMatchDelay || watcher.timeoutDelay,\n );\n }\n\n // otherwise resolve with the result and remove the watcher from the list\n } else {\n watcher.resolve(match);\n watcher.remove();\n }\n },\n },\n ];\n\n // loop through matchers and run callbacks if they match\n for (const { array, onMatch } of patternMatchers) {\n // iterate in reverse because removing indices will not skip over any elements\n for (let i = array.length - 1; i >= 0; i--) {\n const matcher = array[i] as IWatcher<unknown> | IMatcher<unknown>;\n try {\n // run the match on a pattern or test with a function\n const match =\n matcher.pattern instanceof RegExp\n ? line.match(matcher.pattern)\n : matcher.pattern(line, logMatch);\n\n // if there's match, handle it for this type of matcher\n if (match)\n onMatch(\n match as RegExpMatchArray,\n matcher as IWatcher<unknown> & IMatcher<unknown>,\n );\n } catch (e) {\n Logger.error('error in matcher', matcher.pattern, e);\n }\n }\n }\n }\n}\n\nexport default LogWrangler;\n"],"names":["Logger"],"mappings":"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"}
@@ -1,53 +1,39 @@
1
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 (?<displayName>.+) \((?<username>.+) - (?<id>[0-9a-fA-F-]{36})\)\.$/;
6
- const invalidRegExp = /^(Error: AuthState is Invalid on dedicated server - exiting\.|Error: Authentication failed on dedicated server\. Exiting now\.|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 !== 'LogBRAuthSubsystem')
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 { displayName, username, id } = hostMatch.groups;
25
- return ['host', { displayName, name: username, 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
- };
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const auth = (omegga) => {
4
+ const hostRegExp = /^Logged in as (?<displayName>.+) \((?<username>.+) - (?<id>[0-9a-fA-F-]{36})\)\.$/;
5
+ const invalidRegExp = /^(Error: AuthState is Invalid on dedicated server - exiting\.|Error: Authentication failed on dedicated server\. Exiting now\.|Changing AuthState from \w+ to Invalid\.)$/;
6
+ const validRegExp = /^Changing AuthState from \w+ to Valid(Online|Offline)\.$/;
7
+ return {
8
+ // listen for auth messages
9
+ pattern(_line, logMatch) {
10
+ if (!logMatch) return;
11
+ const { generator, data } = logMatch.groups;
12
+ if (generator !== "LogBRAuthSubsystem") return;
13
+ const hostMatch = data.match(hostRegExp);
14
+ const invalidMatch = data.match(invalidRegExp);
15
+ const validMatch = data.match(validRegExp);
16
+ if (hostMatch) {
17
+ const { displayName, username, id } = hostMatch.groups;
18
+ return ["host", { displayName, name: username, id }];
19
+ } else if (invalidMatch) {
20
+ return ["invalid", null];
21
+ } else if (validMatch) {
22
+ return ["valid", null];
23
+ }
24
+ },
25
+ // when there's a match, emit the chat message event
26
+ callback([type, host]) {
27
+ if (type == "host") {
28
+ omegga.host = Object.freeze(host);
29
+ omegga.emit("host", Object.freeze(host));
30
+ } else if (type === "valid") {
31
+ omegga.emit("start", { map: omegga.currentMap });
32
+ } else if (type === "invalid") {
33
+ omegga.emit("unauthorized");
34
+ }
35
+ }
36
+ };
51
37
  };
52
38
  exports.default = auth;
53
- //# sourceMappingURL=auth.js.map
39
+ //# sourceMappingURL=auth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/omegga/matchers/auth.ts"],"names":[],"mappings":";;AAEA,MAAM,IAAI,GAKN,MAAM,CAAC,EAAE;IACX,gDAAgD;IAChD,MAAM,UAAU,GACd,mFAAmF,CAAC;IACtF,MAAM,aAAa,GACjB,2KAA2K,CAAC;IAC9K,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,oBAAoB;gBAAE,OAAO;YAE/C,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,CAAC;gBACd,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC;gBACvD,OAAO,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;YACvD,CAAC;iBAAM,IAAI,YAAY,EAAE,CAAC;gBACxB,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAC3B,CAAC;iBAAM,IAAI,UAAU,EAAE,CAAC;gBACtB,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QACD,oDAAoD;QACpD,QAAQ,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;YACnB,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;gBACnB,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;YAC3C,CAAC;iBAAM,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC5B,qCAAqC;gBACrC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YACnD,CAAC;iBAAM,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC5B,qDAAqD;YACvD,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"auth.js","sources":["../../../src/omegga/matchers/auth.ts"],"sourcesContent":["import { MatchGenerator } from './types';\n\nconst auth: MatchGenerator<\n [\n 'host' | 'invalid' | 'valid',\n { displayName: string; name: string; id: string } | null,\n ]\n> = omegga => {\n // patterns for leave message and host detection\n const hostRegExp =\n /^Logged in as (?<displayName>.+) \\((?<username>.+) - (?<id>[0-9a-fA-F-]{36})\\)\\.$/;\n const invalidRegExp =\n /^(Error: AuthState is Invalid on dedicated server - exiting\\.|Error: Authentication failed on dedicated server\\. Exiting now\\.|Changing AuthState from \\w+ to Invalid\\.)$/;\n const validRegExp =\n /^Changing AuthState from \\w+ to Valid(Online|Offline)\\.$/;\n\n return {\n // listen for auth messages\n pattern(_line, logMatch) {\n // line is not generic console log\n if (!logMatch) return;\n\n const { generator, data } = logMatch.groups;\n // check if log is an auth log\n if (generator !== 'LogBRAuthSubsystem') return;\n\n // match against the patterns\n const hostMatch = data.match(hostRegExp);\n const invalidMatch = data.match(invalidRegExp);\n const validMatch = data.match(validRegExp);\n\n // if the log matches one of the patterns, return the result\n if (hostMatch) {\n const { displayName, username, id } = hostMatch.groups;\n return ['host', { displayName, name: username, id }];\n } else if (invalidMatch) {\n return ['invalid', null];\n } else if (validMatch) {\n return ['valid', null];\n }\n },\n // when there's a match, emit the chat message event\n callback([type, host]) {\n if (type == 'host') {\n // store the host info\n omegga.host = Object.freeze(host);\n omegga.emit('host', Object.freeze(host));\n } else if (type === 'valid') {\n // let the server know it has started\n omegga.emit('start', { map: omegga.currentMap });\n } else if (type === 'invalid') {\n omegga.emit('unauthorized');\n // do nothing with invalid auth?? how did we get here\n }\n },\n };\n};\n\nexport default auth;\n"],"names":[],"mappings":";;AAEA,MAAM,OAKF,CAAA,WAAU;AAEZ,QAAM,aACJ;AACF,QAAM,gBACJ;AACF,QAAM,cACJ;AAEF,SAAO;AAAA;AAAA,IAEL,QAAQ,OAAO,UAAU;AAEvB,UAAI,CAAC,SAAU;AAEf,YAAM,EAAE,WAAW,KAAA,IAAS,SAAS;AAErC,UAAI,cAAc,qBAAsB;AAGxC,YAAM,YAAY,KAAK,MAAM,UAAU;AACvC,YAAM,eAAe,KAAK,MAAM,aAAa;AAC7C,YAAM,aAAa,KAAK,MAAM,WAAW;AAGzC,UAAI,WAAW;AACb,cAAM,EAAE,aAAa,UAAU,GAAA,IAAO,UAAU;AAChD,eAAO,CAAC,QAAQ,EAAE,aAAa,MAAM,UAAU,IAAI;AAAA,MACrD,WAAW,cAAc;AACvB,eAAO,CAAC,WAAW,IAAI;AAAA,MACzB,WAAW,YAAY;AACrB,eAAO,CAAC,SAAS,IAAI;AAAA,MACvB;AAAA,IACF;AAAA;AAAA,IAEA,SAAS,CAAC,MAAM,IAAI,GAAG;AACrB,UAAI,QAAQ,QAAQ;AAElB,eAAO,OAAO,OAAO,OAAO,IAAI;AAChC,eAAO,KAAK,QAAQ,OAAO,OAAO,IAAI,CAAC;AAAA,MACzC,WAAW,SAAS,SAAS;AAE3B,eAAO,KAAK,SAAS,EAAE,KAAK,OAAO,YAAY;AAAA,MACjD,WAAW,SAAS,WAAW;AAC7B,eAAO,KAAK,cAAc;AAAA,MAE5B;AAAA,IACF;AAAA,EAAA;AAEJ;;"}
@@ -1,74 +1,52 @@
1
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 = /^\[SenderId: (?<userId>[^\]]+)\] (?<name>.+?): (?<message>.+)$/;
6
- const kickRegExp = /^(?<name>.+?) was kicked by (?<kicker>.+?) \((?<reason>.+?)\)$/;
7
- const exists = (name, id) => id
8
- ? omegga.players.some(p => p.id === id)
9
- : omegga.players.some(p => p.displayName === name);
10
- const sanitizeMsg = (msg) => msg
11
- .toString()
12
- .replace(/&gt;/g, '>')
13
- .replace(/&und;/g, '_')
14
- .replace(/&lt;/g, '<')
15
- .replace(/&scl;/g, ';');
16
- const sanitizeName = (name) => name.toString().replace(/&und;/g, '_').replace(/&scl;/g, ';');
17
- return {
18
- // listen for chat messages
19
- pattern(_line, logMatch) {
20
- // line is not generic console log
21
- if (!logMatch)
22
- return;
23
- const { generator, data } = logMatch.groups;
24
- // check if log is a chat log
25
- if (generator !== 'LogChat')
26
- return;
27
- // match the chat log to the chat message pattern
28
- const chatMatch = data.match(chatRegExp);
29
- const kickMatch = data.match(kickRegExp);
30
- if (chatMatch) {
31
- let { userId: id, name, message } = chatMatch.groups;
32
- name = sanitizeName(name);
33
- message = sanitizeMsg(message);
34
- // no player has this name. probably a bug
35
- if (!exists(name, id))
36
- return;
37
- // return the player with the corresponding controller
38
- return { type: 'chat', id, name, message };
39
- }
40
- else if (kickMatch) {
41
- let { name, kicker, reason } = kickMatch.groups;
42
- name = sanitizeName(name);
43
- kicker = sanitizeName(kicker);
44
- reason = sanitizeMsg(reason);
45
- if (!exists(name) || !exists(kicker))
46
- return;
47
- return { type: 'kick', name, kicker, reason };
48
- }
49
- },
50
- // when there's a match, emit the chat message event
51
- callback({ type, id, name, kicker, message, reason }) {
52
- if (type === 'chat') {
53
- const player = omegga.players.find(p => p.id === id);
54
- // Use the player's non-display-name if available
55
- if (player)
56
- name = player.name;
57
- omegga.emit('chat', name, message);
58
- // chat command parsing, emit `chatcmd:test` when `!test` is sent in chat
59
- if (message.startsWith('!')) {
60
- const [cmd, ...args] = message.slice(1).split(' ');
61
- if (cmd.length > 0) {
62
- omegga.emit('chatcmd:' + cmd.toLowerCase(), name, ...args);
63
- omegga.emit('chatcmd', cmd.toLowerCase(), name, ...args);
64
- }
65
- }
66
- }
67
- else if (type === 'kick') {
68
- omegga.emit('kick', name, kicker, reason);
69
- }
70
- },
71
- };
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const chat = (omegga) => {
4
+ const chatRegExp = /^\[SenderId: (?<userId>[^\]]+)\] (?<name>.+?): (?<message>.+)$/;
5
+ const kickRegExp = /^(?<name>.+?) was kicked by (?<kicker>.+?) \((?<reason>.+?)\)$/;
6
+ const exists = (name, id) => id ? omegga.players.some((p) => p.id === id) : omegga.players.some((p) => p.displayName === name);
7
+ const sanitizeMsg = (msg) => msg.toString().replace(/&gt;/g, ">").replace(/&und;/g, "_").replace(/&lt;/g, "<").replace(/&scl;/g, ";");
8
+ const sanitizeName = (name) => name.toString().replace(/&und;/g, "_").replace(/&scl;/g, ";");
9
+ return {
10
+ // listen for chat messages
11
+ pattern(_line, logMatch) {
12
+ if (!logMatch) return;
13
+ const { generator, data } = logMatch.groups;
14
+ if (generator !== "LogChat") return;
15
+ const chatMatch = data.match(chatRegExp);
16
+ const kickMatch = data.match(kickRegExp);
17
+ if (chatMatch) {
18
+ let { userId: id, name, message } = chatMatch.groups;
19
+ name = sanitizeName(name);
20
+ message = sanitizeMsg(message);
21
+ if (!exists(name, id)) return;
22
+ return { type: "chat", id, name, message };
23
+ } else if (kickMatch) {
24
+ let { name, kicker, reason } = kickMatch.groups;
25
+ name = sanitizeName(name);
26
+ kicker = sanitizeName(kicker);
27
+ reason = sanitizeMsg(reason);
28
+ if (!exists(name) || !exists(kicker)) return;
29
+ return { type: "kick", name, kicker, reason };
30
+ }
31
+ },
32
+ // when there's a match, emit the chat message event
33
+ callback({ type, id, name, kicker, message, reason }) {
34
+ if (type === "chat") {
35
+ const player = omegga.players.find((p) => p.id === id);
36
+ if (player) name = player.name;
37
+ omegga.emit("chat", name, message);
38
+ if (message.startsWith("!")) {
39
+ const [cmd, ...args] = message.slice(1).split(" ");
40
+ if (cmd.length > 0) {
41
+ omegga.emit("chatcmd:" + cmd.toLowerCase(), name, ...args);
42
+ omegga.emit("chatcmd", cmd.toLowerCase(), name, ...args);
43
+ }
44
+ }
45
+ } else if (type === "kick") {
46
+ omegga.emit("kick", name, kicker, reason);
47
+ }
48
+ }
49
+ };
72
50
  };
73
51
  exports.default = chat;
74
- //# sourceMappingURL=chat.js.map
52
+ //# sourceMappingURL=chat.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../src/omegga/matchers/chat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat.js","sources":["../../../src/omegga/matchers/chat.ts"],"sourcesContent":["import { MatchGenerator } from './types';\n\nconst chat: MatchGenerator<{\n type: string;\n name: string;\n id?: string;\n kicker?: string;\n reason?: string;\n message?: string;\n}> = omegga => {\n // pattern to get PlayerController from a leave message\n const chatRegExp =\n /^\\[SenderId: (?<userId>[^\\]]+)\\] (?<name>.+?): (?<message>.+)$/;\n const kickRegExp =\n /^(?<name>.+?) was kicked by (?<kicker>.+?) \\((?<reason>.+?)\\)$/;\n\n const exists = (name: string, id?: string) =>\n id\n ? omegga.players.some(p => p.id === id)\n : omegga.players.some(p => p.displayName === name);\n\n const sanitizeMsg = (msg: string) =>\n msg\n .toString()\n .replace(/&gt;/g, '>')\n .replace(/&und;/g, '_')\n .replace(/&lt;/g, '<')\n .replace(/&scl;/g, ';');\n\n const sanitizeName = (name: string) =>\n name.toString().replace(/&und;/g, '_').replace(/&scl;/g, ';');\n\n return {\n // listen for chat messages\n pattern(_line, logMatch) {\n // line is not generic console log\n if (!logMatch) return;\n\n const { generator, data } = logMatch.groups;\n // check if log is a chat log\n if (generator !== 'LogChat') return;\n\n // match the chat log to the chat message pattern\n const chatMatch = data.match(chatRegExp);\n const kickMatch = data.match(kickRegExp);\n\n if (chatMatch) {\n let { userId: id, name, message } = chatMatch.groups;\n\n name = sanitizeName(name);\n message = sanitizeMsg(message);\n\n // no player has this name. probably a bug\n if (!exists(name, id)) return;\n\n // return the player with the corresponding controller\n return { type: 'chat', id, name, message };\n } else if (kickMatch) {\n let { name, kicker, reason } = kickMatch.groups;\n name = sanitizeName(name);\n kicker = sanitizeName(kicker);\n reason = sanitizeMsg(reason);\n\n if (!exists(name) || !exists(kicker)) return;\n\n return { type: 'kick', name, kicker, reason };\n }\n },\n // when there's a match, emit the chat message event\n callback({ type, id, name, kicker, message, reason }) {\n if (type === 'chat') {\n const player = omegga.players.find(p => p.id === id);\n // Use the player's non-display-name if available\n if (player) name = player.name;\n omegga.emit('chat', name, message);\n\n // chat command parsing, emit `chatcmd:test` when `!test` is sent in chat\n if (message.startsWith('!')) {\n const [cmd, ...args] = message.slice(1).split(' ');\n if (cmd.length > 0) {\n omegga.emit('chatcmd:' + cmd.toLowerCase(), name, ...args);\n omegga.emit('chatcmd', cmd.toLowerCase(), name, ...args);\n }\n }\n } else if (type === 'kick') {\n omegga.emit('kick', name, kicker, reason);\n }\n },\n };\n};\n\nexport default chat;\n"],"names":[],"mappings":";;AAEA,MAAM,OAOD,CAAA,WAAU;AAEb,QAAM,aACJ;AACF,QAAM,aACJ;AAEF,QAAM,SAAS,CAAC,MAAc,OAC5B,KACI,OAAO,QAAQ,KAAK,CAAA,MAAK,EAAE,OAAO,EAAE,IACpC,OAAO,QAAQ,KAAK,CAAA,MAAK,EAAE,gBAAgB,IAAI;AAErD,QAAM,cAAc,CAAC,QACnB,IACG,WACA,QAAQ,SAAS,GAAG,EACpB,QAAQ,UAAU,GAAG,EACrB,QAAQ,SAAS,GAAG,EACpB,QAAQ,UAAU,GAAG;AAE1B,QAAM,eAAe,CAAC,SACpB,KAAK,SAAA,EAAW,QAAQ,UAAU,GAAG,EAAE,QAAQ,UAAU,GAAG;AAE9D,SAAO;AAAA;AAAA,IAEL,QAAQ,OAAO,UAAU;AAEvB,UAAI,CAAC,SAAU;AAEf,YAAM,EAAE,WAAW,KAAA,IAAS,SAAS;AAErC,UAAI,cAAc,UAAW;AAG7B,YAAM,YAAY,KAAK,MAAM,UAAU;AACvC,YAAM,YAAY,KAAK,MAAM,UAAU;AAEvC,UAAI,WAAW;AACb,YAAI,EAAE,QAAQ,IAAI,MAAM,QAAA,IAAY,UAAU;AAE9C,eAAO,aAAa,IAAI;AACxB,kBAAU,YAAY,OAAO;AAG7B,YAAI,CAAC,OAAO,MAAM,EAAE,EAAG;AAGvB,eAAO,EAAE,MAAM,QAAQ,IAAI,MAAM,QAAA;AAAA,MACnC,WAAW,WAAW;AACpB,YAAI,EAAE,MAAM,QAAQ,OAAA,IAAW,UAAU;AACzC,eAAO,aAAa,IAAI;AACxB,iBAAS,aAAa,MAAM;AAC5B,iBAAS,YAAY,MAAM;AAE3B,YAAI,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,MAAM,EAAG;AAEtC,eAAO,EAAE,MAAM,QAAQ,MAAM,QAAQ,OAAA;AAAA,MACvC;AAAA,IACF;AAAA;AAAA,IAEA,SAAS,EAAE,MAAM,IAAI,MAAM,QAAQ,SAAS,UAAU;AACpD,UAAI,SAAS,QAAQ;AACnB,cAAM,SAAS,OAAO,QAAQ,KAAK,CAAA,MAAK,EAAE,OAAO,EAAE;AAEnD,YAAI,eAAe,OAAO;AAC1B,eAAO,KAAK,QAAQ,MAAM,OAAO;AAGjC,YAAI,QAAQ,WAAW,GAAG,GAAG;AAC3B,gBAAM,CAAC,KAAK,GAAG,IAAI,IAAI,QAAQ,MAAM,CAAC,EAAE,MAAM,GAAG;AACjD,cAAI,IAAI,SAAS,GAAG;AAClB,mBAAO,KAAK,aAAa,IAAI,eAAe,MAAM,GAAG,IAAI;AACzD,mBAAO,KAAK,WAAW,IAAI,eAAe,MAAM,GAAG,IAAI;AAAA,UACzD;AAAA,QACF;AAAA,MACF,WAAW,SAAS,QAAQ;AAC1B,eAAO,KAAK,QAAQ,MAAM,QAAQ,MAAM;AAAA,MAC1C;AAAA,IACF;AAAA,EAAA;AAEJ;;"}
@@ -1,39 +1,28 @@
1
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
- };
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const command = (omegga) => {
4
+ const commandRegExp = /^Player \"(?<name>.+?)\" is trying to call command "\/(?<command>.+?)" with arg string "(?<args>.*?)".$/;
5
+ return {
6
+ // listen for commands messages
7
+ pattern(_line, logMatch) {
8
+ if (!logMatch) return;
9
+ const { generator, data } = logMatch.groups;
10
+ if (generator !== "LogChatCommands") return;
11
+ const match = data.match(commandRegExp);
12
+ if (match) {
13
+ const { name, command: command2, args } = match.groups;
14
+ if (!omegga.players.some((p) => p.name === name)) return;
15
+ return { name, command: command2, args: args.split(" ") };
16
+ }
17
+ return;
18
+ },
19
+ // when there's a match, emit the comand event
20
+ callback({ name, command: command2, args }) {
21
+ if (args.length === 1 && args[0].length === 0) args.pop();
22
+ omegga.emit("cmd:" + command2.toLowerCase(), name, ...args);
23
+ omegga.emit("cmd", command2.toLowerCase(), name, ...args);
24
+ }
25
+ };
37
26
  };
38
27
  exports.default = command;
39
- //# sourceMappingURL=command.js.map
28
+ //# sourceMappingURL=command.js.map
@@ -1 +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,yGAAyG,CAAC;IAE5G,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,CAAC;gBACV,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;YAClD,CAAC;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"}
1
+ {"version":3,"file":"command.js","sources":["../../../src/omegga/matchers/command.ts"],"sourcesContent":["import { MatchGenerator } from './types';\n\nconst command: MatchGenerator<{\n name: string;\n command: string;\n args: string[];\n}> = omegga => {\n // pattern to get PlayerController from a leave message\n const commandRegExp =\n /^Player \\\"(?<name>.+?)\\\" is trying to call command \"\\/(?<command>.+?)\" with arg string \"(?<args>.*?)\".$/;\n\n return {\n // listen for commands messages\n pattern(_line, logMatch) {\n // line is not generic console log\n if (!logMatch) return;\n\n const { generator, data } = logMatch.groups;\n // check if log is a command log\n if (generator !== 'LogChatCommands') return;\n\n // match the log to the command pattern\n const match = data.match(commandRegExp);\n if (match) {\n const { name, command, args } = match.groups;\n\n // no player has this name. probably a bug\n if (!omegga.players.some(p => p.name === name)) return;\n\n // return the player and the command\n return { name, command, args: args.split(' ') };\n }\n\n return;\n },\n // when there's a match, emit the comand event\n callback({ name, command, args }) {\n // if the only argument is an empty string, ignore it\n if (args.length === 1 && args[0].length === 0) args.pop();\n\n omegga.emit('cmd:' + command.toLowerCase(), name, ...args);\n omegga.emit('cmd', command.toLowerCase(), name, ...args);\n },\n };\n};\n\nexport default command;\n"],"names":["command"],"mappings":";;AAEA,MAAM,UAID,CAAA,WAAU;AAEb,QAAM,gBACJ;AAEF,SAAO;AAAA;AAAA,IAEL,QAAQ,OAAO,UAAU;AAEvB,UAAI,CAAC,SAAU;AAEf,YAAM,EAAE,WAAW,KAAA,IAAS,SAAS;AAErC,UAAI,cAAc,kBAAmB;AAGrC,YAAM,QAAQ,KAAK,MAAM,aAAa;AACtC,UAAI,OAAO;AACT,cAAM,EAAE,MAAM,SAAAA,UAAS,KAAA,IAAS,MAAM;AAGtC,YAAI,CAAC,OAAO,QAAQ,KAAK,OAAK,EAAE,SAAS,IAAI,EAAG;AAGhD,eAAO,EAAE,MAAM,SAAAA,UAAS,MAAM,KAAK,MAAM,GAAG,EAAA;AAAA,MAC9C;AAEA;AAAA,IACF;AAAA;AAAA,IAEA,SAAS,EAAE,MAAM,SAAAA,UAAS,QAAQ;AAEhC,UAAI,KAAK,WAAW,KAAK,KAAK,CAAC,EAAE,WAAW,EAAG,MAAK,IAAA;AAEpD,aAAO,KAAK,SAASA,SAAQ,eAAe,MAAM,GAAG,IAAI;AACzD,aAAO,KAAK,OAAOA,SAAQ,eAAe,MAAM,GAAG,IAAI;AAAA,IACzD;AAAA,EAAA;AAEJ;;"}
@@ -1,21 +1,18 @@
1
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
- };
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const exit = (omegga) => {
4
+ return {
5
+ // listen for exit messages
6
+ pattern(_line, logMatch) {
7
+ if (!logMatch) return;
8
+ const { generator, data } = logMatch.groups;
9
+ return generator.match(/^LogExit$/) && data.match(/^Game engine shut down$/);
10
+ },
11
+ // when there's a match, emit the exit message event
12
+ callback() {
13
+ omegga.emit("exit");
14
+ }
15
+ };
19
16
  };
20
17
  exports.default = exit;
21
- //# sourceMappingURL=exit.js.map
18
+ //# sourceMappingURL=exit.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"exit.js","sources":["../../../src/omegga/matchers/exit.ts"],"sourcesContent":["import { MatchGenerator } from './types';\n\nconst exit: MatchGenerator<RegExpMatchArray> = omegga => {\n return {\n // listen for exit messages\n pattern(_line, logMatch) {\n // line is not generic console log\n if (!logMatch) return;\n\n const { generator, data } = logMatch.groups;\n // check if log is the kill server log\n return (\n generator.match(/^LogExit$/) && data.match(/^Game engine shut down$/)\n );\n },\n // when there's a match, emit the exit message event\n callback() {\n omegga.emit('exit');\n },\n };\n};\n\nexport default exit;\n"],"names":[],"mappings":";;AAEA,MAAM,OAAyC,CAAA,WAAU;AACvD,SAAO;AAAA;AAAA,IAEL,QAAQ,OAAO,UAAU;AAEvB,UAAI,CAAC,SAAU;AAEf,YAAM,EAAE,WAAW,KAAA,IAAS,SAAS;AAErC,aACE,UAAU,MAAM,WAAW,KAAK,KAAK,MAAM,yBAAyB;AAAA,IAExE;AAAA;AAAA,IAEA,WAAW;AACT,aAAO,KAAK,MAAM;AAAA,IACpB;AAAA,EAAA;AAEJ;;"}
@@ -1,42 +1,28 @@
1
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
- // minigame join event
28
- const minigameJoin_1 = __importDefault(require("./minigameJoin"));
29
- exports.default = [
30
- join_1.default,
31
- leave_1.default,
32
- chat_1.default,
33
- command_1.default,
34
- auth_1.default,
35
- exit_1.default,
36
- version_1.default,
37
- init_1.default,
38
- mapChange_1.default,
39
- interact_1.default,
40
- minigameJoin_1.default,
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const join = require("./join.js");
4
+ const leave = require("./leave.js");
5
+ const chat = require("./chat.js");
6
+ const command = require("./command.js");
7
+ const auth = require("./auth.js");
8
+ const exit = require("./exit.js");
9
+ const version = require("./version.js");
10
+ const init = require("./init.js");
11
+ const mapChange = require("./mapChange.js");
12
+ const interact = require("./interact.js");
13
+ const minigameJoin = require("./minigameJoin.js");
14
+ const MATCHERS = [
15
+ join.default,
16
+ leave.default,
17
+ chat.default,
18
+ command.default,
19
+ auth.default,
20
+ exit.default,
21
+ version.default,
22
+ init.default,
23
+ mapChange.default,
24
+ interact.default,
25
+ minigameJoin.default
41
26
  ];
42
- //# sourceMappingURL=index.js.map
27
+ exports.default = MATCHERS;
28
+ //# sourceMappingURL=index.js.map
@@ -1 +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,sBAAsB;AACtB,kEAA0C;AAE1C,kBAAe;IACb,cAAI;IACJ,eAAK;IACL,cAAI;IACJ,iBAAO;IACP,cAAI;IACJ,cAAI;IACJ,iBAAO;IACP,cAAI;IACJ,mBAAS;IACT,kBAAQ;IACR,sBAAY;CACY,CAAC"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/omegga/matchers/index.ts"],"sourcesContent":["import { MatchGenerator } from './types';\n\nimport join from './join';\n// 'join' event => { name, id, state, controller }\n\nimport leave from './leave';\n// 'leave' event => { name, id, state, controller }\n\nimport chat from './chat';\n// 'chat' event => name, message; 'chatcmd:command' event => name, [...args]\n// 'kick' event => name, kicker, reason\n\nimport command from './command';\n// 'cmd:command' event => name, args (string)\n\nimport auth from './auth';\n// assigns host, 'host' event, 'start' event, 'unauthorized' event\n\nimport exit from './exit';\n// 'exit' event\n\nimport version from './version';\n// 'version' event, check game version\n\nimport init from './init';\n// watch loginit for any funny business\n\nimport mapChange from './mapChange';\n// 'mapchange' event\n\n// interaction event\nimport interact from './interact';\n\n// minigame join event\nimport minigameJoin from './minigameJoin';\n\nexport default [\n join,\n leave,\n chat,\n command,\n auth,\n exit,\n version,\n init,\n mapChange,\n interact,\n minigameJoin,\n] as MatchGenerator<any>[];\n"],"names":["join","leave","chat","command","auth","exit","version","init","mapChange","interact","minigameJoin"],"mappings":";;;;;;;;;;;;;AAoCA,MAAA,WAAe;AAAA,EACbA,KAAAA;AAAAA,EACAC,MAAAA;AAAAA,EACAC,KAAAA;AAAAA,EACAC,QAAAA;AAAAA,EACAC,KAAAA;AAAAA,EACAC,KAAAA;AAAAA,EACAC,QAAAA;AAAAA,EACAC,KAAAA;AAAAA,EACAC,UAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,aAAAA;AACF;;"}
@@ -1,26 +1,23 @@
1
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
- };
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const logger = require("../../logger.js");
4
+ const init = (_omegga) => {
5
+ return {
6
+ // listen for auth messages
7
+ pattern(_line, logMatch) {
8
+ if (!logMatch) return;
9
+ const { generator, data } = logMatch.groups;
10
+ if (!generator.match(/^LogInit$/)) return;
11
+ if (data.match(/we are not the first instance of this executable/)) {
12
+ logger.default.warn(
13
+ "W> WARNING".yellow,
14
+ "You are running multiple brickadia instances, this better be intentional"
15
+ );
16
+ }
17
+ },
18
+ callback() {
19
+ }
20
+ };
24
21
  };
25
22
  exports.default = init;
26
- //# sourceMappingURL=init.js.map
23
+ //# sourceMappingURL=init.js.map