omegga 1.7.0 → 1.8.1

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 (34) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/omegga/commandInjector.js +110 -18
  3. package/dist/omegga/commandInjector.js.map +1 -1
  4. package/dist/omegga/commands.js +666 -0
  5. package/dist/omegga/commands.js.map +1 -0
  6. package/dist/omegga/player.js +21 -10
  7. package/dist/omegga/player.js.map +1 -1
  8. package/dist/omegga/plugin/plugin_jsonrpc_stdio.js +38 -0
  9. package/dist/omegga/plugin/plugin_jsonrpc_stdio.js.map +1 -1
  10. package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.js +41 -1
  11. package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.js.map +1 -1
  12. package/dist/omegga/server.js +225 -38
  13. package/dist/omegga/server.js.map +1 -1
  14. package/dist/omegga/wrapper.js +4 -1
  15. package/dist/omegga/wrapper.js.map +1 -1
  16. package/dist/plugin.js.map +1 -1
  17. package/dist/updater/steam.js +42 -24
  18. package/dist/updater/steam.js.map +1 -1
  19. package/dist/webserver/backend/metrics.js +2 -1
  20. package/dist/webserver/backend/metrics.js.map +1 -1
  21. package/dist/webserver/backend/router/player.js +8 -4
  22. package/dist/webserver/backend/router/player.js.map +1 -1
  23. package/dist/webserver/backend/router/role.js +1 -1
  24. package/dist/webserver/backend/router/role.js.map +1 -1
  25. package/dist/worker.js +29 -2
  26. package/dist/worker.js.map +1 -1
  27. package/package.json +2 -2
  28. package/public/app.html +12 -3
  29. package/public/assets/{app-BiBsxujC.js → app-CHjgCOH4.js} +2 -2
  30. package/public/assets/app-CHjgCOH4.js.map +1 -0
  31. package/public/auth.html +1 -1
  32. package/templates/safe-ts/omegga.d.ts +483 -7
  33. package/.claude/settings.local.json +0 -51
  34. package/public/assets/app-BiBsxujC.js.map +0 -1
