From d5f8701f633b22abfe86249650da22db021fd101 Mon Sep 17 00:00:00 2001 From: "tau.tihon@gmail.com" Date: Thu, 30 Aug 2012 15:54:51 +0000 Subject: Updated to V6 - "Stop" and "Progress report" functionality git-svn-id: http://mc-server.googlecode.com/svn/trunk@807 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- MCServer/Plugins/ChunkWorx/chunkworx_main.lua | 8 +- MCServer/Plugins/ChunkWorx/chunkworx_web.lua | 405 ++++++++++++++------------ 2 files changed, 228 insertions(+), 185 deletions(-) diff --git a/MCServer/Plugins/ChunkWorx/chunkworx_main.lua b/MCServer/Plugins/ChunkWorx/chunkworx_main.lua index 87702ff79..95d17aefc 100644 --- a/MCServer/Plugins/ChunkWorx/chunkworx_main.lua +++ b/MCServer/Plugins/ChunkWorx/chunkworx_main.lua @@ -5,6 +5,7 @@ OPERATION_CODE = 0 -- 0 = generation CX = 0 CZ = 0 CURRENT = 0 +TOTAL = 0 -- AREA Variables AreaStartX = -10 AreaStartZ = -10 @@ -23,7 +24,7 @@ function Initialize(Plugin) PLUGIN = Plugin PLUGIN:SetName("ChunkWorx") - PLUGIN:SetVersion(5) + PLUGIN:SetVersion(6) PluginManager = cRoot:Get():GetPluginManager() PluginManager:AddHook(PLUGIN, cPluginManager.E_PLUGIN_TICK) @@ -95,8 +96,8 @@ function Tick( DeltaTime ) CURRENT = 0 if (WW_instance == nil) then - LOG("" .. PLUGIN:GetName() .. " v" .. PLUGIN:GetVersion() .. ": works ABORTED") - LOG("" .. PLUGIN:GetName() .. " v" .. PLUGIN:GetVersion() .. ": NO WORLD found :(") + LOGERROR("" .. PLUGIN:GetName() .. " v" .. PLUGIN:GetVersion() .. ": works ABORTED") + LOGERROR("" .. PLUGIN:GetName() .. " v" .. PLUGIN:GetVersion() .. ": NO WORLD found :(") GENERATION_STATE = 0 end end @@ -108,6 +109,7 @@ function Tick( DeltaTime ) and WW_instance:GetLightingQueueLength() < 200 and (WW_instance:GetStorageSaveQueueLength() + WW_instance:GetStorageLoadQueueLength()) < 80) then local chunk_sum = (1+ AreaEndX - AreaStartX) * (1+ AreaEndZ - AreaStartZ) + TOTAL = chunk_sum LOG("" .. PLUGIN:GetName() .. " v" .. PLUGIN:GetVersion() .. ": PROCESSING 100 chunks, (" .. CURRENT .. "/" .. chunk_sum .. ")") for C = 1, 100 do if (GENERATION_STATE == 2) then WW_instance:GenerateChunk(CX, CZ) end diff --git a/MCServer/Plugins/ChunkWorx/chunkworx_web.lua b/MCServer/Plugins/ChunkWorx/chunkworx_web.lua index cc577bbbe..aeccb9719 100644 --- a/MCServer/Plugins/ChunkWorx/chunkworx_web.lua +++ b/MCServer/Plugins/ChunkWorx/chunkworx_web.lua @@ -8,209 +8,250 @@ end function HandleRequest_Generation( Request ) local Content = "" - - if ( Request.PostParams["FormSetWorld"] ) then - WORK_WORLD = Request.PostParams["FormWorldName"] - WW_instance = cRoot:Get():GetWorld(WORK_WORLD) + if (Request.PostParams["AGHRRRR"] ~= nil) then + GENERATION_STATE = 0 + WW_instance:SaveAllChunks() + WW_instance:UnloadUnusedChunks() + LOGERROR("" .. PLUGIN:GetName() .. " v" .. PLUGIN:GetVersion() .. ": works ABORTED by admin") end - - if( Request.PostParams["SelectWorld"] ~= nil - and Request.PostParams["WorldName"] ~= nil ) then -- World is selected! - WORK_WORLD = Request.PostParams["WorldName"] - WW_instance = cRoot:Get():GetWorld(WORK_WORLD) - end - - if(Request.PostParams["OperationGenerate"] ~= nil) then - OPERATION_CODE = 0 + --Content = Content .. "" + -- PROCESSING + -------------------------------------------------------------------------------------------------- + local function ProcessingContent() + local _small_content = "" + _small_content = _small_content .. "" + _small_content = _small_content .. "

