summaryrefslogtreecommitdiffstats
path: root/MCServer/Plugins/Core/rank-groups.lua
diff options
context:
space:
mode:
Diffstat (limited to 'MCServer/Plugins/Core/rank-groups.lua')
-rw-r--r--MCServer/Plugins/Core/rank-groups.lua63
1 files changed, 63 insertions, 0 deletions
diff --git a/MCServer/Plugins/Core/rank-groups.lua b/MCServer/Plugins/Core/rank-groups.lua
new file mode 100644
index 000000000..6233daa29
--- /dev/null
+++ b/MCServer/Plugins/Core/rank-groups.lua
@@ -0,0 +1,63 @@
+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