summaryrefslogblamecommitdiffstats
path: root/MCServer/Plugins/Core/rank-groups.lua
blob: 6233daa299fb161c1490991f1cf3f12ea47c9cde (plain) (tree)
1
2
3
4
5
6
7
8
9
10
                                           
 
                                                  
                                                                      

                           



                                                   
           
 
                                                 
                                                                    

                           
 
                                              

                                                  
           


                                                            
                            
 

                                                    
                                                                                            


                                                        
 


                                                  
 
                                              

                                                                                           
                   
 

   
                                             

                                                  
                                             
                                                               
           
 


                                        
                                                              
           



                                                               
                   

   
function HandleRankCommand( Split, Player )

	if Split[2] == nil or Split[3] == nil then
		SendMessage( Player, "Usage: /rank [Player] [Group]" )
		return true
	end

	local GroupsIni = cIniFile( "groups.ini" )
	if GroupsIni:ReadFile() == false then
		LOG( "Could not read groups.ini!" )
	end

	if GroupsIni:FindKey(Split[3]) == -1 then
		SendMessageFailure( Player, "Group does not exist" )
		return true
	end

	local UsersIni = cIniFile("users.ini")
	if UsersIni:ReadFile() == false then
		LOG( "Could not read users.ini!" )
	end

	UsersIni:DeleteKey( Split[2] )
	UsersIni:GetValueSet( Split[2], "Groups", Split[3] )
	UsersIni:WriteFile()

	local loopPlayers = function( Player )
		if Player:GetName() == Split[2] then
			SendMessageSuccess( Player, "You were moved to group " .. Split[3] )
			Player:LoadPermissionsFromDisk()
		end
	end

	local loopWorlds = function ( World )
		World:ForEachPlayer( loopPlayers )
	end

	cRoot:Get():ForEachWorld( loopWorlds )
	SendMessageSuccess( Player, "Player " .. Split[2] .. " Was moved to " .. Split[3] )

	return true

end

function HandleGroupsCommand( Split, Player )

	local GroupsIni = cIniFile( "groups.ini" )
	if GroupsIni:ReadFile() == false then
		SendMessageFailure( Player, "No groups found" )
	end

	Number = GroupsIni:NumKeys() - 1
	Groups = {}
	for i=0, Number do
		table.insert( Groups, GroupsIni:KeyName( i ) )
	end

	SendMessage( Player, "Found " .. #Groups .. " groups" )
	SendMessage( Player, table.concat( Groups, " " ) )

	return true

end