- CUList empty;
- cr->WriteAllExcept(ServerInstance->FakeClient, true, '@', empty, "NOTICE %s :*** Timed ban on %s expired.", cr->name, i->mask.c_str());
- if (ServerInstance->Config->AllowHalfop)
- cr->WriteAllExcept(ServerInstance->FakeClient, true, '%', empty, "NOTICE %s :*** Timed ban on %s expired.", cr->name, i->mask.c_str());
- }
- else
- {
- /* Where the hell did our channel go?! */
- TimedBanList.erase(i);
- }
- // we used to delete the item here, but we dont need to as the servermode above does it for us,
- break;
+ /* Removes the ban item for us, no ::erase() needed */
+ ServerInstance->PI->SendModeStr(safei->channel, std::string("-b ") + setban[2]);
+ ServerInstance->SendMode(setban, ServerInstance->FakeClient);
+
+ if (ServerInstance->Modes->GetLastParse().empty())
+ TimedBanList.erase(safei);
+ }
+ else
+ {
+ /* Where the hell did our channel go?! */
+ TimedBanList.erase(safei);