- // 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(ServerInstance);
- temp->fd = FD_MAGIC_NUMBER;
- temp->server = "";
- ServerInstance->SendMode(setban,3,temp);
- /* FIX: Send mode remotely*/
- std::deque<std::string> n;
- n.push_back(i->channel);
- n.push_back("-b");
- n.push_back(i->mask);
- Event rmode((char *)&n, NULL, "send_mode");
- rmode.Send();
- 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());