- chanrec* c = ServerInstance->FindChan(a->second.c_str());
- if (c && !c->IsModeSet('s') && !c->IsModeSet('p'))
+ Channel* c = a->second;
+
+ data << "<channel>";
+ data << "<usercount>" << c->GetUsers()->size() << "</usercount><channelname>" << c->name << "</channelname>";
+ data << "<channelops>" << c->GetOppedUsers()->size() << "</channelops>";
+ data << "<channelhalfops>" << c->GetHalfoppedUsers()->size() << "</channelhalfops>";
+ data << "<channelvoices>" << c->GetVoicedUsers()->size() << "</channelvoices>";
+ data << "<channeltopic>";
+ data << "<topictext>" << Sanitize(c->topic) << "</topictext>";
+ data << "<setby>" << Sanitize(c->setby) << "</setby>";
+ data << "<settime>" << c->topicset << "</settime>";
+ data << "</channeltopic>";
+ data << "<channelmodes>" << Sanitize(c->ChanModes(true)) << "</channelmodes>";
+ CUList* ulist = c->GetUsers();
+
+ for (CUList::iterator x = ulist->begin(); x != ulist->end(); ++x)