omegga 1.2.8 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (255) hide show
  1. package/README.md +20 -1
  2. package/dist/brickadia/config.js +26 -90
  3. package/dist/brickadia/config.js.map +1 -1
  4. package/dist/brickadia/server.js +294 -293
  5. package/dist/brickadia/server.js.map +1 -1
  6. package/dist/cli/auth.js +149 -177
  7. package/dist/cli/auth.js.map +1 -1
  8. package/dist/cli/config.js +64 -66
  9. package/dist/cli/config.js.map +1 -1
  10. package/dist/cli/index.js +14 -14
  11. package/dist/cli/index.js.map +1 -1
  12. package/dist/cli/installer.js +37 -43
  13. package/dist/cli/installer.js.map +1 -1
  14. package/dist/cli/plugin.js +651 -682
  15. package/dist/cli/plugin.js.map +1 -1
  16. package/dist/cli/terminal.js +811 -733
  17. package/dist/cli/terminal.js.map +1 -1
  18. package/dist/config/formats/format_js.js +6 -6
  19. package/dist/config/formats/format_js.js.map +1 -1
  20. package/dist/config/formats/format_yml.js +7 -10
  21. package/dist/config/formats/format_yml.js.map +1 -1
  22. package/dist/config/index.js +46 -68
  23. package/dist/config/index.js.map +1 -1
  24. package/dist/config/reader.js +16 -27
  25. package/dist/config/reader.js.map +1 -1
  26. package/dist/config/validator.js +23 -25
  27. package/dist/config/validator.js.map +1 -1
  28. package/dist/config/writer.js +11 -21
  29. package/dist/config/writer.js.map +1 -1
  30. package/dist/index.js +18 -64
  31. package/dist/index.js.map +1 -1
  32. package/dist/info/default_commands.json.js +39 -0
  33. package/dist/info/default_commands.json.js.map +1 -0
  34. package/dist/logger.js +61 -60
  35. package/dist/logger.js.map +1 -1
  36. package/dist/main.js +424 -471
  37. package/dist/main.js.map +1 -1
  38. package/dist/omegga/auth.js +101 -148
  39. package/dist/omegga/auth.js.map +1 -1
  40. package/dist/omegga/commandInjector.js +261 -251
  41. package/dist/omegga/commandInjector.js.map +1 -1
  42. package/dist/omegga/index.js +14 -52
  43. package/dist/omegga/index.js.map +1 -1
  44. package/dist/omegga/logWrangler.js +224 -275
  45. package/dist/omegga/logWrangler.js.map +1 -1
  46. package/dist/omegga/matchers/auth.js +36 -50
  47. package/dist/omegga/matchers/auth.js.map +1 -1
  48. package/dist/omegga/matchers/chat.js +49 -71
  49. package/dist/omegga/matchers/chat.js.map +1 -1
  50. package/dist/omegga/matchers/command.js +25 -36
  51. package/dist/omegga/matchers/command.js.map +1 -1
  52. package/dist/omegga/matchers/exit.js +15 -18
  53. package/dist/omegga/matchers/exit.js.map +1 -1
  54. package/dist/omegga/matchers/index.js +26 -40
  55. package/dist/omegga/matchers/index.js.map +1 -1
  56. package/dist/omegga/matchers/init.js +20 -23
  57. package/dist/omegga/matchers/init.js.map +1 -1
  58. package/dist/omegga/matchers/interact.js +58 -64
  59. package/dist/omegga/matchers/interact.js.map +1 -1
  60. package/dist/omegga/matchers/join.js +74 -95
  61. package/dist/omegga/matchers/join.js.map +1 -1
  62. package/dist/omegga/matchers/leave.js +43 -56
  63. package/dist/omegga/matchers/leave.js.map +1 -1
  64. package/dist/omegga/matchers/mapChange.js +26 -35
  65. package/dist/omegga/matchers/mapChange.js.map +1 -1
  66. package/dist/omegga/matchers/minigameJoin.js +24 -31
  67. package/dist/omegga/matchers/minigameJoin.js.map +1 -1
  68. package/dist/omegga/matchers/version.js +42 -49
  69. package/dist/omegga/matchers/version.js.map +1 -1
  70. package/dist/omegga/player.js +527 -527
  71. package/dist/omegga/player.js.map +1 -1
  72. package/dist/omegga/plugin/interface.js +91 -98
  73. package/dist/omegga/plugin/interface.js.map +1 -1
  74. package/dist/omegga/plugin/plugin_jsonrpc_stdio.js +524 -429
  75. package/dist/omegga/plugin/plugin_jsonrpc_stdio.js.map +1 -1
  76. package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.js +282 -294
  77. package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.js.map +1 -1
  78. package/dist/omegga/plugin/plugin_node_safe.js +365 -393
  79. package/dist/omegga/plugin/plugin_node_safe.js.map +1 -1
  80. package/dist/omegga/plugin/plugin_node_unsafe.js +119 -179
  81. package/dist/omegga/plugin/plugin_node_unsafe.js.map +1 -1
  82. package/dist/omegga/plugin.js +402 -347
  83. package/dist/omegga/plugin.js.map +1 -1
  84. package/dist/omegga/server.js +742 -774
  85. package/dist/omegga/server.js.map +1 -1
  86. package/dist/omegga/wrapper.js +64 -91
  87. package/dist/omegga/wrapper.js.map +1 -1
  88. package/dist/plugin.js +11 -31
  89. package/dist/plugin.js.map +1 -1
  90. package/dist/softconfig.js +121 -100
  91. package/dist/softconfig.js.map +1 -1
  92. package/dist/updater/steam.js +97 -112
  93. package/dist/updater/steam.js.map +1 -1
  94. package/dist/util/brdb.js +496 -528
  95. package/dist/util/brdb.js.map +1 -1
  96. package/dist/util/brick/checkBounds.js +11 -15
  97. package/dist/util/brick/checkBounds.js.map +1 -1
  98. package/dist/util/brick/constants.js +723 -174
  99. package/dist/util/brick/constants.js.map +1 -1
  100. package/dist/util/brick/displayName.js +204 -211
  101. package/dist/util/brick/displayName.js.map +1 -1
  102. package/dist/util/brick/getBounds.js +29 -41
  103. package/dist/util/brick/getBounds.js.map +1 -1
  104. package/dist/util/brick/getBrickSize.js +6 -7
  105. package/dist/util/brick/getBrickSize.js.map +1 -1
  106. package/dist/util/brick/getScaleAxis.js +24 -30
  107. package/dist/util/brick/getScaleAxis.js.map +1 -1
  108. package/dist/util/brick/index.js +8 -29
  109. package/dist/util/brick/index.js.map +1 -1
  110. package/dist/util/brick/rotate.js +29 -34
  111. package/dist/util/brick/rotate.js.map +1 -1
  112. package/dist/util/brick/setOwnership.js +13 -19
  113. package/dist/util/brick/setOwnership.js.map +1 -1
  114. package/dist/util/chat.js +53 -44
  115. package/dist/util/chat.js.map +1 -1
  116. package/dist/util/color.js +112 -124
  117. package/dist/util/color.js.map +1 -1
  118. package/dist/util/file.js +54 -98
  119. package/dist/util/file.js.map +1 -1
  120. package/dist/util/index.js +84 -106
  121. package/dist/util/index.js.map +1 -1
  122. package/dist/util/map.js +18 -20
  123. package/dist/util/map.js.map +1 -1
  124. package/dist/util/pattern.js +6 -9
  125. package/dist/util/pattern.js.map +1 -1
  126. package/dist/util/time.js +31 -34
  127. package/dist/util/time.js.map +1 -1
  128. package/dist/util/uuid.js +10 -8
  129. package/dist/util/uuid.js.map +1 -1
  130. package/dist/util/wsl.js +19 -25
  131. package/dist/util/wsl.js.map +1 -1
  132. package/dist/version.js +7 -9
  133. package/dist/version.js.map +1 -1
  134. package/dist/webserver/backend/api.js +784 -874
  135. package/dist/webserver/backend/api.js.map +1 -1
  136. package/dist/webserver/backend/calendar.js +14 -17
  137. package/dist/webserver/backend/calendar.js.map +1 -1
  138. package/dist/webserver/backend/database.js +563 -613
  139. package/dist/webserver/backend/database.js.map +1 -1
  140. package/dist/webserver/backend/index.js +153 -191
  141. package/dist/webserver/backend/index.js.map +1 -1
  142. package/dist/webserver/backend/metrics.js +219 -248
  143. package/dist/webserver/backend/metrics.js.map +1 -1
  144. package/dist/webserver/backend/util.js +47 -68
  145. package/dist/webserver/backend/util.js.map +1 -1
  146. package/dist/worker.js +322 -0
  147. package/dist/worker.js.map +1 -0
  148. package/package.json +14 -10
  149. package/templates/safe-ts/omegga.d.ts +2 -2
  150. package/vite.backend.config.mts +46 -0
  151. package/vite.frontend.config.mts +58 -0
  152. package/vitest.backend.config.mts +7 -0
  153. package/dist/brickadia/config.d.ts +0 -3
  154. package/dist/brickadia/presets.d.ts +0 -65
  155. package/dist/brickadia/presets.js +0 -3
  156. package/dist/brickadia/presets.js.map +0 -1
  157. package/dist/brickadia/server.d.ts +0 -36
  158. package/dist/brickadia/types.d.ts +0 -45
  159. package/dist/brickadia/types.js +0 -3
  160. package/dist/brickadia/types.js.map +0 -1
  161. package/dist/cli/auth.d.ts +0 -26
  162. package/dist/cli/config.d.ts +0 -10
  163. package/dist/cli/index.d.ts +0 -30
  164. package/dist/cli/installer.d.ts +0 -1
  165. package/dist/cli/plugin.d.ts +0 -22
  166. package/dist/cli/terminal.d.ts +0 -25
  167. package/dist/config/authorizer.d.ts +0 -2
  168. package/dist/config/authorizer.js +0 -38
  169. package/dist/config/authorizer.js.map +0 -1
  170. package/dist/config/formats/format_js.d.ts +0 -3
  171. package/dist/config/formats/format_yml.d.ts +0 -3
  172. package/dist/config/index.d.ts +0 -18
  173. package/dist/config/reader.d.ts +0 -3
  174. package/dist/config/types.d.ts +0 -50
  175. package/dist/config/types.js +0 -3
  176. package/dist/config/types.js.map +0 -1
  177. package/dist/config/validator.d.ts +0 -6
  178. package/dist/config/writer.d.ts +0 -3
  179. package/dist/index.d.ts +0 -22
  180. package/dist/info/default_commands.json +0 -29
  181. package/dist/logger.d.ts +0 -41
  182. package/dist/main.d.ts +0 -1
  183. package/dist/omegga/auth.d.ts +0 -9
  184. package/dist/omegga/commandInjector.d.ts +0 -35
  185. package/dist/omegga/index.d.ts +0 -7
  186. package/dist/omegga/logWrangler.d.ts +0 -32
  187. package/dist/omegga/matchers/auth.d.ts +0 -10
  188. package/dist/omegga/matchers/chat.d.ts +0 -10
  189. package/dist/omegga/matchers/command.d.ts +0 -7
  190. package/dist/omegga/matchers/exit.d.ts +0 -3
  191. package/dist/omegga/matchers/index.d.ts +0 -3
  192. package/dist/omegga/matchers/init.d.ts +0 -3
  193. package/dist/omegga/matchers/interact.d.ts +0 -4
  194. package/dist/omegga/matchers/join.d.ts +0 -4
  195. package/dist/omegga/matchers/leave.d.ts +0 -4
  196. package/dist/omegga/matchers/mapChange.d.ts +0 -3
  197. package/dist/omegga/matchers/minigameJoin.d.ts +0 -9
  198. package/dist/omegga/matchers/types.d.ts +0 -5
  199. package/dist/omegga/matchers/types.js +0 -3
  200. package/dist/omegga/matchers/types.js.map +0 -1
  201. package/dist/omegga/matchers/version.d.ts +0 -3
  202. package/dist/omegga/player.d.ts +0 -81
  203. package/dist/omegga/plugin/interface.d.ts +0 -30
  204. package/dist/omegga/plugin/plugin_jsonrpc_stdio.d.ts +0 -23
  205. package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.d.ts +0 -145
  206. package/dist/omegga/plugin/plugin_node_safe/worker.d.ts +0 -1
  207. package/dist/omegga/plugin/plugin_node_safe/worker.js +0 -367
  208. package/dist/omegga/plugin/plugin_node_safe/worker.js.map +0 -1
  209. package/dist/omegga/plugin/plugin_node_safe.d.ts +0 -23
  210. package/dist/omegga/plugin/plugin_node_unsafe.d.ts +0 -13
  211. package/dist/omegga/plugin.d.ts +0 -63
  212. package/dist/omegga/server.d.ts +0 -166
  213. package/dist/omegga/types.d.ts +0 -49
  214. package/dist/omegga/types.js +0 -3
  215. package/dist/omegga/types.js.map +0 -1
  216. package/dist/omegga/wrapper.d.ts +0 -32
  217. package/dist/plugin.d.ts +0 -916
  218. package/dist/softconfig.d.ts +0 -67
  219. package/dist/tsconfig.tsbuildinfo +0 -1
  220. package/dist/updater/index.d.ts +0 -1
  221. package/dist/updater/index.js +0 -10
  222. package/dist/updater/index.js.map +0 -1
  223. package/dist/updater/steam.d.ts +0 -52
  224. package/dist/util/brdb.d.ts +0 -31
  225. package/dist/util/brick/checkBounds.d.ts +0 -8
  226. package/dist/util/brick/constants.d.ts +0 -18
  227. package/dist/util/brick/displayName.d.ts +0 -7
  228. package/dist/util/brick/getBounds.d.ts +0 -5
  229. package/dist/util/brick/getBrickSize.d.ts +0 -3
  230. package/dist/util/brick/getScaleAxis.d.ts +0 -3
  231. package/dist/util/brick/index.d.ts +0 -14
  232. package/dist/util/brick/rotate.d.ts +0 -16
  233. package/dist/util/brick/setOwnership.d.ts +0 -12
  234. package/dist/util/chat.d.ts +0 -23
  235. package/dist/util/color.d.ts +0 -13
  236. package/dist/util/file.d.ts +0 -5
  237. package/dist/util/index.d.ts +0 -183
  238. package/dist/util/map.d.ts +0 -6
  239. package/dist/util/pattern.d.ts +0 -1
  240. package/dist/util/time.d.ts +0 -39
  241. package/dist/util/uuid.d.ts +0 -3
  242. package/dist/util/wsl.d.ts +0 -2
  243. package/dist/version.d.ts +0 -2
  244. package/dist/webserver/backend/api.d.ts +0 -115
  245. package/dist/webserver/backend/calendar.d.ts +0 -5
  246. package/dist/webserver/backend/database.d.ts +0 -150
  247. package/dist/webserver/backend/index.d.ts +0 -30
  248. package/dist/webserver/backend/metrics.d.ts +0 -3
  249. package/dist/webserver/backend/types.d.ts +0 -114
  250. package/dist/webserver/backend/types.js +0 -3
  251. package/dist/webserver/backend/types.js.map +0 -1
  252. package/dist/webserver/backend/util.d.ts +0 -2
  253. package/dist/webserver/index.d.ts +0 -2
  254. package/dist/webserver/index.js +0 -9
  255. package/dist/webserver/index.js.map +0 -1
