From 9790a6817cb4f1b4821de9af2630558cb5df882f Mon Sep 17 00:00:00 2001 From: "madmaxoft@gmail.com" Date: Fri, 7 Jun 2013 16:28:37 +0000 Subject: ProtectionAreas: Implemented all command handlers. They still call unimplemented methods in the DB, and haven't been properly tested git-svn-id: http://mc-server.googlecode.com/svn/trunk@1561 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- .../Plugins/ProtectionAreas/ProtectionAreas.lua | 36 ++++++++++++++++++++-- 1 file changed, 33 insertions(+), 3 deletions(-) (limited to 'MCServer/Plugins/ProtectionAreas/ProtectionAreas.lua') diff --git a/MCServer/Plugins/ProtectionAreas/ProtectionAreas.lua b/MCServer/Plugins/ProtectionAreas/ProtectionAreas.lua index 603b7a87f..744ea7e9c 100644 --- a/MCServer/Plugins/ProtectionAreas/ProtectionAreas.lua +++ b/MCServer/Plugins/ProtectionAreas/ProtectionAreas.lua @@ -1,6 +1,6 @@ -- ProtectionAreas.lua --- Defines the main plugin entrypoint +-- Defines the main plugin entrypoint, as well as some utility functions @@ -26,8 +26,38 @@ function Initialize(a_Plugin) InitializeHooks(a_Plugin); InitializeCommandHandlers(); - -- TODO: We might be reloading, so there may be players already present in the server - -- Reload areas for all present players + -- We might be reloading, so there may be players already present in the server; reload all of them + local function ReloadPlayers(a_World) + ReloadAllPlayersInWorld(a_World:GetName()); + end + cRoot:Get():ForEachWorld(ReloadPlayers); return true; end + + + + + +--- Loads a cPlayerAreas object from the DB for the player, and assigns it to the player map +function LoadPlayerAreas(a_Player) + local PlayerID = a_Player:GetUniqueID(); + local PlayerX = math.floor(a_Player:GetPosX()); + local PlayerZ = math.floor(a_Player:GetPosZ()); + local WorldName = a_Player:GetWorld():GetName(); + g_PlayerAreas[PlayerID] = g_Storage:LoadPlayerAreas(a_Player:GetName(), PlayerX, PlayerZ, WorldName); +end + + + + + +function ReloadAllPlayersInWorld(a_WorldName) + local World = cRoot:Get():GetWorld(a_WorldName); + World:ForEachPlayer(LoadPlayerAreas); +end + + + + + -- cgit v1.2.3