aboutsummaryrefslogtreecommitdiff
path: root/webAO
diff options
context:
space:
mode:
Diffstat (limited to 'webAO')
-rw-r--r--webAO/__tests__/tryBackgroundUrls.test.ts28
-rw-r--r--webAO/client/fetchLists.ts1
-rw-r--r--webAO/dom/updateBackgroundPreview.ts17
-rw-r--r--webAO/packets/handlers/handleBN.ts76
-rw-r--r--webAO/utils/tryBackgroundUrls.ts15
-rw-r--r--webAO/viewport/utils/setSide.ts3
6 files changed, 58 insertions, 82 deletions
diff --git a/webAO/__tests__/tryBackgroundUrls.test.ts b/webAO/__tests__/tryBackgroundUrls.test.ts
deleted file mode 100644
index cfbf3f9..0000000
--- a/webAO/__tests__/tryBackgroundUrls.test.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import fileExists from "../utils/fileExists";
-import tryBackgroundUrls from "../utils/tryBackgroundUrls";
-import transparentPng from "../constants/transparentPng";
-jest.mock("../utils/fileExists");
-
-const mockFileExists = fileExists as jest.MockedFunction<typeof fileExists>;
-
-describe("tryBackgroundUrls", () => {
- it("Should try multiple file extensions", async () => {
- const url = "localhost/stoneddiscord/assets";
- mockFileExists
- .mockReturnValueOnce(Promise.resolve(false))
- .mockReturnValueOnce(Promise.resolve(false))
- .mockReturnValueOnce(Promise.resolve(false))
- .mockReturnValueOnce(Promise.resolve(true));
- const actual = await tryBackgroundUrls(url);
- const expected = "localhost/stoneddiscord/assets.apng";
- expect(actual).toBe(expected);
- });
-
- it("Should return a transparent png if it cant find any assets", async () => {
- const url = "localhost/stoneddiscord/assets";
- mockFileExists.mockReturnValue(Promise.resolve(false));
- const actual = await tryBackgroundUrls(url);
- const expected = transparentPng;
- expect(actual).toBe(expected);
- });
-});
diff --git a/webAO/client/fetchLists.ts b/webAO/client/fetchLists.ts
index 3d590b9..d391fac 100644
--- a/webAO/client/fetchLists.ts
+++ b/webAO/client/fetchLists.ts
@@ -78,6 +78,7 @@ export const fetchExtensions = async () => {
console.log("charicons "+client.charicon_extensions)
console.log("emotes "+client.emote_extensions)
console.log("emotions "+client.emotions_extensions)
+ console.log("backgrounds "+client.background_extensions)
} catch (err) {
console.warn("there was no extensions.json file");
}
diff --git a/webAO/dom/updateBackgroundPreview.ts b/webAO/dom/updateBackgroundPreview.ts
index 61186e0..2b8a18b 100644
--- a/webAO/dom/updateBackgroundPreview.ts
+++ b/webAO/dom/updateBackgroundPreview.ts
@@ -1,5 +1,20 @@
import { AO_HOST } from "../client/aoHost";
-import tryBackgroundUrls from "../utils/tryBackgroundUrls";
+import fileExists from "../utils/fileExists";
+import transparentPng from "../constants/transparentPng";
+
+const urlExtensionsToTry = [".png", ".gif", ".webp", ".apng"];
+const tryBackgroundUrls = async (url: string) => {
+ for (let i = 0; i < urlExtensionsToTry.length; i++) {
+ const extension = urlExtensionsToTry[i];
+ const fullFileUrl = url + extension;
+ const exists = await fileExists(fullFileUrl);
+ if (exists) {
+ return fullFileUrl;
+ }
+ }
+ return transparentPng;
+};
+export default tryBackgroundUrls;
/**
* Update background preview.
diff --git a/webAO/packets/handlers/handleBN.ts b/webAO/packets/handlers/handleBN.ts
index 5e9e8f8..769a0dc 100644
--- a/webAO/packets/handlers/handleBN.ts
+++ b/webAO/packets/handlers/handleBN.ts
@@ -5,7 +5,29 @@ import { updateBackgroundPreview } from "../../dom/updateBackgroundPreview";
import { getIndexFromSelect } from "../../dom/getIndexFromSelect";
import { switchPanTilt } from "../../dom/switchPanTilt";
import transparentPng from "../../constants/transparentPng";
-import tryBackgroundUrls from "../../utils/tryBackgroundUrls";
+import fileExists from "../../utils/fileExists";
+
+function setBackgroundImage(elementid: string, bgname: string, bgpart: string): boolean {
+
+ let url;
+ let success = false;
+ for (const extension of client.background_extensions) {
+ url = `${AO_HOST}background/${encodeURI(bgname.toLowerCase())}/${bgpart}${extension}`;
+
+ const exists = fileExists(url);
+
+ if (exists) {
+ success = true;
+ break;
+ }
+ }
+ if (success)
+ (<HTMLImageElement>document.getElementById(elementid)).src = url;
+ else
+ (<HTMLImageElement>document.getElementById(elementid)).src = transparentPng;
+ return success;
+}
+
/**
* Handles a background change.
@@ -28,43 +50,25 @@ export const handleBN = (args: string[]) => {
client.viewport.getBackgroundName();
}
- tryBackgroundUrls(
- `${AO_HOST}background/${encodeURI(args[1].toLowerCase())}/defenseempty`,
- ).then((resp) => {
- (<HTMLImageElement>document.getElementById("bg_preview")).src = resp;
- });
- tryBackgroundUrls(`${bgfolder}defensedesk`).then((resp) => {
- (<HTMLImageElement>document.getElementById("client_def_bench")).src = resp;
- });
- tryBackgroundUrls(`${bgfolder}stand`).then((resp) => {
- (<HTMLImageElement>document.getElementById("client_wit_bench")).src = resp;
- });
- tryBackgroundUrls(`${bgfolder}prosecutiondesk`).then((resp) => {
- (<HTMLImageElement>document.getElementById("client_pro_bench")).src = resp;
- });
- tryBackgroundUrls(`${bgfolder}court`).then((resp) => {
- (<HTMLImageElement>document.getElementById("client_court")).src = resp;
- if (resp !== transparentPng) {
- (<HTMLInputElement>document.getElementById("client_pantilt")).checked =
+
+ setBackgroundImage("bg_preview",args[1],"defenseempty")
+
+ setBackgroundImage("client_def_bench",args[1],"defensedesk")
+ setBackgroundImage("client_wit_bench",args[1],"stand")
+ setBackgroundImage("client_pro_bench",args[1],"prosecutiondesk")
+
+ setBackgroundImage("client_court_def",args[1],"defenseempty")
+ setBackgroundImage("client_court_wit",args[1],"witnessempty")
+ setBackgroundImage("client_court_pro",args[1],"prosecutorempty")
+
+ setBackgroundImage("client_court_deft",args[1],"transition_def")
+ setBackgroundImage("client_court_prot",args[1],"transition_pro")
+
+ if(setBackgroundImage("client_court",args[1],"court")) {
+ (<HTMLInputElement>document.getElementById("client_pantilt")).checked =
true;
switchPanTilt();
- }
- });
- tryBackgroundUrls(`${bgfolder}defenseempty`).then((resp) => {
- (<HTMLImageElement>document.getElementById("client_court_def")).src = resp;
- });
- tryBackgroundUrls(`${bgfolder}transition_def`).then((resp) => {
- (<HTMLImageElement>document.getElementById("client_court_deft")).src = resp;
- });
- tryBackgroundUrls(`${bgfolder}witnessempty`).then((resp) => {
- (<HTMLImageElement>document.getElementById("client_court_wit")).src = resp;
- });
- tryBackgroundUrls(`${bgfolder}transition_pro`).then((resp) => {
- (<HTMLImageElement>document.getElementById("client_court_prot")).src = resp;
- });
- tryBackgroundUrls(`${bgfolder}prosecutorempty`).then((resp) => {
- (<HTMLImageElement>document.getElementById("client_court_pro")).src = resp;
- });
+ }
if (client.charID === -1) {
client.viewport.set_side({
diff --git a/webAO/utils/tryBackgroundUrls.ts b/webAO/utils/tryBackgroundUrls.ts
deleted file mode 100644
index 154978b..0000000
--- a/webAO/utils/tryBackgroundUrls.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import fileExists from "./fileExists";
-import transparentPng from "../constants/transparentPng";
-const urlExtensionsToTry = [".png", ".gif", ".webp", ".apng"];
-const tryBackgroundUrls = async (url: string) => {
- for (let i = 0; i < urlExtensionsToTry.length; i++) {
- const extension = urlExtensionsToTry[i];
- const fullFileUrl = url + extension;
- const exists = await fileExists(fullFileUrl);
- if (exists) {
- return fullFileUrl;
- }
- }
- return transparentPng;
-};
-export default tryBackgroundUrls;
diff --git a/webAO/viewport/utils/setSide.ts b/webAO/viewport/utils/setSide.ts
index 5966a52..c9948e2 100644
--- a/webAO/viewport/utils/setSide.ts
+++ b/webAO/viewport/utils/setSide.ts
@@ -1,7 +1,6 @@
import { positions } from "../constants/positions";
import { AO_HOST } from "../../client/aoHost";
import { client } from "../../client";
-import tryBackgroundUrls from "../../utils/tryBackgroundUrls";
import findImgSrc from "../../utils/findImgSrc";
/**
@@ -55,7 +54,7 @@ export const set_side = async ({
if (showSpeedLines === true) {
court.src = `${AO_HOST}themes/default/${encodeURI(speedLines)}`;
} else {
- court.src = await tryBackgroundUrls(client.viewport.getBackgroundFolder() + bg);
+ //court.src = await tryBackgroundUrls(client.viewport.getBackgroundFolder() + bg);
}
if (showDesk === true && desk) {