From cdb74e74dd72da1e40edf4cb12dcd44c7f582eab Mon Sep 17 00:00:00 2001 From: catloversg <152669316+catloversg@users.noreply.github.com> Date: Wed, 9 Apr 2025 03:47:45 +0700 Subject: [PATCH] BUGFIX: Game crashes when generating CCT in weird case (#2077) --- src/CodingContract/ContractGenerator.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/CodingContract/ContractGenerator.ts b/src/CodingContract/ContractGenerator.ts index c02643244..aea7714e0 100644 --- a/src/CodingContract/ContractGenerator.ts +++ b/src/CodingContract/ContractGenerator.ts @@ -78,6 +78,9 @@ export function generateRandomContract(): void { // Choose random server const randServer = getRandomServer(); + if (randServer === null) { + return; + } const contractFn = getRandomFilename(randServer, reward); const contract = new CodingContract(contractFn, problemType, reward); @@ -141,6 +144,9 @@ export function generateContract(params: IGenerateContractParams): void { } else { server = getRandomServer(); } + if (server === null) { + return; + } const filename = params.fn ? params.fn : getRandomFilename(server, reward); @@ -218,8 +224,11 @@ function getRandomReward(): ICodingContractReward { } } -function getRandomServer(): BaseServer { +function getRandomServer(): BaseServer | null { const servers = GetAllServers().filter((server: BaseServer) => server.serversOnNetwork.length !== 0); + if (servers.length === 0) { + return null; + } let randIndex = getRandomIntInclusive(0, servers.length - 1); let randServer = servers[randIndex];