aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Skoland <davidskoland@gmail.com>2026-04-01 13:48:47 +0200
committerDavid Skoland <davidskoland@gmail.com>2026-04-01 13:48:47 +0200
commitdb931bb13b99f7a058b178bc2460958b6356ca46 (patch)
tree12266e09fb965a03bb9d9d14fd70ae5182bfbf22
parentd6163543f483c35737da52b7e307cf6f65828f82 (diff)
Enable auto pick area and char
-rw-r--r--webAO/client.ts3
-rw-r--r--webAO/packets/handlers/handleDONE.ts12
-rw-r--r--webAO/packets/handlers/handlePV.ts12
-rw-r--r--webAO/utils/queryParser.ts4
4 files changed, 28 insertions, 3 deletions
diff --git a/webAO/client.ts b/webAO/client.ts
index 05a40c9..8a01526 100644
--- a/webAO/client.ts
+++ b/webAO/client.ts
@@ -22,7 +22,8 @@ import {
} from "./client/fetchLists";
import getCookie from "./utils/getCookie";
import setCookie from "./utils/setCookie";
-const { ip: serverIP, connect, mode, theme, serverName } = queryParser();
+const { ip: serverIP, connect, mode, theme, serverName, char: autoChar, area: autoArea } = queryParser();
+export { autoChar, autoArea };
document.title = serverName;
diff --git a/webAO/packets/handlers/handleDONE.ts b/webAO/packets/handlers/handleDONE.ts
index 676c807..4cdd785 100644
--- a/webAO/packets/handlers/handleDONE.ts
+++ b/webAO/packets/handlers/handleDONE.ts
@@ -1,5 +1,6 @@
import queryParser from "../../utils/queryParser";
-import { client, clientState } from "../../client";
+import { client, clientState, autoChar } from "../../client";
+import { pickChar } from "../../dom/pickChar";
const { mode } = queryParser();
/**
@@ -16,4 +17,13 @@ export const handleDONE = (_args: string[]) => {
// Spectators don't need to pick a character
document.getElementById("client_waiting")!.style.display = "none";
}
+
+ if (autoChar) {
+ const charIndex = client.chars.findIndex(
+ (c: any) => c && c.name.toLowerCase() === autoChar.toLowerCase()
+ );
+ if (charIndex !== -1) {
+ pickChar(charIndex);
+ }
+ }
};
diff --git a/webAO/packets/handlers/handlePV.ts b/webAO/packets/handlers/handlePV.ts
index 1ee13c8..13f2f00 100644
--- a/webAO/packets/handlers/handlePV.ts
+++ b/webAO/packets/handlers/handlePV.ts
@@ -1,4 +1,4 @@
-import { client } from "../../client";
+import { client, autoArea } from "../../client";
import fileExists from "../../utils/fileExists";
import { updateActionCommands } from "../../dom/updateActionCommands";
import { pickEmotion } from "../../dom/pickEmotion";
@@ -102,4 +102,14 @@ export const handlePV = async (args: string[]) => {
} else {
document.getElementById("button_4")!.style.display = "none";
}
+
+ if (autoArea) {
+ const areaIndex = client.areas.findIndex(
+ (a: any) => a && a.name.toLowerCase() === autoArea.toLowerCase()
+ );
+ if (areaIndex !== -1) {
+ client.sender.sendMusicChange(client.areas[areaIndex].name);
+ client.area = areaIndex;
+ }
+ }
};
diff --git a/webAO/utils/queryParser.ts b/webAO/utils/queryParser.ts
index 5263f6e..9a91795 100644
--- a/webAO/utils/queryParser.ts
+++ b/webAO/utils/queryParser.ts
@@ -7,6 +7,8 @@ interface QueryParams {
asset: string;
theme: string;
serverName: string;
+ char: string;
+ area: string;
}
const queryParser = (): QueryParams => {
@@ -19,6 +21,8 @@ const queryParser = (): QueryParams => {
asset: urlParams.get("asset") || `${protocol}//attorneyoffline.de/base/`,
theme: urlParams.get("theme") || "default",
serverName: urlParams.get("serverName") || "Attorney Online session",
+ char: urlParams.get("char") || "",
+ area: urlParams.get("area") || "",
};
return queryParams as QueryParams;
};