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.
- package/README.md +142 -62
- package/bin/omegga +10 -4
- package/dist/brickadia/config.d.ts +3 -0
- package/dist/brickadia/config.d.ts.map +1 -0
- package/dist/brickadia/config.js +61 -0
- package/dist/brickadia/config.js.map +1 -0
- package/dist/brickadia/presets.d.ts +65 -0
- package/dist/brickadia/presets.js +3 -0
- package/dist/brickadia/presets.js.map +1 -0
- package/dist/brickadia/server.d.ts +20 -0
- package/dist/brickadia/server.d.ts.map +1 -0
- package/dist/brickadia/server.js +188 -0
- package/dist/brickadia/server.js.map +1 -0
- package/dist/brickadia/types.d.ts +45 -0
- package/dist/brickadia/types.d.ts.map +1 -0
- package/dist/brickadia/types.js +3 -0
- package/dist/brickadia/types.js.map +1 -0
- package/dist/cli/auth.d.ts +20 -0
- package/dist/cli/auth.d.ts.map +1 -0
- package/dist/cli/auth.js +115 -0
- package/dist/cli/auth.js.map +1 -0
- package/dist/cli/config.d.ts +10 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +72 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/index.d.ts +20 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +15 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/installer.d.ts +1 -0
- package/dist/cli/installer.d.ts.map +1 -0
- package/dist/cli/installer.js +55 -0
- package/dist/cli/installer.js.map +1 -0
- package/dist/cli/plugin.d.ts +11 -0
- package/dist/cli/plugin.d.ts.map +1 -0
- package/dist/cli/plugin.js +598 -0
- package/dist/cli/plugin.js.map +1 -0
- package/dist/cli/terminal.d.ts +34 -0
- package/dist/cli/terminal.d.ts.map +1 -0
- package/dist/cli/terminal.js +395 -0
- package/dist/cli/terminal.js.map +1 -0
- package/dist/config/authorizer.d.ts +2 -0
- package/dist/config/authorizer.d.ts.map +1 -0
- package/dist/config/authorizer.js +38 -0
- package/dist/config/authorizer.js.map +1 -0
- package/dist/config/formats/format_js.d.ts +3 -0
- package/dist/config/formats/format_js.d.ts.map +1 -0
- package/dist/config/formats/format_js.js +10 -0
- package/dist/config/formats/format_js.js.map +1 -0
- package/dist/config/formats/format_yml.d.ts +3 -0
- package/dist/config/formats/format_yml.d.ts.map +1 -0
- package/dist/config/formats/format_yml.js +14 -0
- package/dist/config/formats/format_yml.js.map +1 -0
- package/dist/config/index.d.ts +18 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +86 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/reader.d.ts +3 -0
- package/dist/config/reader.d.ts.map +1 -0
- package/dist/config/reader.js +30 -0
- package/dist/config/reader.js.map +1 -0
- package/dist/config/types.d.ts +37 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +3 -0
- package/dist/config/types.js.map +1 -0
- package/dist/config/validator.d.ts +6 -0
- package/dist/config/validator.d.ts.map +1 -0
- package/dist/config/validator.js +26 -0
- package/dist/config/validator.js.map +1 -0
- package/dist/config/writer.d.ts +3 -0
- package/dist/config/writer.d.ts.map +1 -0
- package/dist/config/writer.js +25 -0
- package/dist/config/writer.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.js +55 -0
- package/dist/index.js.map +1 -0
- package/dist/info/default_commands.json +28 -0
- package/dist/lib.d.ts +21 -0
- package/dist/lib.d.ts.map +1 -0
- package/dist/lib.js +54 -0
- package/dist/lib.js.map +1 -0
- package/dist/logger.d.ts +41 -0
- package/dist/logger.js +67 -0
- package/dist/logger.js.map +1 -0
- package/dist/main.d.ts +1 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +284 -0
- package/dist/main.js.map +1 -0
- package/dist/omegga/auth.d.ts +6 -0
- package/dist/omegga/auth.d.ts.map +1 -0
- package/dist/omegga/auth.js +139 -0
- package/dist/omegga/auth.js.map +1 -0
- package/dist/omegga/commandInjector.d.ts +35 -0
- package/dist/omegga/commandInjector.d.ts.map +1 -0
- package/dist/omegga/commandInjector.js +234 -0
- package/dist/omegga/commandInjector.js.map +1 -0
- package/dist/omegga/index.d.ts +7 -0
- package/dist/omegga/index.d.ts.map +1 -0
- package/dist/omegga/index.js +43 -0
- package/dist/omegga/index.js.map +1 -0
- package/dist/omegga/logWrangler.d.ts +32 -0
- package/dist/omegga/logWrangler.d.ts.map +1 -0
- package/dist/omegga/logWrangler.js +279 -0
- package/dist/omegga/logWrangler.js.map +1 -0
- package/dist/omegga/matchers/auth.d.ts +9 -0
- package/dist/omegga/matchers/auth.d.ts.map +1 -0
- package/dist/omegga/matchers/auth.js +53 -0
- package/dist/omegga/matchers/auth.js.map +1 -0
- package/dist/omegga/matchers/chat.d.ts +9 -0
- package/dist/omegga/matchers/chat.d.ts.map +1 -0
- package/dist/omegga/matchers/chat.js +68 -0
- package/dist/omegga/matchers/chat.js.map +1 -0
- package/dist/omegga/matchers/command.d.ts +7 -0
- package/dist/omegga/matchers/command.d.ts.map +1 -0
- package/dist/omegga/matchers/command.js +39 -0
- package/dist/omegga/matchers/command.js.map +1 -0
- package/dist/omegga/matchers/exit.d.ts +3 -0
- package/dist/omegga/matchers/exit.d.ts.map +1 -0
- package/dist/omegga/matchers/exit.js +21 -0
- package/dist/omegga/matchers/exit.js.map +1 -0
- package/dist/omegga/matchers/index.d.ts +3 -0
- package/dist/omegga/matchers/index.d.ts.map +1 -0
- package/dist/omegga/matchers/index.js +39 -0
- package/dist/omegga/matchers/index.js.map +1 -0
- package/dist/omegga/matchers/init.d.ts +3 -0
- package/dist/omegga/matchers/init.d.ts.map +1 -0
- package/dist/omegga/matchers/init.js +26 -0
- package/dist/omegga/matchers/init.js.map +1 -0
- package/dist/omegga/matchers/interact.d.ts +4 -0
- package/dist/omegga/matchers/interact.js +39 -0
- package/dist/omegga/matchers/interact.js.map +1 -0
- package/dist/omegga/matchers/join.d.ts +4 -0
- package/dist/omegga/matchers/join.d.ts.map +1 -0
- package/dist/omegga/matchers/join.js +95 -0
- package/dist/omegga/matchers/join.js.map +1 -0
- package/dist/omegga/matchers/leave.d.ts +4 -0
- package/dist/omegga/matchers/leave.d.ts.map +1 -0
- package/dist/omegga/matchers/leave.js +59 -0
- package/dist/omegga/matchers/leave.js.map +1 -0
- package/dist/omegga/matchers/mapChange.d.ts +3 -0
- package/dist/omegga/matchers/mapChange.d.ts.map +1 -0
- package/dist/omegga/matchers/mapChange.js +38 -0
- package/dist/omegga/matchers/mapChange.js.map +1 -0
- package/dist/omegga/matchers/types.d.ts +5 -0
- package/dist/omegga/matchers/types.d.ts.map +1 -0
- package/dist/omegga/matchers/types.js +7 -0
- package/dist/omegga/matchers/types.js.map +1 -0
- package/dist/omegga/matchers/version.d.ts +3 -0
- package/dist/omegga/matchers/version.d.ts.map +1 -0
- package/dist/omegga/matchers/version.js +45 -0
- package/dist/omegga/matchers/version.js.map +1 -0
- package/dist/omegga/player.d.ts +71 -0
- package/dist/omegga/player.d.ts.map +1 -0
- package/dist/omegga/player.js +442 -0
- package/dist/omegga/player.js.map +1 -0
- package/dist/omegga/plugin/plugin_jsonrpc_stdio.d.ts +23 -0
- package/dist/omegga/plugin/plugin_jsonrpc_stdio.d.ts.map +1 -0
- package/dist/omegga/plugin/plugin_jsonrpc_stdio.js +441 -0
- package/dist/omegga/plugin/plugin_jsonrpc_stdio.js.map +1 -0
- package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.d.ts +129 -0
- package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.d.ts.map +1 -0
- package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.js +260 -0
- package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.js.map +1 -0
- package/dist/omegga/plugin/plugin_node_safe/worker.d.ts +1 -0
- package/dist/omegga/plugin/plugin_node_safe/worker.d.ts.map +1 -0
- package/dist/omegga/plugin/plugin_node_safe/worker.js +289 -0
- package/dist/omegga/plugin/plugin_node_safe/worker.js.map +1 -0
- package/dist/omegga/plugin/plugin_node_safe.d.ts +24 -0
- package/dist/omegga/plugin/plugin_node_safe.d.ts.map +1 -0
- package/dist/omegga/plugin/plugin_node_safe.js +397 -0
- package/dist/omegga/plugin/plugin_node_safe.js.map +1 -0
- package/dist/omegga/plugin/plugin_node_unsafe.d.ts +13 -0
- package/dist/omegga/plugin/plugin_node_unsafe.d.ts.map +1 -0
- package/dist/omegga/plugin/plugin_node_unsafe.js +178 -0
- package/dist/omegga/plugin/plugin_node_unsafe.js.map +1 -0
- package/dist/omegga/plugin.d.ts +86 -0
- package/dist/omegga/plugin.d.ts.map +1 -0
- package/dist/omegga/plugin.js +458 -0
- package/dist/omegga/plugin.js.map +1 -0
- package/dist/omegga/server.d.ts +149 -0
- package/dist/omegga/server.d.ts.map +1 -0
- package/dist/omegga/server.js +601 -0
- package/dist/omegga/server.js.map +1 -0
- package/dist/omegga/types.d.ts +48 -0
- package/dist/omegga/types.d.ts.map +1 -0
- package/dist/omegga/types.js +3 -0
- package/dist/omegga/types.js.map +1 -0
- package/dist/omegga/wrapper.d.ts +22 -0
- package/dist/omegga/wrapper.d.ts.map +1 -0
- package/dist/omegga/wrapper.js +75 -0
- package/dist/omegga/wrapper.js.map +1 -0
- package/dist/omeggaplugin.d.ts +1 -0
- package/dist/omeggaplugin.js +4 -0
- package/dist/omeggaplugin.js.map +1 -0
- package/dist/plugin.d.ts +781 -0
- package/dist/plugin.js +41 -0
- package/dist/plugin.js.map +1 -0
- package/dist/softconfig.d.ts +51 -0
- package/dist/softconfig.d.ts.map +1 -0
- package/dist/softconfig.js +82 -0
- package/dist/softconfig.js.map +1 -0
- package/dist/util/brick/checkBounds.d.ts +8 -0
- package/dist/util/brick/checkBounds.d.ts.map +1 -0
- package/dist/util/brick/checkBounds.js +22 -0
- package/dist/util/brick/checkBounds.js.map +1 -0
- package/dist/util/brick/constants.d.ts +18 -0
- package/dist/util/brick/constants.d.ts.map +1 -0
- package/dist/util/brick/constants.js +184 -0
- package/dist/util/brick/constants.js.map +1 -0
- package/dist/util/brick/getBounds.d.ts +4 -0
- package/dist/util/brick/getBounds.d.ts.map +1 -0
- package/dist/util/brick/getBounds.js +39 -0
- package/dist/util/brick/getBounds.js.map +1 -0
- package/dist/util/brick/getBrickSize.d.ts +3 -0
- package/dist/util/brick/getBrickSize.d.ts.map +1 -0
- package/dist/util/brick/getBrickSize.js +12 -0
- package/dist/util/brick/getBrickSize.js.map +1 -0
- package/dist/util/brick/getScaleAxis.d.ts +3 -0
- package/dist/util/brick/getScaleAxis.d.ts.map +1 -0
- package/dist/util/brick/getScaleAxis.js +38 -0
- package/dist/util/brick/getScaleAxis.js.map +1 -0
- package/dist/util/brick/index.d.ts +13 -0
- package/dist/util/brick/index.d.ts.map +1 -0
- package/dist/util/brick/index.js +29 -0
- package/dist/util/brick/index.js.map +1 -0
- package/dist/util/brick/rotate.d.ts +17 -0
- package/dist/util/brick/rotate.d.ts.map +1 -0
- package/dist/util/brick/rotate.js +38 -0
- package/dist/util/brick/rotate.js.map +1 -0
- package/dist/util/brick/setOwnership.d.ts +12 -0
- package/dist/util/brick/setOwnership.d.ts.map +1 -0
- package/dist/util/brick/setOwnership.js +21 -0
- package/dist/util/brick/setOwnership.js.map +1 -0
- package/dist/util/chat.d.ts +23 -0
- package/dist/util/chat.d.ts.map +1 -0
- package/dist/util/chat.js +50 -0
- package/dist/util/chat.js.map +1 -0
- package/dist/util/color.d.ts +13 -0
- package/dist/util/color.d.ts.map +1 -0
- package/dist/util/color.js +130 -0
- package/dist/util/color.js.map +1 -0
- package/dist/util/file.d.ts +5 -0
- package/dist/util/file.d.ts.map +1 -0
- package/dist/util/file.js +114 -0
- package/dist/util/file.js.map +1 -0
- package/dist/util/index.d.ts +162 -0
- package/dist/util/index.d.ts.map +1 -0
- package/dist/util/index.js +92 -0
- package/dist/util/index.js.map +1 -0
- package/dist/util/map.d.ts +6 -0
- package/dist/util/map.d.ts.map +1 -0
- package/dist/util/map.js +26 -0
- package/dist/util/map.js.map +1 -0
- package/dist/util/pattern.d.ts +1 -0
- package/dist/util/pattern.d.ts.map +1 -0
- package/dist/util/pattern.js +11 -0
- package/dist/util/pattern.js.map +1 -0
- package/dist/util/time.d.ts +4 -0
- package/dist/util/time.d.ts.map +1 -0
- package/dist/util/time.js +41 -0
- package/dist/util/time.js.map +1 -0
- package/dist/util/uuid.d.ts +2 -0
- package/dist/util/uuid.d.ts.map +1 -0
- package/dist/util/uuid.js +8 -0
- package/dist/util/uuid.js.map +1 -0
- package/dist/util/wsl.d.ts +1 -0
- package/dist/util/wsl.d.ts.map +1 -0
- package/dist/util/wsl.js +14 -0
- package/dist/util/wsl.js.map +1 -0
- package/dist/webserver/backend/api.d.ts +3 -0
- package/dist/webserver/backend/api.d.ts.map +1 -0
- package/dist/webserver/backend/api.js +685 -0
- package/dist/webserver/backend/api.js.map +1 -0
- package/dist/webserver/backend/calendar.d.ts +5 -0
- package/dist/webserver/backend/calendar.d.ts.map +1 -0
- package/dist/webserver/backend/calendar.js +21 -0
- package/dist/webserver/backend/calendar.js.map +1 -0
- package/dist/webserver/backend/database.d.ts +149 -0
- package/dist/webserver/backend/database.d.ts.map +1 -0
- package/dist/webserver/backend/database.js +575 -0
- package/dist/webserver/backend/database.js.map +1 -0
- package/dist/webserver/backend/index.d.ts +31 -0
- package/dist/webserver/backend/index.d.ts.map +1 -0
- package/dist/webserver/backend/index.js +189 -0
- package/dist/webserver/backend/index.js.map +1 -0
- package/dist/webserver/backend/metrics.d.ts +3 -0
- package/dist/webserver/backend/metrics.d.ts.map +1 -0
- package/dist/webserver/backend/metrics.js +203 -0
- package/dist/webserver/backend/metrics.js.map +1 -0
- package/dist/webserver/backend/types.d.ts +115 -0
- package/dist/webserver/backend/types.d.ts.map +1 -0
- package/dist/webserver/backend/types.js +3 -0
- package/dist/webserver/backend/types.js.map +1 -0
- package/dist/webserver/backend/util.d.ts +2 -0
- package/dist/webserver/backend/util.d.ts.map +1 -0
- package/dist/webserver/backend/util.js +78 -0
- package/dist/webserver/backend/util.js.map +1 -0
- package/dist/webserver/index.d.ts +2 -0
- package/dist/webserver/index.d.ts.map +1 -0
- package/dist/webserver/index.js +9 -0
- package/dist/webserver/index.js.map +1 -0
- package/{src/webserver/frontend → frontend}/app.html +0 -0
- package/{src/webserver/frontend → frontend}/assets/fonts/GlacialIndifferenceBold.ttf +0 -0
- package/{src/webserver/frontend → frontend}/assets/fonts/GlacialIndifferenceItalic.otf +0 -0
- package/{src/webserver/frontend → frontend}/assets/fonts/GlacialIndifferenceMedium.otf +0 -0
- package/{src/webserver/frontend → frontend}/assets/fonts/GlacialIndifferenceRegular.ttf +0 -0
- package/{src/webserver/frontend → frontend}/assets/fonts/RobotoBold.ttf +0 -0
- package/{src/webserver/frontend → frontend}/assets/fonts/RobotoItalic.ttf +0 -0
- package/{src/webserver/frontend → frontend}/assets/fonts/RobotoRegular.ttf +0 -0
- package/{src/webserver/frontend → frontend}/assets/img/auth_bg.webp +0 -0
- package/{src/webserver/frontend → frontend}/assets/img/dark_bg.webp +0 -0
- package/{src/webserver/frontend → frontend}/assets/img/turkey.webp +0 -0
- package/{src/webserver/frontend → frontend}/auth.html +0 -0
- package/index.js +10 -2
- package/package.json +44 -16
- package/public/app.bundle.js +537 -73
- package/public/app.bundle.js.map +1 -1
- package/public/app.css +727 -2
- package/public/app.css.map +1 -1
- package/public/auth.bundle.js +18 -18
- package/public/auth.bundle.js.map +1 -1
- package/public/auth.css +364 -2
- package/public/auth.css.map +1 -1
- package/templates/rpc/README.md +29 -0
- package/templates/rpc/doc.json +7 -0
- package/templates/rpc/omegga_plugin +0 -0
- package/templates/rpc/plugin.json +4 -0
- package/templates/rpc/setup.sh +3 -0
- package/templates/safe/README.md +29 -0
- package/templates/safe/access.json +1 -0
- package/templates/safe/doc.json +7 -0
- package/templates/safe/omegga.plugin.js +20 -0
- package/templates/safe/plugin.json +4 -0
- package/templates/safe/setup.sh +4 -0
- package/templates/safe-ts/.gitignore.rename +3 -0
- package/templates/safe-ts/README.md +29 -0
- package/templates/safe-ts/access.json +1 -0
- package/templates/safe-ts/doc.json +7 -0
- package/templates/safe-ts/omegga.d.ts +1311 -0
- package/templates/safe-ts/omegga.plugin.ts +29 -0
- package/templates/safe-ts/plugin.json +4 -0
- package/templates/safe-ts/setup.sh +4 -0
- package/templates/safe-ts/tsconfig.json +10 -0
- package/templates/unsafe/README.md +29 -0
- package/templates/unsafe/doc.json +7 -0
- package/templates/unsafe/omegga.main.js +15 -0
- package/templates/unsafe/plugin.json +4 -0
- package/templates/unsafe/setup.sh +4 -0
- package/.babelrc.json +0 -5
- package/.github/workflows/lint.yml +0 -26
- package/.prettierrc +0 -7
- package/.vscode/extensions.json +0 -5
- package/src/OMEGGA_LEGACY_INSTALL +0 -44
- package/src/brickadia/config.js +0 -42
- package/src/brickadia/server.js +0 -227
- package/src/cli/auth.js +0 -104
- package/src/cli/config.js +0 -77
- package/src/cli/index.js +0 -6
- package/src/cli/installer.js +0 -65
- package/src/cli/plugin.js +0 -575
- package/src/cli/terminal.js +0 -466
- package/src/config/authorizer.js +0 -37
- package/src/config/formats/format_js.js +0 -6
- package/src/config/formats/format_yml.js +0 -8
- package/src/config/index.js +0 -81
- package/src/config/reader.js +0 -27
- package/src/config/validator.js +0 -32
- package/src/config/writer.js +0 -20
- package/src/info/default_commands.json +0 -26
- package/src/lib.js +0 -23
- package/src/main.js +0 -332
- package/src/omegga/auth.js +0 -138
- package/src/omegga/commandInjector.js +0 -228
- package/src/omegga/index.js +0 -22
- package/src/omegga/logWrangler.js +0 -323
- package/src/omegga/matchers/auth.js +0 -49
- package/src/omegga/matchers/chat.js +0 -73
- package/src/omegga/matchers/command.js +0 -39
- package/src/omegga/matchers/exit.js +0 -19
- package/src/omegga/matchers/init.js +0 -23
- package/src/omegga/matchers/join.js +0 -115
- package/src/omegga/matchers/leave.js +0 -58
- package/src/omegga/matchers/mapChange.js +0 -37
- package/src/omegga/matchers/version.js +0 -45
- package/src/omegga/player.js +0 -585
- package/src/omegga/plugin/plugin_jsonrpc_stdio.js +0 -526
- package/src/omegga/plugin/plugin_node_safe/proxyOmegga.js +0 -117
- package/src/omegga/plugin/plugin_node_safe/worker.js +0 -238
- package/src/omegga/plugin/plugin_node_safe.js +0 -473
- package/src/omegga/plugin/plugin_node_unsafe.js +0 -177
- package/src/omegga/plugin.js +0 -565
- package/src/omegga/server.js +0 -658
- package/src/omegga/wrapper.js +0 -62
- package/src/softconfig.js +0 -64
- package/src/util/brick/checkBounds.js +0 -22
- package/src/util/brick/constants.js +0 -185
- package/src/util/brick/getBounds.js +0 -36
- package/src/util/brick/getBrickSize.js +0 -9
- package/src/util/brick/getScaleAxis.js +0 -31
- package/src/util/brick/index.js +0 -9
- package/src/util/brick/rotate.js +0 -43
- package/src/util/brick/setOwnership.js +0 -20
- package/src/util/chat.js +0 -28
- package/src/util/color.js +0 -143
- package/src/util/file.js +0 -119
- package/src/util/index.js +0 -28
- package/src/util/map.js +0 -28
- package/src/util/pattern.js +0 -14
- package/src/util/time.js +0 -46
- package/src/util/uuid.js +0 -8
- package/src/util/wsl.js +0 -9
- package/src/webserver/backend/api.js +0 -795
- package/src/webserver/backend/calendar.js +0 -15
- package/src/webserver/backend/database.js +0 -725
- package/src/webserver/backend/index.js +0 -206
- package/src/webserver/backend/metrics.js +0 -148
- package/src/webserver/backend/util.js +0 -75
- package/src/webserver/frontend/.eslintrc.yml +0 -26
- package/src/webserver/frontend/app.js +0 -78
- package/src/webserver/frontend/auth.js +0 -16
- package/src/webserver/frontend/components/Background.vue +0 -83
- package/src/webserver/frontend/components/Button.vue +0 -105
- package/src/webserver/frontend/components/ChatEntry.vue +0 -107
- package/src/webserver/frontend/components/ChatTime.vue +0 -40
- package/src/webserver/frontend/components/Dimmer.vue +0 -43
- package/src/webserver/frontend/components/Dropdown.vue +0 -145
- package/src/webserver/frontend/components/Footer.vue +0 -29
- package/src/webserver/frontend/components/Header.vue +0 -27
- package/src/webserver/frontend/components/InfiniteScroll.vue +0 -51
- package/src/webserver/frontend/components/Input.vue +0 -93
- package/src/webserver/frontend/components/ListInput.vue +0 -105
- package/src/webserver/frontend/components/Loader.vue +0 -98
- package/src/webserver/frontend/components/MainMenuButton.vue +0 -83
- package/src/webserver/frontend/components/Modal.vue +0 -44
- package/src/webserver/frontend/components/NavBar.vue +0 -24
- package/src/webserver/frontend/components/PlayerDropdown.vue +0 -210
- package/src/webserver/frontend/components/PopoutContent.vue +0 -32
- package/src/webserver/frontend/components/RoleDropdown.vue +0 -157
- package/src/webserver/frontend/components/Scroll.vue +0 -33
- package/src/webserver/frontend/components/Toggle.vue +0 -91
- package/src/webserver/frontend/components/index.js +0 -33
- package/src/webserver/frontend/css/font.scss +0 -53
- package/src/webserver/frontend/css/mixins.scss +0 -49
- package/src/webserver/frontend/css/style.scss +0 -166
- package/src/webserver/frontend/css/theme.scss +0 -64
- package/src/webserver/frontend/partials/NavHeader.vue +0 -55
- package/src/webserver/frontend/partials/Page.vue +0 -40
- package/src/webserver/frontend/partials/PageContent.vue +0 -31
- package/src/webserver/frontend/partials/SideNav.vue +0 -115
- package/src/webserver/frontend/partials/index.js +0 -4
- package/src/webserver/frontend/router.js +0 -83
- package/src/webserver/frontend/views/Auth.vue +0 -190
- package/src/webserver/frontend/views/History.vue +0 -462
- package/src/webserver/frontend/views/Home.vue +0 -251
- package/src/webserver/frontend/views/Main.vue +0 -69
- package/src/webserver/frontend/views/NotFound.vue +0 -10
- package/src/webserver/frontend/views/Players.vue +0 -425
- package/src/webserver/frontend/views/PlayersInspector.vue +0 -538
- package/src/webserver/frontend/views/Plugins.vue +0 -217
- package/src/webserver/frontend/views/PluginsInspector.vue +0 -418
- package/src/webserver/frontend/views/Server.vue +0 -167
- package/src/webserver/frontend/views/Users.vue +0 -538
- package/src/webserver/frontend/widgets/Chat.vue +0 -124
- package/src/webserver/frontend/widgets/Status.vue +0 -91
- package/src/webserver/frontend/widgets/index.js +0 -2
- package/src/webserver/frontend/widgets/tooltip.js +0 -108
- package/src/webserver/index.js +0 -4
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const map_1 = require("../../util/map");
|
|
4
|
+
const mapChange = omegga => {
|
|
5
|
+
// LogLoad: Took 0.396473 seconds to LoadMap(/Game/Maps/Plate/Plate)
|
|
6
|
+
const mapChangeRegExp = /^Took .+ seconds to LoadMap\((?<map>.+)\)$/;
|
|
7
|
+
return {
|
|
8
|
+
// listen for commands messages
|
|
9
|
+
pattern(_line, logMatch) {
|
|
10
|
+
// line is not generic console log
|
|
11
|
+
if (!logMatch)
|
|
12
|
+
return;
|
|
13
|
+
const { generator, data } = logMatch.groups;
|
|
14
|
+
// check if log is a world log
|
|
15
|
+
if (generator !== 'LogLoad')
|
|
16
|
+
return;
|
|
17
|
+
// match the log to the map change finish pattern
|
|
18
|
+
const matchChange = data.match(mapChangeRegExp);
|
|
19
|
+
if (matchChange && matchChange.groups && matchChange.groups.map) {
|
|
20
|
+
return (0, map_1.brn2n)(matchChange.groups.map);
|
|
21
|
+
}
|
|
22
|
+
return null;
|
|
23
|
+
},
|
|
24
|
+
// when there's a match, emit the comand event
|
|
25
|
+
callback(map) {
|
|
26
|
+
// if the only argument is an empty string, ignore it
|
|
27
|
+
if (map) {
|
|
28
|
+
// dont emit on startup or when there is no current map
|
|
29
|
+
if (omegga.started && omegga.currentMap)
|
|
30
|
+
omegga.emit('mapchange', { map });
|
|
31
|
+
// set omegga's current map
|
|
32
|
+
omegga.currentMap = map;
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
exports.default = mapChange;
|
|
38
|
+
//# sourceMappingURL=mapChange.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapChange.js","sourceRoot":"","sources":["../../../src/omegga/matchers/mapChange.ts"],"names":[],"mappings":";;AAAA,wCAAkC;AAGlC,MAAM,SAAS,GAA2B,MAAM,CAAC,EAAE;IACjD,oEAAoE;IACpE,MAAM,eAAe,GAAG,4CAA4C,CAAC;IAErE,OAAO;QACL,+BAA+B;QAC/B,OAAO,CAAC,KAAK,EAAE,QAAQ;YACrB,kCAAkC;YAClC,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAEtB,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC5C,8BAA8B;YAC9B,IAAI,SAAS,KAAK,SAAS;gBAAE,OAAO;YAEpC,iDAAiD;YACjD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YAChD,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE;gBAC/D,OAAO,IAAA,WAAK,EAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aACtC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QACD,8CAA8C;QAC9C,QAAQ,CAAC,GAAG;YACV,qDAAqD;YACrD,IAAI,GAAG,EAAE;gBACP,uDAAuD;gBACvD,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,UAAU;oBACrC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;gBAEpC,2BAA2B;gBAC3B,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC;aACzB;QACH,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/omegga/matchers/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,kBAAuB;AACzC,oBAAY,cAAc,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK;IAClD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAG,CAAC,CAAC;IACrD,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;CAC1B,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const server_1 = __importDefault(require("../server"));
|
|
7
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/omegga/matchers/types.ts"],"names":[],"mappings":";;;;;AAAA,uDAAyC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../src/omegga/matchers/version.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,QAAA,MAAM,OAAO,EAAE,cAAc,CAAC,MAAM,CA2CnC,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const fs_1 = __importDefault(require("fs"));
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const softconfig_1 = __importDefault(require("../../softconfig"));
|
|
9
|
+
const version = omegga => {
|
|
10
|
+
const versionRegExp = /^Using libcurl (?<curlversion>.+)$/;
|
|
11
|
+
let version;
|
|
12
|
+
return {
|
|
13
|
+
pattern(_line, logMatch) {
|
|
14
|
+
var _a, _b;
|
|
15
|
+
// if the version has already been found - ignore this matcher
|
|
16
|
+
if (version || !logMatch)
|
|
17
|
+
return;
|
|
18
|
+
const { generator, data } = logMatch.groups;
|
|
19
|
+
// check if log is a command log
|
|
20
|
+
if (generator !== 'LogInit')
|
|
21
|
+
return;
|
|
22
|
+
const match = data.match(versionRegExp);
|
|
23
|
+
const branch = (_b = (_a = omegga.config.server) === null || _a === void 0 ? void 0 : _a.branch) !== null && _b !== void 0 ? _b : 'main-server';
|
|
24
|
+
const configPath = path_1.default.join(softconfig_1.default.BRICKADIA_INSTALLS, branch.split(':')[0] + '.json');
|
|
25
|
+
// base game version on curl version
|
|
26
|
+
if (match) {
|
|
27
|
+
try {
|
|
28
|
+
version = Number(JSON.parse(fs_1.default.readFileSync(configPath).toString()).version.substring(2));
|
|
29
|
+
}
|
|
30
|
+
catch (e) {
|
|
31
|
+
console.error('!>'.red, 'Unable to read branch config file: ', e);
|
|
32
|
+
version = -1;
|
|
33
|
+
}
|
|
34
|
+
return version;
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
// when there's a match, emit the chat message event
|
|
38
|
+
callback(version) {
|
|
39
|
+
omegga.emit('version', version);
|
|
40
|
+
omegga.version = version;
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
exports.default = version;
|
|
45
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../../src/omegga/matchers/version.ts"],"names":[],"mappings":";;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,kEAAsC;AAGtC,MAAM,OAAO,GAA2B,MAAM,CAAC,EAAE;IAC/C,MAAM,aAAa,GAAG,oCAAoC,CAAC;IAC3D,IAAI,OAAe,CAAC;IAEpB,OAAO;QACL,OAAO,CAAC,KAAK,EAAE,QAAQ;;YACrB,8DAA8D;YAC9D,IAAI,OAAO,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAEjC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC;YAE5C,gCAAgC;YAChC,IAAI,SAAS,KAAK,SAAS;gBAAE,OAAO;YAEpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAExC,MAAM,MAAM,GAAG,MAAA,MAAA,MAAM,CAAC,MAAM,CAAC,MAAM,0CAAE,MAAM,mCAAI,aAAa,CAAC;YAC7D,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAC1B,oBAAU,CAAC,kBAAkB,EAC7B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAC/B,CAAC;YAEF,oCAAoC;YACpC,IAAI,KAAK,EAAE;gBACT,IAAI;oBACF,OAAO,GAAG,MAAM,CACd,IAAI,CAAC,KAAK,CACR,YAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CACvC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CACvB,CAAC;iBACH;gBAAC,OAAO,CAAC,EAAE;oBACV,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,qCAAqC,EAAE,CAAC,CAAC,CAAC;oBAClE,OAAO,GAAG,CAAC,CAAC,CAAC;iBACd;gBACD,OAAO,OAAO,CAAC;aAChB;QACH,CAAC;QACD,oDAAoD;QACpD,QAAQ,CAAC,OAAO;YACd,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAChC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;QAC3B,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { WriteSaveObject } from 'brs-js';
|
|
2
|
+
import { IBrickBounds } from "../util/brick";
|
|
3
|
+
import type { OmeggaPlayer, OmeggaLike } from "../plugin";
|
|
4
|
+
declare class Player implements OmeggaPlayer {
|
|
5
|
+
#private;
|
|
6
|
+
name: string;
|
|
7
|
+
id: string;
|
|
8
|
+
controller: string;
|
|
9
|
+
state: string;
|
|
10
|
+
static getRoles(omegga: OmeggaLike, id: string): readonly string[];
|
|
11
|
+
static getPermissions(omegga: OmeggaLike, id: string): Record<string, boolean>;
|
|
12
|
+
static kill(omegga: OmeggaLike, target: string | OmeggaPlayer): void;
|
|
13
|
+
static damage(omegga: OmeggaLike, target: string | OmeggaPlayer, amount: number): void;
|
|
14
|
+
static heal(omegga: OmeggaLike, target: string | OmeggaPlayer, amount: number): void;
|
|
15
|
+
static giveItem(omegga: OmeggaLike, target: string | OmeggaPlayer, item: string): void;
|
|
16
|
+
static takeItem(omegga: OmeggaLike, target: string | OmeggaPlayer, item: string): void;
|
|
17
|
+
/**
|
|
18
|
+
* players are not to be constructed
|
|
19
|
+
* @constructor
|
|
20
|
+
* @param omegga Omegga Instance
|
|
21
|
+
* @param name Player Name
|
|
22
|
+
* @param id Player Id
|
|
23
|
+
* @param controller Player Controller
|
|
24
|
+
* @param state Player State
|
|
25
|
+
*/
|
|
26
|
+
constructor(omegga: OmeggaLike, name: string, id: string, controller: string, state: string);
|
|
27
|
+
getOmegga(): OmeggaLike;
|
|
28
|
+
clone(): OmeggaPlayer;
|
|
29
|
+
raw(): [string, string, string, string];
|
|
30
|
+
isHost(): boolean;
|
|
31
|
+
clearBricks(quiet?: boolean): void;
|
|
32
|
+
getRoles(): readonly string[];
|
|
33
|
+
getPermissions(): Record<string, boolean>;
|
|
34
|
+
getNameColor(): string;
|
|
35
|
+
getPawn(): Promise<string>;
|
|
36
|
+
getPosition(): Promise<[number, number, number]>;
|
|
37
|
+
getGhostBrick(): Promise<{
|
|
38
|
+
targetGrid: string;
|
|
39
|
+
location: number[];
|
|
40
|
+
orientation: string;
|
|
41
|
+
}>;
|
|
42
|
+
getPaint(): Promise<{
|
|
43
|
+
materialIndex: string;
|
|
44
|
+
materialAlpha: string;
|
|
45
|
+
material: string;
|
|
46
|
+
color: number[];
|
|
47
|
+
}>;
|
|
48
|
+
isCrouched(pawn?: string): Promise<boolean>;
|
|
49
|
+
isDead(pawn?: string): Promise<boolean>;
|
|
50
|
+
getTemplateBounds(): Promise<IBrickBounds>;
|
|
51
|
+
getTemplateBoundsData(): Promise<import("brs-js").ReadSaveObject>;
|
|
52
|
+
loadBricks(saveName: string): void;
|
|
53
|
+
loadSaveData(saveData: WriteSaveObject, { offX, offY, offZ }?: {
|
|
54
|
+
offX?: number;
|
|
55
|
+
offY?: number;
|
|
56
|
+
offZ?: number;
|
|
57
|
+
}): Promise<void>;
|
|
58
|
+
loadDataAtGhostBrick(saveData: WriteSaveObject, { rotate, offX, offY, offZ, quiet }?: {
|
|
59
|
+
rotate?: boolean;
|
|
60
|
+
offX?: number;
|
|
61
|
+
offY?: number;
|
|
62
|
+
offZ?: number;
|
|
63
|
+
quiet?: boolean;
|
|
64
|
+
}): Promise<void>;
|
|
65
|
+
kill(): void;
|
|
66
|
+
damage(amount: number): void;
|
|
67
|
+
heal(amount: number): void;
|
|
68
|
+
giveItem(item: string): void;
|
|
69
|
+
takeItem(item: string): void;
|
|
70
|
+
}
|
|
71
|
+
export default Player;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"player.d.ts","sourceRoot":"","sources":["../../src/omegga/player.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AAEnC,OAAO,EAAS,KAAK,IAAI,UAAU,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAS,eAAe,EAAE,MAAM,QAAQ,CAAC;AAsChD,cAAM,MAAM;;IAEV,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IAEd;;;;;;;;OAQG;gBAED,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM;IASf;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,KAAK,IAAI,MAAM;IAUf;;OAEG;IACH,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IAIvC;;OAEG;IACH,MAAM,IAAI,OAAO;IAIjB;;OAEG;IACH,WAAW,CAAC,KAAK,UAAQ;IAIzB;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE;IAK9D;;OAEG;IACH,QAAQ,IAAI,SAAS,MAAM,EAAE;IAI7B;;;;;OAKG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAuF1E;;;OAGG;IACH,cAAc;IAId;;;OAGG;IACH,YAAY;IAgCZ;;;OAGG;IACG,WAAW;IA+CjB;;;OAGG;IACG,aAAa;;;;;IA6CnB;;OAEG;IACG,QAAQ;;;;;;IAiEd;;;OAGG;IACG,iBAAiB;IAkEvB;;;OAGG;IACG,qBAAqB;IAyB3B;;;OAGG;IACG,oBAAoB,CACxB,QAAQ,EAAE,eAAe,EACzB,EAAE,MAAa,EAAE,IAAQ,EAAE,IAAQ,EAAE,IAAQ,EAAE,KAAY,EAAE;;;;;;KAAK;CAwCrE;AAID,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,442 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
+
};
|
|
8
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
+
};
|
|
13
|
+
var _Player_omegga;
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const util_1 = require("../util/");
|
|
16
|
+
const DEFAULT_PERMS = {
|
|
17
|
+
moderator: [
|
|
18
|
+
'Bricks.ClearAll',
|
|
19
|
+
'Minigame.AlwaysLeave',
|
|
20
|
+
'Players.Kick',
|
|
21
|
+
'Players.TPInMinigame',
|
|
22
|
+
'Players.TPOthers',
|
|
23
|
+
'Self.Ghost',
|
|
24
|
+
],
|
|
25
|
+
admin: [
|
|
26
|
+
'Bricks.ClearAll',
|
|
27
|
+
'Bricks.ClearOwn',
|
|
28
|
+
'Bricks.IgnoreTrust',
|
|
29
|
+
'Bricks.Load',
|
|
30
|
+
'Map.Environment',
|
|
31
|
+
'Minigame.AlwaysEdit',
|
|
32
|
+
'Minigame.AlwaysLeave',
|
|
33
|
+
'Minigame.AlwaysSwitchTeam',
|
|
34
|
+
'Minigame.MakeDefault',
|
|
35
|
+
'Minigame.MakePersistent',
|
|
36
|
+
'Minigame.UseAllBricks',
|
|
37
|
+
'Players.Ban',
|
|
38
|
+
'Players.Kick',
|
|
39
|
+
'Players.TPInMinigame',
|
|
40
|
+
'Players.TPOthers',
|
|
41
|
+
'Roles.Grant',
|
|
42
|
+
'Self.Ghost',
|
|
43
|
+
'Server.ChangeRoles',
|
|
44
|
+
'Server.ChangeSettings',
|
|
45
|
+
'Server.FreezeCamera',
|
|
46
|
+
'Tools.Selector.BypassLimits',
|
|
47
|
+
'Tools.Selector.BypassTimeouts',
|
|
48
|
+
],
|
|
49
|
+
};
|
|
50
|
+
class Player {
|
|
51
|
+
/**
|
|
52
|
+
* players are not to be constructed
|
|
53
|
+
* @constructor
|
|
54
|
+
* @param omegga Omegga Instance
|
|
55
|
+
* @param name Player Name
|
|
56
|
+
* @param id Player Id
|
|
57
|
+
* @param controller Player Controller
|
|
58
|
+
* @param state Player State
|
|
59
|
+
*/
|
|
60
|
+
constructor(omegga, name, id, controller, state) {
|
|
61
|
+
_Player_omegga.set(this, void 0);
|
|
62
|
+
__classPrivateFieldSet(this, _Player_omegga, omegga, "f");
|
|
63
|
+
this.name = name;
|
|
64
|
+
this.id = id;
|
|
65
|
+
this.controller = controller;
|
|
66
|
+
this.state = state;
|
|
67
|
+
}
|
|
68
|
+
static getRoles(omegga, id) {
|
|
69
|
+
const data = omegga.getRoleAssignments().savedPlayerRoles[id];
|
|
70
|
+
return Object.freeze(data && data.roles ? data.roles : []);
|
|
71
|
+
}
|
|
72
|
+
static getPermissions(omegga, id) {
|
|
73
|
+
const { roles, defaultRole } = omegga.getRoleSetup();
|
|
74
|
+
// if the player is the host, the player has every permission
|
|
75
|
+
if (omegga.host.id === id) {
|
|
76
|
+
return Object.freeze(Object.fromEntries([].concat(defaultRole.permissions.map(p => [p.name, true]),
|
|
77
|
+
// sometimes the default role does not have every permission listed
|
|
78
|
+
...roles.map(r => r.permissions.map(p => [p.name, true])))));
|
|
79
|
+
}
|
|
80
|
+
// get the player's roles
|
|
81
|
+
const playerRoles = Player.getRoles(omegga, id).map(r => r.toLowerCase());
|
|
82
|
+
// default player permissions
|
|
83
|
+
const permissions = {
|
|
84
|
+
'Bricks.ClearAll': false,
|
|
85
|
+
'Bricks.ClearOwn': true,
|
|
86
|
+
'Bricks.Delete': true,
|
|
87
|
+
'Bricks.Edit': true,
|
|
88
|
+
'Bricks.IgnoreTrust': false,
|
|
89
|
+
'Bricks.Paint': true,
|
|
90
|
+
'Bricks.Place': true,
|
|
91
|
+
'BricksItems.Spawn': true,
|
|
92
|
+
'Map.Change': false,
|
|
93
|
+
'Map.Environment': false,
|
|
94
|
+
'Map.SetSpawn': false,
|
|
95
|
+
'Minigame.AlwaysEdit': false,
|
|
96
|
+
'Minigame.AlwaysLeave': false,
|
|
97
|
+
'Minigame.AlwaysSwitchTeam': false,
|
|
98
|
+
'Minigame.Create': true,
|
|
99
|
+
'Minigame.MakePersistent': false,
|
|
100
|
+
'Minigame.UseAllBricks': false,
|
|
101
|
+
'Players.Ban': false,
|
|
102
|
+
'Players.TPInMinigame': false,
|
|
103
|
+
'Players.TPOthers': false,
|
|
104
|
+
'Players.TPSelf': true,
|
|
105
|
+
'Roles.Grant': false,
|
|
106
|
+
'Self.Flashlight': true,
|
|
107
|
+
'Self.Fly': true,
|
|
108
|
+
'Self.FreezeCamera': false,
|
|
109
|
+
'Self.Ghost': false,
|
|
110
|
+
'Self.Sprint': true,
|
|
111
|
+
'Self.Suicide': true,
|
|
112
|
+
'Tools.Selector.Use': true,
|
|
113
|
+
};
|
|
114
|
+
// apply all permissions from default role
|
|
115
|
+
for (const p of defaultRole.permissions) {
|
|
116
|
+
// technically this can never be Unchanged so it's always on enabled or allowed
|
|
117
|
+
permissions[p.name] =
|
|
118
|
+
p.state === 'Unchanged' ? permissions[p.name] : p.state === 'Allowed';
|
|
119
|
+
}
|
|
120
|
+
// loop through all the roles
|
|
121
|
+
for (const role of roles) {
|
|
122
|
+
// ignore ones the player does not have
|
|
123
|
+
if (!playerRoles.includes(role.name.toLowerCase()))
|
|
124
|
+
continue;
|
|
125
|
+
const defaultPerms = DEFAULT_PERMS[role.name.toLowerCase()] || [];
|
|
126
|
+
// iterate through default permissions
|
|
127
|
+
for (const perm of defaultPerms) {
|
|
128
|
+
// if they are not overriden, set it to true
|
|
129
|
+
if (!role.permissions.find(r => r.name === perm))
|
|
130
|
+
permissions[perm] = true;
|
|
131
|
+
}
|
|
132
|
+
// add all the new permissions the player now has
|
|
133
|
+
for (const p of role.permissions) {
|
|
134
|
+
// permission is disabled on forbidden, persisted on unchanged, and enabled on bEnabled or Allowed
|
|
135
|
+
permissions[p.name] =
|
|
136
|
+
p.state !== 'Forbidden' &&
|
|
137
|
+
(p.state === 'Unchanged'
|
|
138
|
+
? permissions[p.name]
|
|
139
|
+
: permissions[p.name] || p.state === 'Allowed');
|
|
140
|
+
permissions[p.name] = permissions[p.name];
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return Object.freeze(permissions);
|
|
144
|
+
}
|
|
145
|
+
static kill(omegga, target) {
|
|
146
|
+
if (typeof target === 'string')
|
|
147
|
+
target = omegga.getPlayer(target);
|
|
148
|
+
if (target === null || target === void 0 ? void 0 : target.name)
|
|
149
|
+
omegga.writeln(`Server.Players.Kill "${target === null || target === void 0 ? void 0 : target.name}"`);
|
|
150
|
+
}
|
|
151
|
+
static damage(omegga, target, amount) {
|
|
152
|
+
if (typeof target === 'string')
|
|
153
|
+
target = omegga.getPlayer(target);
|
|
154
|
+
if (amount === 0)
|
|
155
|
+
return;
|
|
156
|
+
if (target === null || target === void 0 ? void 0 : target.name)
|
|
157
|
+
omegga.writeln(`Server.Players.Damage "${target === null || target === void 0 ? void 0 : target.name}" ${amount}`);
|
|
158
|
+
}
|
|
159
|
+
static heal(omegga, target, amount) {
|
|
160
|
+
if (amount === 0)
|
|
161
|
+
return;
|
|
162
|
+
Player.damage(omegga, target, -amount);
|
|
163
|
+
}
|
|
164
|
+
static giveItem(omegga, target, item) {
|
|
165
|
+
if (typeof target === 'string')
|
|
166
|
+
target = omegga.getPlayer(target);
|
|
167
|
+
if (!item)
|
|
168
|
+
return;
|
|
169
|
+
if (target === null || target === void 0 ? void 0 : target.name)
|
|
170
|
+
omegga.writeln(`Server.Players.GiveItem "${target === null || target === void 0 ? void 0 : target.name}" ${item}`);
|
|
171
|
+
}
|
|
172
|
+
static takeItem(omegga, target, item) {
|
|
173
|
+
if (typeof target === 'string')
|
|
174
|
+
target = omegga.getPlayer(target);
|
|
175
|
+
if (!item)
|
|
176
|
+
return;
|
|
177
|
+
if (target === null || target === void 0 ? void 0 : target.name)
|
|
178
|
+
omegga.writeln(`Server.Players.RemoveItem "${target === null || target === void 0 ? void 0 : target.name}" ${item}`);
|
|
179
|
+
}
|
|
180
|
+
getOmegga() {
|
|
181
|
+
return __classPrivateFieldGet(this, _Player_omegga, "f");
|
|
182
|
+
}
|
|
183
|
+
clone() {
|
|
184
|
+
return new Player(__classPrivateFieldGet(this, _Player_omegga, "f"), this.name, this.id, this.controller, this.state);
|
|
185
|
+
}
|
|
186
|
+
raw() {
|
|
187
|
+
return [this.name, this.id, this.controller, this.state];
|
|
188
|
+
}
|
|
189
|
+
isHost() {
|
|
190
|
+
return __classPrivateFieldGet(this, _Player_omegga, "f").host.id === this.id;
|
|
191
|
+
}
|
|
192
|
+
clearBricks(quiet = false) {
|
|
193
|
+
__classPrivateFieldGet(this, _Player_omegga, "f").clearBricks(this.id, quiet);
|
|
194
|
+
}
|
|
195
|
+
getRoles() {
|
|
196
|
+
return Player.getRoles(__classPrivateFieldGet(this, _Player_omegga, "f"), this.id);
|
|
197
|
+
}
|
|
198
|
+
getPermissions() {
|
|
199
|
+
return Player.getPermissions(__classPrivateFieldGet(this, _Player_omegga, "f"), this.id);
|
|
200
|
+
}
|
|
201
|
+
getNameColor() {
|
|
202
|
+
const { roles, defaultRole, ownerRoleColor, bOwnerRoleHasColor } = __classPrivateFieldGet(this, _Player_omegga, "f").getRoleSetup();
|
|
203
|
+
// host check if host has host color
|
|
204
|
+
if (this.isHost() && bOwnerRoleHasColor)
|
|
205
|
+
return util_1.color.rgbToHex(ownerRoleColor);
|
|
206
|
+
// get the player's role
|
|
207
|
+
const playerRoles = this.getRoles().map(r => r.toLowerCase());
|
|
208
|
+
// only if the player actually has roles...
|
|
209
|
+
if (playerRoles.length > 0) {
|
|
210
|
+
// check the role list in reverse for the player's role (highest tier first)
|
|
211
|
+
const found = roles
|
|
212
|
+
.slice()
|
|
213
|
+
.reverse()
|
|
214
|
+
.find(role => role.bHasColor && playerRoles.includes(role.name.toLowerCase()));
|
|
215
|
+
if (found)
|
|
216
|
+
return util_1.color.rgbToHex(found.color);
|
|
217
|
+
}
|
|
218
|
+
return util_1.color.rgbToHex(defaultRole.bHasColor
|
|
219
|
+
? defaultRole.color
|
|
220
|
+
: { r: 255, g: 255, b: 255, a: 255 });
|
|
221
|
+
}
|
|
222
|
+
async getPawn() {
|
|
223
|
+
// given a player controller, match the player's pawn
|
|
224
|
+
const pawnRegExp = new RegExp(`^(?<index>\\d+)\\) BP_PlayerController_C .+?PersistentLevel\\.${this.controller}\\.Pawn = BP_FigureV2_C'.+?:PersistentLevel.(?<pawn>BP_FigureV2_C_\\d+)'`);
|
|
225
|
+
// wait for the pawn watcher to return a pawn
|
|
226
|
+
const [{ groups: { pawn }, },] = await __classPrivateFieldGet(this, _Player_omegga, "f").watchLogChunk('GetAll BP_PlayerController_C Pawn Name=' + this.controller, pawnRegExp, { first: 'index', timeoutDelay: 500 });
|
|
227
|
+
return pawn;
|
|
228
|
+
}
|
|
229
|
+
async getPosition() {
|
|
230
|
+
// this is here because my text editor had weird syntax highlighting glitches when the other omeggas were replaced with this.#omegga...
|
|
231
|
+
// guess the code is "too new" :egg:
|
|
232
|
+
const omegga = __classPrivateFieldGet(this, _Player_omegga, "f");
|
|
233
|
+
// given a player controller, match the player's pawn
|
|
234
|
+
const pawnRegExp = new RegExp(`BP_PlayerController_C .+?PersistentLevel\\.${this.controller}\\.Pawn = BP_FigureV2_C'.+?:PersistentLevel.(?<pawn>BP_FigureV2_C_\\d+)'`);
|
|
235
|
+
// wait for the pawn watcher to return a pawn
|
|
236
|
+
const [{ groups: { pawn }, },] = await omegga.addWatcher(pawnRegExp, {
|
|
237
|
+
// request the pawn for this player's controller (should only be one)
|
|
238
|
+
exec: () => omegga.writeln(`GetAll BP_PlayerController_C Pawn Name=${this.controller}`),
|
|
239
|
+
timeoutDelay: 100,
|
|
240
|
+
});
|
|
241
|
+
// given a player's pawn, match the player's position
|
|
242
|
+
const posRegExp = new RegExp(`CapsuleComponent .+?PersistentLevel\\.${pawn}\\.CollisionCylinder\\.RelativeLocation = \\(X=(?<x>[\\d\\.-]+),Y=(?<y>[\\d\\.-]+),Z=(?<z>[\\d\\.-]+)\\)`);
|
|
243
|
+
// wait for the position promise
|
|
244
|
+
const [{ groups: { x, y, z }, },] = await omegga.addWatcher(posRegExp, {
|
|
245
|
+
// request the position for this player's pawn
|
|
246
|
+
exec: () => omegga.writeln(`GetAll SceneComponent RelativeLocation Name=CollisionCylinder Outer=${pawn}`),
|
|
247
|
+
timeoutDelay: 100,
|
|
248
|
+
});
|
|
249
|
+
// return the player's position as an array of numbers
|
|
250
|
+
return [Number(x), Number(y), Number(z)];
|
|
251
|
+
}
|
|
252
|
+
async getGhostBrick() {
|
|
253
|
+
const { controller } = this;
|
|
254
|
+
const ownerRegExp = /^(?<index>\d+)\) BrickGridPreviewActor (.+):PersistentLevel\.(?<actor>BrickGridPreviewActor_\d+)\.Owner = BP_PlayerController_C'(.+):PersistentLevel\.(?<controller>BP_PlayerController_C_\d+)'$/;
|
|
255
|
+
const transformParamsRegExp = /^(?<index>\d+)\) BrickGridPreviewActor (.+):PersistentLevel\.(?<actor>BrickGridPreviewActor_\d+)\.TransformParameters = \(TargetGrid=("(?<targetGrid>.+)"|None),Position=\(X=(?<x>.+),Y=(?<y>.+),Z=(?<z>.+)\),Orientation=(?<orientation>.+)\)$/;
|
|
256
|
+
const [owners, transformParams] = await Promise.all([
|
|
257
|
+
__classPrivateFieldGet(this, _Player_omegga, "f").watchLogChunk('GetAll BrickGridPreviewActor Owner', ownerRegExp, { first: 'index', timeoutDelay: 500 }),
|
|
258
|
+
__classPrivateFieldGet(this, _Player_omegga, "f").watchLogChunk('GetAll BrickGridPreviewActor TransformParameters', transformParamsRegExp, { first: 'index', timeoutDelay: 500 }),
|
|
259
|
+
]);
|
|
260
|
+
// get BrickGridPreviewActor by controller
|
|
261
|
+
const owner = owners.find(owner => owner.groups.controller === controller);
|
|
262
|
+
if (!owner)
|
|
263
|
+
return;
|
|
264
|
+
const actor = owner.groups.actor;
|
|
265
|
+
// get transform parameters for the found actor
|
|
266
|
+
const transformParameters = transformParams.find(transformParameters => transformParameters.groups.actor === actor);
|
|
267
|
+
if (!transformParameters)
|
|
268
|
+
return;
|
|
269
|
+
return {
|
|
270
|
+
targetGrid: transformParameters.groups.targetGrid,
|
|
271
|
+
location: [
|
|
272
|
+
+transformParameters.groups.x,
|
|
273
|
+
+transformParameters.groups.y,
|
|
274
|
+
+transformParameters.groups.z,
|
|
275
|
+
],
|
|
276
|
+
orientation: transformParameters.groups.orientation,
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
async getPaint() {
|
|
280
|
+
const { controller } = this;
|
|
281
|
+
const ownerRegExp = /^(?<index>\d+)\) BP_Item_PaintTool_C (.+):PersistentLevel\.(?<actor>BP_Item_PaintTool_C_\d+)\.Owner = BP_PlayerController_C'(.+):PersistentLevel\.(?<controller>BP_PlayerController_C_\d+)'$/;
|
|
282
|
+
const colorRegExp = /^(?<index>\d+)\) BP_Item_PaintTool_C (.+):PersistentLevel\.(?<actor>BP_Item_PaintTool_C_\d+)\.SelectedColor = \(B=(?<b>.+),G=(?<g>.+),R=(?<r>.+),A=(?<a>.+)\)$/;
|
|
283
|
+
const materialRegExp = /^(?<index>\d+)\) BP_Item_PaintTool_C (.+):PersistentLevel\.(?<actor>BP_Item_PaintTool_C_\d+)\.SelectedMaterialId = (?<materialIndex>\d+)$/;
|
|
284
|
+
const materialAlphaRegExp = /^(?<index>\d+)\) BP_Item_PaintTool_C (.+):PersistentLevel\.(?<actor>BP_Item_PaintTool_C_\d+)\.SelectedMaterialAlpha = (?<materialAlpha>\d+)$/;
|
|
285
|
+
const [owners, colorMatch, materialMatch, materialAlphaMatch] = await Promise.all([
|
|
286
|
+
__classPrivateFieldGet(this, _Player_omegga, "f").watchLogChunk('GetAll BP_Item_PaintTool_C Owner', ownerRegExp, { first: 'index', timeoutDelay: 500 }),
|
|
287
|
+
__classPrivateFieldGet(this, _Player_omegga, "f").watchLogChunk('GetAll BP_Item_PaintTool_C SelectedColor', colorRegExp, { first: 'index', timeoutDelay: 500 }),
|
|
288
|
+
__classPrivateFieldGet(this, _Player_omegga, "f").watchLogChunk('GetAll BP_Item_PaintTool_C SelectedMaterialId', materialRegExp, { first: 'index', timeoutDelay: 500 }),
|
|
289
|
+
__classPrivateFieldGet(this, _Player_omegga, "f").watchLogChunk('GetAll BP_Item_PaintTool_C SelectedMaterialAlpha', materialAlphaRegExp, { first: 'index', timeoutDelay: 500 }),
|
|
290
|
+
]);
|
|
291
|
+
// get BrickGridPreviewActor by controller
|
|
292
|
+
const owner = owners.find(owner => owner.groups.controller === controller);
|
|
293
|
+
if (!owner)
|
|
294
|
+
return;
|
|
295
|
+
const actor = owner.groups.actor;
|
|
296
|
+
// get transform parameters for the found actor
|
|
297
|
+
const color = colorMatch.find(color => color.groups.actor === actor);
|
|
298
|
+
const material = materialMatch.find(material => material.groups.actor === actor);
|
|
299
|
+
const materialAlpha = materialAlphaMatch.find(materialAlpha => materialAlpha.groups.actor === actor);
|
|
300
|
+
if (!color || !material || !materialAlpha)
|
|
301
|
+
return;
|
|
302
|
+
const colorRaw = [+color.groups.r, +color.groups.g, +color.groups.b];
|
|
303
|
+
return {
|
|
304
|
+
materialIndex: material.groups.materialIndex,
|
|
305
|
+
materialAlpha: materialAlpha.groups.materialAlpha,
|
|
306
|
+
material: util_1.brick.BRICK_CONSTANTS.DEFAULT_MATERIALS[Number(material.groups.materialIndex)],
|
|
307
|
+
color: colorRaw,
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
async isCrouched(pawn) {
|
|
311
|
+
if (!pawn)
|
|
312
|
+
pawn = await this.getPawn();
|
|
313
|
+
const reg = /(?<index>\d+)\) BP_FigureV2_C .+?PersistentLevel\.(?<pawn>BP_FigureV2_C_\d+)\.bIsCrouched = (?<crouched>True|False)$/;
|
|
314
|
+
const resp = await __classPrivateFieldGet(this, _Player_omegga, "f").watchLogChunk('GetAll BP_FigureV2_C bIsCrouched Name=' + pawn, reg, { first: 'index', timeoutDelay: 500 });
|
|
315
|
+
const me = resp.find(r => r.groups.pawn === pawn);
|
|
316
|
+
if (!me)
|
|
317
|
+
return false;
|
|
318
|
+
return me.groups.crouched == 'True';
|
|
319
|
+
}
|
|
320
|
+
async isDead(pawn) {
|
|
321
|
+
if (!pawn)
|
|
322
|
+
pawn = await this.getPawn();
|
|
323
|
+
const reg = /(?<index>\d+)\) BP_FigureV2_C .+?PersistentLevel\.(?<pawn>BP_FigureV2_C_\d+)\.bIsDead = (?<dead>True|False)$/;
|
|
324
|
+
const resp = await __classPrivateFieldGet(this, _Player_omegga, "f").watchLogChunk('GetAll BP_FigureV2_C bIsDead Name=' + pawn, reg, { first: 'index', timeoutDelay: 500 });
|
|
325
|
+
const me = resp.find(r => r.groups.pawn === pawn);
|
|
326
|
+
if (!me)
|
|
327
|
+
return true;
|
|
328
|
+
return me.groups.dead == 'True';
|
|
329
|
+
}
|
|
330
|
+
async getTemplateBounds() {
|
|
331
|
+
const { controller } = this;
|
|
332
|
+
const brickTemplateRegExp = /^(?<index>\d+)\) BP_PlayerController_C (.+):PersistentLevel\.(?<controller>BP_PlayerController_C_\d+)\.TEMP_BrickTemplate_Server = BrickBuildingTemplate'(.+)Transient.(?<templateName>BrickBuildingTemplate_\d+)'$/;
|
|
333
|
+
const minBoundsRegExp = /^(?<index>\d+)\) BrickBuildingTemplate (.+)Transient\.(?<templateName>BrickBuildingTemplate_\d+)\.MinBounds = \(X=(?<x>.+),Y=(?<y>.+),Z=(?<z>.+)\)$/;
|
|
334
|
+
const maxBoundsRegExp = /^(?<index>\d+)\) BrickBuildingTemplate (.+)Transient\.(?<templateName>BrickBuildingTemplate_\d+)\.MaxBounds = \(X=(?<x>.+),Y=(?<y>.+),Z=(?<z>.+)\)$/;
|
|
335
|
+
const centerRegExp = /^(?<index>\d+)\) BrickBuildingTemplate (.+)Transient\.(?<templateName>BrickBuildingTemplate_\d+)\.Center = \(X=(?<x>.+),Y=(?<y>.+),Z=(?<z>.+)\)$/;
|
|
336
|
+
const [template, minBounds, maxBounds, centers] = await Promise.all([
|
|
337
|
+
__classPrivateFieldGet(this, _Player_omegga, "f").watchLogChunk(`GetAll BP_PlayerController_C TEMP_BrickTemplate_Server Name=${controller}`, brickTemplateRegExp, { first: 'index' }),
|
|
338
|
+
__classPrivateFieldGet(this, _Player_omegga, "f").watchLogChunk('GetAll BrickBuildingTemplate MinBounds', minBoundsRegExp, { first: 'index' }),
|
|
339
|
+
__classPrivateFieldGet(this, _Player_omegga, "f").watchLogChunk('GetAll BrickBuildingTemplate MaxBounds', maxBoundsRegExp, { first: 'index' }),
|
|
340
|
+
__classPrivateFieldGet(this, _Player_omegga, "f").watchLogChunk('GetAll BrickBuildingTemplate Center', centerRegExp, { first: 'index' }),
|
|
341
|
+
]);
|
|
342
|
+
if (!template.length ||
|
|
343
|
+
!minBounds.length ||
|
|
344
|
+
!maxBounds.length ||
|
|
345
|
+
!centers.length)
|
|
346
|
+
return;
|
|
347
|
+
// get template name
|
|
348
|
+
const templateName = template[0].groups.templateName;
|
|
349
|
+
// find all values with matching template name
|
|
350
|
+
const minBound = minBounds.find(minBound => minBound.groups.templateName === templateName);
|
|
351
|
+
const maxBound = maxBounds.find(maxBound => maxBound.groups.templateName === templateName);
|
|
352
|
+
const center = centers.find(center => center.groups.templateName === templateName);
|
|
353
|
+
if (!minBound || !maxBound || !center)
|
|
354
|
+
return;
|
|
355
|
+
return {
|
|
356
|
+
minBound: [+minBound.groups.x, +minBound.groups.y, +minBound.groups.z],
|
|
357
|
+
maxBound: [+maxBound.groups.x, +maxBound.groups.y, +maxBound.groups.z],
|
|
358
|
+
center: [+center.groups.x, +center.groups.y, +center.groups.z],
|
|
359
|
+
};
|
|
360
|
+
}
|
|
361
|
+
async getTemplateBoundsData() {
|
|
362
|
+
const templateBounds = await this.getTemplateBounds();
|
|
363
|
+
if (!templateBounds)
|
|
364
|
+
return;
|
|
365
|
+
const saveData = await __classPrivateFieldGet(this, _Player_omegga, "f").getSaveData({
|
|
366
|
+
center: templateBounds.center,
|
|
367
|
+
extent: [
|
|
368
|
+
(templateBounds.maxBound[0] - templateBounds.minBound[0]) / 2,
|
|
369
|
+
(templateBounds.maxBound[1] - templateBounds.minBound[1]) / 2,
|
|
370
|
+
(templateBounds.maxBound[2] - templateBounds.minBound[2]) / 2,
|
|
371
|
+
],
|
|
372
|
+
});
|
|
373
|
+
if (!saveData)
|
|
374
|
+
return;
|
|
375
|
+
// filter bricks outside the bounds
|
|
376
|
+
// no longer necessary thanks to Bricks.SaveRegion
|
|
377
|
+
/* saveData.bricks = (saveData.bricks as Brick[]).filter(brick => {
|
|
378
|
+
return brickUtils.checkBounds(
|
|
379
|
+
brick,
|
|
380
|
+
saveData.brick_assets,
|
|
381
|
+
templateBounds
|
|
382
|
+
);
|
|
383
|
+
}) as typeof saveData.bricks; */
|
|
384
|
+
if (saveData.bricks.length > 0) {
|
|
385
|
+
return saveData;
|
|
386
|
+
}
|
|
387
|
+
return undefined;
|
|
388
|
+
}
|
|
389
|
+
loadBricks(saveName) {
|
|
390
|
+
__classPrivateFieldGet(this, _Player_omegga, "f").loadBricksOnPlayer(saveName, this);
|
|
391
|
+
}
|
|
392
|
+
async loadSaveData(saveData, { offX = 0, offY = 0, offZ = 0 } = {}) {
|
|
393
|
+
await __classPrivateFieldGet(this, _Player_omegga, "f").loadSaveDataOnPlayer(saveData, this, {
|
|
394
|
+
offX,
|
|
395
|
+
offY,
|
|
396
|
+
offZ,
|
|
397
|
+
});
|
|
398
|
+
}
|
|
399
|
+
async loadDataAtGhostBrick(saveData, { rotate = true, offX = 0, offY = 0, offZ = 0, quiet = true } = {}) {
|
|
400
|
+
const ghostBrickData = await this.getGhostBrick();
|
|
401
|
+
if (!ghostBrickData || !saveData)
|
|
402
|
+
return;
|
|
403
|
+
// get bounds of the bricks
|
|
404
|
+
const bounds = util_1.brick.getBounds(saveData);
|
|
405
|
+
if (rotate) {
|
|
406
|
+
const orientation = util_1.brick.BRICK_CONSTANTS.orientationMap[ghostBrickData.orientation];
|
|
407
|
+
saveData.bricks = saveData.bricks.map(brick => util_1.brick.rotate(brick, orientation));
|
|
408
|
+
// rotate bounds, if we dont use the original bounds they are off by 1 sometimes >:(
|
|
409
|
+
bounds.minBound = util_1.brick.BRICK_CONSTANTS.translationTable[util_1.brick.d2o(...orientation)](bounds.minBound);
|
|
410
|
+
bounds.maxBound = util_1.brick.BRICK_CONSTANTS.translationTable[util_1.brick.d2o(...orientation)](bounds.maxBound);
|
|
411
|
+
bounds.center = util_1.brick.BRICK_CONSTANTS.translationTable[util_1.brick.d2o(...orientation)](bounds.center);
|
|
412
|
+
}
|
|
413
|
+
// calculate offset from bricks center to ghost brick center
|
|
414
|
+
const offset = bounds.center.map((center, index) => ghostBrickData.location[index] - center);
|
|
415
|
+
// load at offset location
|
|
416
|
+
await __classPrivateFieldGet(this, _Player_omegga, "f").loadSaveData(saveData, {
|
|
417
|
+
offX: offX + offset[0],
|
|
418
|
+
offY: offY + offset[1],
|
|
419
|
+
offZ: offZ + offset[2],
|
|
420
|
+
quiet,
|
|
421
|
+
});
|
|
422
|
+
}
|
|
423
|
+
kill() {
|
|
424
|
+
Player.kill(__classPrivateFieldGet(this, _Player_omegga, "f"), this);
|
|
425
|
+
}
|
|
426
|
+
damage(amount) {
|
|
427
|
+
Player.damage(__classPrivateFieldGet(this, _Player_omegga, "f"), this, amount);
|
|
428
|
+
}
|
|
429
|
+
heal(amount) {
|
|
430
|
+
Player.heal(__classPrivateFieldGet(this, _Player_omegga, "f"), this, amount);
|
|
431
|
+
}
|
|
432
|
+
giveItem(item) {
|
|
433
|
+
Player.giveItem(__classPrivateFieldGet(this, _Player_omegga, "f"), this, item);
|
|
434
|
+
}
|
|
435
|
+
takeItem(item) {
|
|
436
|
+
Player.takeItem(__classPrivateFieldGet(this, _Player_omegga, "f"), this, item);
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
_Player_omegga = new WeakMap();
|
|
440
|
+
global.Player = Player;
|
|
441
|
+
exports.default = Player;
|
|
442
|
+
//# sourceMappingURL=player.js.map
|