From f384f8019567f939ec5b6c8ae1be55caa812261d Mon Sep 17 00:00:00 2001 From: faketruth Date: Sat, 28 Jan 2012 15:44:23 +0000 Subject: Old Core plugin is deprecated! Begone! git-svn-id: http://mc-server.googlecode.com/svn/trunk@183 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- Plugins/Core.lua | 775 ------------------------------------------------------- 1 file changed, 775 deletions(-) delete mode 100644 Plugins/Core.lua (limited to 'Plugins') diff --git a/Plugins/Core.lua b/Plugins/Core.lua deleted file mode 100644 index dce59d4fa..000000000 --- a/Plugins/Core.lua +++ /dev/null @@ -1,775 +0,0 @@ ----- Some settings ----- -SHOW_PLUGIN_NAMES = true -- If true, plugin name will be shown before commands - -- This is overwritten in the Initialize() function ------------------------- - -local BannedPlayersIni = {} -local WhiteListIni = {} -local ItemsTable = {} - -CorePlugin = {} -CorePlugin.__index = CorePlugin - -function CorePlugin:new() - local t = {} - setmetatable(t, CorePlugin) - local w = Lua__cPlugin:new() - tolua.setpeer(w, t) - w:tolua__set_instance(w) - return w -end - -function CorePlugin:OnDisable() - LOG( self:GetName() .. " v." .. self:GetVersion() .. " is shutting down..." ) -end - -function CorePlugin:Initialize() - self:SetName( "Core" ) - self:SetVersion( 7 ) - - PluginManager = cRoot:Get():GetPluginManager() - PluginManager:AddHook( self, cPluginManager.E_PLUGIN_PLAYER_JOIN ) - PluginManager:AddHook( self, cPluginManager.E_PLUGIN_LOGIN ) - PluginManager:AddHook( self, cPluginManager.E_PLUGIN_BLOCK_PLACE ) - PluginManager:AddHook( self, cPluginManager.E_PLUGIN_KILLED ) - - self:AddCommand("/help", " - [Page] Show this message", "core.help") - self:AddCommand("/pluginlist", " - Show list of plugins", "core.pluginlist") - self:AddCommand("/tp", " - [Player] - Teleport yourself to a player", "core.teleport") - self:AddCommand("/item", " - [ItemID/Name] - Spawn an item for yourself", "core.item") - self:AddCommand("/list", " - Shows list of connected players", "core.playerlist") - self:AddCommand("/motd", " - Show message of the day", "core.motd") - self:AddCommand("/reload", " - Reload all plugins", "core.reload") - self:AddCommand("/time", " - [Day/Night] - Sets the time of day", "core.time") - self:AddCommand("/spawn", " - Return to the spawn", "core.spawn") - self:AddCommand("/kick", " - [Player] - Kick a player", "core.kick") - self:AddCommand("/ban", " - [Player] - Ban a player", "core.ban") - self:AddCommand("/unban", " - [Player] - Unban a player", "core.unban") - self:AddCommand("/top", " - Teleport yourself to the top most block", "core.top") - self:AddCommand("/gm", " - [Gamemode (0|1)] - Change your gamemode", "core.changegm") - self:AddCommand("/gotoworld", " - Move to a different world!", "core.gotoworld") - - self:BindCommand( "/help", "core.help", HandleHelpCommand ) - self:BindCommand( "/pluginlist","core.pluginlist", HandlePluginListCommand ) - self:BindCommand( "/tp", "core.teleport", HandleTPCommand ) - self:BindCommand( "/item", "core.item", HandleItemCommand ) - self:BindCommand( "/i", "core.item", HandleItemCommand ) - self:BindCommand( "/list", "core.playerlist", HandlePlayerListCommand ) - self:BindCommand( "/who", "core.playerlist", HandlePlayerListCommand ) - self:BindCommand( "/playerlist","core.playerlist", HandlePlayerListCommand ) - self:BindCommand( "/motd", "core.motd", HandleMOTDCommand ) - self:BindCommand( "/reload", "core.reload", HandleReloadCommand ) - self:BindCommand( "/time", "core.time", HandleTimeCommand ) - self:BindCommand( "/spawn", "core.spawn", HandleSpawnCommand ) - self:BindCommand( "/home", "core.spawn", HandleSpawnCommand ) - self:BindCommand( "/kick", "core.kick", HandleKickCommand ) - self:BindCommand( "/ban", "core.ban", HandleBanCommand ) - self:BindCommand( "/unban", "core.unban", HandleUnbanCommand ) - self:BindCommand( "/top", "core.top", HandleTopCommand ) - self:BindCommand( "/gm", "core.changegm", HandleChangeGMCommand ) - self:BindCommand( "/gotoworld", "core.gotoworld", HandleGotoWorldCommand ) - - local IniFile = cIniFile("settings.ini") - if ( IniFile:ReadFile() == true ) then - SHOW_PLUGIN_NAMES = IniFile:GetValueB("HelpPlugin", "ShowPluginNames", true ) - end - - local itemsINI = cIniFile("items.ini") - if ( itemsINI:ReadFile() == true ) then - local KeyID = itemsINI:FindKey('Items') - - LOGINFO("Core: loaded " .. itemsINI:GetNumValues( KeyID ) .. " item names.") - - for i = 0, itemsINI:GetNumValues('Items') do - local ItemName = itemsINI:GetValueName( KeyID, i ) - local ItemSyntax = itemsINI:GetValue(KeyID, i, "0") - - local ItemData = StringSplit(ItemSyntax, ":") -- [1] = ID, [2] = perhaps meta/dmg - --LOGINFO( "#ItemData: " .. #ItemData ) - if( #ItemData > 0 ) then - --LOGINFO("ItemData[0]: "..ItemData[1]) - local ItemID = tonumber( ItemData[1] ) - if( ItemID > 0 ) then - local ItemMeta = 0 - if( #ItemData > 1 ) then - ItemMeta = tonumber( ItemData[2] ) - end - ItemsTable[ ItemName ] = cItem( ItemID, 1, ItemMeta ) - LOGINFO("Got item: " .. ItemName .. "-> " .. ItemsTable[ ItemName ].m_ItemID ..":" .. ItemsTable[ ItemName ].m_ItemHealth ) - end - end - end - - HAVE_ITEM_NAMES = true - end - - -- Load whitelist, and add default values and stuff - WhiteListIni = cIniFile("whitelist.ini") - if ( WhiteListIni:ReadFile() == true ) then - if( WhiteListIni:GetValueB("WhiteListSettings", "WhiteListOn", false) == true ) then - if( WhiteListIni:GetNumValues("WhiteList") > 0 ) then - LOGINFO("Core: loaded " .. WhiteListIni:GetNumValues('WhiteList') .. " whitelisted players.") - else - LOGWARN("WARNING: WhiteList is on, but there are no people in the whitelist!") - end - end - else - WhiteListIni:SetValueB("WhiteListSettings", "WhiteListOn", false ) - WhiteListIni:SetValue("WhiteList", "", "") -- So it adds an empty header - WhiteListIni:DeleteValue("WhiteList", "") -- And remove the value - WhiteListIni:KeyComment("WhiteList", "PlayerName=1") - if( WhiteListIni:WriteFile() == false ) then - LOGWARN("WARNING: Could not write to whitelist.ini") - end - end - - -- Load banned players, and add default values and stuff - BannedPlayersIni = cIniFile("banned.ini") - if ( BannedPlayersIni:ReadFile() == true ) then - if( BannedPlayersIni:GetNumValues("Banned") > 0 ) then - LOGINFO("Core: loaded " .. BannedPlayersIni:GetNumValues("Banned") .. " banned players.") - end - else - BannedPlayersIni:SetValue("Banned", "", "") -- So it adds an empty header - BannedPlayersIni:DeleteValue("Banned", "") -- And remove the value - BannedPlayersIni:KeyComment("Banned", "PlayerName=1") - if( BannedPlayersIni:WriteFile() == false ) then - LOGWARN("WARNING: Could not write to banned.ini") - end - end - - LOG( "Initialized " .. self:GetName() .. " v." .. self:GetVersion() ) - return true -end - -function HandleTopCommand( Split, Player ) - local World = Player:GetWorld() - - local PlayerPos = Player:GetPosition() - local Height = World:GetHeight( math.floor(PlayerPos.x), math.floor(PlayerPos.z) ) - - Player:TeleportTo( PlayerPos.x, Height+1, PlayerPos.z ) - Player:SendMessage("Teleported to the top block") - - return true -end - -function HandleKickCommand( Split, Player ) - if( #Split < 2 ) then - Player:SendMessage( cChatColor.Green .. "Usage: /kick [Player] " ) - return true - end - - local World = Player:GetWorld() - local OtherPlayer = World:GetPlayer( Split[2] ) - if( OtherPlayer == nil ) then - Player:SendMessage( cChatColor.Green .. "Could not find player " .. Split[2] ) - return true - end - - local Reason = "You have been kicked" - if( #Split > 2 ) then - Reason = table.concat(Split, " ", 3) - end - - local Server = cRoot:Get():GetServer() - LOGINFO( Player:GetName() .. " is kicking " .. OtherPlayer:GetName() .. " ( "..Reason..") " ) - Server:SendMessage( "Kicking " .. OtherPlayer:GetName() ) - - local ClientHandle = OtherPlayer:GetClientHandle() - ClientHandle:Kick( Reason ) - - return true -end - -function HandleBanCommand( Split, Player ) - if( #Split < 2 ) then - Player:SendMessage( cChatColor.Green .. "Usage: /ban [Player] " ) - return true - end - - local World = Player:GetWorld() - local OtherPlayer = World:GetPlayer( Split[2] ) - if( OtherPlayer == nil ) then - Player:SendMessage( cChatColor.Green .. "Could not find player " .. Split[2] ) - return true - end - - local Reason = "You have been banned" - if( #Split > 2 ) then - Reason = table.concat(Split, " ", 3) - end - - local Server = cRoot:Get():GetServer() - LOGINFO( Player:GetName() .. " is banning " .. OtherPlayer:GetName() .. " ( "..Reason..") " ) - Server:SendMessage( "Banning " .. OtherPlayer:GetName() ) - - local ClientHandle = OtherPlayer:GetClientHandle() - ClientHandle:Kick( Reason ) - - BannedPlayersIni:SetValueB("Banned", OtherPlayer:GetName(), true) - BannedPlayersIni:WriteFile() - - return true -end - -function HandleUnbanCommand( Split, Player ) - if( #Split < 2 ) then - Player:SendMessage( cChatColor.Green .. "Usage: /unban [Player]" ) - return true - end - - if( BannedPlayersIni:GetValueB("Banned", Split[2], false) == false ) then - Player:SendMessage( cChatColor.Green .. Split[2] .. " is not banned!" ) - return true - end - - BannedPlayersIni:SetValueB("Banned", Split[2], false, false) - BannedPlayersIni:WriteFile() - - local Server = cRoot:Get():GetServer() - LOGINFO( Player:GetName() .. " is unbanning " .. Split[2] ) - Server:SendMessage( "Unbanning " .. Split[2] ) - - return true -end - -function HandleMOTDCommand( Split, Player ) - ShowMOTDTo( Player ) - return true -end - -function ShowMOTDTo( Player ) - Player:SendMessage( cChatColor.Gold .. "Welcome to the MCServer test server!" ); - Player:SendMessage( cChatColor.Gold .. "http://mcserver.ae-c.net/" ); - Player:SendMessage( cChatColor.Gold .. "Type /help for all commands" ); -end - -function HandleSpawnCommand( Split, Player ) - World = Player:GetWorld() - Player:TeleportTo( World:GetSpawnX(), World:GetSpawnY(), World:GetSpawnZ() ) - LOGINFO( Player:GetName() .. " returned to spawn." ) - return true -end - -function HandleTimeCommand( Split, Player ) - if( #Split ~= 2 ) then - Player:SendMessage( cChatColor.Green .. "Usage: /time [Day/Night]" ) - return true; - end - - local Server = cRoot:Get():GetServer() - if( string.upper( Split[2] ) == "DAY") then - Player:GetWorld():SetWorldTime( 0 ) - Server:SendMessage( cChatColor.Green .. Player:GetName() .. " set the time to Day.") - elseif( string.upper( Split[2] ) == "NIGHT") then - Player:GetWorld():SetWorldTime( 12000 + 1000 ) - Server:SendMessage( cChatColor.Green .. Player:GetName() .. " set the time to Night.") - else - Player:SendMessage( cChatColor.Green .. "Usage: /time [Day/Night]" ) - end - return true -end - -function HandleReloadCommand( Split, Player ) - Server = cRoot:Get():GetServer() - Server:SendMessage( cChatColor.Green .. "Reloading all plugins." ) - cRoot:Get():GetPluginManager():ReloadPlugins() - return true -end - -function HandlePlayerListCommand( Split, Player ) - local World = Player:GetWorld() - local PlayerList = World:GetAllPlayers() - - local Message = cChatColor.Green .. "Connected players: (".. cChatColor.White.. #PlayerList .. cChatColor.Green .. ")" - Player:SendMessage( Message ) - - local PlayerTable = {} - for i, TempPlayer in ipairs( PlayerList ) do - local PlayerName = TempPlayer:GetName() - table.insert(PlayerTable, PlayerName ) - end - - Player:SendMessage( table.concat(PlayerTable, " ") ) - return true -end - -function HandleHelpCommand( Split, Player ) - local PluginManager = cRoot:Get():GetPluginManager() - - local LinesPerPage = 9 - local CurrentPage = 1 - local CurrentLine = 0 - - if( #Split == 2 ) then - CurrentPage = tonumber(Split[2]) - end - - local Pages = {} - - local PluginList = PluginManager:GetAllPlugins() - for i, Plugin in ipairs( PluginList ) do - local Commands = Plugin:GetCommands() - for i, v in ipairs( Commands ) do - if( Player:HasPermission( v.Permission ) ) then - local PageNum = math.floor( CurrentLine/LinesPerPage )+1 - if( Pages[ PageNum ] == nil ) then Pages[ PageNum ] = {} end -- Create page - - if( Pages[ PageNum ].ShownName ~= Plugin:GetName() and SHOW_PLUGIN_NAMES == true ) then - if( CurrentLine == LinesPerPage * PageNum -1 ) then -- Don't add if it's the last line of the page, it looks silly - -- Add it to the next page instead - CurrentLine = CurrentLine+1 - PageNum = math.floor( CurrentLine/LinesPerPage )+1 - - if( Pages[ PageNum ] == nil ) then Pages[ PageNum ] = {} end -- Create page - table.insert( Pages[ PageNum ], cChatColor.Gold .. Plugin:GetName() ) - else - Pages[ PageNum ].ShownName = Plugin:GetName() - table.insert( Pages[ PageNum ], cChatColor.Gold .. Plugin:GetName() ) - end - CurrentLine = CurrentLine+1 - PageNum = math.floor( CurrentLine/LinesPerPage )+1 - if( Pages[ PageNum ] == nil ) then Pages[ PageNum ] = {} end -- Create page - end - local Message = cChatColor.Blue .. v.Command .. v.Description; - table.insert( Pages[ PageNum ], Message ) - CurrentLine = CurrentLine+1 - end - end - end - - Player:SendMessage( cChatColor.Purple .. "- All commands - " .. cChatColor.Gold .. "[Page " .. (CurrentPage) .."/"..#Pages.."]" ) - - if( Pages[CurrentPage] ~= nil ) then - for i, v in ipairs(Pages[CurrentPage]) do - Player:SendMessage( v ) - end - end - - return true -end - -function HandlePluginListCommand( Split, Player ) - local PluginManager = cRoot:Get():GetPluginManager() - local PluginList = PluginManager:GetAllPlugins() - - local PluginTable = {} - for i, Plugin in ipairs( PluginList ) do - table.insert(PluginTable, Plugin:GetName() ) - end - - Player:SendMessage( cChatColor.Green .. "Loaded plugins:" ) - Player:SendMessage( cChatColor.Gold .. table.concat(PluginTable, cChatColor.Gold.." ") ) - return true -end - -function HandleItemCommand( Split, Player ) - if( #Split ~= 2 and #Split ~=3 ) then - Player:SendMessage( cChatColor.Green .. "Usage: /item [ItemID/Name:Dmg] " ) - return true - end - - local FoundItem = false - - local ItemSyntax = Split[2] -- Contains item string with optional metadata - local ItemData = StringSplit( Split[2], ":" ) - - -- Default item values - local ItemID = 0 - local ItemMeta = 0 - local ItemAmount = 1 - - if( #ItemData > 0 ) then - ItemID = ItemData[1] - end - - if( tonumber(ItemID) ~= nil ) then -- Definitely a number - ItemID = tonumber(ItemID) - if( IsValidItem( ItemID ) ) then - FoundItem = true - end - end - - if( FoundItem == false ) then - if ( HAVE_ITEM_NAMES == true ) then - local Item = ItemsTable[ ItemID ] - if( Item ~= nil ) then - ItemID = Item.m_ItemID - ItemMeta = Item.m_ItemHealth - FoundItem = true - end - end - end - - -- Override metadata from item in list, if metadata was given - if( #ItemData > 1 and tonumber( ItemData[2] ) ~= nil ) then -- Metadata is given, and is a number - ItemMeta = tonumber( ItemData[2] ) - end - - if( FoundItem == false ) then - Player:SendMessage( cChatColor.Green .. "Invalid Item ID / Name !" ) - return true - end - - if( #Split == 3 ) then - ItemAmount = tonumber( Split[3] ) - if( ItemAmount == nil or ItemAmount < 1 or ItemAmount > 512 ) then - Player:SendMessage( cChatColor.Green .. "Invalid Amount !" ) - return true - end - end - - local NewItem = cItem( ItemID, ItemAmount, ItemMeta ) - if( Player:GetInventory():AddItem( NewItem ) == true ) then - Player:SendMessage( cChatColor.Green .. "There you go !" ) - LOG("Gave " .. Player:GetName() .. " " .. ItemAmount .. " times " .. ItemID .. ":" .. ItemMeta) - else - Player:SendMessage( cChatColor.Green .. "Not enough space in inventory !" ) - end - return true -end - -function HandleTPCommand( Split, Player ) - if( #Split ~= 2 ) then - Player:SendMessage( cChatColor.Green .. "Usage: /tp [PlayerName]" ) - return true - end - local World = Player:GetWorld() - local OtherPlayer = World:GetPlayer( Split[2] ) - if( OtherPlayer == nil ) then - Player:SendMessage( cChatColor.Green .. "Can't find player " .. Split[2] ) - elseif( OtherPlayer == Player ) then - Player:SendMessage( cChatColor.Green .. "Already there :)" ) - else - Player:TeleportTo( OtherPlayer ) - Player:SendMessage( cChatColor.Green .. "You teleported to "..OtherPlayer:GetName().."!" ) - OtherPlayer:SendMessage( cChatColor.Green .. Player:GetName().." teleported to you!" ) - end - return true -end - -function HandleChangeGMCommand( Split, Player ) - if( #Split ~= 2 ) then - Player:SendMessage( cChatColor.Green .. "Usage: /gm [GameMode (0|1)]" ) - return true - end - - Player:SetGameMode(Split[2]) - - return true -end - -function HandleGotoWorldCommand( Split, Player ) - if( #Split ~= 2 ) then - Player:SendMessage( cChatColor.Green .. "Usage: /gotoworld [WorldName]" ) - return true - end - - if( Player:MoveToWorld(Split[2]) == false ) then - Player:SendMessage( cChatColor.Green .. "Could not move to world '" .. Split[2] .. "'!" ) - return true - end - - - Player:SendMessage( cChatColor.Green .. "Moved successfully to '" .. Split[2] .. "'! :D" ) - return true -end - -function CorePlugin:OnPlayerJoin( Player ) - ShowMOTDTo( Player ) - return false -end - -function CorePlugin:OnBlockPlace( Block, Player ) - - -- dont check if the direction is in the air - if Block.m_Direction ~= -1 then - - local X = Block.m_PosX - local Y = Block.m_PosY - local Z = Block.m_PosZ - X, Y, Z = AddDirection( X, Y, Z, Block.m_Direction ) - if( Y >= 128 or Y < 0 ) then - return true - end - - local collision = false - local World = Player:GetWorld() - local PlayerList = World:GetAllPlayers() - - -- check if a player occupies the placement location - for i, Player in ipairs( PlayerList ) do - - -- drop the decimals, we only care about the full block X,Y,Z - local PlayerX = math.floor(Player:GetPosX(), 0) - local PlayerY = math.floor(Player:GetPosY(), 0) - local PlayerZ = math.floor(Player:GetPosZ(), 0) - - local BlockX = Block.m_PosX - local BlockY = Block.m_PosY - local BlockZ = Block.m_PosZ - - -- player height is 2 blocks, so we check the position and then offset it up one - -- so they can't place a block on there face - - if Block.m_Direction == 0 then if PlayerY == BlockY-2 and PlayerX == BlockX and PlayerZ == BlockZ then collision = true end end - if Block.m_Direction == 1 then if PlayerY == BlockY+1 and PlayerX == BlockX and PlayerZ == BlockZ then collision = true end end - - if Block.m_Direction == 2 then if PlayerY == BlockY and PlayerX == BlockX and PlayerZ == BlockZ-1 then collision = true end end - if Block.m_Direction == 2 then if PlayerY+1 == BlockY and PlayerX == BlockX and PlayerZ == BlockZ-1 then collision = true end end - - if Block.m_Direction == 3 then if PlayerY == BlockY and PlayerX == BlockX and PlayerZ == BlockZ+1 then collision = true end end - if Block.m_Direction == 3 then if PlayerY+1 == BlockY and PlayerX == BlockX and PlayerZ == BlockZ+1 then collision = true end end - - if Block.m_Direction == 4 then if PlayerY == BlockY and PlayerX == BlockX-1 and PlayerZ == BlockZ then collision = true end end - if Block.m_Direction == 4 then if PlayerY+1 == BlockY and PlayerX == BlockX-1 and PlayerZ == BlockZ then collision = true end end - - if Block.m_Direction == 5 then if PlayerY == BlockY and PlayerX == BlockX+1 and PlayerZ == BlockZ then collision = true end end - if Block.m_Direction == 5 then if PlayerY+1 == BlockY and PlayerX == BlockX+1 and PlayerZ == BlockZ then collision = true end end - - end - - if collision then - return true - else - return false - end - - end - - return false - -end - -function CorePlugin:OnKilled( Killed, Killer ) - if( Killer == nil ) then - local KilledPlayer = tolua.cast( Killed, "cPlayer") - if( not KilledPlayer:IsA("cPlayer") or KilledPlayer == nil ) then - return false - end - - local Server = cRoot:Get():GetServer() - Server:SendMessage( cChatColor.Red .. KilledPlayer:GetName() .. " died" ) - else - local KilledPlayer = tolua.cast( Killed, "cPlayer") - if( not KilledPlayer:IsA("cPlayer") or KilledPlayer == nil ) then - return false - end - local KillerPlayer = tolua.cast( Killer, "cPlayer") - if( not KillerPlayer:IsA("cPlayer") or KillerPlayer == nil ) then - return false - end - - local Server = cRoot:Get():GetServer() - Server:SendMessage( cChatColor.Red .. KilledPlayer:GetName() .. " was killed by " .. KillerPlayer:GetName() .. "!" ) - end - return false -end - -function CorePlugin:OnLogin( PacketData ) - if( PacketData.m_Username ~= "" ) then - if( BannedPlayersIni:GetValueB("Banned", PacketData.m_Username, false) == true ) then - local Server = cRoot:Get():GetServer() - Server:SendMessage( PacketData.m_Username .. " tried to join, but is banned!" ) - LOGINFO( PacketData.m_Username .. " tried to join, but is banned!") - return true -- Player is banned, return true to deny access - end - if( WhiteListIni:GetValueB("WhiteListSettings", "WhiteListOn", false ) == true ) then - if( WhiteListIni:GetValueB("WhiteList", PacketData.m_Username, false ) == false ) then -- not on whitelist - local Server = cRoot:Get():GetServer() - Server:SendMessage( PacketData.m_Username .. " tried to join, but is not on the whitelist." ) - LOGINFO( PacketData.m_Username .. " tried to join, but is not on the whitelist." ) - return true -- Deny access to the server - end - end - end - - return false -end - -Plugin = CorePlugin:new() -cRoot:Get():GetPluginManager():AddPlugin( Plugin ) - ------------------------------------------------- --- Now some webadmin stuffs! -- ------------------------------------------------- -local PlayerListWeb = {} -PlayerListWeb.__index = PlayerListWeb - -function PlayerListWeb:new() - local t = {} - setmetatable(t, PlayerListWeb) - local w = Lua__cWebPlugin:new() - tolua.setpeer(w, t) - w:tolua__set_instance(w) - return w -end - -function PlayerListWeb:HandleRequest( Request ) - local World = cRoot:Get():GetWorld() - local Content = "" - - if( Request.Params:get("playerlist-kick") ~= "" ) then - local KickPlayerName = Request.Params:get("playerlist-kick") - local Player = World:GetPlayer( KickPlayerName ) - if( Player == nil ) then - Content = Content .. "