World for operations:

"..WORK_WORLD + if (OPERATION_CODE == 0) then + _small_content = _small_content .. "

Operation:

Generation" + elseif (OPERATION_CODE == 1) then + _small_content = _small_content .. "

Operation:

Regeneration" + end + _small_content = _small_content .. "

Area:

["..AreaStartX..":"..AreaStartZ.."] ["..AreaEndX..":"..AreaEndZ.."]" + _small_content = _small_content .. "

Progress:

"..CURRENT.."/"..TOTAL + _small_content = _small_content .. "
" + _small_content = _small_content .. "
" + _small_content = _small_content .. "" + _small_content = _small_content .. "
" + return _small_content end - if(Request.PostParams["OperationReGenerate"] ~= nil) then - OPERATION_CODE = 1 + if (GENERATION_STATE == 2 or GENERATION_STATE == 4) then + Content = ProcessingContent() + return Content end - - if (GENERATION_STATE == 0) then - if( Request.PostParams["FormAreaStartX"] ~= nil - and Request.PostParams["FormAreaStartZ"] ~= nil - and Request.PostParams["FormAreaEndX"] ~= nil - and Request.PostParams["FormAreaEndZ"] ~= nil ) then --(Re)Generation valid! - -- COMMON (Re)gen - if( Request.PostParams["StartArea"]) then - AreaStartX = tonumber(Request.PostParams["FormAreaStartX"]) - AreaStartZ = tonumber(Request.PostParams["FormAreaStartZ"]) - AreaEndX = tonumber(Request.PostParams["FormAreaEndX"]) - AreaEndZ = tonumber(Request.PostParams["FormAreaEndZ"]) - - PLUGIN.IniFile:DeleteValue("Area data", "StartX") - PLUGIN.IniFile:DeleteValue("Area data", "StartZ") - PLUGIN.IniFile:DeleteValue("Area data", "EndX") - PLUGIN.IniFile:DeleteValue("Area data", "EndZ") - PLUGIN.IniFile:SetValueI("Area data", "StartX", AreaStartX) - PLUGIN.IniFile:SetValueI("Area data", "StartZ", AreaStartZ) - PLUGIN.IniFile:SetValueI("Area data", "EndX", AreaEndX) - PLUGIN.IniFile:SetValueI("Area data", "EndZ", AreaEndZ) - if (OPERATION_CODE == 0) then - GENERATION_STATE = 1 - elseif (OPERATION_CODE == 1) then - GENERATION_STATE = 3 + -- SELECTING + -------------------------------------------------------------------------------------------------- + if ( Request.PostParams["FormSetWorld"] ) then + WORK_WORLD = Request.PostParams["FormWorldName"] + WW_instance = cRoot:Get():GetWorld(WORK_WORLD) + end + + if( Request.PostParams["SelectWorld"] ~= nil + and Request.PostParams["WorldName"] ~= nil ) then -- World is selected! + WORK_WORLD = Request.PostParams["WorldName"] + WW_instance = cRoot:Get():GetWorld(WORK_WORLD) + end + + if(Request.PostParams["OperationGenerate"] ~= nil) then + OPERATION_CODE = 0 + end + if(Request.PostParams["OperationReGenerate"] ~= nil) then + OPERATION_CODE = 1 + end + + if (GENERATION_STATE == 0) then + if( Request.PostParams["FormAreaStartX"] ~= nil + and Request.PostParams["FormAreaStartZ"] ~= nil + and Request.PostParams["FormAreaEndX"] ~= nil + and Request.PostParams["FormAreaEndZ"] ~= nil ) then --(Re)Generation valid! + -- COMMON (Re)gen + if( Request.PostParams["StartArea"]) then + AreaStartX = tonumber(Request.PostParams["FormAreaStartX"]) + AreaStartZ = tonumber(Request.PostParams["FormAreaStartZ"]) + AreaEndX = tonumber(Request.PostParams["FormAreaEndX"]) + AreaEndZ = tonumber(Request.PostParams["FormAreaEndZ"]) + + PLUGIN.IniFile:DeleteValue("Area data", "StartX") + PLUGIN.IniFile:DeleteValue("Area data", "StartZ") + PLUGIN.IniFile:DeleteValue("Area data", "EndX") + PLUGIN.IniFile:DeleteValue("Area data", "EndZ") + PLUGIN.IniFile:SetValueI("Area data", "StartX", AreaStartX) + PLUGIN.IniFile:SetValueI("Area data", "StartZ", AreaStartZ) + PLUGIN.IniFile:SetValueI("Area data", "EndX", AreaEndX) + PLUGIN.IniFile:SetValueI("Area data", "EndZ", AreaEndZ) + if (OPERATION_CODE == 0) then + GENERATION_STATE = 1 + elseif (OPERATION_CODE == 1) then + GENERATION_STATE = 3 + end + PLUGIN.IniFile:WriteFile() + Content = ProcessingContent() + return Content end - PLUGIN.IniFile:WriteFile() end - end - if( Request.PostParams["FormRadialX"] ~= nil - and Request.PostParams["FormRadialZ"] ~= nil - and Request.PostParams["FormRadius"] ~= nil ) then --(Re)Generation valid! - -- COMMON (Re)gen - if( Request.PostParams["StartRadial"]) then - RadialX = tonumber(Request.PostParams["FormRadialX"]) - RadialZ = tonumber(Request.PostParams["FormRadialZ"]) - Radius = tonumber(Request.PostParams["FormRadius"]) - AreaStartX = RadialX - Radius - AreaStartZ = RadialZ - Radius - AreaEndX = RadialX + Radius - AreaEndZ = RadialZ + Radius - - PLUGIN.IniFile:DeleteValue("Radial data", "RadialX") - PLUGIN.IniFile:DeleteValue("Radial data", "RadialZ") - PLUGIN.IniFile:DeleteValue("Radial data", "Radius") - PLUGIN.IniFile:SetValueI("Radial data", "RadialX", RadialX) - PLUGIN.IniFile:SetValueI("Radial data", "RadialZ", RadialZ) - PLUGIN.IniFile:SetValueI("Radial data", "Radius", Radius) - if (OPERATION_CODE == 0) then - GENERATION_STATE = 1 - elseif (OPERATION_CODE == 1) then + if( Request.PostParams["FormRadialX"] ~= nil + and Request.PostParams["FormRadialZ"] ~= nil + and Request.PostParams["FormRadius"] ~= nil ) then --(Re)Generation valid! + -- COMMON (Re)gen + if( Request.PostParams["StartRadial"]) then + RadialX = tonumber(Request.PostParams["FormRadialX"]) + RadialZ = tonumber(Request.PostParams["FormRadialZ"]) + Radius = tonumber(Request.PostParams["FormRadius"]) + AreaStartX = RadialX - Radius + AreaStartZ = RadialZ - Radius + AreaEndX = RadialX + Radius + AreaEndZ = RadialZ + Radius + + PLUGIN.IniFile:DeleteValue("Radial data", "RadialX") + PLUGIN.IniFile:DeleteValue("Radial data", "RadialZ") + PLUGIN.IniFile:DeleteValue("Radial data", "Radius") + PLUGIN.IniFile:SetValueI("Radial data", "RadialX", RadialX) + PLUGIN.IniFile:SetValueI("Radial data", "RadialZ", RadialZ) + PLUGIN.IniFile:SetValueI("Radial data", "Radius", Radius) + if (OPERATION_CODE == 0) then + GENERATION_STATE = 1 + elseif (OPERATION_CODE == 1) then + GENERATION_STATE = 3 + end + PLUGIN.IniFile:WriteFile() + Content = ProcessingContent() + return Content + end + end + -- POINT REGEN! + if( Request.PostParams["FormPointX"] ~= nil + and Request.PostParams["FormPointZ"] ~= nil ) then --ReGeneration valid! + -- EXACT + if ( Request.PostParams["PointExact"] ~= nil) then + AreaStartX = tonumber(Request.PostParams["FormPointX"]) + AreaStartZ = tonumber(Request.PostParams["FormPointZ"]) + AreaEndX = AreaStartX + AreaEndZ = AreaStartZ + GENERATION_STATE = 3 + Content = ProcessingContent() + return Content + end + -- 3x3 + if ( Request.PostParams["Point3x3"] ~= nil) then + AreaStartX = tonumber(Request.PostParams["FormPointX"]) - 1 + AreaStartZ = tonumber(Request.PostParams["FormPointZ"]) - 1 + AreaEndX = AreaStartX + 2 + AreaEndZ = AreaStartZ + 2 GENERATION_STATE = 3 + Content = ProcessingContent() + return Content end - PLUGIN.IniFile:WriteFile() end - end - -- POINT REGEN! - if( Request.PostParams["FormPointX"] ~= nil - and Request.PostParams["FormPointZ"] ~= nil ) then --ReGeneration valid! - -- EXACT - if ( Request.PostParams["PointExact"] ~= nil) then - AreaStartX = tonumber(Request.PostParams["FormPointX"]) - AreaStartZ = tonumber(Request.PostParams["FormPointZ"]) + + local GetAreaByPlayer = function(Player) + -- Player is valid only within this function, it cannot be stord and used later! + AreaStartX = Player:GetChunkX() + AreaStartZ = Player:GetChunkZ() + end + -- PLAYERS REGEN! + if( Request.PostParams["PlayerExact"] ~= nil + and Request.PostParams["PlayerName"] ~= nil ) then -- Making BOOM! I meant, regenereate... + cRoot:Get():GetWorld(WORK_WORLD):DoWithPlayer(Request.PostParams["PlayerName"],GetAreaByPlayer) AreaEndX = AreaStartX AreaEndZ = AreaStartZ GENERATION_STATE = 3 + Content = ProcessingContent() + return Content end - -- 3x3 - if ( Request.PostParams["Point3x3"] ~= nil) then - AreaStartX = tonumber(Request.PostParams["FormPointX"]) - 1 - AreaStartZ = tonumber(Request.PostParams["FormPointZ"]) - 1 + if( Request.PostParams["Player3x3"] ~= nil + and Request.PostParams["PlayerName"] ~= nil ) then -- Making BOOM! I meant, regenereate... + cRoot:Get():GetWorld(WORK_WORLD):DoWithPlayer(Request.PostParams["PlayerName"],GetAreaByPlayer) + AreaStartX = AreaStartX - 1 + AreaStartZ = AreaStartZ - 1 AreaEndX = AreaStartX + 2 AreaEndZ = AreaStartZ + 2 GENERATION_STATE = 3 + Content = ProcessingContent() + return Content end end - local GetAreaByPlayer = function(Player) - -- Player is valid only within this function, it cannot be stord and used later! - AreaStartX = Player:GetChunkX() - AreaStartZ = Player:GetChunkZ() + --Content = Content .. "

