* eg: +h can remove +hv and users with no modes. +a can remove +aohv and users with no modes.
*/
-Server *Srv;
+static Server *Srv;
/* This little function just converts a chanmode character (~ & @ & +) into an integer (5 4 3 2 1) */
/* XXX - this could be handy in the core, so it can be used elsewhere */
-int chartolevel(std::string privs)
+int chartolevel(std::string &privs)
{
- /* XXX - if we just passed this a char, we could do a switch. Look nicer, really. */
-
- if (privs == "~")
- return 5;
- else if (privs == "&")
- return 4;
- else if (privs == "@")
- return 3;
- else if (privs == "%")
- return 2;
- else
- return 1;
+ const char* n = privs.c_str();
+
+ switch (*n)
+ {
+ case '~':
+ return 5;
+ break;
+ case '&':
+ return 4;
+ break;
+ case '@':
+ return 3;
+ break;
+ case '%':
+ return 2;
+ break;
+ default:
+ return 1;
+ break;
+ }
+ return 1;
}
class cmd_remove : public command_t
/* For now, we'll let everyone remove their level and below, eg ops can remove ops, halfops, voices, and those with no mode (no moders actually are set to 1) */
if(ulevel >= tlevel)
{
- Srv->PartUserFromChannel(target,std::string(parameters[1]), "Remove by "+std::string(user->nick)+":"+result);
+ Srv->PartUserFromChannel(target,std::string(parameters[1]), "Removed by "+std::string(user->nick)+":"+result);
Srv->SendTo(NULL,user,"NOTICE "+std::string(channel->name)+" : "+std::string(user->nick)+" removed "+std::string(target->nick)+ " from the channel");
Srv->SendTo(NULL,target,"NOTICE "+std::string(target->nick)+" :*** "+std::string(user->nick)+" removed you from "+std::string(channel->name)+" with the message:"+std::string(result));
}