Copy instead of moving expedition request data

This commit is contained in:
hg 2020-06-10 22:57:44 -04:00
parent 59d10a9db3
commit 6165550133
2 changed files with 7 additions and 9 deletions

View File

@ -299,13 +299,13 @@ bool Expedition::CacheAllFromDatabase()
void Expedition::SaveLockouts(ExpeditionRequest& request) void Expedition::SaveLockouts(ExpeditionRequest& request)
{ {
m_lockouts = std::move(request).TakeLockouts(); m_lockouts = request.GetLockouts();
ExpeditionDatabase::InsertLockouts(m_id, m_lockouts); ExpeditionDatabase::InsertLockouts(m_id, m_lockouts);
} }
void Expedition::SaveMembers(ExpeditionRequest& request) void Expedition::SaveMembers(ExpeditionRequest& request)
{ {
m_members = std::move(request).TakeMembers(); m_members = request.GetMembers();
for (const auto& member : m_members) for (const auto& member : m_members)
{ {
m_member_id_history.emplace(member.char_id); m_member_id_history.emplace(member.char_id);
@ -1047,8 +1047,7 @@ void Expedition::DzSwapPlayer(
if (remove_char_name.empty() || !HasMember(remove_char_name)) if (remove_char_name.empty() || !HasMember(remove_char_name))
{ {
remove_char_name = FormatName(remove_char_name); requester->MessageString(Chat::Red, DZSWAP_CANNOT_REMOVE, FormatName(remove_char_name).c_str());
requester->MessageString(Chat::Red, DZSWAP_CANNOT_REMOVE, remove_char_name.c_str());
return; return;
} }
@ -1180,7 +1179,6 @@ void Expedition::ProcessMemberRemoved(std::string removed_char_name, uint32_t re
return; return;
} }
// cache a re-usable packet for each member
auto outapp_member_name = CreateMemberListNamePacket(removed_char_name, true); auto outapp_member_name = CreateMemberListNamePacket(removed_char_name, true);
for (auto it = m_members.begin(); it != m_members.end();) for (auto it = m_members.begin(); it != m_members.end();)
@ -1212,8 +1210,8 @@ void Expedition::ProcessMemberRemoved(std::string removed_char_name, uint32_t re
} }
LogExpeditionsDetail( LogExpeditionsDetail(
"Processed member [{}] ({}) removal, current zone cache member count: [{}]", "Processed member [{}] ({}) removal from [{}], cache member count: [{}]",
removed_char_name, removed_char_id, m_members.size() removed_char_name, removed_char_id, m_id, m_members.size()
); );
} }

View File

@ -50,8 +50,8 @@ public:
uint32_t GetMinPlayers() const { return m_min_players; } uint32_t GetMinPlayers() const { return m_min_players; }
uint32_t GetMaxPlayers() const { return m_max_players; } uint32_t GetMaxPlayers() const { return m_max_players; }
bool HasReplayTimer() const { return m_has_replay_timer; } bool HasReplayTimer() const { return m_has_replay_timer; }
std::vector<ExpeditionMember> TakeMembers() && { return std::move(m_members); } std::vector<ExpeditionMember> GetMembers() const { return m_members; }
std::unordered_map<std::string, ExpeditionLockoutTimer> TakeLockouts() && { return std::move(m_lockouts); } std::unordered_map<std::string, ExpeditionLockoutTimer> GetLockouts() const { return m_lockouts; }
private: private:
bool ValidateMembers(const std::vector<std::string>& member_names); bool ValidateMembers(const std::vector<std::string>& member_names);