diff --git a/release/plugins/MultiSend.dll b/release/plugins/MultiSend.dll index 561286c..f60ef45 100644 Binary files a/release/plugins/MultiSend.dll and b/release/plugins/MultiSend.dll differ diff --git a/src/MultiSend/Main.cpp b/src/MultiSend/Main.cpp index 38a240f..2805d16 100644 --- a/src/MultiSend/Main.cpp +++ b/src/MultiSend/Main.cpp @@ -38,6 +38,10 @@ bool MultiSend::Initialize(IAshitaCore* core, ILogManager* log, uint32_t id) Pointer += 25; p_Follow = (sFollow*)(*((DWORD*)Pointer)); + //Create name for memory mapped file using plugin version, to guarantee mismatched multisends don't collide if user loads two. + char buffer[256]; + sprintf_s(buffer, 256, "FFXI_Multisend_%f", this->GetPluginInfo().PluginVersion); + //create a handle to the MMF, size matches the struct we're using for it HANDLE hMapFile = CreateFileMapping( INVALID_HANDLE_VALUE, @@ -45,7 +49,7 @@ bool MultiSend::Initialize(IAshitaCore* core, ILogManager* log, uint32_t id) PAGE_READWRITE, 0, // maximum object size (high-order DWORD) sizeof(MMF_Global), // maximum object size (low-order DWORD) - "FFXI_MultiSend_1_15"); + buffer); bool made = (GetLastError() == 0); @@ -119,7 +123,7 @@ __declspec(dllexport) void __stdcall CreatePluginInfo(plugininfo_t* lpBuffer) strcpy_s(g_PluginInfo->Author, sizeof(g_PluginInfo->Author), "Thorny"); g_PluginInfo->InterfaceVersion = ASHITA_INTERFACE_VERSION; - g_PluginInfo->PluginVersion = 1.15f; + g_PluginInfo->PluginVersion = 1.16f; g_PluginInfo->Priority = 0; } diff --git a/src/MultiSend/text_sanitizing.cpp b/src/MultiSend/text_sanitizing.cpp index c06af60..421f107 100644 --- a/src/MultiSend/text_sanitizing.cpp +++ b/src/MultiSend/text_sanitizing.cpp @@ -7,43 +7,43 @@ std::string MultiSend::SubValues(std::string Input) size_t find = Working.find("[me]"); if (find != string::npos) { - Working.replace(find, 4, std::to_string(m_AshitaCore->GetDataManager()->GetParty()->GetMemberServerId(0))); + Working.replace(find, 4, std::string(m_AshitaCore->GetDataManager()->GetParty()->GetMemberName(0))); } find = Working.find("[p0]"); if (find != string::npos) { - Working.replace(find, 4, std::to_string(m_AshitaCore->GetDataManager()->GetParty()->GetMemberServerId(0))); + Working.replace(find, 4, std::string(m_AshitaCore->GetDataManager()->GetParty()->GetMemberName(0))); } find = Working.find("[p1]"); if (find != string::npos) { - Working.replace(find, 4, std::to_string(m_AshitaCore->GetDataManager()->GetParty()->GetMemberServerId(1))); + Working.replace(find, 4, std::string(m_AshitaCore->GetDataManager()->GetParty()->GetMemberName(1))); } find = Working.find("[p2]"); if (find != string::npos) { - Working.replace(find, 4, std::to_string(m_AshitaCore->GetDataManager()->GetParty()->GetMemberServerId(2))); + Working.replace(find, 4, std::string(m_AshitaCore->GetDataManager()->GetParty()->GetMemberName(2))); } find = Working.find("[p3]"); if (find != string::npos) { - Working.replace(find, 4, std::to_string(m_AshitaCore->GetDataManager()->GetParty()->GetMemberServerId(3))); + Working.replace(find, 4, std::string(m_AshitaCore->GetDataManager()->GetParty()->GetMemberName(3))); } find = Working.find("[p4]"); if (find != string::npos) { - Working.replace(find, 4, std::to_string(m_AshitaCore->GetDataManager()->GetParty()->GetMemberServerId(4))); + Working.replace(find, 4, std::string(m_AshitaCore->GetDataManager()->GetParty()->GetMemberName(4))); } find = Working.find("[p5]"); if (find != string::npos) { - Working.replace(find, 4, std::to_string(m_AshitaCore->GetDataManager()->GetParty()->GetMemberServerId(5))); + Working.replace(find, 4, std::string(m_AshitaCore->GetDataManager()->GetParty()->GetMemberName(5))); } find = Working.find("[t]");