From c076c31595d3446a8d0cbc04e90a9daf81370834 Mon Sep 17 00:00:00 2001 From: Cazka Date: Sun, 18 Dec 2022 00:07:25 +0100 Subject: [PATCH 1/3] update window.input interface --- src/core/globals.d.ts | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/core/globals.d.ts b/src/core/globals.d.ts index aba2ea0..539be17 100644 --- a/src/core/globals.d.ts +++ b/src/core/globals.d.ts @@ -1,16 +1,13 @@ interface Input { - mouse: (x: number, y: number) => void; + blur: () => void; + execute: (v: string) => void; + get_convar: (key: string) => null | string; keyDown: (key: string | number) => void; keyUp: (key: string | number) => void; - blur: () => void; - wheel: Function; - prevent_right_click: (value: boolean) => void; - flushInputHooks: Function; + mouse: (x: number, y: number) => void; set_convar: (key: string, value: string) => boolean; - get_convar: (key: string) => null | string; - execute: (v: string) => void; - print_convar_help: () => void; should_prevent_unload: () => boolean; + trySpawn: (username: string) => void; } declare var input: Input; From 4f2515ca270be1e3218cadc0fad0c9fb2aa4d420 Mon Sep 17 00:00:00 2001 From: Cazka Date: Sun, 18 Dec 2022 00:13:06 +0100 Subject: [PATCH 2/3] update spawn method to use window.input.trySpawn() --- src/apis/player.ts | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/src/apis/player.ts b/src/apis/player.ts index 2d8b92e..70fabe9 100644 --- a/src/apis/player.ts +++ b/src/apis/player.ts @@ -15,6 +15,8 @@ class Player extends EventEmitter { #mouseLock = false; #mouseCanvasPos = new Vector(0, 0); #mousePos = new Vector(0, 0); + + #username = _window.localStorage.name; #gamemode = _window.localStorage.gamemode; #level = 1; #tank = 'Tank'; @@ -74,6 +76,14 @@ class Player extends EventEmitter { }, }); + // username + _window.input.trySpawn = new Proxy(_window.input.trySpawn, { + apply(target, thisArg, args) { + this.#username = args[0]; + return Reflect.apply(target, thisArg, args); + }, + }); + // tank and level event listener CanvasKit.hookCtx('fillText', (target, thisArg, args) => { const text = args[0]; @@ -151,16 +161,12 @@ class Player extends EventEmitter { gamepad.connected = value; } - async spawn(name: string, attempts: number = 0): Promise { - if (!this.#isDead) return; - - if (name !== undefined) (document.getElementById('textInput') as HTMLInputElement).value = name; - - await input.keyPress(13); - - await sleep(250); + async spawn(name: string = this.#username): Promise { + if (!this.#isDead) { + return; + } - await this.spawn(name, attempts + 1); + _window.input.trySpawn(name); } async upgrade_stat(id: number, level: number): Promise { From 73260c35acf188f17589f0f9ee83c6ead65f36e4 Mon Sep 17 00:00:00 2001 From: Cazka Date: Sun, 18 Dec 2022 00:19:51 +0100 Subject: [PATCH 3/3] fix bug --- src/apis/player.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/apis/player.ts b/src/apis/player.ts index 70fabe9..19eaf56 100644 --- a/src/apis/player.ts +++ b/src/apis/player.ts @@ -78,7 +78,7 @@ class Player extends EventEmitter { // username _window.input.trySpawn = new Proxy(_window.input.trySpawn, { - apply(target, thisArg, args) { + apply: (target, thisArg, args) => { this.#username = args[0]; return Reflect.apply(target, thisArg, args); },