- // kludge alert!
- // ::SendMode expects a userrec* to send the numeric replies
- // back to, so we create it a fake user that isnt in the user
- // hash and set its descriptor to FD_MAGIC_NUMBER so the data
- // falls into the abyss :p
- userrec* temp = new userrec;
- temp->fd = FD_MAGIC_NUMBER;
- temp->server = "";
- Srv->SendMode(setban,3,temp);
- DELETE(temp);
+
+ ServerInstance->PI->SendModeStr(i->channel, std::string("-b ") + setban[2]);
+ ServerInstance->SendMode(setban,3, ServerInstance->FakeClient);
+
+ 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);