World for operations: " .. WORK_WORLD .. "

" + --Content = Content .. "
" + --Content = Content .. "" + --Content = Content .. "
" + + -- SELECTING WORK_WORLD + Content = Content .. "

World for operations: " .. WORK_WORLD .. "

" + Content = Content .. "" + local WorldNum = 0 + local AddWorldToTable = function(World) + WorldNum = WorldNum + 1 + Content = Content .. "" + Content = Content .. "" + Content = Content .. "" + Content = Content .. "" + Content = Content .. "" end - -- PLAYERS REGEN! - if( Request.PostParams["PlayerExact"] ~= nil - and Request.PostParams["PlayerName"] ~= nil ) then -- Making BOOM! I meant, regenereate... - cRoot:Get():GetWorld(WORK_WORLD):DoWithPlayer(Request.PostParams["PlayerName"],GetAreaByPlayer) - AreaEndX = AreaStartX - AreaEndZ = AreaStartZ - GENERATION_STATE = 3 + cRoot:Get():ForEachWorld(AddWorldToTable) + if( WorldNum == 0 ) then + Content = Content .. "" end - if( Request.PostParams["Player3x3"] ~= nil - and Request.PostParams["PlayerName"] ~= nil ) then -- Making BOOM! I meant, regenereate... - cRoot:Get():GetWorld(WORK_WORLD):DoWithPlayer(Request.PostParams["PlayerName"],GetAreaByPlayer) - AreaStartX = AreaStartX - 1 - AreaStartZ = AreaStartZ - 1 - AreaEndX = AreaStartX + 2 - AreaEndZ = AreaStartZ + 2 - GENERATION_STATE = 3 + Content = Content .. "
" .. WorldNum .. "." .. World:GetName() .. "" .. Button_World(World:GetName()) .. "
No worlds! O_O
" + Content = Content .. "
" + + -- SELECTING OPERATION + if (OPERATION_CODE == 0) then + Content = Content .. "

