mirror of
https://github.com/openfrontio/OpenFrontIO.git
synced 2026-06-22 01:37:43 +00:00
075c232d8a
Previously, the connection and reconnection logic were identical in Worker.ts, so clients would need to be re-authorized for cosmetics etc even when reconnecting. Now, on reconnect, Worker.ts only does authentication - verifying the jwt is valid. This will allow clients to require a valid turnstile token when first connecting, and not when reconnecting after a broken ws connection. ## Please complete the following: - [x] I have added screenshots for all UI updates - [x] I process any text displayed to the user through translateText() and I've added it to the en.json file - [x] I have added relevant tests to the test directory - [x] I confirm I have thoroughly tested these changes and take full responsibility for any bugs introduced ## Please put your Discord username so you can be contacted if a bug or regression is found: evan
26 lines
808 B
TypeScript
26 lines
808 B
TypeScript
import WebSocket from "ws";
|
|
import { TokenPayload } from "../core/ApiSchemas";
|
|
import { Tick } from "../core/game/Game";
|
|
import { ClientID, PlayerCosmetics, Winner } from "../core/Schemas";
|
|
|
|
export class Client {
|
|
public lastPing: number = Date.now();
|
|
|
|
public hashes: Map<Tick, number> = new Map();
|
|
|
|
public reportedWinner: Winner | null = null;
|
|
|
|
constructor(
|
|
public readonly clientID: ClientID,
|
|
public readonly persistentID: string,
|
|
public readonly claims: TokenPayload | null,
|
|
public readonly roles: string[] | undefined,
|
|
public readonly flares: string[] | undefined,
|
|
public readonly ip: string,
|
|
public readonly username: string,
|
|
public ws: WebSocket,
|
|
public readonly cosmetics: PlayerCosmetics | undefined,
|
|
public readonly isRejoin: boolean = false,
|
|
) {}
|
|
}
|