omegga 1.2.9 → 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 +1 -1
  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
package/dist/main.js CHANGED
@@ -1,499 +1,452 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- const softconfig_1 = __importStar(require("./softconfig"));
40
- const installer_1 = require("./cli/installer");
41
- const config = __importStar(require("./config"));
42
- const server_1 = __importDefault(require("./omegga/server"));
43
- const file = __importStar(require("./util/file"));
2
+ const softconfig = require("./softconfig.js");
3
+ const installer = require("./cli/installer.js");
4
+ const index = require("./config/index.js");
5
+ const server = require("./omegga/server.js");
6
+ const file = require("./util/file.js");
44
7
  require("colors");
45
- const commander_1 = __importDefault(require("commander"));
46
- const fs_1 = __importDefault(require("fs"));
47
- const hasbin_1 = __importDefault(require("hasbin"));
48
- const path_1 = __importDefault(require("path"));
49
- const prompts_1 = __importDefault(require("prompts"));
50
- const update_notifier_cjs_1 = __importDefault(require("update-notifier-cjs"));
51
- const cli_1 = require("./cli");
52
- const logger_1 = __importDefault(require("./logger"));
53
- const softconfig_2 = require("./softconfig");
54
- const updater_1 = require("./updater");
55
- const version_1 = require("./version");
56
- const notifier = process.env.PACKAGE_NOTIFIER !== 'false'
57
- ? (0, update_notifier_cjs_1.default)({
58
- pkg: version_1.PKG,
59
- updateCheckInterval: 1000 * 60 * 60 * 24,
60
- })
61
- : null;
62
- notifier === null || notifier === void 0 ? void 0 : notifier.notify();
63
- // TODO: let omegga bundle config (roles, bans, server config) to zip
64
- // TODO: let omegga unbundle config from zip to current omegga dir
65
- // write a default config file
8
+ const commander = require("commander");
9
+ const hasbin = require("hasbin");
10
+ const fs = require("node:fs");
11
+ const path = require("node:path");
12
+ const prompts = require("prompts");
13
+ const updateNotifier = require("update-notifier-cjs");
14
+ const index$1 = require("./cli/index.js");
15
+ const logger = require("./logger.js");
16
+ const steam = require("./updater/steam.js");
17
+ const version = require("./version.js");
18
+ const notifier = process.env.PACKAGE_NOTIFIER !== "false" ? updateNotifier({
19
+ pkg: version.PKG,
20
+ updateCheckInterval: 1e3 * 60 * 60 * 24
21
+ }) : null;
22
+ notifier?.notify();
66
23
  const createDefaultConfig = () => {
67
- logger_1.default.logp('Created default config file');
68
- config.write(softconfig_1.default.CONFIG_FILENAMES[0] + '.yml', config.defaultConfig);
69
- file.mkdir(`data/${softconfig_1.default.CONFIG_SAVED_DIR}/Builds`);
70
- file.mkdir('plugins');
71
- return config.defaultConfig;
24
+ logger.default.logp("Created default config file");
25
+ index.write(softconfig.default.CONFIG_FILENAMES[0] + ".yml", index.defaultConfig);
26
+ file.mkdir(`data/${softconfig.default.CONFIG_SAVED_DIR}/Builds`);
27
+ file.mkdir("plugins");
28
+ return index.defaultConfig;
72
29
  };