Operation: Generation

" + elseif (OPERATION_CODE == 1) then + Content = Content .. "

Operation: Regeneration

" end - end - - --Content = Content .. "

World for operations: " .. WORK_WORLD .. "

" - --Content = Content .. "
" - --Content = Content .. "" - --Content = Content .. "
" - - -- SELECTING WORK_WORLD - Content = Content .. "

World for operations: " .. WORK_WORLD .. "

" - Content = Content .. "" - local WorldNum = 0 - local AddWorldToTable = function(World) - WorldNum = WorldNum + 1 - Content = Content .. "" - Content = Content .. "" - Content = Content .. "" - Content = Content .. "" - Content = Content .. "" - end - cRoot:Get():ForEachWorld(AddWorldToTable) - if( WorldNum == 0 ) then - Content = Content .. "" - end - Content = Content .. "
" .. WorldNum .. "." .. World:GetName() .. "" .. Button_World(World:GetName()) .. "
No worlds! O_O
" - Content = Content .. "
" - - -- SELECTING OPERATION - if (OPERATION_CODE == 0) then - Content = Content .. "

Operation: Generation

" - elseif (OPERATION_CODE == 1) then - Content = Content .. "

Operation: Regeneration

" - end - Content = Content .. "
" - Content = Content .. "" - Content = Content .. "" - Content = Content .. "
" - - -- SELECTING AREA - Content = Content .. "

