From 17d2660ca90d6be33da04e8b2e98b1aa0d44c6c1 Mon Sep 17 00:00:00 2001 From: atom0s Date: Thu, 1 Dec 2016 00:23:24 -0800 Subject: [PATCH] Fixed a nullptr crash on non-full parties. --- Release/Plugins/Servo.dll | Bin 67584 -> 67584 bytes Source/main.cpp | 21 ++++++++++++++------- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/Release/Plugins/Servo.dll b/Release/Plugins/Servo.dll index 24b4cfde943ce8fa64bf3c80f69e3b4e67e42f22..82b5752c34d550fde0f79f04ec1316b8d3be0346 100644 GIT binary patch delta 8155 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 N)DzXGjUoxM`#0TWC&~Z- diff --git a/Source/main.cpp b/Source/main.cpp index 2afb087..45a47c9 100644 --- a/Source/main.cpp +++ b/Source/main.cpp @@ -60,13 +60,20 @@ void Servo::formatCommand(std::string* command) std::stringstream id; id << m_AshitaCore->GetDataManager()->GetTarget()->GetTargetServerId(); - *command = StringSub(*command, "[me]", m_AshitaCore->GetDataManager()->GetParty()->GetMemberName(0)); - *command = StringSub(*command, "[p0]", m_AshitaCore->GetDataManager()->GetParty()->GetMemberName(0)); - *command = StringSub(*command, "[p1]", m_AshitaCore->GetDataManager()->GetParty()->GetMemberName(1)); - *command = StringSub(*command, "[p2]", m_AshitaCore->GetDataManager()->GetParty()->GetMemberName(2)); - *command = StringSub(*command, "[p3]", m_AshitaCore->GetDataManager()->GetParty()->GetMemberName(3)); - *command = StringSub(*command, "[p4]", m_AshitaCore->GetDataManager()->GetParty()->GetMemberName(4)); - *command = StringSub(*command, "[p5]", m_AshitaCore->GetDataManager()->GetParty()->GetMemberName(5)); + auto p0 = m_AshitaCore->GetDataManager()->GetParty()->GetMemberName(0); + auto p1 = m_AshitaCore->GetDataManager()->GetParty()->GetMemberName(1); + auto p2 = m_AshitaCore->GetDataManager()->GetParty()->GetMemberName(2); + auto p3 = m_AshitaCore->GetDataManager()->GetParty()->GetMemberName(3); + auto p4 = m_AshitaCore->GetDataManager()->GetParty()->GetMemberName(4); + auto p5 = m_AshitaCore->GetDataManager()->GetParty()->GetMemberName(4); + + *command = StringSub(*command, "[me]", p0 != nullptr ? p0 : ""); + *command = StringSub(*command, "[p0]", p0 != nullptr ? p0 : ""); + *command = StringSub(*command, "[p1]", p1 != nullptr ? p1 : ""); + *command = StringSub(*command, "[p2]", p2 != nullptr ? p2 : ""); + *command = StringSub(*command, "[p3]", p3 != nullptr ? p3 : ""); + *command = StringSub(*command, "[p4]", p4 != nullptr ? p4 : ""); + *command = StringSub(*command, "[p5]", p5 != nullptr ? p5 : ""); *command = StringSub(*command, "[t]", id.str()); }