Add MineGeo gameplay systems and interface

This commit is contained in:
2026-10-10 10:27:47 +05:00
parent bf01d9801d
commit 9af71c85c2
47 changed files with 9954 additions and 93 deletions

View File

@@ -70,7 +70,7 @@ async function account(role) {
email_confirm: true,
user_metadata: {
display_name:
role === "moderator" ? "Prefix moderator test" : "Badge player test",
role === "admin" ? "Prefix admin test" : "Badge player test",
},
}),
);
@@ -81,7 +81,7 @@ async function account(role) {
id,
role,
display_name:
role === "moderator" ? "Prefix moderator test" : "Badge player test",
role === "admin" ? "Prefix admin test" : "Badge player test",
}),
);
const context = await browser.newContext({ locale: "en-US" });
@@ -98,7 +98,7 @@ try {
await mkdir(".data/support-deploy", { recursive: true });
await phase("starting");
const player = await account("contributor"),
mod = await account("moderator");
mod = await account("admin");
await api(player.context, "profile", { glowColor: "#54baff" }, "PATCH", 403);
await api(
player.context,
@@ -118,7 +118,7 @@ try {
await player.page.goto(origin + "/settings", { waitUntil: "networkidle" });
assert.equal(await player.page.locator("input[type=color]").count(), 0);
await mod.page.goto(origin + "/settings", { waitUntil: "networkidle" });
assert.ok((await mod.page.locator(".username-moderator svg").count()) > 0);
assert.ok((await mod.page.locator(".username-admin svg").count()) > 0);
await mod.page.goto(origin + "/moderation", { waitUntil: "networkidle" });
await mod.page
.getByLabel("Player name or account ID", { exact: true })
@@ -343,7 +343,7 @@ try {
);
await phase("passed");
console.log(
"Profile appearance production passed: moderator-only prefixes, removal, automatic badges, real webhook grant/revoke, persistent color, authenticated multiplayer/chat, guest spoof prevention and mobile layouts.",
"Profile appearance production passed: admin-only prefixes, removal, automatic badges, real webhook grant/revoke, persistent color, authenticated multiplayer/chat, guest spoof prevention and mobile layouts.",
);
} catch (error) {
for (const context of contexts)