#include <adminlib>
 
new STRING_VERSION[MAX_DATA_LENGTH] = "2.50.50";
 
public admin_kickall(HLCommand,HLData,HLUserName,UserIndex) {
    new Data[MAX_DATA_LENGTH];
    convert_string(HLData,Data,MAX_DATA_LENGTH);
    strstripquotes(Data);
    if(Data[0]) {
        setstrvar("sv_password",Data);
    }
    set_timer("TimerHandleKickall",10,0,Data);
    say("The server is closed for public now. You will get kicked in 10 seconds.");
    centersay("The server is closed for public now. You will get kicked in 10 seconds.",10,250,10,10);
    return PLUGIN_HANDLED;
}
 
public TimerHandleKickall(Timer,Repeat,HLUser,HLParam) {
    new Text[MAX_TEXT_LENGTH];
    new Maxplayers = maxplayercount();
    new Name[MAX_NAME_LENGTH];
    new Data[MAX_DATA_LENGTH];
    new i;
    for(i=1;i<=Maxplayers;i++) {
        if(playerinfo(i,Name,MAX_NAME_LENGTH) && !auth(Name)) {
            kick(Name);
        }
    }
    convert_string(HLParam,Data,MAX_DATA_LENGTH);
    if(Data[0]) {
        snprintf(Text,MAX_DATA_LENGTH,"Everybody was kicked.^nThe passwort is now %s.",Data);
    } else {
        snprintf(Text,MAX_DATA_LENGTH,"Everybody was kicked.",Data);
    }
    typesay(Text,10,10,250,250);
}
 
public plugin_init() {
    plugin_registerinfo("Rinde's kickall plugin","Kicks everybody from server.",STRING_VERSION);
    plugin_registercmd("admin_kickall","admin_kickall",ACCESS_RCON,"admin_kickall [<password>]: Kicks everyone except admins and sets password.");
    return PLUGIN_CONTINUE;
}