Area:

Start X, Start Z; End X, End Z" - Content = Content .. "
" - Content = Content .. "" - Content = Content .. "" - Content = Content .. "" - Content = Content .. "
" - - -- SELECTING RADIAL - Content = Content .. "

Radial:

Center X, Center Z, Raduis (0 to any)" - Content = Content .. "
" - Content = Content .. "" - Content = Content .. "" - Content = Content .. "
" - Content = Content .. "
" - Content = Content .. "
" - Content = Content .. "
" - - -- SELECTING POINT - Content = Content .. "

Point regeneration:

X, Z" - Content = Content .. "
" - Content = Content .. "" - Content = Content .. "" - Content = Content .. "" - Content = Content .. "
" - - -- SELECTING PLAYERS - Content = Content .. "

Player-based regeneration:

" - Content = Content .. "" - local PlayerNum = 0 - local AddPlayerToTable = function( Player ) - PlayerNum = PlayerNum + 1 - Content = Content .. "" - Content = Content .. "" - Content = Content .. "" - Content = Content .. "" - Content = Content .. "" - end - if (cRoot:Get():GetWorld(WORK_WORLD) == nil) then - Content = Content .. "" - else - cRoot:Get():GetWorld(WORK_WORLD):ForEachPlayer( AddPlayerToTable ) - if( PlayerNum == 0 ) then - Content = Content .. "" + Content = Content .. "" + Content = Content .. "" + Content = Content .. "" + Content = Content .. "" + + -- SELECTING AREA + Content = Content .. "

Area:

Start X, Start Z; End X, End Z" + Content = Content .. "" + Content = Content .. "" + Content = Content .. "" + Content = Content .. "" + Content = Content .. "" + + -- SELECTING RADIAL + Content = Content .. "

Radial:

Center X, Center Z, Raduis (0 to any)" + Content = Content .. "" + Content = Content .. "" + Content = Content .. "" + Content = Content .. "" + Content = Content .. "
" + Content = Content .. "
" + Content = Content .. "
" + + -- SELECTING POINT + Content = Content .. "

Point regeneration:

X, Z" + Content = Content .. "" + Content = Content .. "" + Content = Content .. "" + Content = Content .. "" + Content = Content .. "" + + -- SELECTING PLAYERS + Content = Content .. "

Player-based regeneration:

" + Content = Content .. "
" .. PlayerNum .. "." .. Player:GetName() .. "" .. Buttons_Player(Player:GetName()) .. "
Incorrect world selection
No connected players
" + local PlayerNum = 0 + local AddPlayerToTable = function( Player ) + PlayerNum = PlayerNum + 1 + Content = Content .. "" + Content = Content .. "" + Content = Content .. "" + Content = Content .. "" + Content = Content .. "" end - end - Content = Content .. "
" .. PlayerNum .. "." .. Player:GetName() .. "" .. Buttons_Player(Player:GetName()) .. "
" - Content = Content .. "
" - - + if (cRoot:Get():GetWorld(WORK_WORLD) == nil) then + Content = Content .. "Incorrect world selection" + else + cRoot:Get():GetWorld(WORK_WORLD):ForEachPlayer( AddPlayerToTable ) + if( PlayerNum == 0 ) then + Content = Content .. "No connected players" + end + end + Content = Content .. "" + Content = Content .. "
" return Content end \ No newline at end of file -- cgit v1.2.3