bugfix
This commit is contained in:
@@ -188,15 +188,27 @@ void ClientManager::processUsersListResponsePacket(UsersListResponsePacket users
|
||||
else
|
||||
userNames = std::unordered_map<Snowflake, std::string>();
|
||||
|
||||
auto promise = std::promise<std::unordered_map<Snowflake, std::string>>();
|
||||
userNames_ = promise.get_future();
|
||||
auto userNamesPromise = std::promise<std::unordered_map<Snowflake, std::string>>();
|
||||
userNames_ = userNamesPromise.get_future();
|
||||
|
||||
std::unordered_map<std::string, Snowflake> findUserId;
|
||||
|
||||
if (findUserId_.valid() && findUserId_.wait_for(std::chrono::seconds(0)) == std::future_status::ready)
|
||||
findUserId = findUserId_.get();
|
||||
else
|
||||
findUserId = std::unordered_map<std::string, Snowflake>();
|
||||
|
||||
auto findUserIdPromise = std::promise<std::unordered_map<std::string, Snowflake>>();
|
||||
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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user