diff options
Diffstat (limited to 'webAO/packets/handlers/handleDONE.ts')
| -rw-r--r-- | webAO/packets/handlers/handleDONE.ts | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/webAO/packets/handlers/handleDONE.ts b/webAO/packets/handlers/handleDONE.ts index 676c807..947e2a1 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, autoArea } from "../../client"; +import { area_click } from "../../dom/areaClick"; const { mode } = queryParser(); /** @@ -16,4 +17,30 @@ export const handleDONE = (_args: string[]) => { // Spectators don't need to pick a character document.getElementById("client_waiting")!.style.display = "none"; } + + if (autoArea) { + const areaIndex = client.areas.findIndex( + (a: any) => a && a.name.toLowerCase() === autoArea.toLowerCase() + ); + if (areaIndex !== -1) { + const el = document.getElementById(`area${areaIndex}`); + if (el) { + area_click(el as HTMLElement); + } + } + } + + if (autoChar) { + // Hide charselect immediately (spectator mode) so the user isn't stuck + // on the selection screen. If the CC request succeeds, PV will confirm it. + document.getElementById("client_waiting")!.style.display = "none"; + document.getElementById("client_charselect")!.style.display = "none"; + + const charIndex = client.chars.findIndex( + (c: any) => c && c.name.toLowerCase() === autoChar.toLowerCase() + ); + if (charIndex !== -1) { + client.sender.sendCharacter(charIndex); + } + } }; |