@@ -0,0 +1,666 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const logger = require("../logger.js");
4
+ const RENAME_VERSION = 14349;
5
+ const EA2_VERSION = 12960;
6
+ const PREFAB_VERSION = 14626;
7
+ class ConsoleCommand {
8
+ /** @param versions [sinceVersion, name] pairs in ascending version order */
9
+ constructor(versions) {
10
+ this.versions = versions;
11
+ }
12
+ /** Resolve the command name for a given game CL version. */
13
+ resolve(version) {
14
+ if (!version || version < 0)
15
+ return this.versions[this.versions.length - 1][1];
16
+ let name = this.versions[0][1];
17
+ for (const [since, candidate] of this.versions)
18
+ if (version >= since) name = candidate;
19
+ return name;
20
+ }
21
+ /** Mark this command as removed from the game at `version` (fluent). */
22
+ removedIn(version) {
23
+ this.removedAt = version;
24
+ return this;
25
+ }
26
+ /**
27
+ * Whether this command no longer exists at the given game version. An unknown
28
+ * version (server not started / not detected yet, `<= 0`) is treated as still
29
+ * present so we never warn on commands sent before the version is known.
30
+ */
31
+ isRemovedAt(version) {
32
+ return this.removedAt != null && version > 0 && version >= this.removedAt;
33
+ }
34
+ /** every name this command has gone by, across versions */
35
+ get names() {
36
+ return this.versions.map(([, name]) => name);
37
+ }
38
+ }
39
+ const c = (legacy, current = legacy) => new ConsoleCommand(
40
+ legacy === current ? [[0, legacy]] : [
41
+ [0, legacy],
42
+ [RENAME_VERSION, current]
43
+ ]
44
+ );
45
+ const cv = (versions) => new ConsoleCommand(versions);
46
+ const COMMAND_TABLE = {
47
+ Bricks: {
48
+ ActuallyReduce: c("Bricks.ActuallyReduce", "br.Bricks.ActuallyReduce"),
49
+ Clear: c("Bricks.Clear", "br.Bricks.Clear"),
50
+ // removed at PREFAB_VERSION -> replaced by World.ClearAll / World.ClearRegion
51
+ ClearAll: c("Bricks.ClearAll", "br.Bricks.ClearAll").removedIn(
52
+ PREFAB_VERSION
53
+ ),
54
+ ClearRegion: c("Bricks.ClearRegion", "br.Bricks.ClearRegion").removedIn(
55
+ PREFAB_VERSION
56
+ ),
57
+ Cluster: {
58
+ EnableMergingDynamicGrids: c(
59
+ "Bricks.Cluster.EnableMergingDynamicGrids",
60
+ "br.Bricks.Cluster.EnableMergingDynamicGrids"
61
+ ),
62
+ EnableMergingGlobalGrid: c(
63
+ "Bricks.Cluster.EnableMergingGlobalGrid",
64
+ "br.Bricks.Cluster.EnableMergingGlobalGrid"
65
+ ),
66
+ MaxClusterHalfExtent: c(
67
+ "Bricks.Cluster.MaxClusterHalfExtent",
68
+ "br.Bricks.Cluster.MaxClusterHalfExtent"
69
+ ),
70
+ MaxClusterWeight: c(
71
+ "Bricks.Cluster.MaxClusterWeight",
72
+ "br.Bricks.Cluster.MaxClusterWeight"
73
+ ),
74
+ MaxSplitWeight: c(
75
+ "Bricks.Cluster.MaxSplitWeight",
76
+ "br.Bricks.Cluster.MaxSplitWeight"
77
+ ),
78
+ MinCollapseWeight: c(
79
+ "Bricks.Cluster.MinCollapseWeight",
80
+ "br.Bricks.Cluster.MinCollapseWeight"
81
+ ),
82
+ MinMergeThreshold: c(
83
+ "Bricks.Cluster.MinMergeThreshold",
84
+ "br.Bricks.Cluster.MinMergeThreshold"
85
+ ),
86
+ MinRootHalfExtent: c(
87
+ "Bricks.Cluster.MinRootHalfExtent",
88
+ "br.Bricks.Cluster.MinRootHalfExtent"
89
+ )
90
+ },
91
+ ClusterMesh: {
92
+ CardCaching: c(
93
+ "Bricks.ClusterMesh.CardCaching",
94
+ "br.Bricks.ClusterMesh.CardCaching"
95
+ ),
96
+ DrawDistance: c(
97
+ "Bricks.ClusterMesh.DrawDistance",
98
+ "br.Bricks.ClusterMesh.DrawDistance"
99
+ ),
100
+ Hysteresis: c(
101
+ "Bricks.ClusterMesh.Hysteresis",
102
+ "br.Bricks.ClusterMesh.Hysteresis"
103
+ ),
104
+ Lod0KeepBias: c(
105
+ "Bricks.ClusterMesh.Lod0KeepBias",
106
+ "br.Bricks.ClusterMesh.Lod0KeepBias"
107
+ ),
108
+ MaxTransitionsPerFrame: c(
109
+ "Bricks.ClusterMesh.MaxTransitionsPerFrame",
110
+ "br.Bricks.ClusterMesh.MaxTransitionsPerFrame"
111
+ ),
112
+ MemoryBudgetBucketSize: c(
113
+ "Bricks.ClusterMesh.MemoryBudgetBucketSize",
114
+ "br.Bricks.ClusterMesh.MemoryBudgetBucketSize"
115
+ ),
116
+ MemoryBudgetMB: c(
117
+ "Bricks.ClusterMesh.MemoryBudgetMB",
118
+ "br.Bricks.ClusterMesh.MemoryBudgetMB"
119
+ ),
120
+ Residency: c(
121
+ "Bricks.ClusterMesh.Residency",
122
+ "br.Bricks.ClusterMesh.Residency"
123
+ ),
124
+ ResidencyConeHysteresis: c(
125
+ "Bricks.ClusterMesh.ResidencyConeHysteresis",
126
+ "br.Bricks.ClusterMesh.ResidencyConeHysteresis"
127
+ ),
128
+ ResidencyConeMargin: c(
129
+ "Bricks.ClusterMesh.ResidencyConeMargin",
130
+ "br.Bricks.ClusterMesh.ResidencyConeMargin"
131
+ ),
132
+ ResidencyWideFOV: c(
133
+ "Bricks.ClusterMesh.ResidencyWideFOV",
134
+ "br.Bricks.ClusterMesh.ResidencyWideFOV"
135
+ ),
136
+ ResidencyZoomHysteresisKillRate: c(
137
+ "Bricks.ClusterMesh.ResidencyZoomHysteresisKillRate",
138
+ "br.Bricks.ClusterMesh.ResidencyZoomHysteresisKillRate"
139
+ )
140
+ },
141
+ DebugSaveFileScreenshots: c(
142
+ "Bricks.DebugSaveFileScreenshots",
143
+ "br.Bricks.DebugSaveFileScreenshots"
144
+ ),
145
+ DisableLoadWiresForLegacySave: c(
146
+ "Bricks.DisableLoadWiresForLegacySave",
147
+ "br.Bricks.DisableLoadWiresForLegacySave"
148
+ ),
149
+ DrawDebugOctree: c("Bricks.DrawDebugOctree", "br.Bricks.DrawDebugOctree"),
150
+ DumpChunkStats: c("Bricks.DumpChunkStats", "br.Bricks.DumpChunkStats"),
151
+ DumpCoverageStats: c(
152
+ "Bricks.DumpCoverageStats",
153
+ "br.Bricks.DumpCoverageStats"
154
+ ),
155
+ DumpGeometryStats: c(
156
+ "Bricks.DumpGeometryStats",
157
+ "br.Bricks.DumpGeometryStats"
158
+ ),
159
+ DumpGroupStats: c("Bricks.DumpGroupStats", "br.Bricks.DumpGroupStats"),
160
+ EnableExtendedSort: c(
161
+ "Bricks.EnableExtendedSort",
162
+ "br.Bricks.EnableExtendedSort"
163
+ ),
164
+ EnableLumenCards: c(
165
+ "Bricks.EnableLumenCards",
166
+ "br.Bricks.EnableLumenCards"
167
+ ),
168
+ ExportModel: c("Bricks.ExportModel", "br.Bricks.ExportModel"),
169
+ GenerateGates: c("BR.Bricks.GenerateGates"),
170
+ GenerateMathTables: c(
171
+ "Bricks.GenerateMathTables",
172
+ "br.Bricks.GenerateMathTables"
173
+ ),
174
+ GetOctreeStats: c("Bricks.GetOctreeStats", "br.Bricks.GetOctreeStats"),
175
+ // removed at PREFAB_VERSION -> replaced by Prefab.Load
176
+ Load: c("Bricks.Load", "br.Bricks.Load").removedIn(PREFAB_VERSION),
177
+ // removed ~EA2 -> replaced by Prefab.GiveToPlayer (loadPrefabOnPlayer)
178
+ LoadTemplate: c("Bricks.LoadTemplate").removedIn(EA2_VERSION),
179
+ LODScreenSizeScale: c(
180
+ "Bricks.LODScreenSizeScale",
181
+ "br.Bricks.LODScreenSizeScale"
182
+ ),
183
+ LogClusterBuildTime: c(
184
+ "Bricks.LogClusterBuildTime",
185
+ "br.Bricks.LogClusterBuildTime"
186
+ ),
187
+ LogStreamSizes: c("Bricks.LogStreamSizes", "br.Bricks.LogStreamSizes"),
188
+ MaxChunkClusterEntriesPerTick: c(
189
+ "Bricks.MaxChunkClusterEntriesPerTick",
190
+ "br.Bricks.MaxChunkClusterEntriesPerTick"
191
+ ),
192
+ MaxChunkEntries: c("Bricks.MaxChunkEntries", "br.Bricks.MaxChunkEntries"),
193
+ MaxChunkUpdatesPerTick: c(
194
+ "Bricks.MaxChunkUpdatesPerTick",
195
+ "br.Bricks.MaxChunkUpdatesPerTick"
196
+ ),
197
+ MaxChunkUpdateTimePerTick: c(
198
+ "Bricks.MaxChunkUpdateTimePerTick",
199
+ "br.Bricks.MaxChunkUpdateTimePerTick"
200
+ ),
201
+ MaxClusterResultsToApplyPerTick: c(
202
+ "Bricks.MaxClusterResultsToApplyPerTick",
203
+ "br.Bricks.MaxClusterResultsToApplyPerTick"
204
+ ),
205
+ MaxSubscribed: c("br.MaxSubscribedBricks", "br.Bricks.MaxSubscribed"),
206
+ OptimizeVertexCache: c(
207
+ "Bricks.OptimizeVertexCache",
208
+ "br.Bricks.OptimizeVertexCache"
209
+ ),
210
+ PrintOctreeLeafStats: c(
211
+ "Bricks.PrintOctreeLeafStats",
212
+ "br.Bricks.PrintOctreeLeafStats"
213
+ ),
214
+ RebuildClusters: c("Bricks.RebuildClusters", "br.Bricks.RebuildClusters"),
215
+ RebuildMeshes: c("Bricks.RebuildMeshes", "br.Bricks.RebuildMeshes"),
216
+ // removed at PREFAB_VERSION -> replaced by Prefab.SaveRegion
217
+ Save: c("Bricks.Save", "br.Bricks.Save").removedIn(PREFAB_VERSION),
218
+ SaveFileCompressionLevel: c(
219
+ "Bricks.SaveFileCompressionLevel",
220
+ "br.Bricks.SaveFileCompressionLevel"
221
+ ),
222
+ SaveFileReadBrickLimit: c(
223
+ "Bricks.SaveFileReadBrickLimit",
224
+ "br.Bricks.SaveFileReadBrickLimit"
225
+ ),
226
+ SaveFileReadComponentInstanceLimit: c(
227
+ "Bricks.SaveFileReadComponentInstanceLimit",
228
+ "br.Bricks.SaveFileReadComponentInstanceLimit"
229
+ ),
230
+ SaveFileReadComponentTypeLimit: c(
231
+ "Bricks.SaveFileReadComponentTypeLimit",
232
+ "br.Bricks.SaveFileReadComponentTypeLimit"
233
+ ),
234
+ SaveFileReadDimensionLimit: c(
235
+ "Bricks.SaveFileReadDimensionLimit",
236
+ "br.Bricks.SaveFileReadDimensionLimit"
237
+ ),
238
+ SaveFileReadOwnerLimit: c(
239
+ "Bricks.SaveFileReadOwnerLimit",
240
+ "br.Bricks.SaveFileReadOwnerLimit"
241
+ ),
242
+ SaveFileReadSizeLimit: c(
243
+ "Bricks.SaveFileReadSizeLimit",
244
+ "br.Bricks.SaveFileReadSizeLimit"
245
+ ),
246
+ // removed at PREFAB_VERSION -> replaced by Prefab.SaveRegion
247
+ SaveRegion: c("Bricks.SaveRegion", "br.Bricks.SaveRegion").removedIn(
248
+ PREFAB_VERSION
249
+ ),
250
+ ValidateMathTables: c(
251
+ "Bricks.ValidateMathTables",
252
+ "br.Bricks.ValidateMathTables"
253
+ ),
254
+ Vehicle: {
255
+ AntiRollScale: c(
256
+ "Bricks.Vehicle.AntiRollScale",
257
+ "br.Bricks.Vehicle.AntiRollScale"
258
+ ),
259
+ ClientFullSim: c(
260
+ "Bricks.Vehicle.ClientFullSim",
261
+ "br.Bricks.Vehicle.ClientFullSim"
262
+ ),
263
+ DebugDraw: c("Bricks.Vehicle.DebugDraw", "br.Bricks.Vehicle.DebugDraw")
264
+ },
265
+ WheelEngine: {
266
+ VisualiseTurningCircles: c(
267
+ "Bricks.WheelEngine.VisualiseTurningCircles",
268
+ "br.Bricks.WheelEngine.VisualiseTurningCircles"
269
+ )
270
+ },
271
+ WipeMirrorTables: c(
272
+ "Bricks.WipeMirrorTables",
273
+ "br.Bricks.WipeMirrorTables"
274
+ )
275
+ },
276
+ BundleCompressionLevel: c("BR.BundleCompressionLevel"),
277
+ Bundles: {
278
+ AutoCloseDelay: c("Bundles.AutoCloseDelay", "br.Bundles.AutoCloseDelay")
279
+ },
280
+ Catalog: {
281
+ ClearCache: c("Catalog.ClearCache", "br.Catalog.ClearCache"),
282
+ HideBlacklisted: c("Catalog.HideBlacklisted", "br.Catalog.HideBlacklisted")
283
+ },
284
+ Chat: {
285
+ Broadcast: c("Chat.Broadcast", "br.Chat.Broadcast"),
286
+ Command: c("Chat.Command", "br.Chat.Command"),
287
+ MessageForUnknownCommands: c(
288
+ "Chat.MessageForUnknownCommands",
289
+ "br.Chat.MessageForUnknownCommands"
290
+ ),
291
+ StatusMessage: c("Chat.StatusMessage", "br.Chat.StatusMessage"),
292
+ Whisper: c("Chat.Whisper", "br.Chat.Whisper")
293
+ },
294
+ ComplexityWarning: {
295
+ BrickCount: c(
296
+ "br.BrickCountWarningThreshold",
297
+ "br.ComplexityWarning.BrickCount"
298
+ ),
299
+ FrozenEntityCount: c(
300
+ "br.FrozenEntityCountWarningThreshold",
301
+ "br.ComplexityWarning.FrozenEntityCount"
302
+ ),
303
+ UnfrozenEntityCount: c(
304
+ "br.UnfrozenEntityCountWarningThreshold",
305
+ "br.ComplexityWarning.UnfrozenEntityCount"
306
+ )
307
+ },
308
+ Debug: {
309
+ CauseEnsure: c("CauseEnsure", "br.Debug.CauseEnsure"),
310
+ CauseHang: c("CauseHang", "br.Debug.CauseHang"),
311
+ ChangeBundleOwner: c("BR.Debug.ChangeBundleOwner"),
312
+ Crash: c("Crash", "br.Debug.Crash"),
313
+ ListBundleOwners: c("BR.Debug.ListBundleOwners"),
314
+ TestMarkdown: c("TestMarkdown", "br.Debug.TestMarkdown"),
315
+ TestMarkup: c("TestMarkup", "br.Debug.TestMarkup")
316
+ },
317
+ DrawDebug: {
318
+ BrickClusters: {
319
+ $: c("BR.DrawDebugBrickClusters", "br.DrawDebug.BrickClusters"),
320
+ Neighbors: c(
321
+ "BR.DrawDebugBrickClusters.Neighbors",
322
+ "br.DrawDebug.BrickClusters.Neighbors"
323
+ ),
324
+ OctreeBounds: c(
325
+ "BR.DrawDebugBrickClusters.OctreeBounds",
326
+ "br.DrawDebug.BrickClusters.OctreeBounds"
327
+ )
328
+ },
329
+ BrickClusterSplitTree: c(
330
+ "BR.DrawDebugBrickClusterSplitTree",
331
+ "br.DrawDebug.BrickClusterSplitTree"
332
+ ),
333
+ BrickLumenCards: c(
334
+ "BR.DrawDebugBrickLumenCards",
335
+ "br.DrawDebug.BrickLumenCards"
336
+ ),
337
+ ClientUpdates: c("BR.DrawDebugClientUpdates", "br.DrawDebug.ClientUpdates"),
338
+ Colliders: {
339
+ $: c("BR.DrawDebugColliders", "br.DrawDebug.Colliders"),
340
+ DrawCOM: c(
341
+ "BR.DrawDebugColliders.DrawCOM",
342
+ "br.DrawDebug.Colliders.DrawCOM"
343
+ ),
344
+ DrawCustomMass: c(
345
+ "BR.DrawDebugColliders.DrawCustomMass",
346
+ "br.DrawDebug.Colliders.DrawCustomMass"
347
+ )
348
+ },
349
+ Constraints: c("BR.DrawDebugConstraints", "br.DrawDebug.Constraints"),
350
+ Entities: {
351
+ $: c("BR.DrawDebugEntities", "br.DrawDebug.Entities"),
352
+ Boxes: c("BR.DrawDebugEntities.Boxes", "br.DrawDebug.Entities.Boxes"),
353
+ Dots: c("BR.DrawDebugEntities.Dots", "br.DrawDebug.Entities.Dots")
354
+ },
355
+ Lights: {
356
+ $: c("BR.DrawDebugLights", "br.DrawDebug.Lights"),
357
+ RedThreshold: c(
358
+ "BR.DrawDebugLights.RedThreshold",
359
+ "br.DrawDebug.Lights.RedThreshold"
360
+ )
361
+ },
362
+ Texts: c("BR.DrawDebugTexts", "br.DrawDebug.Texts")
363
+ },
364
+ EnableImgui: c("br.EnableImgui"),
365
+ EOS: {
366
+ AttemptLogin: c("BR.EOS.AttemptLogin"),
367
+ Disable: c("BR.EOS.Disable"),
368
+ SetSocketName: c("BR.EOS.SetSocketName")
369
+ },
370
+ GPUMappedArray: {
371
+ MinBlocks: c("BR.GPUMappedArray.MinBlocks"),
372
+ ReservedHeadroomBlocks: c("BR.GPUMappedArray.ReservedHeadroomBlocks")
373
+ },
374
+ Inspector: {
375
+ ShowFloatTest: c("Inspector.ShowFloatTest", "br.Inspector.ShowFloatTest"),
376
+ ShowGraphics: c("Inspector.ShowGraphics", "br.Inspector.ShowGraphics")
377
+ },
378
+ Interview: c("BR.Interview"),
379
+ Iris: {
380
+ EnableMapDeltaSerialization: c("BR.Iris.EnableMapDeltaSerialization")
381
+ },
382
+ LagIndicator: {
383
+ MinLatency: c("br.LagIndicatorMinLatency", "br.LagIndicator.MinLatency"),
384
+ MinTimeSincePacket: c(
385
+ "br.LagIndicatorMinTimeSincePacket",
386
+ "br.LagIndicator.MinTimeSincePacket"
387
+ )
388
+ },
389
+ Lua: {
390
+ Execute: c("Lua.Execute", "br.Lua.Execute"),
391
+ ExecuteScript: c("Lua.ExecuteScript", "br.Lua.ExecuteScript")
392
+ },
393
+ Msgpack: {
394
+ Default: {
395
+ MaxContainerSize: c(
396
+ "msgpack.Default.MaxContainerSize",
397
+ "br.Msgpack.Default.MaxContainerSize"
398
+ ),
399
+ MaxDepth: c("msgpack.Default.MaxDepth", "br.Msgpack.Default.MaxDepth"),
400
+ MaxEnumValueCount: c(
401
+ "msgpack.Default.MaxEnumValueCount",
402
+ "br.Msgpack.Default.MaxEnumValueCount"
403
+ ),
404
+ MaxFieldCount: c(
405
+ "msgpack.Default.MaxFieldCount",
406
+ "br.Msgpack.Default.MaxFieldCount"
407
+ ),
408
+ MaxFieldNameLength: c(
409
+ "msgpack.Default.MaxFieldNameLength",
410
+ "br.Msgpack.Default.MaxFieldNameLength"
411
+ ),
412
+ MaxFlatArraySize: c(
413
+ "msgpack.Default.MaxFlatArraySize",
414
+ "br.Msgpack.Default.MaxFlatArraySize"
415
+ ),
416
+ MaxNameLength: c(
417
+ "msgpack.Default.MaxNameLength",
418
+ "br.Msgpack.Default.MaxNameLength"
419
+ ),
420
+ MaxStringLength: c(
421
+ "msgpack.Default.MaxStringLength",
422
+ "br.Msgpack.Default.MaxStringLength"
423
+ ),
424
+ MaxTypeCount: c(
425
+ "msgpack.Default.MaxTypeCount",
426
+ "br.Msgpack.Default.MaxTypeCount"
427
+ )
428
+ }
429
+ },
430
+ NudgePhysicsObject: c("BR.NudgePhysicsObject"),
431
+ Permissions: {
432
+ GrantRole: c("Permissions.GrantRole", "br.Permissions.GrantRole"),
433
+ RevokeRole: c("Permissions.RevokeRole", "br.Permissions.RevokeRole"),
434
+ Save: c("Permissions.Save", "br.Permissions.Save")
435
+ },
436
+ Physics: {
437
+ ForceFreezeDynamicGrids: c("BR.Physics.ForceFreezeDynamicGrids")
438
+ },
439
+ Placer: {
440
+ LogRowTests: c("br.Placer.LogRowTests")
441
+ },
442
+ PlayerParts: {
443
+ UseFastRender: c("br.PlayerParts.UseFastRender")
444
+ },
445
+ // prefab commands added at PREFAB_VERSION (replace the removed .brs commands)
446
+ Prefab: {
447
+ GiveToPlayer: c("br.Prefab.GiveToPlayer"),
448
+ Load: c("br.Prefab.Load"),
449
+ SaveRegion: c("br.Prefab.SaveRegion")
450
+ },
451
+ Resizer: {
452
+ LogTests: c("br.Resizer.LogTests")
453
+ },
454
+ RunHardwareBenchmark: c("BR.RunHardwareBenchmark"),
455
+ Server: {
456
+ Environment: {
457
+ LoadPreset: c(
458
+ "Server.Environment.LoadPreset",
459
+ "br.Server.Environment.LoadPreset"
460
+ ),
461
+ Reset: c("Server.Environment.Reset", "br.Server.Environment.Reset"),
462
+ SavePreset: c(
463
+ "Server.Environment.SavePreset",
464
+ "br.Server.Environment.SavePreset"
465
+ )
466
+ },
467
+ GameMode: {
468
+ EndRound: c("Server.GameMode.EndRound", "br.Server.GameMode.EndRound"),
469
+ NextRound: c("Server.GameMode.NextRound", "br.Server.GameMode.NextRound"),
470
+ PrintLeaderboard: c(
471
+ "Server.GameMode.PrintLeaderboard",
472
+ "br.Server.GameMode.PrintLeaderboard"
473
+ ),
474
+ Reset: c("Server.GameMode.Reset", "br.Server.GameMode.Reset")
475
+ },
476
+ Minigames: {
477
+ Delete: c("Server.Minigames.Delete"),
478
+ List: c("Server.Minigames.List"),
479
+ LoadPreset: c("Server.Minigames.LoadPreset"),
480
+ NextRound: cv([
481
+ [0, "Server.Minigames.NextRound"],
482
+ [14e3, "Server.GameMode.NextRound"],
483
+ [14349, "br.Server.GameMode.NextRound"]
484
+ ]),
485
+ Reset: cv([
486
+ [0, "Server.Minigames.Reset"],
487
+ [14e3, "Server.GameMode.Reset"],
488
+ [14349, "br.Server.GameMode.Reset"]
489
+ ]),
490
+ SavePreset: c("Server.Minigames.SavePreset")
491
+ },
492
+ PlayerPositions: c("Server.PlayerPositions", "br.Server.PlayerPositions"),
493
+ Players: {
494
+ Damage: c("Server.Players.Damage", "br.Server.Players.Damage"),
495
+ GiveItem: c("Server.Players.GiveItem", "br.Server.Players.GiveItem"),
496
+ Kill: c("Server.Players.Kill", "br.Server.Players.Kill"),
497
+ PrintAllLeaderboardValues: c(
498
+ "Server.Players.PrintAllLeaderboardValues",
499
+ "br.Server.Players.PrintAllLeaderboardValues"
500
+ ),
501
+ PrintLeaderboardValue: c(
502
+ "Server.Players.PrintLeaderboardValue",
503
+ "br.Server.Players.PrintLeaderboardValue"
504
+ ),
505
+ RemoveItem: c(
506
+ "Server.Players.RemoveItem",
507
+ "br.Server.Players.RemoveItem"
508
+ ),
509
+ SetLeaderboardValue: c(
510
+ "Server.Players.SetLeaderboardValue",
511
+ "br.Server.Players.SetLeaderboardValue"
512
+ ),
513
+ SetMinigame: c("Server.Players.SetMinigame"),
514
+ SetTeam: c("Server.Players.SetTeam", "br.Server.Players.SetTeam")
515
+ },
516
+ Status: c("Server.Status", "br.Server.Status"),
517
+ Teams: {
518
+ PrintAllLeaderboardValues: c(
519
+ "Server.Teams.PrintAllLeaderboardValues",
520
+ "br.Server.Teams.PrintAllLeaderboardValues"
521
+ ),
522
+ PrintLeaderboardValue: c(
523
+ "Server.Teams.PrintLeaderboardValue",
524
+ "br.Server.Teams.PrintLeaderboardValue"
525
+ )
526
+ }
527
+ },
528
+ Text: {
529
+ FlushRecoveryFrames: c("br.Text.FlushRecoveryFrames"),
530
+ MaxCharsPolledPerFrame: c("br.Text.MaxCharsPolledPerFrame"),
531
+ MaxCharsShapedPerFrame: c("br.Text.MaxCharsShapedPerFrame")
532
+ },
533
+ Thumbnails: {
534
+ WipeCache: c("BR.Thumbnails.WipeCache")
535
+ },
536
+ Voice: {
537
+ DebugDecode: c("voice.DebugDecode", "br.Voice.DebugDecode"),
538
+ SyntheticInput: c("voice.SyntheticInput", "br.Voice.SyntheticInput"),
539
+ TestJitter: c("voice.TestJitter", "br.Voice.TestJitter")
540
+ },
541
+ Weapons: {
542
+ DebugFiringVectors: c(
543
+ "weapons.DebugFiringVectors",
544
+ "br.Weapons.DebugFiringVectors"
545
+ ),
546
+ DebugHitValidation: c(
547
+ "weapons.DebugHitValidation",
548
+ "br.Weapons.DebugHitValidation"
549
+ ),
550
+ EnableHitValidation: c(
551
+ "weapons.EnableHitValidation",
552
+ "br.Weapons.EnableHitValidation"
553
+ ),
554
+ LatencyCompensationDelayMethod: c(
555
+ "weapons.LatencyCompensationDelayMethod",
556
+ "br.Weapons.LatencyCompensationDelayMethod"
557
+ ),
558
+ LatencyCompensationLimit: c(
559
+ "weapons.LatencyCompensationLimit",
560
+ "br.Weapons.LatencyCompensationLimit"
561
+ ),
562
+ LatencyCompensationOffset: c(
563
+ "weapons.LatencyCompensationOffset",
564
+ "br.Weapons.LatencyCompensationOffset"
565
+ ),
566
+ ProjectileClientLatencyCompensationEnabled: c(
567
+ "weapons.ProjectileClientLatencyCompensationEnabled",
568
+ "br.Weapons.ProjectileClientLatencyCompensationEnabled"
569
+ ),
570
+ ProjectileLatencyCompensationEnabled: c(
571
+ "weapons.ProjectileLatencyCompensationEnabled",
572
+ "br.Weapons.ProjectileLatencyCompensationEnabled"
573
+ ),
574
+ ProjectilePredictionEnabled: c(
575
+ "weapons.ProjectilePredictionEnabled",
576
+ "br.Weapons.ProjectilePredictionEnabled"
577
+ )
578
+ },
579
+ WireFuzzer: {
580
+ ClearBreakpoints: c("BR.WireFuzzer.ClearBreakpoints"),
581
+ ComponentsPerTick: c("BR.WireFuzzer.ComponentsPerTick"),
582
+ DisconnectBeforeConnect: c("BR.WireFuzzer.DisconnectBeforeConnect"),
583
+ GatesPerTick: c("BR.WireFuzzer.GatesPerTick"),
584
+ MaxComponents: c("BR.WireFuzzer.MaxComponents"),
585
+ MaxGates: c("BR.WireFuzzer.MaxGates"),
586
+ MaxWires: c("BR.WireFuzzer.MaxWires"),
587
+ ModificationsPerTick: c("BR.WireFuzzer.ModificationsPerTick"),
588
+ RerouteDuplication: c("BR.WireFuzzer.RerouteDuplication"),
589
+ Start: c("BR.WireFuzzer.Start"),
590
+ StartWithSeed: c("BR.WireFuzzer.StartWithSeed"),
591
+ Stop: c("BR.WireFuzzer.Stop"),
592
+ WiresPerTick: c("BR.WireFuzzer.WiresPerTick")
593
+ },
594
+ WireGraphViz: c("BR.WireGraphViz"),
595
+ WireRenderer: {
596
+ EnablePorts: c("BR.WireRenderer.EnablePorts"),
597
+ EnableWires: c("BR.WireRenderer.EnableWires")
598
+ },
599
+ World: {
600
+ // added at PREFAB_VERSION (replace the removed Bricks.ClearAll/ClearRegion)
601
+ ClearAll: c("BR.World.ClearAll"),
602
+ ClearRegion: c("BR.World.ClearRegion"),
603
+ CreateEmpty: c("BR.World.CreateEmpty"),
604
+ ListRevisions: c("BR.World.ListRevisions"),
605
+ Load: c("BR.World.Load"),
606
+ // removed at PREFAB_VERSION -> use Prefab.Load
607
+ LoadAdditive: c("BR.World.LoadAdditive").removedIn(PREFAB_VERSION),
608
+ LoadRevision: c("BR.World.LoadRevision"),
609
+ Save: c("BR.World.Save"),
610
+ SaveAs: c("BR.World.SaveAs")
611
+ },
612
+ WorldSerializer: {
613
+ LogPrefabLoads: c("BR.WorldSerializer.LogPrefabLoads"),
614
+ RedirectLegacyWheelJoints: c(
615
+ "BR.WorldSerializer.RedirectLegacyWheelJoints"
616
+ ),
617
+ WipeOwnershipOnLoad: c("BR.WorldSerializer.WipeOwnershipOnLoad")
618
+ }
619
+ };
620
+ const resolveTree = (tree, version) => {
621
+ const out = {};
622
+ for (const key in tree) {
623
+ const value = tree[key];
624
+ out[key] = value instanceof ConsoleCommand ? value.resolve(version) : resolveTree(value, version);
625
+ }
626
+ return out;
627
+ };
628
+ const resolveConsoleCommands = (version) => resolveTree(COMMAND_TABLE, version);
629
+ const COMMAND_LOOKUP = /* @__PURE__ */ new Map();
630
+ const warnedRemovedCommands = /* @__PURE__ */ new Set();
631
+ const indexTree = (tree) => {
632
+ for (const key in tree) {
633
+ const value = tree[key];
634
+ if (value instanceof ConsoleCommand) {
635
+ for (const name of value.names) {
636
+ const lower = name.toLowerCase();
637
+ if (!COMMAND_LOOKUP.has(lower)) COMMAND_LOOKUP.set(lower, value);
638
+ }
639
+ } else {
640
+ indexTree(value);
641
+ }
642
+ }
643
+ };
644
+ indexTree(COMMAND_TABLE);
645
+ const migrateConsoleCommand = (line, version) => {
646
+ const space = line.indexOf(" ");
647
+ const head = space === -1 ? line : line.slice(0, space);
648
+ const command = COMMAND_LOOKUP.get(head.toLowerCase());
649
+ if (!command) return line;
650
+ if (command.isRemovedAt(version) && !warnedRemovedCommands.has(head.toLowerCase())) {
651
+ warnedRemovedCommands.add(head.toLowerCase());
652
+ logger.default.warnp(
653
+ `Console command "${head}" was removed in Brickadia CL${command.removedAt} and will have no effect. Update the plugin using it to the prefab/world equivalent.`
654
+ );
655
+ }
656
+ const resolved = command.resolve(version);
657
+ if (resolved.toLowerCase() === head.toLowerCase()) return line;
658
+ return space === -1 ? resolved : resolved + line.slice(space);
659
+ };
660
+ exports.COMMAND_TABLE = COMMAND_TABLE;
661
+ exports.ConsoleCommand = ConsoleCommand;
662
+ exports.EA2_VERSION = EA2_VERSION;
663
+ exports.PREFAB_VERSION = PREFAB_VERSION;
664
+ exports.migrateConsoleCommand = migrateConsoleCommand;
665
+ exports.resolveConsoleCommands = resolveConsoleCommands;
666
+ //# sourceMappingURL=commands.js.map