Could not find player " .. KickPlayerName .. " !

" - elseif( Player:GetName() == KickPlayerName ) then - Player:GetClientHandle():Kick("You were kicked from the game!") - Content = Content .. "

" .. KickPlayerName .. " has been kicked from the game!

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

Connected Players: " .. World:GetNumPlayers() .. "

" - Content = Content .. "" - - - local PlayerList = World:GetAllPlayers() - for i, Player in ipairs( PlayerList ) do - Content = Content .. "" - Content = Content .. "" - Content = Content .. "" - Content = Content .. "" - Content = Content .. "" - end - - Content = Content .. "
" .. i .. "." .. Player:GetName() .. "Kick
" - Content = Content .. "
" - return Content -end - -WebPlugin = PlayerListWeb:new() -WebPlugin:SetName("PlayerList") - ------------------------------------------------- --- Reload web plugin -- ------------------------------------------------- -local ReloadWeb = {} -ReloadWeb.__index = ReloadWeb - -function ReloadWeb:new() - local t = {} - setmetatable(t, ReloadWeb) - local w = Lua__cWebPlugin:new() - tolua.setpeer(w, t) - w:tolua__set_instance(w) - return w -end - -function ReloadWeb:HandleRequest( Request ) - local Content = "" - - if( Request.Params:get("reload") ~= "" ) then - Content = Content .. "" - Content = Content .. "

