diff --git a/src/apis/player.ts b/src/apis/player.ts index 2d8b92e..19eaf56 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 { 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;