2012-08-20 12:36:40 -04:00
-- Some HTML helper functions
local function HTML_Option ( value , text , selected )
if ( selected == true ) then
return " <option value= \" " .. value .. " \" selected> " .. text .. " </option> "
else
return " <option value= \" " .. value .. " \" > " .. text .. " </option> "
end
end
local function HTML_Select_On_Off ( name , defaultValue )
local Content = " "
Content = Content .. " <select name= \" " .. name .. " \" > "
Content = Content .. HTML_Option ( " 1 " , " On " , defaultValue == 1 )
Content = Content .. HTML_Option ( " 0 " , " Off " , defaultValue == 0 )
Content = Content .. " </select> "
return Content
end
local function ShowGeneralSettings ( Request )
local Content = " "
local InfoMsg = nil
local SettingsIni = cIniFile ( " settings.ini " )
if ( SettingsIni : ReadFile ( ) == false ) then
InfoMsg = " <b style= \" color: red; \" >ERROR: Could not read settings.ini!</b> "
end
if ( Request.PostParams [ " general_submit " ] ~= nil ) then
SettingsIni : SetValue ( " Server " , " Description " , Request.PostParams [ " Server_Description " ] , false )
if ( tonumber ( Request.PostParams [ " Server_MaxPlayers " ] ) ~= nil ) then
SettingsIni : SetValue ( " Server " , " MaxPlayers " , Request.PostParams [ " Server_MaxPlayers " ] , false )
end
if ( tonumber ( Request.PostParams [ " Server_Port " ] ) ~= nil ) then
SettingsIni : SetValue ( " Server " , " Port " , Request.PostParams [ " Server_Port " ] , false )
end
if ( tonumber ( Request.PostParams [ " Authentication_Authenticate " ] ) ~= nil ) then
SettingsIni : SetValue ( " Authentication " , " Authenticate " , Request.PostParams [ " Authentication_Authenticate " ] , false )
end
if ( SettingsIni : WriteFile ( ) == false ) then
InfoMsg = " <b style= \" color: red; \" >ERROR: Could not write to settings.ini!</b> "
else
InfoMsg = " <b style= \" color: green; \" >INFO: Successfully saved changes to settings.ini</b> "
end
end
Content = Content .. " <form method= \" POST \" > "
2012-08-21 07:10:54 -04:00
Content = Content .. " <h4>General Settings</h4> "
2012-08-20 12:36:40 -04:00
if ( InfoMsg ~= nil ) then
Content = Content .. " <p> " .. InfoMsg .. " </p> "
end
Content = Content .. " <table> "
Content = Content .. " <th colspan= \" 2 \" >Server</th> "
Content = Content .. " <tr><td style= \" width: 50%; \" >Description:</td> "
Content = Content .. " <td><input type= \" text \" name= \" Server_Description \" value= \" " .. SettingsIni : GetValue ( " Server " , " Description " ) .. " \" ></td></tr> "
Content = Content .. " <tr><td>Max Players:</td> "
Content = Content .. " <td><input type= \" text \" name= \" Server_MaxPlayers \" value= \" " .. SettingsIni : GetValue ( " Server " , " MaxPlayers " ) .. " \" ></td></tr> "
Content = Content .. " <tr><td>Port:</td> "
Content = Content .. " <td><input type= \" text \" name= \" Server_Port \" value= \" " .. SettingsIni : GetValue ( " Server " , " Port " ) .. " \" ></td></tr> "
Content = Content .. " </table><br> "
Content = Content .. " <table> "
Content = Content .. " <th colspan= \" 2 \" >Authentication</th> "
Content = Content .. " <tr><td style= \" width: 50%; \" >Authenticate:</td> "
Content = Content .. " <td> " .. HTML_Select_On_Off ( " Authentication_Authenticate " , SettingsIni : GetValueI ( " Authentication " , " Authenticate " ) ) .. " </td></tr> "
2012-08-20 15:10:19 -04:00
Content = Content .. " </table><br> "
2012-08-20 12:36:40 -04:00
2012-08-20 15:10:19 -04:00
Content = Content .. " <input type= \" submit \" value= \" Save Settings \" name= \" general_submit \" > WARNING: Any changes made here might require a server restart in order to be applied! "
2012-08-20 12:36:40 -04:00
Content = Content .. " </form> "
return Content
end
local function ShowMonstersSettings ( Request )
2012-08-20 15:10:19 -04:00
local Content = " "
local InfoMsg = nil
local SettingsIni = cIniFile ( " settings.ini " )
if ( SettingsIni : ReadFile ( ) == false ) then
InfoMsg = " <b style= \" color: red; \" >ERROR: Could not read settings.ini!</b> "
end
if ( Request.PostParams [ " monsters_submit " ] ~= nil ) then
if ( tonumber ( Request.PostParams [ " Monsters_AnimalsOn " ] ) ~= nil ) then
SettingsIni : SetValue ( " Monsters " , " AnimalsOn " , Request.PostParams [ " Monsters_AnimalsOn " ] , false )
end
if ( tonumber ( Request.PostParams [ " Monsters_AnimalSpawnInterval " ] ) ~= nil ) then
SettingsIni : SetValue ( " Monsters " , " AnimalSpawnInterval " , Request.PostParams [ " Monsters_AnimalSpawnInterval " ] , false )
end
SettingsIni : SetValue ( " Monsters " , " Types " , Request.PostParams [ " Monsters_Types " ] , false )
if ( SettingsIni : WriteFile ( ) == false ) then
InfoMsg = " <b style= \" color: red; \" >ERROR: Could not write to settings.ini!</b> "
else
InfoMsg = " <b style= \" color: green; \" >INFO: Successfully saved changes to settings.ini</b> "
end
end
Content = Content .. " <form method= \" POST \" > "
2012-08-21 07:10:54 -04:00
Content = Content .. " <h4>Monsters Settings</h4> "
2012-08-20 15:10:19 -04:00
if ( InfoMsg ~= nil ) then
Content = Content .. " <p> " .. InfoMsg .. " </p> "
end
Content = Content .. " <table> "
Content = Content .. " <th colspan= \" 2 \" >Monsters</th> "
Content = Content .. " <tr><td style= \" width: 50%; \" >Animals On:</td> "
Content = Content .. " <td> " .. HTML_Select_On_Off ( " Monsters_AnimalsOn " , SettingsIni : GetValueI ( " Monsters " , " AnimalsOn " ) ) .. " </td></tr> "
Content = Content .. " <tr><td>Animal Spawn Interval:</td> "
Content = Content .. " <td><input type= \" text \" name= \" Monsters_AnimalSpawnInterval \" value= \" " .. SettingsIni : GetValue ( " Monsters " , " AnimalSpawnInterval " ) .. " \" ></td></tr> "
Content = Content .. " <tr><td>Monster Types:</td> "
Content = Content .. " <td><input type= \" text \" name= \" Monsters_Types \" value= \" " .. SettingsIni : GetValue ( " Monsters " , " Types " ) .. " \" ></td></tr> "
Content = Content .. " </table><br> "
Content = Content .. " <input type= \" submit \" value= \" Save Settings \" name= \" monsters_submit \" > WARNING: Any changes made here might require a server restart in order to be applied! "
Content = Content .. " </form> "
return Content
2012-08-20 12:36:40 -04:00
end
local function ShowWorldsSettings ( Request )
return " <p><b>Worlds Settings</b></p> "
end
function HandleRequest_ServerSettings ( Request )
local Content = " "
Content = Content .. " <p><b>Server Settings</b></p> "
Content = Content .. " <table> "
Content = Content .. " <tr> "
Content = Content .. " <td><a href= \" ?tab=General \" >General</a></td> "
Content = Content .. " <td><a href= \" ?tab=Monsters \" >Monsters</a></td> "
Content = Content .. " <td><a href= \" ?tab=Worlds \" >Worlds</a></td> "
Content = Content .. " </tr> "
Content = Content .. " </table> "
Content = Content .. " <br> "
if ( Request.Params [ " tab " ] == " Monsters " ) then
Content = Content .. ShowMonstersSettings ( Request )
elseif ( Request.Params [ " tab " ] == " Worlds " ) then
Content = Content .. ShowWorldsSettings ( Request )
else
Content = Content .. ShowGeneralSettings ( Request ) -- Default to general settings
end
return Content
end