Reloading plugins...

" - cRoot:Get():GetPluginManager():ReloadPlugins() - else - Content = Content .. "
" - Content = Content .. "

Click the reload button to reload all plugins!
" - Content = Content .. "

" - Content = Content .. "
" - end - return Content -end - -WebPlugin = ReloadWeb:new() -WebPlugin:SetName("Reload") - ------------------------------------------------- --- Whitelist web plugin -- ------------------------------------------------- -local WhiteListWeb = {} -WhiteListWeb.__index = WhiteListWeb - -function WhiteListWeb:new() - local t = {} - setmetatable(t, WhiteListWeb) - local w = Lua__cWebPlugin:new() - tolua.setpeer(w, t) - w:tolua__set_instance(w) - return w -end - -local function HTMLDeleteButton( name ) - return "
" -end - -function WhiteListWeb:HandleRequest( Request ) - local UpdateMessage = "" - if( Request.Params:get("whitelist-add") ~= "" ) then - local PlayerName = Request.Params:get("whitelist-add") - - if( WhiteListIni:GetValueB("WhiteList", PlayerName, false) == true ) then - UpdateMessage = "".. PlayerName.." is already on the whitelist" - else - WhiteListIni:SetValueB("WhiteList", PlayerName, true ) - UpdateMessage = "Added " .. PlayerName .. " to whitelist." - WhiteListIni:WriteFile() - end - elseif( Request.Params:get("whitelist-delete") ~= "" ) then - local PlayerName = Request.Params:get("whitelist-delete") - WhiteListIni:DeleteValue( "WhiteList", PlayerName ) - UpdateMessage = "Removed " .. PlayerName .. " from whitelist." - WhiteListIni:WriteFile() - elseif( Request.Params:get("whitelist-reload") ~= "" ) then - WhiteListIni:Erase() -- Empty entire loaded ini first, otherwise weird shit goes down - WhiteListIni:ReadFile() - UpdateMessage = "Loaded from disk" - elseif( Request.Params:get("whitelist-setenable") ~= "" ) then - local Enabled = Request.Params:get("whitelist-setenable"); - local CreateNewValue = false; - if( WhiteListIni:FindValue( WhiteListIni:FindKey("WhiteListSettings"), "WhiteListOn" ) == cIniFile.noID ) then -- Find out whether the value is in the ini - CreateNewValue = true - end - - if( Enabled == "1" ) then - WhiteListIni:SetValueB("WhiteListSettings", "WhiteListOn", true, CreateNewValue ) - else - WhiteListIni:SetValueB("WhiteListSettings", "WhiteListOn", false, CreateNewValue ) - end - WhiteListIni:WriteFile() - end - - - local Content = "" - - local WhiteListEnabled = WhiteListIni:GetValueB("WhiteListSettings", "WhiteListOn", false) - if( WhiteListEnabled == false ) then - Content = Content .. "

Whitelist is currently disabled! Click here to enable.

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

Whitelisted players

" - Content = Content .. "" - local KeyNum = WhiteListIni:FindKey("WhiteList") - local NumValues = WhiteListIni:GetNumValues(KeyNum) - if( NumValues > 0 ) then - for Num = 0, NumValues-1 do - if( WhiteListIni:GetValue(KeyNum, Num, "0") == "1" ) then - local PlayerName = WhiteListIni:GetValueName(KeyNum, Num ) - Content = Content .. "" - end - end - else - Content = Content .. "" - end - Content = Content .. "
" .. PlayerName .. "" .. HTMLDeleteButton( PlayerName ) .. "
None
" - Content = Content .. "

Add player to whitelist

" - Content = Content .. "
" - Content = Content .. "" - Content = Content .. "
" - Content = Content .. "
" - Content = Content .. "" - Content = Content .. "
" - Content = Content .. "
"..UpdateMessage - - if( WhiteListEnabled == true ) then - Content = Content .. "

Whitelist is currently enabled, click here to disable.

" - end - - return Content -end - -WebPlugin = WhiteListWeb:new() -WebPlugin:SetName("WhiteList") \ No newline at end of file -- cgit v1.2.3