-ModeAction ModeChannelVoice::OnModeChange(userrec* source, userrec* dest, chanrec* channel, std::string ¶meter, bool adding)
+void ModeChannelVoice::RemoveMode(Channel* channel)
+{
+ CUList* list = channel->GetVoicedUsers();
+ CUList copy;
+ char moderemove[MAXBUF];
+
+ for (CUList::iterator i = list->begin(); i != list->end(); i++)
+ {
+ User* n = i->first;
+ copy.insert(std::make_pair(n,n->nick));
+ }
+
+ for (CUList::iterator i = copy.begin(); i != copy.end(); i++)
+ {
+ sprintf(moderemove,"-%c",this->GetModeChar());
+ const char* parameters[] = { channel->name, moderemove, i->first->nick };
+ ServerInstance->SendMode(parameters, 3, ServerInstance->FakeClient);
+ }
+}
+
+void ModeChannelVoice::RemoveMode(User*)
+{
+}
+
+ModeAction ModeChannelVoice::OnModeChange(User* source, User*, Channel* channel, std::string ¶meter, bool adding)