Skip to content

Commit fdc0d46

Browse files
committed
Disable gametest in release build
1 parent 142d29e commit fdc0d46

File tree

2 files changed

+25
-24
lines changed

2 files changed

+25
-24
lines changed

mc_manifest.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,9 @@
4646
{
4747
"module_name": "@minecraft/server-ui",
4848
"version": "beta"
49-
},
49+
}
50+
],
51+
"bp_gametest_dependencies": [
5052
{
5153
"module_name": "@minecraft/server-gametest",
5254
"version": "beta"

tools/process_manifest.mjs

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -22,31 +22,30 @@ function processJsonElement(element, bpElement, rpElement, options = {}) {
2222
}
2323

2424
if (Array.isArray(element)) {
25-
for (let i = 0; i < element.length; i++) {
26-
process(i, element[i]);
27-
}
25+
for (let i = 0; i < element.length; i++) process(i, element[i]);
2826
} else if (typeof element === "object" && element !== null) {
2927
for (const [key, value] of Object.entries(element)) {
3028
if (key.startsWith("bp_")) {
31-
if (key.startsWith("bp_server_")) {
32-
if (!options.isServer) continue;
33-
const sub = bpElement[key.slice("bp_server_".length)];
34-
if (Array.isArray(sub)) {
35-
bpElement[key.slice(10)] = sub.concat(value);
36-
} else if (typeof sub === "object" && sub !== null) {
37-
bpElement[key.slice(10)] = { ...sub, ...value };
38-
}
39-
} else if (key.startsWith("bp_editor_")) {
40-
if (!options.isEditor) continue;
41-
const sub = bpElement[key.slice("bp_editor_".length)];
42-
if (Array.isArray(sub)) {
43-
bpElement[key.slice(10)] = sub.concat(value);
44-
} else if (typeof sub === "object" && sub !== null) {
45-
bpElement[key.slice(10)] = { ...sub, ...value };
29+
const bpSpecialPrefixes = [
30+
{ prefix: "bp_gametest_", condition: options.debugMode },
31+
{ prefix: "bp_server_", condition: options.isServer },
32+
{ prefix: "bp_editor_", condition: options.isEditor },
33+
];
34+
let handled = false;
35+
for (const { prefix, condition } of bpSpecialPrefixes) {
36+
if (key.startsWith(prefix)) {
37+
if (condition) {
38+
const sliceLen = prefix.length;
39+
const subKey = key.slice(sliceLen);
40+
const sub = bpElement[subKey];
41+
if (Array.isArray(sub)) bpElement[subKey] = sub.concat(value);
42+
else if (typeof sub === "object" && sub !== null) bpElement[subKey] = { ...sub, ...value };
43+
}
44+
handled = true;
45+
break;
4646
}
47-
} else {
48-
bpElement[key.slice(3)] = value;
4947
}
48+
if (!handled) bpElement[key.slice(3)] = value;
5049
} else if (key.startsWith("rp_")) {
5150
rpElement[key.slice(3)] = value;
5251
} else {
@@ -62,7 +61,7 @@ function processManifest(debugMode, isServer, isEditor) {
6261

6362
// load base manifest
6463
const manifest = JSON.parse(fs.readFileSync("mc_manifest.json", "utf8"));
65-
processJsonElement(manifest, bp_manifest, rp_manifest, { isServer, isEditor });
64+
processJsonElement(manifest, bp_manifest, rp_manifest, { isServer, isEditor, debugMode });
6665

6766
const version = manifest.header.version;
6867
bp_manifest.header.name += " " + version;
@@ -93,9 +92,9 @@ function processManifest(debugMode, isServer, isEditor) {
9392
}
9493

9594
export default function (args) {
96-
const debugMode = args.target === "debug";
95+
const debugMode = args.gametest || args.target === "debug";
9796
const isServer = args.target === "server" || args.target === "server";
98-
const isEditor = args.editor === true;
97+
const isEditor = args.editor;
9998
processManifest(debugMode, isServer, isEditor);
10099

101100
if (args.watch) {

0 commit comments

Comments
 (0)