73
- const program = commander_1.default
74
- .description(version_1.PKG.description)
75
- .version(version_1.VERSION)
76
- .option('-d, --debug', 'Print all console logs rather than just chat messages')
77
- .option('-u, --update', 'Check for brickadia updates (on steam) and install them if available')
78
- .option('-v, --verbose', 'Print extra messages for debugging purposes')
79
- .action(async () => {
80
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
81
- const { debug, verbose, update } = program.opts();
82
- if (program.args.length > 0) {
83
- program.help();
84
- process.exit(1);
85
- }
86
- logger_1.default.VERBOSE = Boolean(verbose);
87
- // default working directory is the one specified in config
88
- let workDir = config.store.get('defaultOmegga');
89
- logger_1.default.verbose('Using working directory', workDir === null || workDir === void 0 ? void 0 : workDir.yellow);
90
- // if there's a config in the current directory, use that one instead
91
- if (config.find('.'))
92
- workDir = '.';
93
- // check if configured path exists
94
- if (!fs_1.default.existsSync(workDir)) {
95
- logger_1.default.errorp('configured omegga default path does not exist');
96
- process.exit(1);
97
- }
98
- if (!fs_1.default.statSync(workDir).isDirectory) {
99
- logger_1.default.errorp('configured omegga default path is not a directory');
100
- process.exit(1);
101
- }
102
- // find the config for the working directory
103
- const configFile = config.find(workDir);
104
- logger_1.default.verbose('Target config file:', configFile === null || configFile === void 0 ? void 0 : configFile.yellow);
105
- let conf;
106
- // create a default config file if it does not already exist, otherwise load in the existing one
107
- if (!configFile) {
108
- logger_1.default.verbose('Creating a new config');
109
- conf = createDefaultConfig();
110
- }
111
- else {
112
- logger_1.default.verbose('Reading config file');
113
- try {
114
- conf = config.read(configFile);
115
- }
116
- catch (error) {
117
- logger_1.default.errorp('Error reading config file');
118
- logger_1.default.verbose(error);
119
- }
120
- }
121
- const overrideBinary = softconfig_1.OVERRIDE_GAME_DIR &&
122
- path_1.default.join(softconfig_1.OVERRIDE_GAME_DIR, // from BRICKADIA_DIR env
123
- softconfig_2.GAME_BIN_PATH);
124
- const isSteam = !((_a = conf === null || conf === void 0 ? void 0 : conf.server) === null || _a === void 0 ? void 0 : _a.branch);
125
- if (overrideBinary) {
126
- if (!fs_1.default.existsSync(overrideBinary)) {
127
- logger_1.default.error('Binary', overrideBinary.yellow, 'in', 'BRICKADIA_DIR'.yellow, 'does not exist!');
128
- process.exit(1);
129
- }
130
- logger_1.default.verbose('Using override binary', overrideBinary.yellow, '- skipping download.');
131
- }
132
- else if (isSteam) {
133
- conf.__STEAM = true;
134
- await setupSteam(conf, update);
135
- }
136
- else {
137
- logger_1.default.warnp('Brickadia will be launched with', 'non-steam launcher'.yellow);
138
- // Check if the local launcher is installed
139
- if (fs_1.default.existsSync(softconfig_1.default.LOCAL_LAUNCHER)) {
140
- logger_1.default.verbose("Using omegga's brickadia-launcher");
141
- conf.server.__LOCAL = true;
142
- }
143
- else {
144
- logger_1.default.verbose("Installing launcher as it's missing");
145
- await (0, installer_1.installLauncher)();
146
- }
147
- }
148
- const globalToken = cli_1.auth.getGlobalToken();
149
- const hasHostingToken = Boolean(((_b = conf === null || conf === void 0 ? void 0 : conf.credentials) === null || _b === void 0 ? void 0 : _b.token) || process.env.BRICKADIA_TOKEN || globalToken);
150
- // Skip auth when the hosting token is present
151
- if (hasHostingToken) {
152
- logger_1.default.verbose('Skipping auth token generation due to host token presence');
153
- if ((_c = conf === null || conf === void 0 ? void 0 : conf.credentials) === null || _c === void 0 ? void 0 : _c.token)
154
- logger_1.default.verbose('Found token in config file');
155
- else if (process.env.BRICKADIA_TOKEN)
156
- logger_1.default.verbose('Found token in', 'BRICKADIA_TOKEN'.yellow);
157
- else if (globalToken)
158
- logger_1.default.verbose('Found token in omegga global config');
159
- else
160
- logger_1.default.verbose('unreachable - no token found');
161
- // check if the auth files don't exist
162
- }
163
- else if (!cli_1.auth.exists(path_1.default.join(workDir, softconfig_1.default.DATA_PATH, (_e = (_d = conf === null || conf === void 0 ? void 0 : conf.server) === null || _d === void 0 ? void 0 : _d.savedDir) !== null && _e !== void 0 ? _e : softconfig_1.default.CONFIG_SAVED_DIR, (_g = (_f = conf === null || conf === void 0 ? void 0 : conf.server) === null || _f === void 0 ? void 0 : _f.authDir) !== null && _g !== void 0 ? _g : softconfig_1.default.CONFIG_AUTH_DIR))) {
164
- const success = await cli_1.auth.prompt({
165
- debug,
166
- email: (_j = (_h = conf === null || conf === void 0 ? void 0 : conf.credentials) === null || _h === void 0 ? void 0 : _h['email']) !== null && _j !== void 0 ? _j : process.env.BRICKADIA_USER,
167
- password: (_l = (_k = conf === null || conf === void 0 ? void 0 : conf.credentials) === null || _k === void 0 ? void 0 : _k['password']) !== null && _l !== void 0 ? _l : process.env.BRICKADIA_PASS,
168
- isSteam,
169
- branch: (_m = conf === null || conf === void 0 ? void 0 : conf.server) === null || _m === void 0 ? void 0 : _m.branch,
170
- authDir: (_o = conf === null || conf === void 0 ? void 0 : conf.server) === null || _o === void 0 ? void 0 : _o.authDir,
171
- savedDir: (_p = conf === null || conf === void 0 ? void 0 : conf.server) === null || _p === void 0 ? void 0 : _p.savedDir,
172
- launchArgs: (_q = conf === null || conf === void 0 ? void 0 : conf.server) === null || _q === void 0 ? void 0 : _q.launchArgs,
173
- });
174
- if (!success) {
175
- logger_1.default.errorp('Start aborted - could not generate auth tokens');
176
- process.exit(1);
177
- }
178
- }
179
- else {
180
- logger_1.default.verbose('Skipping auth token generation due to existing auth files');
181
- }
182
- // build options
183
- const options = {
184
- // default enable web ui (set to false)
185
- noweb: typeof ((_r = conf.omegga) === null || _r === void 0 ? void 0 : _r.webui) === 'boolean' && !((_s = conf.omegga) === null || _s === void 0 ? void 0 : _s.webui),
186
- // default enable https (set to true, will not be https if it can't generate)
187
- https: typeof ((_t = conf.omegga) === null || _t === void 0 ? void 0 : _t.https) !== 'boolean' || ((_u = conf.omegga) === null || _u === void 0 ? void 0 : _u.https),
188
- port: ((_v = conf.omegga) === null || _v === void 0 ? void 0 : _v.port) || softconfig_1.default.DEFAULT_PORT,
189
- debug,
190
- };
191
- logger_1.default.verbose('Launching with options', options);
192
- // setup the server
193
- const server = new server_1.default(workDir, conf, options);
194
- logger_1.default.verbose('Created omegga object');
195
- if (verbose) {
196
- server.on('*', (ev) => ev !== 'line' && logger_1.default.verbose('EVENT'.green, ev));
197
- }
198
- // create a terminal
199
- logger_1.default.setTerminal(new cli_1.Terminal(server, options));
200
- if (notifier === null || notifier === void 0 ? void 0 : notifier.update) {
201
- logger_1.default.logp(`Omegga update is available (${('v' + notifier.update.latest).yellow})! Run`, 'npm i -g omegga'.yellow, 'to update!');
202
- }
203
- if (conf.__STEAM &&
204
- !update &&
205
- !((_w = conf.server) === null || _w === void 0 ? void 0 : _w.steambetaPassword) &&
206
- process.env.STEAM_NOTIFIER !== 'false') {
207
- (0, updater_1.hasSteamUpdate)((_x = conf.server) === null || _x === void 0 ? void 0 : _x.steambeta).then(hasUpdate => {
208
- if (hasUpdate) {
209
- logger_1.default.logp('A server update is available!'.brightBlue);
210
- logger_1.default.log(' Restart with', 'omegga --update'.yellow, 'to update every start.');
211
- logger_1.default.log(' Run', '/update'.yellow, 'to update', 'now'.green + '!');
212
- }
213
- else {
214
- logger_1.default.verbose('No server updates available.');
215
- }
216
- });
217
- }
218
- logger_1.default.logp(`Launching brickadia server on port ${('' + (conf.server.port || 7777)).green}...`);
219
- // start the server
220
- logger_1.default.verbose('Starting Omegga');
221
- server.start();
30
+ const program = commander.description(version.PKG.description).version(version.VERSION).option(
31
+ "-d, --debug",
32
+ "Print all console logs rather than just chat messages"
33
+ ).option(
34
+ "-u, --update",
35
+ "Check for brickadia updates (on steam) and install them if available"
36
+ ).option("-v, --verbose", "Print extra messages for debugging purposes").action(async () => {
37
+ const { debug, verbose, update } = program.opts();
38
+ if (program.args.length > 0) {
39
+ program.help();
40
+ process.exit(1);
41
+ }
42
+ logger.default.VERBOSE = Boolean(verbose);
43
+ let workDir = index.store.get("defaultOmegga");
44
+ logger.default.verbose("Using working directory", workDir?.yellow);
45
+ if (index.find(".")) workDir = ".";
46
+ if (!fs.existsSync(workDir)) {
47
+ logger.default.errorp("configured omegga default path does not exist");
48
+ process.exit(1);
49
+ }
50
+ if (!fs.statSync(workDir).isDirectory) {
51
+ logger.default.errorp("configured omegga default path is not a directory");
52
+ process.exit(1);
53
+ }
54
+ const configFile = index.find(workDir);
55
+ logger.default.verbose("Target config file:", configFile?.yellow);
56
+ let conf;
57
+ if (!configFile) {
58
+ logger.default.verbose("Creating a new config");
59
+ conf = createDefaultConfig();
60
+ } else {
61
+ logger.default.verbose("Reading config file");
62
+ try {
63
+ conf = index.read(configFile);
64
+ } catch (error) {
65
+ logger.default.errorp("Error reading config file");
66
+ logger.default.verbose(error);
67
+ }
68
+ }
69
+ const overrideBinary = softconfig.OVERRIDE_GAME_DIR && path.join(
70
+ softconfig.OVERRIDE_GAME_DIR,
71
+ // from BRICKADIA_DIR env
72
+ softconfig.GAME_BIN_PATH
73
+ );
74
+ const isSteam = !conf?.server?.branch;
75
+ if (overrideBinary) {
76
+ if (!fs.existsSync(overrideBinary)) {
77
+ logger.default.error(
78
+ "Binary",
79
+ overrideBinary.yellow,
80
+ "in",
81
+ "BRICKADIA_DIR".yellow,
82
+ "does not exist!"
83
+ );
84
+ process.exit(1);
85
+ }
86
+ logger.default.verbose(
87
+ "Using override binary",
88
+ overrideBinary.yellow,
89
+ "- skipping download."
90
+ );
91
+ } else if (isSteam) {
92
+ conf.__STEAM = true;
93
+ await setupSteam(conf, update);
94
+ } else {
95
+ logger.default.warnp(
96
+ "Brickadia will be launched with",
97
+ "non-steam launcher".yellow
98
+ );
99
+ if (fs.existsSync(softconfig.default.LOCAL_LAUNCHER)) {
100
+ logger.default.verbose("Using omegga's brickadia-launcher");
101
+ conf.server.__LOCAL = true;
102
+ } else {
103
+ logger.default.verbose("Installing launcher as it's missing");
104
+ await installer.installLauncher();
105
+ }
106
+ }
107
+ const globalToken = index$1.auth.getGlobalToken();
108
+ const hasHostingToken = Boolean(
109
+ conf?.credentials?.token || process.env.BRICKADIA_TOKEN || globalToken
110
+ );
111
+ if (hasHostingToken) {
112
+ logger.default.verbose(
113
+ "Skipping auth token generation due to host token presence"
114
+ );
115
+ if (conf?.credentials?.token)
116
+ logger.default.verbose("Found token in config file");
117
+ else if (process.env.BRICKADIA_TOKEN)
118
+ logger.default.verbose("Found token in", "BRICKADIA_TOKEN".yellow);
119
+ else if (globalToken)
120
+ logger.default.verbose("Found token in omegga global config");
121
+ else logger.default.verbose("unreachable - no token found");
122
+ } else if (!index$1.auth.exists(
123
+ path.join(
124
+ workDir,
125
+ softconfig.default.DATA_PATH,
126
+ conf?.server?.savedDir ?? softconfig.default.CONFIG_SAVED_DIR,
127
+ conf?.server?.authDir ?? softconfig.default.CONFIG_AUTH_DIR
128
+ )
129
+ )) {
130
+ const success = await index$1.auth.prompt({
131
+ debug,
132
+ email: conf?.credentials?.["email"] ?? process.env.BRICKADIA_USER,
133
+ password: conf?.credentials?.["password"] ?? process.env.BRICKADIA_PASS,
134
+ isSteam,
135
+ branch: conf?.server?.branch,
136
+ authDir: conf?.server?.authDir,
137
+ savedDir: conf?.server?.savedDir,
138
+ launchArgs: conf?.server?.launchArgs
139
+ });
140
+ if (!success) {
141
+ logger.default.errorp("Start aborted - could not generate auth tokens");
142
+ process.exit(1);
143
+ }
144
+ } else {
145
+ logger.default.verbose(
146
+ "Skipping auth token generation due to existing auth files"
147
+ );
148
+ }
149
+ const options = {
150
+ // default enable web ui (set to false)
151
+ noweb: typeof conf.omegga?.webui === "boolean" && !conf.omegga?.webui,
152
+ // default enable https (set to true, will not be https if it can't generate)
153
+ https: typeof conf.omegga?.https !== "boolean" || conf.omegga?.https,
154
+ port: conf.omegga?.port || softconfig.default.DEFAULT_PORT,
155
+ debug
156
+ };
157
+ logger.default.verbose("Launching with options", options);
158
+ const server$1 = new server.default(workDir, conf, options);
159
+ logger.default.verbose("Created omegga object");
160
+ if (verbose) {
161
+ server$1.on(
162
+ "*",
163
+ (ev) => ev !== "line" && logger.default.verbose("EVENT".green, ev)
164
+ );
165
+ }
166
+ logger.default.setTerminal(new index$1.Terminal(server$1, options));
167
+ if (notifier?.update) {
168
+ logger.default.logp(
169
+ `Omegga update is available (${("v" + notifier.update.latest).yellow})! Run`,
170
+ "npm i -g omegga".yellow,
171
+ "to update!"
172
+ );
173
+ }
174
+ if (conf.__STEAM && !update && !conf.server?.steambetaPassword && process.env.STEAM_NOTIFIER !== "false") {
175
+ steam.hasSteamUpdate(conf.server?.steambeta).then((hasUpdate) => {
176
+ if (hasUpdate) {
177
+ logger.default.logp("A server update is available!".brightBlue);
178
+ logger.default.log(
179
+ " Restart with",
180
+ "omegga --update".yellow,
181
+ "to update every start."
182
+ );
183
+ logger.default.log(" Run", "/update".yellow, "to update", "now".green + "!");
184
+ } else {
185
+ logger.default.verbose("No server updates available.");
186
+ }
187
+ });
188
+ }
189
+ logger.default.logp(
190
+ `Launching brickadia server on port ${("" + (conf.server.port || 7777)).green}...`
191
+ );
192
+ logger.default.verbose("Starting Omegga");
193
+ server$1.start();
222
194
  });
223
- program
224
- .command('init')
225
- .description('Sets up the current directory as a brickadia server')
226
- .action(async () => {
227
- const configFile = config.find('.');
228
- if (configFile) {
229
- logger_1.default.errorp('Config file already exists:', configFile.yellow.underline);
230
- process.exit(1);
231
- }
232
- createDefaultConfig();
195
+ program.command("init").description("Sets up the current directory as a brickadia server").action(async () => {
196
+ const configFile = index.find(".");
197
+ if (configFile) {
198
+ logger.default.errorp("Config file already exists:", configFile.yellow.underline);
199
+ process.exit(1);
200
+ }
201
+ createDefaultConfig();
233
202
  });
234
- program
235
- .command('config [field] [value]')
236
- .description("Configure Omegga's default behavior.\n" +
237
- 'Type ' +
238
- 'omegga config list'.yellow.underline +
239
- ' for current settings and available fields')
240
- .action((field, value) => {
241
- if (!field)
242
- field = 'list';
243
- (0, cli_1.config)(field, value, program.opts());
203
+ program.command("config [field] [value]").description(
204
+ "Configure Omegga's default behavior.\nType " + "omegga config list".yellow.underline + " for current settings and available fields"
205
+ ).action((field, value) => {
206
+ if (!field) field = "list";
207
+ index$1.config(field, value, program.opts());
244
208
  });
245
- program
246
- .command('auth')
247
- .option('-g, --global', 'Remove global auth files')
248
- .option('-l, --local', 'Remove local auth files')
249
- .option('-w, --workdir', 'Remove configured location auth files')
250
- .option('-u, --email <email>', 'User email (must provide password)')
251
- .option('-p, --pass <password>', 'User password (must provide email)')
252
- .option('-v, --verbose', 'Print extra messages for debugging purposes')
253
- .description('Generates server auth tokens from brickadia account email+password')
254
- .action(async ({ email, pass: password, local: localAuth, workDir, global: globalAuth, }) => {
255
- var _a, _b, _c, _d, _e, _f, _g;
209
+ program.command("auth").option("-g, --global", "Remove global auth files").option("-l, --local", "Remove local auth files").option("-w, --workdir", "Remove configured location auth files").option("-u, --email <email>", "User email (must provide password)").option("-p, --pass <password>", "User password (must provide email)").option("-v, --verbose", "Print extra messages for debugging purposes").description(
210
+ "Generates server auth tokens from brickadia account email+password"
211
+ ).action(
212
+ async ({
213
+ email,
214
+ pass: password,
215
+ local: localAuth,
216
+ workDir,
217
+ global: globalAuth
218
+ }) => {
256
219
  const { verbose, debug } = program.opts();
257
- logger_1.default.VERBOSE = Boolean(verbose);
220
+ logger.default.VERBOSE = Boolean(verbose);
258
221
  let branch, authDir, savedDir, launchArgs;
259
222
  let isSteam;
260
- // if there's a config in the current directory, use that one instead
261
- if (config.find('.'))
262
- workDir = '.';
263
- // check if configured path exists
264
- if (fs_1.default.existsSync(workDir) && fs_1.default.statSync(workDir).isDirectory) {
265
- logger_1.default.verbose('Using working directory', workDir.yellow);
266
- // find the config for the working directory
267
- const configFile = config.find(workDir);
268
- logger_1.default.verbose('Target config file:', configFile === null || configFile === void 0 ? void 0 : configFile.yellow);
269
- try {
270
- // read the config and extract the branch
271
- const conf = config.read(configFile);
272
- logger_1.default.verbose('Auth config:', (_a = conf === null || conf === void 0 ? void 0 : conf.server) !== null && _a !== void 0 ? _a : 'no server config'.grey);
273
- branch = (_b = conf === null || conf === void 0 ? void 0 : conf.server) === null || _b === void 0 ? void 0 : _b.branch;
274
- authDir = (_c = conf === null || conf === void 0 ? void 0 : conf.server) === null || _c === void 0 ? void 0 : _c.authDir;
275
- savedDir = (_d = conf === null || conf === void 0 ? void 0 : conf.server) === null || _d === void 0 ? void 0 : _d.savedDir;
276
- launchArgs = (_e = conf === null || conf === void 0 ? void 0 : conf.server) === null || _e === void 0 ? void 0 : _e.launchArgs;
277
- isSteam = !((_f = conf === null || conf === void 0 ? void 0 : conf.server) === null || _f === void 0 ? void 0 : _f.branch);
278
- if (localAuth && ((_g = conf === null || conf === void 0 ? void 0 : conf.credentials) === null || _g === void 0 ? void 0 : _g.token)) {
279
- logger_1.default.logp("This server's auth is managed by the token in", configFile.yellow);
280
- return;
281
- }
282
- }
283
- catch (error) {
284
- logger_1.default.errorp('Error reading config file');
285
- logger_1.default.verbose(error);
223
+ if (index.find(".")) workDir = ".";
224
+ if (fs.existsSync(workDir) && fs.statSync(workDir).isDirectory) {
225
+ logger.default.verbose("Using working directory", workDir.yellow);
226
+ const configFile = index.find(workDir);
227
+ logger.default.verbose("Target config file:", configFile?.yellow);
228
+ try {
229
+ const conf = index.read(configFile);
230
+ logger.default.verbose(
231
+ "Auth config:",
232
+ conf?.server ?? "no server config".grey
233
+ );
234
+ branch = conf?.server?.branch;
235
+ authDir = conf?.server?.authDir;
236
+ savedDir = conf?.server?.savedDir;
237
+ launchArgs = conf?.server?.launchArgs;
238
+ isSteam = !conf?.server?.branch;
239
+ if (localAuth && conf?.credentials?.token) {
240
+ logger.default.logp(
241
+ "This server's auth is managed by the token in",
242
+ configFile.yellow
243
+ );
244
+ return;
286
245
  }
287
- }
288
- else {
289
- logger_1.default.verbose('Using default working directory', workDir.yellow);
290
- }
291
- savedDir !== null && savedDir !== void 0 ? savedDir : (savedDir = softconfig_1.default.CONFIG_SAVED_DIR);
292
- const workdirPath = path_1.default.join(config.store.get('defaultOmegga'), `data/${savedDir}/Auth`);
246
+ } catch (error) {
247
+ logger.default.errorp("Error reading config file");
248
+ logger.default.verbose(error);
249
+ }
250
+ } else {
251
+ logger.default.verbose("Using default working directory", workDir.yellow);
252
+ }
253
+ savedDir ??= softconfig.default.CONFIG_SAVED_DIR;
254
+ const workdirPath = path.join(
255
+ index.store.get("defaultOmegga"),
256
+ `data/${savedDir}/Auth`
257
+ );
293
258
  if (globalAuth || localAuth) {
294
- if (globalAuth) {
295
- const globalAuthPath = path_1.default.join(softconfig_1.default.CONFIG_HOME, savedDir !== softconfig_1.default.CONFIG_SAVED_DIR ? savedDir : '', authDir !== null && authDir !== void 0 ? authDir : softconfig_1.default.CONFIG_AUTH_DIR);
296
- logger_1.default.logp('Clearing auth files from', globalAuthPath.yellow);
297
- cli_1.auth.clean(globalAuthPath);
298
- }
299
- if (workDir) {
300
- logger_1.default.logp('Clearing auth files from', workdirPath.yellow);
301
- await file.rmdir(workdirPath);
302
- }
303
- if (localAuth) {
304
- const localPath = path_1.default.resolve(`data/${savedDir}/`, authDir !== null && authDir !== void 0 ? authDir : softconfig_1.default.CONFIG_AUTH_DIR);
305
- logger_1.default.logp('Clearing auth files from', localPath.yellow);
306
- await file.rmdir(localPath);
307
- }
308
- return;
259
+ if (globalAuth) {
260
+ const globalAuthPath = path.join(
261
+ softconfig.default.CONFIG_HOME,
262
+ savedDir !== softconfig.default.CONFIG_SAVED_DIR ? savedDir : "",
263
+ authDir ?? softconfig.default.CONFIG_AUTH_DIR
264
+ );
265
+ logger.default.logp("Clearing auth files from", globalAuthPath.yellow);
266
+ index$1.auth.clean(globalAuthPath);
267
+ }
268
+ if (workDir) {
269
+ logger.default.logp("Clearing auth files from", workdirPath.yellow);
270
+ await file.rmdir(workdirPath);
271
+ }
272
+ if (localAuth) {
273
+ const localPath = path.resolve(
274
+ `data/${savedDir}/`,
275
+ authDir ?? softconfig.default.CONFIG_AUTH_DIR
276
+ );
277
+ logger.default.logp("Clearing auth files from", localPath.yellow);
278
+ await file.rmdir(localPath);
279
+ }
280
+ return;
309
281
  }
310
282
  if (!isSteam) {
311
- logger_1.default.warnp('Authenticating with', 'non-steam launcher'.yellow);
312
- }
313
- cli_1.auth.prompt({
314
- email,
315
- password,
316
- debug,
317
- branch,
318
- authDir,
319
- savedDir,
320
- launchArgs,
283
+ logger.default.warnp("Authenticating with", "non-steam launcher".yellow);
284
+ }
285
+ index$1.auth.prompt({
286
+ email,
287
+ password,
288
+ debug,
289
+ branch,
290
+ authDir,
291
+ savedDir,
292
+ launchArgs
321
293
  });
294
+ }
295
+ );
296
+ program.command("info").alias("n").description(
297
+ "Shows server name, description, port, install info, and installed plugins"
298
+ ).action(async () => {
299
+ logger.default.errorp("not implemented yet");
322
300
  });
323
- program
324
- .command('info')
325
- .alias('n')
326
- .description('Shows server name, description, port, install info, and installed plugins')
327
- .action(async () => {
328
- logger_1.default.errorp('not implemented yet');
329
- // TODO: implement config parsing
301
+ program.command("install <pluginUrl...>").alias("i").option("-f, --force", "Forcefully re-install existing plugin").option("-v, --verbose", "Print extra messages for debugging purposes").description("Installs a plugin to the current brickadia server").action(async (plugins) => {
302
+ if (!hasbin.sync("git")) {
303
+ logger.default.errorp("git".yellow, "must be installed to install plugins.");
304
+ process.exit(1);
305
+ }
306
+ if (!index.find(".")) {
307
+ logger.default.errorp(
308
+ "Not an omegga directory, run ",
309
+ "omegga init".yellow,
310
+ "to setup one."
311
+ );
312
+ process.exit(1);
313
+ }
314
+ const { verbose, force } = program.opts();
315
+ logger.default.VERBOSE = Boolean(verbose);
316
+ index$1.pluginUtil.install(plugins, { verbose, force });
330
317
  });
331
- program
332
- .command('install <pluginUrl...>')
333
- .alias('i')
334
- .option('-f, --force', 'Forcefully re-install existing plugin') // TODO: implement install --force
335
- .option('-v, --verbose', 'Print extra messages for debugging purposes')
336
- .description('Installs a plugin to the current brickadia server')
337
- .action(async (plugins) => {
338
- if (!hasbin_1.default.sync('git')) {
339
- logger_1.default.errorp('git'.yellow, 'must be installed to install plugins.');
340
- process.exit(1);
341
- }
342
- if (!config.find('.')) {
343
- logger_1.default.errorp('Not an omegga directory, run ', 'omegga init'.yellow, 'to setup one.');
344
- process.exit(1);
345
- }
346
- const { verbose, force } = program.opts();
347
- logger_1.default.VERBOSE = Boolean(verbose);
348
- cli_1.pluginUtil.install(plugins, { verbose, force });
318
+ program.command("update [pluginNames...]").alias("u").option("-f, --force", "Forcefully re-upgrade existing plugin").option("-v, --verbose", "Print extra messages for debugging purposes").description("Updates all or selected installed plugins to latest versions").action(async (plugins) => {
319
+ if (!index.find(".")) {
320
+ logger.default.errorp(
321
+ "Not an omegga directory, run ",
322
+ "omegga init".yellow,
323
+ "to setup one."
324
+ );
325
+ process.exit(1);
326
+ }
327
+ const { verbose, force } = program.opts();
328
+ logger.default.VERBOSE = Boolean(verbose);
329
+ index$1.pluginUtil.update(plugins, { verbose, force });
349
330
  });
350
- program
351
- .command('update [pluginNames...]')
352
- .alias('u')
353
- .option('-f, --force', 'Forcefully re-upgrade existing plugin') // TODO: implement update --force
354
- .option('-v, --verbose', 'Print extra messages for debugging purposes')
355
- .description('Updates all or selected installed plugins to latest versions')
356
- .action(async (plugins) => {
357
- if (!config.find('.')) {
358
- logger_1.default.errorp('Not an omegga directory, run ', 'omegga init'.yellow, 'to setup one.');
359
- process.exit(1);
360
- }
361
- const { verbose, force } = program.opts();
362
- logger_1.default.VERBOSE = Boolean(verbose);
363
- cli_1.pluginUtil.update(plugins, { verbose, force });
331
+ program.command("check [pluginNames...]").option("-v, --verbose", "Print extra messages for debugging purposes").description("Checks plugins for compatibility issues").action(async (plugins) => {
332
+ if (!index.find(".")) {
333
+ logger.default.errorp(
334
+ "Not an omegga directory, run ",
335
+ "omegga init".yellow,
336
+ "to setup one."
337
+ );
338
+ process.exit(1);
339
+ }
340
+ const { verbose } = program.opts();
341
+ logger.default.VERBOSE = Boolean(verbose);
342
+ index$1.pluginUtil.check(plugins, { verbose });
364
343
  });
365
- program
366
- .command('check [pluginNames...]')
367
- .option('-v, --verbose', 'Print extra messages for debugging purposes')
368
- .description('Checks plugins for compatibility issues')
369
- .action(async (plugins) => {
370
- if (!config.find('.')) {
371
- logger_1.default.errorp('Not an omegga directory, run ', 'omegga init'.yellow, 'to setup one.');
372
- process.exit(1);
373
- }
374
- const { verbose } = program.opts();
375
- logger_1.default.VERBOSE = Boolean(verbose);
376
- cli_1.pluginUtil.check(plugins, { verbose });
344
+ program.command("init-plugin").option("-v, --verbose", "Print extra messages for debugging purposes").description("Initializes a new plugin with the given name and settings").action(async () => {
345
+ const { verbose } = program.opts();
346
+ logger.default.VERBOSE = Boolean(verbose);
347
+ index$1.pluginUtil.init();
377
348
  });
378
- program
379
- .command('init-plugin')
380
- .option('-v, --verbose', 'Print extra messages for debugging purposes')
381
- .description('Initializes a new plugin with the given name and settings')
382
- .action(async () => {
383
- const { verbose } = program.opts();
384
- logger_1.default.VERBOSE = Boolean(verbose);
385
- cli_1.pluginUtil.init();
349
+ program.command("plugin-init").description("Alias for " + "init-plugin".yellow.underline).option("-v, --verbose", "Print extra messages for debugging purposes").action(async () => {
350
+ const { verbose } = program.opts();
351
+ logger.default.VERBOSE = Boolean(verbose);
352
+ index$1.pluginUtil.init();
386
353
  });
387
- program
388
- .command('plugin-init')
389
- .description('Alias for ' + 'init-plugin'.yellow.underline)
390
- .option('-v, --verbose', 'Print extra messages for debugging purposes')
391
- .action(async () => {
392
- const { verbose } = program.opts();
393
- logger_1.default.VERBOSE = Boolean(verbose);
394
- cli_1.pluginUtil.init();
354
+ program.command("get-config <pluginName> [configName]").option("-v, --verbose", "Print extra messages for debugging purposes").option("-j, --json", "Print config as json").description(
355
+ "Gets a config for a plugin. If " + "configName".yellow.underline + " is omitted, returns all config values."
356
+ ).action(async (pluginName, configName) => {
357
+ if (!index.find(".")) {
358
+ logger.default.errorp(
359
+ "Not an omegga directory, run ",
360
+ "omegga init".yellow,
361
+ "to setup one."
362
+ );
363
+ process.exit(1);
364
+ }
365
+ const { verbose } = program.opts();
366
+ const json = program.args.includes("-j") || program.args.includes("--json");
367
+ logger.default.VERBOSE = Boolean(verbose);
368
+ if (!configName) {
369
+ index$1.pluginUtil.listConfig(pluginName, json);
370
+ } else {
371
+ index$1.pluginUtil.getConfig(pluginName, configName, json);
372
+ }
395
373
  });
396
- program
397
- .command('get-config <pluginName> [configName]')
398
- .option('-v, --verbose', 'Print extra messages for debugging purposes')
399
- .option('-j, --json', 'Print config as json')
400
- .description('Gets a config for a plugin. If ' +
401
- 'configName'.yellow.underline +
402
- ' is omitted, returns all config values.')
403
- .action(async (pluginName, configName) => {
404
- if (!config.find('.')) {
405
- logger_1.default.errorp('Not an omegga directory, run ', 'omegga init'.yellow, 'to setup one.');
406
- process.exit(1);
407
- }
408
- const { verbose } = program.opts();
409
- const json = program.args.includes('-j') || program.args.includes('--json');
410
- logger_1.default.VERBOSE = Boolean(verbose);
411
- if (!configName) {
412
- cli_1.pluginUtil.listConfig(pluginName, json);
413
- }
414
- else {
415
- cli_1.pluginUtil.getConfig(pluginName, configName, json);
416
- }
417
- });
418
- program
419
- .command('set-config <pluginName> [configName] [configValue]')
420
- .option('-y, --yes', 'Skip confirmation prompt')
421
- .option('-v, --verbose', 'Print extra messages for debugging purposes')
422
- .description('Sets a config for a plugin. If ' +
423
- 'configValue'.yellow.underline +
424
- ' is omitted, the config will be reset. If ' +
425
- 'configName'.yellow.underline +
426
- ' is omitted, the entire plugin config will be reset.')
427
- .action(async (pluginName, configName, configValue) => {
428
- if (!config.find('.')) {
429
- logger_1.default.errorp('Not an omegga directory, run ', 'omegga init'.yellow, 'to setup one.');
430
- process.exit(1);
431
- }
432
- const { verbose } = program.opts();
433
- const yes = program.args.includes('-y') || program.args.includes('--yes');
434
- logger_1.default.VERBOSE = Boolean(verbose);
435
- if (!configName) {
436
- cli_1.pluginUtil.resetAllConfigs(pluginName, yes);
437
- }
438
- else if (!configValue) {
439
- cli_1.pluginUtil.resetConfig(pluginName, configName);
440
- }
441
- else {
442
- cli_1.pluginUtil.setConfig(pluginName, configName, configValue);
443
- }
374
+ program.command("set-config <pluginName> [configName] [configValue]").option("-y, --yes", "Skip confirmation prompt").option("-v, --verbose", "Print extra messages for debugging purposes").description(
375
+ "Sets a config for a plugin. If " + "configValue".yellow.underline + " is omitted, the config will be reset. If " + "configName".yellow.underline + " is omitted, the entire plugin config will be reset."
376
+ ).action(async (pluginName, configName, configValue) => {
377
+ if (!index.find(".")) {
378
+ logger.default.errorp(
379
+ "Not an omegga directory, run ",
380
+ "omegga init".yellow,
381
+ "to setup one."
382
+ );
383
+ process.exit(1);
384
+ }
385
+ const { verbose } = program.opts();
386
+ const yes = program.args.includes("-y") || program.args.includes("--yes");
387
+ logger.default.VERBOSE = Boolean(verbose);
388
+ if (!configName) {
389
+ index$1.pluginUtil.resetAllConfigs(pluginName, yes);
390
+ } else if (!configValue) {
391
+ index$1.pluginUtil.resetConfig(pluginName, configName);
392
+ } else {
393
+ index$1.pluginUtil.setConfig(pluginName, configName, configValue);
394
+ }
444
395
  });
445
396
  program.parseAsync(process.argv);
446
- async function setupSteam(config, forceUpdate = false) {
447
- var _a, _b;
448
- const steambeta = (_a = config === null || config === void 0 ? void 0 : config.server) === null || _a === void 0 ? void 0 : _a.steambeta;
449
- const steambetaPassword = (_b = config === null || config === void 0 ? void 0 : config.server) === null || _b === void 0 ? void 0 : _b.steambetaPassword;
450
- const binaryPath = path_1.default.join(softconfig_2.GAME_INSTALL_DIR, // steam install directory
451
- steambeta !== null && steambeta !== void 0 ? steambeta : 'main', // steam beta branch (or main)
452
- softconfig_1.GAME_DIRNAME, // Brickadia
453
- softconfig_2.GAME_BIN_PATH);
454
- if (!forceUpdate && fs_1.default.existsSync(binaryPath)) {
455
- logger_1.default.verbose('Game binary already exists at', binaryPath.yellow, '- skipping download.');
456
- return;
457
- }
458
- // Check if steamcmd is installed
459
- if (!fs_1.default.existsSync(softconfig_2.STEAMCMD_PATH)) {
460
- // Lookup steamcmd in path
461
- const hasSteamcmd = hasbin_1.default.sync('steamcmd');
462
- if (!hasSteamcmd) {
463
- // Prompt to install steamcmd
464
- const { install } = process.env.SKIP_STEAMCMD_PROMPT === 'true'
465
- ? { install: true }
466
- : await (0, prompts_1.default)({
467
- type: 'confirm',
468
- name: 'install',
469
- message: 'SteamCMD is not installed. OK to download it?',
470
- initial: true,
471
- });
472
- if (!install) {
473
- logger_1.default.errorp('SteamCMD is required for steam support. Exiting...');
474
- process.exit(1);
475
- }
476
- logger_1.default.logp('Downloading SteamCMD...');
477
- }
478
- try {
479
- (0, updater_1.steamcmdDownloadSelf)();
480
- if (!fs_1.default.existsSync(softconfig_2.STEAMCMD_PATH)) {
481
- logger_1.default.errorp('Failed to setup SteamCMD. Exiting...');
482
- process.exit(1);
483
- }
484
- }
485
- catch (err) {
486
- logger_1.default.errorp('Error setting up SteamCMD:', err);
487
- process.exit(1);
488
- }
397
+ async function setupSteam(config2, forceUpdate = false) {
398
+ const steambeta = config2?.server?.steambeta;
399
+ const steambetaPassword = config2?.server?.steambetaPassword;
400
+ const binaryPath = path.join(
401
+ softconfig.GAME_INSTALL_DIR,
402
+ // steam install directory
403
+ steambeta ?? "main",
404
+ // steam beta branch (or main)
405
+ softconfig.GAME_DIRNAME,
406
+ // Brickadia
407
+ softconfig.GAME_BIN_PATH
408
+ // path to binary
409
+ );
410
+ if (!forceUpdate && fs.existsSync(binaryPath)) {
411
+ logger.default.verbose(
412
+ "Game binary already exists at",
413
+ binaryPath.yellow,
414
+ "- skipping download."
415
+ );
416
+ return;
417
+ }
418
+ if (!fs.existsSync(softconfig.STEAMCMD_PATH)) {
419
+ const hasSteamcmd = hasbin.sync("steamcmd");
420
+ if (!hasSteamcmd) {
421
+ const { install } = process.env.SKIP_STEAMCMD_PROMPT === "true" ? { install: true } : await prompts({
422
+ type: "confirm",
423
+ name: "install",
424
+ message: "SteamCMD is not installed. OK to download it?",
425
+ initial: true
426
+ });
427
+ if (!install) {
428
+ logger.default.errorp("SteamCMD is required for steam support. Exiting...");
429
+ process.exit(1);
430
+ }
431
+ logger.default.logp("Downloading SteamCMD...");
489
432
  }
490
- logger_1.default.logp('Downloading Brickadia', (steambeta !== null && steambeta !== void 0 ? steambeta : 'main').yellow, '...');
491
433
  try {
492
- (0, updater_1.steamcmdDownloadGame)({ steambeta, steambetaPassword });
493
- }
494
- catch (err) {
495
- logger_1.default.errorp('Error downloading Brickadia:', err);
434
+ steam.steamcmdDownloadSelf();
435
+ if (!fs.existsSync(softconfig.STEAMCMD_PATH)) {
436
+ logger.default.errorp("Failed to setup SteamCMD. Exiting...");
496
437
  process.exit(1);
497
- }
438
+ }
439
+ } catch (err) {
440
+ logger.default.errorp("Error setting up SteamCMD:", err);
441
+ process.exit(1);
442
+ }
443
+ }
444
+ logger.default.logp("Downloading Brickadia", (steambeta ?? "main").yellow, "...");
445
+ try {
446
+ steam.steamcmdDownloadGame({ steambeta, steambetaPassword });
447
+ } catch (err) {
448
+ logger.default.errorp("Error downloading Brickadia:", err);
449
+ process.exit(1);
450
+ }
498
451
  }
499
- //# sourceMappingURL=main.js.map
452
+ //# sourceMappingURL=main.js.map