//Author: Jakkee
//Version: 1.0
function On_PluginInit() {
if (!Plugin.IniExists("Settings")){
var ini = Plugin.CreateIni("Settings");
ini.AddSetting("Settings", "Enabled", "true");
ini.AddSetting("Settings", "ServerName", "WhiteList");
ini.AddSetting("Settings", "DisconnectMSG0", "You are not whitelisted, to be whitelisted");
ini.AddSetting("Settings", "DisconnectMSG1", "Visit: http://google.com/forums/whitelist");
}
var ini = Plugin.GetIni("Settings");
DataStore.Add("WhiteList", "Enabled", ini.GetSetting("Settings", "Enabled")=="true"?true:false);
DataStore.Add("WhiteList", "ServerName", ini.GetSetting("Settings", "ServerName"));
DataStore.Add("WhiteList", "MSG0", ini.GetSetting("Settings", "DisconnectMSG0"));
DataStore.Add("WhiteList", "MSG1", ini.GetSetting("Settings", "DisconnectMSG1"));
}
var WhiteList = {
get Enabled() { return DataStore.Get("WhiteList", "Enabled");},
get ServerName() { return DataStore.Get("WhiteList", "ServerName");},
get MSG0() { return DataStore.Get("WhiteList", "MSG0");},
get MSG1() { return DataStore.Get("WhiteList", "MSG1");}
}
function On_Command(Player, cmd, args){
switch (cmd){
case "whitelist":
if (Player.Admin){
if (args.Length == 0){
Player.MessageFrom(WhiteList.ServerName, "usage: /whitelist [enable/disable]");
}
else if (args.Length == 1){
if(args[0] == "enable"){
if (WhiteList.Enabled){
Player.MesageFrom(WhiteList.ServerName, "Already enabled");
}else{
var ini = Plugin.GetIni("Settings");
ini.DeleteSetting("Settings", "Enabled");
ini.AddSetting("Settings", "Enabled", "true");
DataStore.Remove("WhiteList", "Enabled");
DataStore.Add("WhiteList", "Enabled", "true"=="true"?true:false);
Player.MessageFrom(WhiteList.ServerName, "WhiteList Enabled");
}
}
else if(args[0] == "disable"){
if (WhiteList.Enabled){
var ini = Plugin.GetIni("Settings");
ini.DeleteSetting("Settings", "Enabled");
ini.AddSetting("Settings", "Enabled", "false");
DataStore.Remove("WhiteList", "Enabled");
DataStore.Add("WhiteList", "Enabled", "false"=="true"?true:false);
Player.MessageFrom(WhiteList.ServerName, "WhiteList Disabled");
}else{
Player.MesageFrom(WhiteList.ServerName, "Already disabled");
}
}else{
Player.MessageFrom(WhiteList.ServerName, "unknown command");
}
}else{
Player.MessageFrom(WhiteList.ServerName, "usage: /whitelist [enable/disable]");
}
}else{
Player.MessageFrom(WhiteList.ServerName, "You don't have access to that command!");
}
case "whitelistadd":
if (Player.Admin){
if(args.Length == 0){
Player.Message("Usage: /whitelistadd [SteamID]");
}
if(args.Length == 1){
var text = argsToText(args);
if (!isWhiteListed(text)){
var Date = Plugin.GetDate();
var ini = getUsersIni();
ini.AddSetting("WhiteListed", text, "|Date: "+Date+"||By: "+Player.Name);
ini.Save();
Player.MessageFrom(WhiteList.ServerName, text + " has been whitelisted");
}else{
Player.MessageFrom(WhiteList.ServerName, text + " is already whitelist");
}
}
if(args.Length > 1) {
Player.MessageFrom(WhiteList.ServerName, "Too many arguments");
}
}else{
Player.MessageFrom(WhiteList.ServerName, "You don't have access to that command!");
}
break;
case "whitelistremove":
if (Player.Admin){
if(args.Length == 0){
Player.Message("Usage: /whitelistremove [SteamID]");
}
if(args.Length == 1){
var text = argsToText(args);
if (isWhiteListed(text)){
var ini = getUsersIni();
ini.DeleteSetting("WhiteListed", text);
ini.Save();
Player.MessageFrom(WhiteList.ServerName, text + " has been removed from the whitelist");
}else{
Player.MessageFrom(WhiteList.ServerName, text + " is not on the whitelist");
}
}
if(args.Length > 1) {
Player.MessageFrom(WhiteList.ServerName, "Too many arguments");
}
}else{
Player.MessageFrom(WhiteList.ServerName, "You don't have access to that command!");
}
break;
}
}
function On_PlayerConnected(Player){
if(!isWhiteListed(Player)){
Player.Notice("You are not whitelisted");
Player.Message(WhiteList.MSG0);
Player.Message(WhiteList.MSG1);
Player.Disconnect();
}
}
function getUsersIni(){
if (!Plugin.IniExists("WhiteList")){
var ini = Plugin.CreateIni("WhiteList");
ini.Save();
}
return Plugin.GetIni("WhiteList");
}
function isWhiteListed(Player){
var ini = getUserIni();
if (ini.GetSetting("WhiteList", Player.SteamID) != null){
return true;
}else{
return false;
}
}