local meta = FindMetaTable( "Player" )
if (!meta) then return end
/*---------------------------------------------------------
Is an Admin
---------------------------------------------------------*/
function meta:IsAdmin()
if ( self:IsSuperAdmin() ) then return true end
if ( self:IsUserGroup("admin") ) then return true end
return false
end
/*---------------------------------------------------------
Is a Super Admin
---------------------------------------------------------*/
function meta:IsSuperAdmin()
// We're always a super admin in SP
if ( SinglePlayer() ) then return true end
// Always a super admin if this is our server
if ( self:IsListenServerHost() ) then return true end
return ( self:IsUserGroup("superadmin") )
end
/*---------------------------------------------------------
Is Usergroup X
If you're really customizing your server you can add custom
usergroups and modify your scripts to accomodate them easily
---------------------------------------------------------*/
function meta:IsUserGroup( name )
return ( self:GetTable().UserGroup == name )
end
/*---------------------------------------------------------
SetUserGroup
Sets the user's group (Server only)
---------------------------------------------------------*/
function meta:SetUserGroup( name )
self:GetTable().UserGroup = name
if (SERVER) then
self:SendLua( "LocalPlayer():SetUserGroup( \""..name.."\" )" )
end
end
/*---------------------------------------------------------
This is the meat and spunk of the player auth system
---------------------------------------------------------*/
if ( SERVER ) then
// SteamIds table..
// STEAM_0:1:7099:
// name = garry
// group = superadmin
local SteamIDs = {}
// Load the users file
local UsersKV = util.KeyValuesToTable( file.Read( "../settings/users.txt" ) )
// Extract the data into the SteamIDs table
for key, tab in pairs( UsersKV ) do
for name, steamid in pairs( tab ) do
SteamIDs[ steamid ] = {}
SteamIDs[ steamid ].name = name
SteamIDs[ steamid ].group = key
end
end
PrintTable( SteamIDs )
//local function PlayerSpawn( pl )
// local steamid = pl:SteamID()
// if ( SteamIDs[ steamid ] == nil ) then
// pl:SetUserGroup( "user" )
// return
// end
// pl:SetUserGroup( SteamIDs[ steamid ].group )
// pl:PrintMessage( HUD_PRINTTALK, "Hey '"..SteamIDs[ steamid ].name.."' - You're in the '"..SteamIDs[ steamid ].group.."' group on this server." )
//end
//hook.Add( "PlayerInitialSpawn", "PlayerAuthSpawn", PlayerSpawn )
//end
local function PlayerSpawn(pl)
local steamid = pl:GetName()
pl:SetUserGroup("user")
Pl:PrintMessage(HUD_.PRINTTALK, "Hey User")
return
hook.Add("PlayerInitialSpawn", "PlayerAuthSpawn", PlayerSpawn)
end