@@ -1,367 +0,0 @@
1
- "use strict";
2
- // The safe node plugin is run inside of a worker
3
- // so if the plugin inevitably crashes, only the worker dies
4
- // this also lets plugins get terminated easier by killing the worker
5
- // rather than unloading and reloading code
6
- var __importDefault = (this && this.__importDefault) || function (mod) {
7
- return (mod && mod.__esModule) ? mod : { "default": mod };
8
- };
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- const logger_1 = __importDefault(require("../../../logger"));
11
- const player_1 = __importDefault(require("../../player"));
12
- const server_1 = __importDefault(require("../../server"));
13
- const _util_1 = __importDefault(require("../../../util"));
14
- const file_1 = require("../../../util/file");
15
- require("colors");
16
- const events_1 = __importDefault(require("events"));
17
- const fs_1 = __importDefault(require("fs"));
18
- const lodash_1 = require("lodash");
19
- const path_1 = __importDefault(require("path"));
20
- const vm2_1 = require("vm2");
21
- const webpack_1 = __importDefault(require("webpack"));
22
- const worker_threads_1 = require("worker_threads");
23
- const proxyOmegga_1 = require("./proxyOmegga");
24
- logger_1.default.VERBOSE = process.env.VERBOSE === 'true';
25
- const MAIN_FILE = 'omegga.plugin.js';
26
- const MAIN_FILE_TS = 'omegga.plugin.ts';
27
- const TS_BUILD_DIR = '.build';
28
- const TS_BUILD_FILE = 'plugin.js';
29
- let vm, PluginClass, pluginInstance;
30
- let pluginName = 'unnamed plugin';
31
- let messageCounter = 0;
32
- // emitter that receives messages from the parent
33
- const parent = new events_1.default();
34
- // handle message passing
35
- worker_threads_1.parentPort.on('message', ({ action, args }) => parent.emit(action, ...args));
36
- // emit a message to the parent port - async wait for a reponse
37
- const emit = (action, ...args) => {
38
- const messageId = 'message:' + messageCounter++;
39
- let rejectFn;
40
- // promise waits for the message to resolve
41
- const promise = new Promise((resolve, reject) => {
42
- parent.once(messageId, resolve);
43
- rejectFn = reject;
44
- });
45
- try {
46
- // post the message
47
- worker_threads_1.parentPort.postMessage({ action, args: [messageId, ...args] });
48
- }
49
- catch (err) {
50
- rejectFn(err);
51
- }
52
- // return the promise
53
- return promise;
54
- };
55
- // tell omegga to exec a command
56
- const exec = (cmd) => emit('exec', cmd);
57
- // create the proxy omegga
58
- (0, proxyOmegga_1.injectOmeggaPrototypes)(proxyOmegga_1.ProxyOmegga, server_1.default);
59
- const omegga = new proxyOmegga_1.ProxyOmegga(exec);
60
- // add plugin fetcher
61
- omegga.getPlugin = async (name) => {
62
- let plugin = (await emit('getPlugin', name));
63
- if (plugin) {
64
- plugin.emitPlugin = async (ev, ...args) => {
65
- return await emit('emitPlugin', name, ev, (0, lodash_1.cloneDeep)(args));
66
- };
67
- return plugin;
68
- }
69
- else {
70
- return null;
71
- }
72
- };
73
- // interface with plugin store
74
- const store = {
75
- get: (key) => emit('store.get', key),
76
- set: (key, value) => emit('store.set', key, JSON.stringify(value)),
77
- delete: (key) => emit('store.delete', key),
78
- wipe: () => emit('store.wipe'),
79
- count: () => emit('store.count'),
80
- keys: () => emit('store.keys'),
81
- };
82
- // generic brickadia events are forwarded to the proxy omegga
83
- parent.on('brickadiaEvent', (type, ...args) => {
84
- var _a;
85
- if (!vm)
86
- return;
87
- if (type === 'error') {
88
- logger_1.default.errorp(pluginName.brightRed, 'Received error', ...args);
89
- return;
90
- }
91
- try {
92
- omegga.emit(type, ...args);
93
- }
94
- catch (e) {
95
- logger_1.default.errorp(pluginName.brightRed, `Error in safe plugin worker's brickadiaEvent (${type}):`, (_a = e === null || e === void 0 ? void 0 : e.stack) !== null && _a !== void 0 ? _a : e.toString());
96
- }
97
- });
98
- // create the node vm
99
- async function createVm(pluginPath, { builtin = ['*'], external = true, isTypeScript = false } = {}) {
100
- var _a, _b, _c, _d;
101
- let pluginCode;
102
- if (isTypeScript) {
103
- const tsBuildPath = path_1.default.join(pluginPath, TS_BUILD_DIR);
104
- const sourceFileName = path_1.default.join(pluginPath, MAIN_FILE_TS);
105
- const outputPath = path_1.default.join(tsBuildPath, TS_BUILD_FILE);
106
- try {
107
- (0, file_1.mkdir)(tsBuildPath);
108
- (0, file_1.mkdir)(path_1.default.join(tsBuildPath, '.cache'));
109
- const stats = await new Promise((resolve, reject) => {
110
- (0, webpack_1.default)(Object.freeze({
111
- target: 'node',
112
- context: __dirname,
113
- mode: fs_1.default.existsSync(path_1.default.resolve(pluginPath, '.development'))
114
- ? 'development'
115
- : 'production',
116
- entry: sourceFileName,
117
- devtool: 'source-map',
118
- output: {
119
- iife: false,
120
- library: {
121
- type: 'commonjs',
122
- },
123
- path: tsBuildPath,
124
- filename: TS_BUILD_FILE,
125
- },
126
- externals: [
127
- function ({ request }, callback) {
128
- if (request.match(/\.node$/)) {
129
- return callback(null, 'commonjs ' + path_1.default.resolve(pluginPath, request));
130
- }
131
- callback();
132
- },
133
- ],
134
- resolve: {
135
- extensions: ['.ts', '.js', '.json', '.node'],
136
- alias: {
137
- // src is the only hard coded path
138
- src: path_1.default.resolve(pluginPath, 'src'),
139
- },
140
- },
141
- cache: {
142
- type: 'filesystem',
143
- cacheLocation: path_1.default.join(tsBuildPath, '.cache'),
144
- allowCollectingMemory: false,
145
- idleTimeout: 0,
146
- idleTimeoutForInitialStore: 0,
147
- // cache age is one week. plugins probably do not need
148
- // to be rebuilt every day
149
- maxAge: 1000 * 60 * 60 * 24 * 7,
150
- profile: true,
151
- },
152
- module: {
153
- rules: [
154
- {
155
- test: /\.[jt]s$/,
156
- exclude: /(node_modules)/,
157
- use: {
158
- loader: 'swc-loader',
159
- options: {
160
- sourceMaps: true,
161
- cwd: pluginPath,
162
- isModule: true,
163
- jsc: {
164
- target: 'es2020',
165
- parser: {
166
- syntax: 'typescript',
167
- },
168
- transform: {},
169
- },
170
- module: {
171
- type: 'commonjs',
172
- strictMode: false,
173
- },
174
- },
175
- },
176
- },
177
- ],
178
- },
179
- }), (err, stats) => (err ? reject(err) : resolve(stats)));
180
- });
181
- if (stats.hasErrors()) {
182
- for (const err of stats.toJson().errors) {
183
- logger_1.default.errorp(err.moduleName, err.file);
184
- logger_1.default.errorp(err.message);
185
- }
186
- }
187
- if (stats.hasWarnings()) {
188
- for (const warning of stats.toJson().warnings) {
189
- logger_1.default.warnp(warning.moduleName, warning.file);
190
- logger_1.default.warnp(warning.message);
191
- }
192
- }
193
- pluginCode = fs_1.default.readFileSync(outputPath).toString();
194
- }
195
- catch (err) {
196
- logger_1.default.errorp(pluginName.brightRed, err);
197
- return [false, 'failed compiling building typescript'];
198
- }
199
- // update omegga.d.ts to latest on plugin compile
200
- try {
201
- const gitIgnore = path_1.default.join(pluginPath, '.gitignore');
202
- const omeggaTypesDst = path_1.default.join(pluginPath, 'omegga.d.ts');
203
- const omeggaTypesSrc = path_1.default.join(__dirname, '../../../../templates/safe-ts/omegga.d.ts');
204
- // plugin has gitignore with "omegga.d.ts" in it and omegga has omegga.d.ts
205
- if (fs_1.default.existsSync(gitIgnore) && fs_1.default.existsSync(omeggaTypesSrc)) {
206
- // and the gitignore covers the omegga.d.ts
207
- const hasOmeggaTypesIgnored = fs_1.default
208
- .readFileSync(gitIgnore)
209
- .toString()
210
- .match(/(\.\/)?omegga\.d\.ts/);
211
- // compare last modified times to avoid unnecessary copies
212
- const srcLastModified = fs_1.default.statSync(omeggaTypesSrc).mtime.getTime();
213
- const dstLastModified = fs_1.default.existsSync(omeggaTypesDst)
214
- ? fs_1.default.statSync(omeggaTypesDst).mtime.getTime()
215
- : null;
216
- if (hasOmeggaTypesIgnored &&
217
- (!dstLastModified || srcLastModified > dstLastModified)) {
218
- fs_1.default.copyFileSync(omeggaTypesSrc, omeggaTypesDst);
219
- }
220
- }
221
- }
222
- catch (err) {
223
- logger_1.default.errorp(pluginName.brightRed, 'error copying latest omegga.d.ts to typescript plugin', err);
224
- }
225
- }
226
- if (vm !== undefined)
227
- return [false, 'vm is already created'];
228
- // create the vm
229
- vm = new vm2_1.NodeVM({
230
- console: 'redirect',
231
- sandbox: {},
232
- require: {
233
- external,
234
- builtin,
235
- root: pluginPath,
236
- },
237
- });
238
- // plugin log generator function
239
- const ezLog = (logFn, name, symbol) => (...args) => console[logFn](name.underline, symbol, ...args);
240
- // special formatting for stdout
241
- vm.on('console.log', ezLog('log', pluginName, '>>'.green));
242
- vm.on('console.error', ezLog('error', pluginName.brightRed, '!>'.red));
243
- vm.on('console.info', ezLog('info', pluginName, '#>'.blue));
244
- vm.on('console.debug', ezLog('debug', pluginName, '?>'.blue));
245
- vm.on('console.warn', ezLog('warn', pluginName.brightYellow, ':>'.yellow));
246
- vm.on('console.trace', ezLog('trace', pluginName, 'T>'.grey));
247
- global.OMEGGA_UTIL = _util_1.default;
248
- // pass in util functions
249
- vm.freeze(global.OMEGGA_UTIL, 'OMEGGA_UTIL');
250
- vm.freeze(omegga, 'Omegga');
251
- vm.freeze(player_1.default, 'Player');
252
- const file = path_1.default.join(pluginPath, isTypeScript ? path_1.default.join(TS_BUILD_DIR, TS_BUILD_FILE) : MAIN_FILE);
253
- if (!isTypeScript) {
254
- try {
255
- pluginCode = fs_1.default.readFileSync(file).toString();
256
- }
257
- catch (e) {
258
- emit('error', 'failed to read plugin source: ' + ((_a = e === null || e === void 0 ? void 0 : e.stack) !== null && _a !== void 0 ? _a : e.toString()));
259
- throw 'failed to read plugin source: ' + ((_b = e === null || e === void 0 ? void 0 : e.stack) !== null && _b !== void 0 ? _b : e.toString());
260
- }
261
- }
262
- // proxy the plugin out of the vm
263
- // potential for performance improvement by using VM.script to precompile plugins
264
- try {
265
- const pluginOutput = vm.run(pluginCode, file);
266
- PluginClass = (_c = pluginOutput === null || pluginOutput === void 0 ? void 0 : pluginOutput.default) !== null && _c !== void 0 ? _c : pluginOutput;
267
- }
268
- catch (e) {
269
- emit('error', 'plugin failed to init');
270
- logger_1.default.errorp(pluginName.brightRed, e);
271
- throw 'plugin failed to init: ' + ((_d = e === null || e === void 0 ? void 0 : e.stack) !== null && _d !== void 0 ? _d : e.toString());
272
- }
273
- if (!PluginClass ||
274
- typeof PluginClass !== 'function' ||
275
- typeof PluginClass.prototype !== 'object') {
276
- PluginClass = undefined;
277
- emit('error', 'plugin does not export a class');
278
- throw 'plugin does not export a class';
279
- }
280
- if (typeof PluginClass.prototype.init !== 'function') {
281
- PluginClass = undefined;
282
- emit('error', 'plugin is missing init() function');
283
- throw 'plugin is missing init() function';
284
- }
285
- if (typeof PluginClass.prototype.stop !== 'function') {
286
- PluginClass = undefined;
287
- emit('error', 'plugin is missing stop() function');
288
- throw 'plugin is missing stop() function';
289
- }
290
- }
291
- // kill this plugin
292
- parent.on('kill', resp => {
293
- emit(resp);
294
- process.exit(0);
295
- });
296
- // set plugin name
297
- parent.on('name', (resp, name) => {
298
- pluginName = name;
299
- // temp save prefix changes to avoid collision
300
- omegga._tempSavePrefix = 'omegga_' + name + '_temp';
301
- emit(resp);
302
- });
303
- // get memory usage for this plugin
304
- parent.on('mem', resp => emit(resp, 'mem', process.memoryUsage()));
305
- // create the vm
306
- parent.on('load', async (resp, pluginPath, options) => {
307
- var _a;
308
- try {
309
- await createVm(pluginPath, options);
310
- emit(resp, true);
311
- }
312
- catch (err) {
313
- logger_1.default.errorp(pluginName.brightRed, 'error creating vm', (_a = err === null || err === void 0 ? void 0 : err.stack) !== null && _a !== void 0 ? _a : err.toString());
314
- emit(resp, false);
315
- }
316
- });
317
- // start the plugin with a faux omegga
318
- // resp is an action sent back to the parent process
319
- // to coordinate async funcs
320
- parent.on('start', async (resp, config) => {
321
- var _a;
322
- try {
323
- pluginInstance = new PluginClass(omegga, config, store);
324
- const result = await pluginInstance.init();
325
- // if a plugin init returns a list of strings, treat them as the list of commands
326
- if (typeof result === 'object' && result) {
327
- // if registeredCommands is in the results, register the provided strings as commands
328
- const cmds = result.registeredCommands;
329
- if (cmds &&
330
- cmds instanceof Array &&
331
- cmds.every(i => typeof i === 'string')) {
332
- emit('command.registers', JSON.stringify(cmds));
333
- }
334
- }
335
- emit(resp, true);
336
- }
337
- catch (err) {
338
- emit('error', 'error starting plugin', (_a = err === null || err === void 0 ? void 0 : err.stack) !== null && _a !== void 0 ? _a : JSON.stringify(err));
339
- emit(resp, false);
340
- logger_1.default.errorp(pluginName.brightRed, 'Error starting plugin', err);
341
- }
342
- });
343
- // stop the plugin
344
- parent.on('stop', async (resp) => {
345
- var _a;
346
- try {
347
- if (pluginInstance) {
348
- await pluginInstance.stop.bind(pluginInstance)();
349
- }
350
- pluginInstance = undefined;
351
- emit(resp, true);
352
- }
353
- catch (err) {
354
- emit('error', 'error stopping plugin', (_a = err === null || err === void 0 ? void 0 : err.stack) !== null && _a !== void 0 ? _a : err.toString());
355
- emit(resp, false);
356
- }
357
- });
358
- // handle emitPlugins
359
- parent.on('emitPlugin', async (resp, ev, from, args) => {
360
- if (pluginInstance === null || pluginInstance === void 0 ? void 0 : pluginInstance.pluginEvent) {
361
- emit(resp, await pluginInstance.pluginEvent(ev, from, ...args));
362
- }
363
- else {
364
- emit(resp, null);
365
- }
366
- });
367
- //# sourceMappingURL=worker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../../src/omegga/plugin/plugin_node_safe/worker.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- import Omegga from "../server";
2
- import EventEmitter from 'events';
3
- import { Plugin } from './interface';
4
- export default class NodeVmPlugin extends Plugin {
5
- #private;
6
- static canLoad(pluginPath: string): boolean;
7
- static getFormat(): string;
8
- plugin: EventEmitter;
9
- messageCounter: number;
10
- access: string[];
11
- isTypeScript: boolean;
12
- constructor(pluginPath: string, omegga: Omegga);
13
- emitPlugin(ev: string, from: string, args: any[]): Promise<any>;
14
- getDocumentation(): import("../..").IPluginDocumentation;
15
- isLoaded(): boolean;
16
- isCommand(cmd: string): boolean;
17
- load(): Promise<boolean>;
18
- unload(): Promise<boolean>;
19
- emit(action: string, ...args: any[]): Promise<unknown[]>;
20
- notify(action: string, ...args: any[]): void;
21
- createWorker(): void;
22
- eventPassthrough(...args: any[]): void;
23
- }
@@ -1,13 +0,0 @@
1
- import type Omegga from "../server";
2
- import { Plugin } from './interface';
3
- export default class NodePlugin extends Plugin {
4
- static canLoad(pluginPath: string): boolean;
5
- static getFormat(): string;
6
- constructor(pluginPath: string, omegga: Omegga);
7
- getDocumentation(): import("../../plugin").IPluginDocumentation;
8
- isLoaded(): boolean;
9
- isCommand(cmd: string): boolean;
10
- load(): Promise<boolean>;
11
- unload(): Promise<boolean>;
12
- disrequireAll(): void;
13
- }
@@ -1,63 +0,0 @@
1
- import { IPluginCommand, IPluginDocumentation } from "../plugin";
2
- import Datastore from 'nedb-promises';
3
- import type Player from './player';
4
- import { Plugin } from './plugin/interface';
5
- import type Omegga from './server';
6
- export interface IPluginJSON {
7
- formatVersion: number;
8
- omeggaVersion: string;
9
- emitConfig?: string;
10
- }
11
- export interface IStoreItem<T = unknown> {
12
- type: 'store';
13
- key: string;
14
- plugin: string;
15
- value: T;
16
- }
17
- export interface IStoreConfig {
18
- type: 'config';
19
- plugin: string;
20
- value: Record<string, unknown>;
21
- }
22
- export declare class PluginStorage {
23
- store: Datastore;
24
- plugin: Plugin;
25
- name: string;
26
- constructor(store: Datastore, plugin: Plugin);
27
- getDefaultConfig(): Record<string, unknown>;
28
- setConfig(value: unknown): Promise<void>;
29
- getConfig(): Promise<Record<string, unknown>>;
30
- /** Wipes the configs for the plugin. */
31
- wipeConfig(): Promise<void>;
32
- /** Initializes the configs for the plugin into the database and sets default configs. */
33
- init(): Promise<void>;
34
- get<T>(key: string): Promise<T>;
35
- delete(key: string): Promise<void>;
36
- wipe(): Promise<void>;
37
- count(): Promise<number>;
38
- keys(): Promise<string[]>;
39
- set<T = unknown>(key: string, value: T): Promise<void>;
40
- }
41
- export declare class PluginLoader {
42
- path: string;
43
- omegga: Omegga;
44
- store: Datastore;
45
- formats: (typeof Plugin)[];
46
- plugins: Plugin[];
47
- commands: Record<string, IPluginCommand & {
48
- _plugin: Plugin;
49
- }>;
50
- documentation: Record<string, IPluginDocumentation & {
51
- _plugin: Plugin;
52
- }>;
53
- constructor(workDir: string, omegga?: Omegga);
54
- isCommand(cmd: string): boolean;
55
- reload(): Promise<boolean>;
56
- unload(): Promise<boolean>;
57
- /** Scans a plugin at the specified directory and create a Plugin object. */
58
- scanPlugin(dir: string): Promise<Plugin>;
59
- /** Scans plugin directory for plugins and builds their documentation. */
60
- scan(): Promise<boolean>;
61
- showHelp(player: string | Player, ...args: string[]): void;
62
- buildDocumentation(): void;
63
- }
@@ -1,166 +0,0 @@
1
- import { OmeggaLike, OmeggaPlayer, PluginInterop } from "../plugin";
2
- import { EnvironmentPreset } from "../brickadia/presets";
3
- import { BRBanList, BRPlayerNameCache, BRRoleAssignments, BRRoleSetup } from "../brickadia/types";
4
- import { IConfig } from "../config/types";
5
- import Webserver from "../webserver/backend";
6
- import { ReadSaveObject, WriteSaveObject } from 'brs-js';
7
- import 'colors';
8
- import { AutoRestartConfig } from '..';
9
- import { PluginLoader } from './plugin';
10
- import { ILogMinigame, IMinigameList, IOmeggaOptions, IPlayerPositions, IServerStatus } from './types';
11
- import OmeggaWrapper from './wrapper';
12
- export default class Omegga extends OmeggaWrapper implements OmeggaLike {
13
- /** The save counter prevents omegga from saving over the same file */
14
- _tempCounter: {
15
- save: number;
16
- environment: number;
17
- };
18
- /** The save prefix is prepended to all temporary saves */
19
- _tempSavePrefix: string;
20
- pluginLoader: PluginLoader;
21
- webserver: Webserver;
22
- verbose: boolean;
23
- savePath: string;
24
- worldPath: string;
25
- presetPath: string;
26
- configPath: string;
27
- options: IOmeggaOptions;
28
- version: number;
29
- host?: {
30
- id: string;
31
- name: string;
32
- };
33
- players: OmeggaPlayer[];
34
- started: boolean;
35
- starting: boolean;
36
- stopping: boolean;
37
- currentMap: string;
38
- getServerStatus: () => Promise<IServerStatus>;
39
- listMinigames: () => Promise<IMinigameList>;
40
- getAllPlayerPositions: () => Promise<IPlayerPositions>;
41
- getMinigames: () => Promise<ILogMinigame[]>;
42
- /**
43
- * Omegga instance
44
- */
45
- constructor(serverPath: string, cfg: IConfig, options?: IOmeggaOptions);
46
- /** attempt to save server state */
47
- saveServer(config: AutoRestartConfig): Promise<void>;
48
- restartServer(): Promise<any>;
49
- /** attempt to restore the server's state */
50
- restoreServer(): Promise<void>;
51
- /**
52
- * start webserver, load plugins, start the brickadia server
53
- * this should not be called by a plugin
54
- */
55
- start(): Promise<any>;
56
- /**
57
- * unload plugins and stop the server
58
- * this should not be called by a plugin
59
- */
60
- stop(): Promise<void>;
61
- /**
62
- * Copies auth files from home config dir
63
- * this should never be called by a plugin
64
- */
65
- copyAuthFiles(): void;
66
- broadcast(...messages: string[]): void;
67
- whisper(target: string | OmeggaPlayer, ...messages: string[]): void;
68
- middlePrint(target: string | OmeggaPlayer, message: string): void;
69
- getPlayers(): {
70
- id: string;
71
- name: string;
72
- displayName: string;
73
- controller: string;
74
- state: string;
75
- }[];
76
- getRoleSetup(): BRRoleSetup;
77
- getRoleAssignments(): BRRoleAssignments;
78
- getBanList(): BRBanList;
79
- getNameCache(): BRPlayerNameCache;
80
- getPlayer(target: string): OmeggaPlayer;
81
- findPlayerByName(name: string): OmeggaPlayer;
82
- getHostId(): string;
83
- saveMinigame(index: number, name: string): void;
84
- deleteMinigame(index: number): void;
85
- resetMinigame(index: number): void;
86
- nextRoundMinigame(index: number): void;
87
- loadMinigame(presetName: string, owner?: string): void;
88
- getMinigamePresets(): string[];
89
- resetEnvironment(): void;
90
- saveEnvironment(presetName: string): Promise<void>;
91
- getEnvironmentData(): Promise<EnvironmentPreset>;
92
- readEnvironmentData(saveName: string): EnvironmentPreset;
93
- loadEnvironment(presetName: string): void;
94
- loadEnvironmentData(preset: EnvironmentPreset | EnvironmentPreset['data']['groups']): void;
95
- getEnvironmentPresets(): string[];
96
- clearBricks(target: string | {
97
- id: string;
98
- }, quiet?: boolean): void;
99
- clearRegion(region: {
100
- center: [number, number, number];
101
- extent: [number, number, number];
102
- }, options?: {
103
- target: string | OmeggaPlayer;
104
- }): void;
105
- clearAllBricks(quiet?: boolean): void;
106
- saveBricks(saveName: string, region?: {
107
- center: [number, number, number];
108
- extent: [number, number, number];
109
- }): void;
110
- saveBricksAsync(saveName: string, region?: {
111
- center: [number, number, number];
112
- extent: [number, number, number];
113
- }): Promise<void>;
114
- loadBricks(saveName: string, { offX, offY, offZ, quiet, correctPalette, correctCustom, }?: {
115
- offX?: number;
116
- offY?: number;
117
- offZ?: number;
118
- quiet?: boolean;
119
- correctPalette?: boolean;
120
- correctCustom?: boolean;
121
- }): void;
122
- loadBricksOnPlayer(saveName: string, player: string | OmeggaPlayer, { offX, offY, offZ, correctPalette, correctCustom, }?: {
123
- offX?: number;
124
- offY?: number;
125
- offZ?: number;
126
- correctPalette?: boolean;
127
- correctCustom?: boolean;
128
- }): void;
129
- getSaves(): string[];
130
- getWorlds(): string[];
131
- getSavePath(saveName: string): string;
132
- getWorldPath(worldName: string): string;
133
- getWorldRevisions(worldName: string): Promise<{
134
- index: number;
135
- date: Date;
136
- note: string;
137
- }[]>;
138
- loadWorld(worldName: string): Promise<boolean>;
139
- loadWorldRevision(worldName: string, revision: number): Promise<boolean>;
140
- saveWorldAs(worldName: string): Promise<any>;
141
- saveWorld(): Promise<boolean>;
142
- createEmptyWorld(worldName: string, map?: 'Plate' | 'Space' | 'Studio' | 'Peaks'): Promise<boolean>;
143
- writeSaveData(saveName: string, saveData: WriteSaveObject): void;
144
- readSaveData(saveName: string, nobricks?: boolean): ReadSaveObject;
145
- loadSaveData(saveData: WriteSaveObject, { offX, offY, offZ, quiet, correctPalette, correctCustom, }?: {
146
- offX?: number;
147
- offY?: number;
148
- offZ?: number;
149
- quiet?: boolean;
150
- correctPalette?: boolean;
151
- correctCustom?: boolean;
152
- }): Promise<void>;
153
- loadSaveDataOnPlayer(saveData: WriteSaveObject, player: string | OmeggaPlayer, { offX, offY, offZ, correctPalette, correctCustom, }?: {
154
- offX?: number;
155
- offY?: number;
156
- offZ?: number;
157
- correctPalette?: boolean;
158
- correctCustom?: boolean;
159
- }): Promise<void>;
160
- getSaveData(region?: {
161
- center: [number, number, number];
162
- extent: [number, number, number];
163
- }): Promise<ReadSaveObject>;
164
- changeMap(map: string): Promise<boolean>;
165
- getPlugin(name: string): Promise<PluginInterop>;
166
- }