From df35dd43c11c7382a40eaa0e9af844df67fd7724 Mon Sep 17 00:00:00 2001 From: HappyTanuki Date: Fri, 9 May 2025 17:53:03 +0900 Subject: [PATCH] bugfix --- Client/src/ClientManager/ClientManager.cpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/Client/src/ClientManager/ClientManager.cpp b/Client/src/ClientManager/ClientManager.cpp index c48dac3..58a10ea 100644 --- a/Client/src/ClientManager/ClientManager.cpp +++ b/Client/src/ClientManager/ClientManager.cpp @@ -188,15 +188,27 @@ void ClientManager::processUsersListResponsePacket(UsersListResponsePacket users else userNames = std::unordered_map(); - auto promise = std::promise>(); - userNames_ = promise.get_future(); + auto userNamesPromise = std::promise>(); + userNames_ = userNamesPromise.get_future(); + + std::unordered_map findUserId; + + if (findUserId_.valid() && findUserId_.wait_for(std::chrono::seconds(0)) == std::future_status::ready) + findUserId = findUserId_.get(); + else + findUserId = std::unordered_map(); + + auto findUserIdPromise = std::promise>(); + findUserId_ = findUserIdPromise.get_future(); Snowflake userId; ::memcpy(&userId.snowflake, usersListResponsePacket.__data.userId, sizeof(Snowflake)); std::string userName((char*)usersListResponsePacket.__data.name, usersListResponsePacket.__data.packetLength - (sizeof(std::uint16_t) * 7)); userNames[userId] = userName; + findUserId[userName] = userId; - promise.set_value(userNames); + userNamesPromise.set_value(userNames); + findUserIdPromise.set_value(findUserId); spdlog::info("{}", userName); }