__author__ = 'DreTaX'
__version__ = '1.0'
import clr
clr.AddReferenceByPartialName("Fougerite")
import Fougerite
"""
Class
"""
class Whitelist:
"""
Methods
"""
red = "[color #FF0000]"
green = "[color #009900]"
def On_PluginInit(self):
self.Whitelist()
self.DisconnectInfo()
def Whitelist(self):
if not Plugin.IniExists("Whitelist"):
ini = Plugin.CreateIni("Whitelist")
ini.Save()
return Plugin.GetIni("Whitelist")
def DisconnectInfo(self):
if not Plugin.IniExists("DisconnectInfo"):
ini = Plugin.CreateIni("DisconnectInfo")
ini.AddSetting("DisconnectInfo", "Message", "You aren't on whitelist!")
ini.Save()
return Plugin.GetIni("DisconnectInfo")
def TrytoGrabID(self, Player):
try:
id = Player.SteamID
return id
except:
return None
def isMod(self, id):
if DataStore.ContainsKey("Moderators", id):
return True
return False
def On_PlayerConnected(self, Player):
id = self.TrytoGrabID(Player)
if id is None:
try:
Player.Disconnect()
except:
pass
return
Plugin.Log("Whitelistdebuglog", Player.Name + " joined. ID: " + id)
if Player.Admin or self.isMod(id):
Plugin.Log("Whitelistdebuglog", Player.Name + " is an admin. Ignoring checks")
return
name = Player.Name
whitelist = self.Whitelist()
checkwl = whitelist.GetSetting("WhiteList", id)
Plugin.Log("Whitelistdebuglog", "Whitelist value is : " + str(checkwl))
if int(checkwl) != 1:
Plugin.Log("Whitelistdebuglog", Player.Name + " should be disconnected?")
ini = self.DisconnectInfo()
msg = ini.GetSetting("DisconnectInfo", "Message")
for x in xrange(1, 4):
Player.Message(self.red + msg)
Player.Message(self.red + "Your ID: " + self.green + id)
Plugin.Log("WhiteListJoinLog", str(name) + " Tried to join with id: " + id)
try:
Player.Disconnect()
except:
pass
def On_Command(self, Player, cmd, args):
if not Player.Admin and not self.isMod(Player.SteamID):
return
if cmd == "addtowl":
if len(args) != 1:
Player.Message("Usage: /addtowl id")
Player.Message("Example: /addtowl 7656119796999999")
return
ini = self.Whitelist()
idtoadd = str(args[0])
if not idtoadd.isdigit():
Player.Message("ID can only contain numbers")
return
ini.AddSetting("WhiteList", idtoadd, "1")
ini.Save()
elif cmd == "delfromwl":
if len(args) != 1:
Player.Message("Usage: /delfromwl id")
Player.Message("Example: /delfromwl 7656119796999999")
return
ini = self.Whitelist()
idtodel = str(args[0])
if not idtodel.isdigit():
Player.Message("ID can only contain numbers")
return
ini.DeleteSetting("WhiteList", idtodel)
ini.Save()
Player.Message("ID: " + idtodel + " removed.")
elif cmd == "lwhitelist":
ini = self.Whitelist()
enum = ini.EnumSection("WhiteList")
Player.Message("Current IDs on whitelist: ")
for id in enum:
Player.Message("- " + id)