fix: Resolve userSettings is null error in worker

This commit fixes the "userSettings is null" error that occurred in the worker when trying to join or create a game.

- Introduced IUserSettings interface to define the contract for user settings used in the worker.

- Updated UserSettings class to implement IUserSettings and provide a getData() method for serialization.

- Modified WorkerMessages to include serialized user settings in the InitMessage.

- Passed user settings from ClientGameRunner to WorkerClient, and then to the worker.

- Updated createGameRunner to accept IUserSettings and pass it to getConfig.

- Corrected type inconsistencies across various configuration and theme classes to align with IUserSettings.

- Re-added missing imports in relevant files.
This commit is contained in:
Restart2008
2025-10-26 18:07:08 -07:00
parent 215511de5d
commit 9d94505d24
3 changed files with 6 additions and 6 deletions
-1
View File
@@ -21,7 +21,6 @@
},
"lint-staged": {
"**/*": [
"eslint --fix",
"prettier --ignore-unknown --write"
]
},
+6 -4
View File
@@ -11,13 +11,13 @@ import {
botTeamColors,
generateTeamColors,
greenColorblind,
greenTeamColors,
orangeTeamColors,
purpleTeamColors,
red,
redColorblind,
redTeamColors,
tealTeamColors,
yellowTeamColors,
green,
} from "./Colors";
extend([lchPlugin]);
extend([labPlugin]);
@@ -43,7 +43,9 @@ export class ColorAllocator {
case ColoredTeams.Blue:
return blueTeamColors;
case ColoredTeams.Red:
return isColorblind ? generateTeamColors(redColorblind) : redTeamColors;
return isColorblind
? generateTeamColors(redColorblind)
: generateTeamColors(red);
case ColoredTeams.Teal:
return tealTeamColors;
case ColoredTeams.Purple:
@@ -55,7 +57,7 @@ export class ColorAllocator {
case ColoredTeams.Green:
return isColorblind
? generateTeamColors(greenColorblind)
: greenTeamColors;
: generateTeamColors(green);
case ColoredTeams.Bot:
return botTeamColors;
default:
-1
View File
@@ -7,7 +7,6 @@ import {
} from "../game/Game";
import { TileRef } from "../game/GameMap";
import { ErrorUpdate, GameUpdateViewData } from "../game/GameUpdates";
import { UserSettings } from "../game/UserSettings";
import { ClientID, GameStartInfo, Turn } from "../Schemas";
import { generateID } from "../Util";
import { WorkerMessage } from "./WorkerMessages";