All pastes #591443 Raw Edit

Someone

public text v1 · immutable
#591443 ·published 2007-06-27 06:37 UTC
rendered paste body



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