From 45f10a7f6f3dfdca38051c14020c2f6bd2646054 Mon Sep 17 00:00:00 2001 From: Sadie Powell Date: Fri, 13 Sep 2024 11:52:26 +0100 Subject: Only remove extbans on unload if provided by the right module. --- src/coremods/core_channel/extban.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/coremods/core_channel/extban.cpp b/src/coremods/core_channel/extban.cpp index 13ecfcb7f..c9c2611fd 100644 --- a/src/coremods/core_channel/extban.cpp +++ b/src/coremods/core_channel/extban.cpp @@ -153,8 +153,13 @@ ModResult ExtBanManager::GetStatus(ExtBan::ActingBase* extban, User* user, Chann void ExtBanManager::DelExtBan(ExtBan::Base* extban) { - byletter.erase(extban->GetLetter()); - byname.erase(extban->GetName()); + auto lit = byletter.find(extban->GetLetter()); + if (lit != byletter.end() && lit->second->creator.ptr() == extban->creator.ptr()) + byletter.erase(lit); + + auto nit = byname.find(extban->GetName()); + if (nit != byname.end() && nit->second->creator.ptr() == extban->creator.ptr()) + byname.erase(nit); } ExtBan::Base* ExtBanManager::FindName(const std::string& xbname) const -- cgit v1.3.1-10-gc9f91