diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index 6b88247dfb..ad940cd425 100644 --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -921,13 +921,19 @@ DEF_CONSOLE_CMD(ConJoinCompany) CompanyID company_id = (CompanyID)(atoi(argv[1]) <= MAX_COMPANIES ? atoi(argv[1]) - 1 : atoi(argv[1])); + const NetworkClientInfo *info = NetworkClientInfo::GetByClientID(_network_own_client_id); + if (info == nullptr) { + IConsolePrint(CC_ERROR, "You have not joined the game yet!"); + return true; + } + /* Check we have a valid company id! */ if (!Company::IsValidID(company_id) && company_id != COMPANY_SPECTATOR) { IConsolePrint(CC_ERROR, "Company does not exist. Company-id must be between 1 and {}.", MAX_COMPANIES); return true; } - if (NetworkClientInfo::GetByClientID(_network_own_client_id)->client_playas == company_id) { + if (info->client_playas == company_id) { IConsolePrint(CC_ERROR, "You are already there!"); return true; } diff --git a/src/network/network.cpp b/src/network/network.cpp index 717cf077dc..2b0a79ba16 100644 --- a/src/network/network.cpp +++ b/src/network/network.cpp @@ -798,6 +798,7 @@ public: Debug(net, 9, "Client::OnConnect(): connection_string={}", this->connection_string); _networking = true; + _network_own_client_id = ClientID{}; new ClientNetworkGameSocketHandler(s, this->connection_string); IConsoleCmdExec("exec scripts/on_client.scr 0"); NetworkClient_Connected();