From 207a45217115e19d25df5dbadb3ac38b7f6dadf1 Mon Sep 17 00:00:00 2001 From: Alexander Harkness Date: Fri, 2 Aug 2013 07:48:47 +0100 Subject: Pull in the latest core changes. Squashed commit of the following: commit da84f4977522ab48ead4af7a71efd43cdd4e3d0a Merge: cc77056 a631484 Author: bearbin Date: Thu Aug 1 10:58:05 2013 -0700 Merge pull request #10 from mc-server/tabmix Fix the inconsistency of spaces and tabs. commit a6314849c2b474b6e17a245c91a2ac74c7acf7bf Author: Alexander Harkness Date: Thu Aug 1 16:47:15 2013 +0100 Changed everything to use the correct system of tabs. commit cc7705645b6b387c618c9448fa6b0d5c789370c6 Author: Tiger Wang Date: Wed Jul 31 16:56:41 2013 +0100 Rewrote Info Messages + Implemented #7 [SEE DESC] Standardisation of info messages: [INFO] [WARNING] [JOIN] [LEAVE] [FATALITY] with colours Green, Gold, Red, Rose, and Yellow. Individual worlds have individual LimitWorld setting, with individual WebAdmin setting as well. commit 16cae4cdc0ec067e7e71fa5c5a3ba8c248ce063b Author: Tiger Wang Date: Mon Jul 29 14:47:45 2013 +0100 Fix of nil value in SpawnProtect commit 7c33f75e7da7fc104112c17fcb53bc9f06fe09fc Author: Tiger Wang Date: Mon Jul 29 13:19:11 2013 +0100 Fixed potential SpawnProtect nil value issue Now detects if PROTECTRADIUS is zero, and if so, cancels checks. commit 0c4a9d427620ab04ca01b5f31ed9b90530353d96 Author: Tiger Wang Date: Mon Jul 29 13:07:50 2013 +0100 Enhanced SpawnProtect greatly (thanks xoft) Wow. Who knew ~30 lines of code could become one? commit 17f5ef4fed0b6f32900cc7473563848466139655 Author: Tiger Wang Date: Mon Jul 29 11:11:22 2013 +0100 Removed Development LOGINFOs commit 02034bf2d67f2ae62092b0688d81338f7b0788df Author: Tiger Wang Date: Mon Jul 29 10:40:57 2013 +0100 Implemented Issue #5 Enhancement [SEE DESC] Made spawn protection configurable in each world's world file. World has to be listed in settings.ini! commit ccc73db8c51e45372069ec0a42f437cfb25253b1 Merge: 6bf4b40 21c7c68 Author: Alexander Harkness Date: Sun Jul 28 14:00:15 2013 +0100 Merge branch 'master' of github.com:tigerw/MCSCore into tigerw-master Conflicts: main.lua commit 21c7c68d20782a7dfd0d8f9ce0996397549dd425 Author: Tiger Wang Date: Sun Jul 28 12:55:50 2013 +0100 Default WorldLimiter = Off commit 141298481f3adef30b68d0c4200204aa264cb3e2 Author: Tiger Wang Date: Sun Jul 28 12:47:24 2013 +0100 Fixed Potential WorldLimit & OnDisable Bugs Changed WorldLimiter if detection from nil value to config boolean. Changed OnDisable to use hardcoded name as Plugin:GetName was apparently a nil value. ?? commit 6bf4b40a0e27677afa6df9cb3521266e6b99c4f7 Merge: 1ca4217 bfd6c5f Author: bearbin Date: Sat Jul 27 11:44:18 2013 -0700 Merge pull request #3 from tonibm19/master Added /me command commit bfd6c5f2a47cda4ac98a7225736e2669eaf61849 Author: tonibm19 Date: Sat Jul 27 20:35:22 2013 +0200 Added /me command commit d25abaf44a6f5828b90297ff80003d2cd2a90be5 Author: tonibm19 Date: Sat Jul 27 20:30:31 2013 +0200 Added /me command commit 9047f7778aa1cdd42d22c4dcf925db792b4d684e Author: tonibm19 Date: Sat Jul 27 20:29:24 2013 +0200 added /me command commit 1ca42172391d41ba71c65a3f15d3a96d15a80496 Merge: 52a6f4e 7a40336 Author: Tiger Wang Date: Sat Jul 27 09:01:45 2013 -0700 Merge pull request #2 from tigerw/master Fixed /give descriptor & removed webadmin commit 7a40336437525c447adae3d9800e75b39c0300c4 Author: Tiger Wang Date: Sat Jul 27 17:00:38 2013 +0100 Fixed /give descriptor & removed webadmin commit 52a6f4e35bdea2ae9f33977928b6693f5800e515 Merge: f5d56ff 2af1da8 Author: Tiger Wang Date: Sat Jul 27 08:51:45 2013 -0700 Merge pull request #1 from tigerw/master Added TPA (tonibm9's fork) commit 2af1da8a3cd8e94674b22805662b83de87ac4a95 Author: Tiger Wang Date: Sat Jul 27 16:38:10 2013 +0100 Added TPA (tonibm9's fork) With code from STR_Warrior. commit f5d56ffeb02fef4735e846661fa71d15622d25b9 Author: Tiger Wang Date: Sat Jul 27 15:51:18 2013 +0100 Integrated SpawnProtect & Bugfixes [SEE DESC.] Integrated bearbin's SpawnProtect. Fixed config file bugs. Improved SpawnProtect to use settings.ini. Variable cleanup (SHOW_PLUGIN_NAMES). File and filename cleanup. commit 56dc51c00af4514253c04e38b5ccc9fbed2f0022 Author: Tiger Wang Date: Fri Jul 26 23:14:40 2013 +0100 Update README.md Added info. commit acd7e2849dcd7f3ee7bdc6b0f9b777ee1d9cbb3c Author: Tiger Wang Date: Fri Jul 26 19:37:59 2013 +0100 Implemented Block Property checking for Collisions Used g_BlockIsSolid, instead of checking data values. commit 246d423ff9660a2b00a1c51e6276ec74eb3419de Author: Tiger Wang Date: Fri Jul 26 15:49:55 2013 +0100 Updated Files Buildpermandcollision: updated collision code to check for torches and redstone torches. Help: attempt at always showing page number Web_serversettings: attempt at introducing a check for Maximum Players (must be above zero). commit 868f99ab49edeee78f4fc1c212c6bf614b860378 Author: Tiger Wang Date: Thu Jul 25 19:46:08 2013 +0100 Update README.md Extended 'GUI Redesign' section. commit e0df40bd082bdeb5c6823b485bc5001103a77502 Author: Tiger Wang Date: Thu Jul 25 19:43:00 2013 +0100 Update README.md Added features and fixes and instructions for use. commit 332d8221f753f1a38d6c21bfc30af5890f48e3bb Author: Tiger Wang Date: Thu Jul 25 19:35:27 2013 +0100 Uploaded All Files All Core files, both modified and unmodified. commit 3dd191f6bed71c863ee264856fbc3660e52cf88b Author: Tiger Wang Date: Thu Jul 25 04:59:50 2013 -0700 Initial commit --- MCServer/Plugins/Core/ban-unban.lua | 2 +- MCServer/Plugins/Core/console.lua | 4 +- MCServer/Plugins/Core/help.lua | 2 +- MCServer/Plugins/Core/main.lua | 80 ++++++------ MCServer/Plugins/Core/me.lua | 16 +-- MCServer/Plugins/Core/onbreakplaceblock.lua | 184 +++++++++++++-------------- MCServer/Plugins/Core/ondeath.lua | 2 +- MCServer/Plugins/Core/onjoinleave.lua | 6 +- MCServer/Plugins/Core/onlogin.lua | 2 +- MCServer/Plugins/Core/portal-worlds.lua | 2 +- MCServer/Plugins/Core/rank-groups.lua | 2 +- MCServer/Plugins/Core/save-reload-stop.lua | 10 +- MCServer/Plugins/Core/spawn.lua | 2 +- MCServer/Plugins/Core/teleport.lua | 78 ++++++------ MCServer/Plugins/Core/web_serversettings.lua | 10 +- MCServer/Plugins/Core/worldlimiter.lua | 2 +- 16 files changed, 202 insertions(+), 202 deletions(-) (limited to 'MCServer/Plugins/Core') diff --git a/MCServer/Plugins/Core/ban-unban.lua b/MCServer/Plugins/Core/ban-unban.lua index da9ee2d6c..1ad9b7e75 100644 --- a/MCServer/Plugins/Core/ban-unban.lua +++ b/MCServer/Plugins/Core/ban-unban.lua @@ -39,7 +39,7 @@ function BanPlayer(PlayerName, Reason) end function HandleUnbanCommand( Split, Player ) - if( #Split < 2 ) then + if( #Split < 2 ) then Player:SendMessage(cChatColor.Yellow .. "[INFO] " .. cChatColor.White .. "Usage: /unban [Player]" ) return true end diff --git a/MCServer/Plugins/Core/console.lua b/MCServer/Plugins/Core/console.lua index b1c454d59..7c1e6abde 100644 --- a/MCServer/Plugins/Core/console.lua +++ b/MCServer/Plugins/Core/console.lua @@ -5,7 +5,7 @@ function InitConsoleCommands() -- Please keep the list alpha-sorted PluginMgr:BindConsoleCommand("ban", HandleConsoleBan, "Bans a player by name"); - PluginMgr:BindConsoleCommand("unban", HandleConsoleUnban, "Unbans a player by name"); + PluginMgr:BindConsoleCommand("unban", HandleConsoleUnban, "Unbans a player by name"); PluginMgr:BindConsoleCommand("banlist", HandleConsoleBanList, "Lists all players banned by name"); PluginMgr:BindConsoleCommand("banlist ips", HandleConsoleBanList, "Lists all players banned by IP"); PluginMgr:BindConsoleCommand("help", HandleConsoleHelp, "Lists all commands"); @@ -40,7 +40,7 @@ function HandleConsoleBan(Split) end function HandleConsoleUnban(Split) - if( #Split < 2 ) then + if( #Split < 2 ) then return true, "Usage: /unban [Player]" end diff --git a/MCServer/Plugins/Core/help.lua b/MCServer/Plugins/Core/help.lua index 339fc054b..9ec79e056 100644 --- a/MCServer/Plugins/Core/help.lua +++ b/MCServer/Plugins/Core/help.lua @@ -32,7 +32,7 @@ function HandleHelpCommand(Split, Player) -- CurrentPage now contains the total number of pages, and Output has the individual help lines to be sent Player:SendMessage(cChatColor.Purple .. "---------- [COMMANDS HELP " .. cChatColor.Gold .. "(Page " .. PageRequested .. " / " .. CurrentPage .. ")" .. cChatColor.Purple .. "] -----------"); - Player:SendMessage(cChatColor.Purple .. "'-' means no prefix, '~' means a value is required."); + Player:SendMessage(cChatColor.Purple .. "'-' means no prefix, '~' means a value is required."); for idx, msg in ipairs(Output) do Player:SendMessage(msg); end; diff --git a/MCServer/Plugins/Core/main.lua b/MCServer/Plugins/Core/main.lua index 755ec4db8..3fd9c6585 100644 --- a/MCServer/Plugins/Core/main.lua +++ b/MCServer/Plugins/Core/main.lua @@ -13,10 +13,10 @@ function Initialize(Plugin) Plugin:SetName("Core") Plugin:SetVersion(13) - --ADD HOOKS + --ADD HOOKS PluginManager = cRoot:Get():GetPluginManager() PluginManager:AddHook(Plugin, cPluginManager.HOOK_PLAYER_JOINED) - PluginManager:AddHook(Plugin, cPluginManager.HOOK_DISCONNECT) + PluginManager:AddHook(Plugin, cPluginManager.HOOK_DISCONNECT) PluginManager:AddHook(Plugin, cPluginManager.HOOK_PLAYER_BREAKING_BLOCK) PluginManager:AddHook(Plugin, cPluginManager.HOOK_PLAYER_PLACING_BLOCK) PluginManager:AddHook(Plugin, cPluginManager.HOOK_LOGIN) @@ -25,9 +25,9 @@ function Initialize(Plugin) PluginManager:AddHook(Plugin, cPluginManager.HOOK_CHAT) -- used in web_chat.lua PluginManager:AddHook(Plugin, cPluginManager.HOOK_PLAYER_MOVING) - --PLEASE ALPHA SORT http://elmosaukko.com/sort-alphabetically/ THIS LIST - --BIND COMMANDS - PluginManager:BindCommand("/back", "core.back", HandleBackCommand, " - Return to your last position"); + --PLEASE ALPHA SORT http://elmosaukko.com/sort-alphabetically/ THIS LIST + --BIND COMMANDS + PluginManager:BindCommand("/back", "core.back", HandleBackCommand, " - Return to your last position"); PluginManager:BindCommand("/ban", "core.ban", HandleBanCommand, " ~ Ban a player"); PluginManager:BindCommand("/give", "core.give", HandleGiveCommand, " ~ Give yourself an item"); PluginManager:BindCommand("/gm", "core.changegm", HandleChangeGMCommand, " ~ Change your gamemode"); @@ -46,10 +46,10 @@ function Initialize(Plugin) PluginManager:BindCommand("/stop", "core.stop", HandleStopCommand, " - Stops the server"); PluginManager:BindCommand("/time", "core.time", HandleTimeCommand, " ~ Sets the time of day"); PluginManager:BindCommand("/downfall", "core.downfall", HandleDownfallCommand, " - Toggles the weather"); - PluginManager:BindCommand("/me", "core.me", HandleMeCommand, " ~ Tell what you are doing"); + PluginManager:BindCommand("/me", "core.me", HandleMeCommand, " ~ Tell what you are doing"); PluginManager:BindCommand("/top", "core.top", HandleTopCommand, " - Teleport yourself to the top most block"); - PluginManager:BindCommand("/tp", "core.teleport", HandleTPCommand, " ~ Teleport yourself to a player"); - PluginManager:BindCommand("/tpa", "core.teleport", HandleTPACommand, " ~ Ask to teleport yourself to a player"); + PluginManager:BindCommand("/tp", "core.teleport", HandleTPCommand, " ~ Teleport yourself to a player"); + PluginManager:BindCommand("/tpa", "core.teleport", HandleTPACommand, " ~ Ask to teleport yourself to a player"); PluginManager:BindCommand("/tpaccept", "core.teleport", HandleTPAcceptCommand, " ~ Accept a teleportation request"); PluginManager:BindCommand("/unban", "core.unban", HandleUnbanCommand, " ~ Unban a player"); PluginManager:BindCommand("/viewdistance", "core.viewdistance", HandleViewDistanceCommand, " [".. cClientHandle.MIN_VIEW_DISTANCE .."-".. cClientHandle.MAX_VIEW_DISTANCE .."] - Change your view distance") @@ -63,27 +63,27 @@ function Initialize(Plugin) HardCore = IniFile:GetValueSet("GameMode", "Hardcore", "false") IniFile:WriteFile() end - - WorldsSpawnProtect = {} - local KeyIdx = IniFile:FindKey("Worlds") --(FIND WHERE 'WORLDS' KEY IS LOCATED) - local NumValues = (IniFile:GetNumValues( KeyIdx )) --(HOW MANY VALUES ARE THERE?) + + WorldsSpawnProtect = {} + local KeyIdx = IniFile:FindKey("Worlds") --(FIND WHERE 'WORLDS' KEY IS LOCATED) + local NumValues = (IniFile:GetNumValues( KeyIdx )) --(HOW MANY VALUES ARE THERE?) for i = 0, NumValues - 1 do --(FOR EVERY WORLD KEY, TAKING ACCOUNT OF OFF BY ONE ERRORS) - WorldIni = cIniFile(IniFile:GetValue(KeyIdx, i) .. "/world.ini") - if WorldIni:ReadFile() == true then - WorldsSpawnProtect[IniFile:GetValue(KeyIdx, i)] = WorldIni:GetValueSetI("SpawnProtect", "ProtectRadius", 10) - WorldIni:WriteFile() - end - end - WorldsWorldLimit = {} - local KeyIdx = IniFile:FindKey("Worlds") --(FIND WHERE 'WORLDS' KEY IS LOCATED) - local NumValues = (IniFile:GetNumValues( KeyIdx )) --(HOW MANY VALUES ARE THERE?) - for i = 0, NumValues - 1 do --(FOR EVERY WORLD KEY, TAKING ACCOUNT OF OFF BY ONE ERRORS) - WorldIni = cIniFile(IniFile:GetValue(KeyIdx, i) .. "/world.ini") - if WorldIni:ReadFile() == true then - WorldsWorldLimit[IniFile:GetValue(KeyIdx, i)] = WorldIni:GetValueSetI("WorldLimit", "LimitRadius", 0) - WorldIni:WriteFile() - end - end + WorldIni = cIniFile(IniFile:GetValue(KeyIdx, i) .. "/world.ini") + if WorldIni:ReadFile() == true then + WorldsSpawnProtect[IniFile:GetValue(KeyIdx, i)] = WorldIni:GetValueSetI("SpawnProtect", "ProtectRadius", 10) + WorldIni:WriteFile() + end + end + WorldsWorldLimit = {} + local KeyIdx = IniFile:FindKey("Worlds") --(FIND WHERE 'WORLDS' KEY IS LOCATED) + local NumValues = (IniFile:GetNumValues( KeyIdx )) --(HOW MANY VALUES ARE THERE?) + for i = 0, NumValues - 1 do --(FOR EVERY WORLD KEY, TAKING ACCOUNT OF OFF BY ONE ERRORS) + WorldIni = cIniFile(IniFile:GetValue(KeyIdx, i) .. "/world.ini") + if WorldIni:ReadFile() == true then + WorldsWorldLimit[IniFile:GetValue(KeyIdx, i)] = WorldIni:GetValueSetI("WorldLimit", "LimitRadius", 0) + WorldIni:WriteFile() + end + end --LOAD WHITELIST WhiteListIni = cIniFile( Plugin:GetLocalDirectory() .. "/whitelist.ini" ) @@ -120,7 +120,7 @@ function Initialize(Plugin) end end - --ADD WEB INTERFACE TABULATES + --ADD WEB INTERFACE TABULATES Plugin:AddWebTab("Manage Server", HandleRequest_ManageServer); Plugin:AddWebTab("Server Settings", HandleRequest_ServerSettings); Plugin:AddWebTab("Chat", HandleRequest_Chat); @@ -132,7 +132,7 @@ function Initialize(Plugin) LoadMotd() LOG( "Initialized " .. Plugin:GetName() .. " v." .. Plugin:GetVersion() ) - return true + return true end --AWESOMENESS STILL GOING! @@ -140,12 +140,12 @@ end function WriteLog(breakPlace, X, Y, Z, player, id, meta) local logText = {} - table.insert(logText, player) + table.insert(logText, player) table.insert(logText, " tried to ") if breakPlace == 0 then - table.insert(logText, "break ") - else + table.insert(logText, "break ") + else table.insert(logText, "place ") end @@ -159,23 +159,23 @@ function WriteLog(breakPlace, X, Y, Z, player, id, meta) table.insert(logText, tostring(Z)) table.insert(logText, ".") - LOGINFO(table.concat(logText,'')) + LOGINFO(table.concat(logText,'')) if LOGTOFILE then - local logFile = io.open( Plugin:GetLocalDirectory() .. '/blocks.log', 'a') - logFile:write(table.concat(logText,'').."\n") - logFile:close() - end + local logFile = io.open( Plugin:GetLocalDirectory() .. '/blocks.log', 'a') + logFile:write(table.concat(logText,'').."\n") + logFile:close() + end return end - + function WarnPlayer(Player) Player:SendMessage(cChatColor.Rose .. "[INFO] " .. cChatColor.White .. "Go further from spawn to build") return end function OnDisable() - LOG( "Disabled Core!") + LOG( "Disabled Core!") end --END AWESOMENESS :'( diff --git a/MCServer/Plugins/Core/me.lua b/MCServer/Plugins/Core/me.lua index 5ae15b97d..783c15556 100644 --- a/MCServer/Plugins/Core/me.lua +++ b/MCServer/Plugins/Core/me.lua @@ -4,12 +4,12 @@ function HandleMeCommand( Split, Player ) for i, Text in ipairs(Split) do Message = Message .. " " .. Text; end - if (Split[1] == nil) then - Player:SendMessage(cChatColor.Yellow .. "[INFO] " .. cChatColor.White .. "Usage: /me ") - return true - end - if (Split[1] ~= nil) then - cRoot:Get():GetServer():BroadcastChat(Player:GetName() .. "" .. Message); - return true - end + if (Split[1] == nil) then + Player:SendMessage(cChatColor.Yellow .. "[INFO] " .. cChatColor.White .. "Usage: /me ") + return true + end + if (Split[1] ~= nil) then + cRoot:Get():GetServer():BroadcastChat(Player:GetName() .. "" .. Message); + return true + end end diff --git a/MCServer/Plugins/Core/onbreakplaceblock.lua b/MCServer/Plugins/Core/onbreakplaceblock.lua index 49b3226c2..5eddc1511 100644 --- a/MCServer/Plugins/Core/onbreakplaceblock.lua +++ b/MCServer/Plugins/Core/onbreakplaceblock.lua @@ -4,116 +4,116 @@ function OnPlayerPlacingBlock(Player, BlockX, BlockY, BlockZ, BlockFace, CursorX return false end - local PROTECTRADIUS = WorldsSpawnProtect[Player:GetWorld():GetName()]; + local PROTECTRADIUS = WorldsSpawnProtect[Player:GetWorld():GetName()]; if not (Player:HasPermission("core.build")) then return true else - if not (Player:HasPermission("core.spawnprotect.bypass")) and not (PROTECTRADIUS == 0) then - local World = Player:GetWorld() - local xcoord = World:GetSpawnX() - local ycoord = World:GetSpawnY() - local zcoord = World:GetSpawnZ() + if not (Player:HasPermission("core.spawnprotect.bypass")) and not (PROTECTRADIUS == 0) then + local World = Player:GetWorld() + local xcoord = World:GetSpawnX() + local ycoord = World:GetSpawnY() + local zcoord = World:GetSpawnZ() - if not ((BlockX <= (xcoord + PROTECTRADIUS)) and (BlockX >= (xcoord - PROTECTRADIUS))) then - return false -- Not in spawn area. - end - if not ((BlockY <= (ycoord + PROTECTRADIUS)) and (BlockY >= (ycoord - PROTECTRADIUS))) then - return false -- Not in spawn area. - end - if not ((BlockZ <= (zcoord + PROTECTRADIUS)) and (BlockZ >= (zcoord - PROTECTRADIUS))) then - return false -- Not in spawn area. - end + if not ((BlockX <= (xcoord + PROTECTRADIUS)) and (BlockX >= (xcoord - PROTECTRADIUS))) then + return false -- Not in spawn area. + end + if not ((BlockY <= (ycoord + PROTECTRADIUS)) and (BlockY >= (ycoord - PROTECTRADIUS))) then + return false -- Not in spawn area. + end + if not ((BlockZ <= (zcoord + PROTECTRADIUS)) and (BlockZ >= (zcoord - PROTECTRADIUS))) then + return false -- Not in spawn area. + end - --WriteLog(1, BlockX, BlockY, BlockZ, Player:GetName(), id, meta) + --WriteLog(1, BlockX, BlockY, BlockZ, Player:GetName(), id, meta) - WarnPlayer(Player) + WarnPlayer(Player) - return true - else - if BlockType == "50" or BlockType == "76" then - local X = BlockX - local Y = BlockY - local Z = BlockZ - X, Y, Z = AddFaceDirection(X, Y, Z, BlockFace) - if (Y >= 256 or Y < 0) then - return true - end - - local CheckCollision = function(Player) - -- 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 collision = false - if ((BlockFace == BLOCK_FACE_TOP) and (PlayerY == BlockY - 2) and (PlayerX == BlockX) and (PlayerZ == BlockZ)) then - collision = true - end - - if ((BlockFace == BLOCK_FACE_BOTTOM) and (PlayerY == BlockY + 1) and (PlayerX == BlockX) and (PlayerZ == BlockZ)) then - collision = true - end - - if ((BlockFace == BLOCK_FACE_NORTH) and (PlayerX == BlockX) and (PlayerZ == BlockZ - 1)) then - if ((PlayerY == BlockY) or (PlayerY + 1 == BlockY)) then collision = true end - end - - if ((BlockFace == BLOCK_FACE_SOUTH) and (PlayerX == BlockX) and (PlayerZ == BlockZ + 1)) then - if ((PlayerY == BlockY) or (PlayerY + 1 == BlockY)) then collision = true end - end - - if ((BlockFace == BLOCK_FACE_WEST) and (PlayerX == BlockX - 1) and (PlayerZ == BlockZ)) then - if ((PlayerY == BlockY) or (PlayerY + 1 == BlockY)) then collision = true end - end - - if ((BlockFace == BLOCK_FACE_EAST) and (PlayerX == BlockX + 1) and (PlayerZ == BlockZ)) then - if ((PlayerY == BlockY) or (PlayerY + 1 == BlockY)) then collision = true end - end - return collision - end - if (Player:GetWorld():ForEachPlayer(CheckCollision) == false) then - return true - end - end - end - end - return false + return true + else + if BlockType == "50" or BlockType == "76" then + local X = BlockX + local Y = BlockY + local Z = BlockZ + X, Y, Z = AddFaceDirection(X, Y, Z, BlockFace) + if (Y >= 256 or Y < 0) then + return true + end + + local CheckCollision = function(Player) + -- 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 collision = false + if ((BlockFace == BLOCK_FACE_TOP) and (PlayerY == BlockY - 2) and (PlayerX == BlockX) and (PlayerZ == BlockZ)) then + collision = true + end + + if ((BlockFace == BLOCK_FACE_BOTTOM) and (PlayerY == BlockY + 1) and (PlayerX == BlockX) and (PlayerZ == BlockZ)) then + collision = true + end + + if ((BlockFace == BLOCK_FACE_NORTH) and (PlayerX == BlockX) and (PlayerZ == BlockZ - 1)) then + if ((PlayerY == BlockY) or (PlayerY + 1 == BlockY)) then collision = true end + end + + if ((BlockFace == BLOCK_FACE_SOUTH) and (PlayerX == BlockX) and (PlayerZ == BlockZ + 1)) then + if ((PlayerY == BlockY) or (PlayerY + 1 == BlockY)) then collision = true end + end + + if ((BlockFace == BLOCK_FACE_WEST) and (PlayerX == BlockX - 1) and (PlayerZ == BlockZ)) then + if ((PlayerY == BlockY) or (PlayerY + 1 == BlockY)) then collision = true end + end + + if ((BlockFace == BLOCK_FACE_EAST) and (PlayerX == BlockX + 1) and (PlayerZ == BlockZ)) then + if ((PlayerY == BlockY) or (PlayerY + 1 == BlockY)) then collision = true end + end + return collision + end + if (Player:GetWorld():ForEachPlayer(CheckCollision) == false) then + return true + end + end + end + end + return false end function OnPlayerBreakingBlock(Player, BlockX, BlockY, BlockZ, BlockFace, Status, OldBlockType, OldBlockMeta) - -- dont check if the direction is in the air + -- dont check if the direction is in the air if (BlockFace ~= -1) then - local PROTECTRADIUS = WorldsSpawnProtect[Player:GetWorld():GetName()]; + local PROTECTRADIUS = WorldsSpawnProtect[Player:GetWorld():GetName()]; if not (Player:HasPermission("core.build")) then return true else - if not (Player:HasPermission("core.spawnprotect.bypass")) and not (PROTECTRADIUS == 0) then - local World = Player:GetWorld() - local xcoord = World:GetSpawnX() - local ycoord = World:GetSpawnY() - local zcoord = World:GetSpawnZ() - - if not ((BlockX <= (xcoord + PROTECTRADIUS)) and (BlockX >= (xcoord - PROTECTRADIUS))) then - return false -- Not in spawn area. - end - if not ((BlockY <= (ycoord + PROTECTRADIUS)) and (BlockY >= (ycoord - PROTECTRADIUS))) then - return false -- Not in spawn area. - end - if not ((BlockZ <= (zcoord + PROTECTRADIUS)) and (BlockZ >= (zcoord - PROTECTRADIUS))) then - return false -- Not in spawn area. - end - - --WriteLog(0, BlockX, BlockY, BlockZ, Player:GetName(), id, meta) - - WarnPlayer(Player) + if not (Player:HasPermission("core.spawnprotect.bypass")) and not (PROTECTRADIUS == 0) then + local World = Player:GetWorld() + local xcoord = World:GetSpawnX() + local ycoord = World:GetSpawnY() + local zcoord = World:GetSpawnZ() + + if not ((BlockX <= (xcoord + PROTECTRADIUS)) and (BlockX >= (xcoord - PROTECTRADIUS))) then + return false -- Not in spawn area. + end + if not ((BlockY <= (ycoord + PROTECTRADIUS)) and (BlockY >= (ycoord - PROTECTRADIUS))) then + return false -- Not in spawn area. + end + if not ((BlockZ <= (zcoord + PROTECTRADIUS)) and (BlockZ >= (zcoord - PROTECTRADIUS))) then + return false -- Not in spawn area. + end + + --WriteLog(0, BlockX, BlockY, BlockZ, Player:GetName(), id, meta) + + WarnPlayer(Player) - return true - end - end - end + return true + end + end + end return false end \ No newline at end of file diff --git a/MCServer/Plugins/Core/ondeath.lua b/MCServer/Plugins/Core/ondeath.lua index 463890751..a5f8f6745 100644 --- a/MCServer/Plugins/Core/ondeath.lua +++ b/MCServer/Plugins/Core/ondeath.lua @@ -3,7 +3,7 @@ function OnKilling(Victim, Killer) SetBackCoordinates( Victim ) Server = cRoot:Get():GetServer() if Killer == nil then - if Victim:GetWorld():GetBlock(Victim:GetPosX(), Victim:GetPosY(), Victim:GetPosZ()) == 10 or Victim:GetWorld():GetBlock(Victim:GetPosX(), Victim:GetPosY(), Victim:GetPosZ()) == 11 then + if Victim:GetWorld():GetBlock(Victim:GetPosX(), Victim:GetPosY(), Victim:GetPosZ()) == 10 or Victim:GetWorld():GetBlock(Victim:GetPosX(), Victim:GetPosY(), Victim:GetPosZ()) == 11 then Server:SendMessage( cChatColor.Red .. "[FATALITY] " .. cChatColor.White .. Victim:GetName() .. " tried to swim in lava (and failed)" ) CheckHardcore(Victim) return false diff --git a/MCServer/Plugins/Core/onjoinleave.lua b/MCServer/Plugins/Core/onjoinleave.lua index 34b1a29ae..7acef47de 100644 --- a/MCServer/Plugins/Core/onjoinleave.lua +++ b/MCServer/Plugins/Core/onjoinleave.lua @@ -1,11 +1,11 @@ function OnPlayerJoined(Player) ShowMOTDTo( Player ) - local Server = cRoot:Get():GetServer() + local Server = cRoot:Get():GetServer() Server:SendMessage(cChatColor.Yellow .. "[JOIN] " .. cChatColor.White .. Player:GetName() .. " has joined the game" ) return false end function OnDisconnect(Player, Reason) - local Server = cRoot:Get():GetServer() - Server:SendMessage(cChatColor.Yellow .. "[LEAVE] " .. cChatColor.White .. Player:GetName() .. " has left the game" ) + local Server = cRoot:Get():GetServer() + Server:SendMessage(cChatColor.Yellow .. "[LEAVE] " .. cChatColor.White .. Player:GetName() .. " has left the game" ) end \ No newline at end of file diff --git a/MCServer/Plugins/Core/onlogin.lua b/MCServer/Plugins/Core/onlogin.lua index 4b2f24f17..cc79bb0ae 100644 --- a/MCServer/Plugins/Core/onlogin.lua +++ b/MCServer/Plugins/Core/onlogin.lua @@ -4,7 +4,7 @@ function OnLogin(Client, ProtocolVersion, Username) local Server = cRoot:Get():GetServer() Server:SendMessage( Username .. " tried to join, but is banned!" ) LOGINFO( Username .. " tried to join, but is banned!") - return true -- Player is banned, return true to deny access + return true -- Player is banned, return true to deny access end if( WhiteListIni:GetValueB("WhiteListSettings", "WhiteListOn", false ) == true ) then if( WhiteListIni:GetValueB("WhiteList", Username, false ) == false ) then -- not on whitelist diff --git a/MCServer/Plugins/Core/portal-worlds.lua b/MCServer/Plugins/Core/portal-worlds.lua index e0de77c85..da48f1637 100644 --- a/MCServer/Plugins/Core/portal-worlds.lua +++ b/MCServer/Plugins/Core/portal-worlds.lua @@ -15,7 +15,7 @@ function HandlePortalCommand( Split, Player ) end function HandleWorldsCommand( Split, Player ) - local SettingsIni = cIniFile("settings.ini") + local SettingsIni = cIniFile("settings.ini") if SettingsIni:ReadFile() == false then Player:SendMessage(cChatColor.Yellow .. "[INFO] " .. cChatColor.White .. "No worlds found" ) end diff --git a/MCServer/Plugins/Core/rank-groups.lua b/MCServer/Plugins/Core/rank-groups.lua index 04050fc80..bb7d2ae5c 100644 --- a/MCServer/Plugins/Core/rank-groups.lua +++ b/MCServer/Plugins/Core/rank-groups.lua @@ -33,7 +33,7 @@ function HandleRankCommand( Split, Player ) end function HandleGroupsCommand( Split, Player ) - local GroupsIni = cIniFile("groups.ini") + local GroupsIni = cIniFile("groups.ini") if GroupsIni:ReadFile() == false then Player:SendMessage(cChatColor.Rose .. "[INFO] " .. cChatColor.White .. "No groups found" ) end diff --git a/MCServer/Plugins/Core/save-reload-stop.lua b/MCServer/Plugins/Core/save-reload-stop.lua index c4aa030cb..976052fc7 100644 --- a/MCServer/Plugins/Core/save-reload-stop.lua +++ b/MCServer/Plugins/Core/save-reload-stop.lua @@ -1,21 +1,21 @@ function HandleSaveAllCommand( Split, Player ) cRoot:Get():SaveAllChunks(); - local Server = cRoot:Get():GetServer() + local Server = cRoot:Get():GetServer() Server:SendMessage(cChatColor.Rose .. "[WARNING] " .. cChatColor.White .. "Saving all worlds!") return true; end function HandleStopCommand( Split, Player ) - Server = cRoot:Get():GetServer() - local Server = cRoot:Get():GetServer() + Server = cRoot:Get():GetServer() + local Server = cRoot:Get():GetServer() Server:SendMessage(cChatColor.Red .. "[WARNING] " .. cChatColor.White .. "Server is terminating!" ) cRoot:Get():QueueExecuteConsoleCommand("stop") return true end function HandleReloadCommand( Split, Player ) - Server = cRoot:Get():GetServer() - local Server = cRoot:Get():GetServer() + Server = cRoot:Get():GetServer() + local Server = cRoot:Get():GetServer() Server:SendMessage(cChatColor.Rose .. "[WARNING] " .. cChatColor.White .. "Reloading all plugins!" ) cRoot:Get():GetPluginManager():ReloadPlugins() return true diff --git a/MCServer/Plugins/Core/spawn.lua b/MCServer/Plugins/Core/spawn.lua index 09ada3ada..d1ef7399b 100644 --- a/MCServer/Plugins/Core/spawn.lua +++ b/MCServer/Plugins/Core/spawn.lua @@ -2,6 +2,6 @@ function HandleSpawnCommand(Split, Player) World = Player:GetWorld() SetBackCoordinates(Player) Player:TeleportToCoords(World:GetSpawnX(), World:GetSpawnY(), World:GetSpawnZ()) - Player:SendMessage(cChatColor.Green .. "[INFO] " .. cChatColor.White .. "Returned to world spawn" ) + Player:SendMessage(cChatColor.Green .. "[INFO] " .. cChatColor.White .. "Returned to world spawn" ) return true end \ No newline at end of file diff --git a/MCServer/Plugins/Core/teleport.lua b/MCServer/Plugins/Core/teleport.lua index 3ba5e36ef..1e2cab6f7 100644 --- a/MCServer/Plugins/Core/teleport.lua +++ b/MCServer/Plugins/Core/teleport.lua @@ -16,45 +16,45 @@ function HandleTPCommand(a_Split, a_Player) end function HandleTPACommand( Split, Player ) - if Split[2] == nil then - Player:SendMessage(cChatColor.Yellow .. "[INFO] " .. cChatColor.White .. "Usage: /tpa [Player]" ) - return true - end - local loopPlayer = function( OtherPlayer ) - if OtherPlayer:GetName() == Split[2] then - OtherPlayer:SendMessage(cChatColor.Yellow .. "[INFO] " .. cChatColor.White .. Player:GetName() .. " send a teleport request" ) - Player:SendMessage(cChatColor.Green .. "[INFO] " .. cChatColor.White .. "You send a teleport request to " .. OtherPlayer:GetName() ) - Destination[OtherPlayer:GetName()] = Player:GetName() - end - end - local loopWorlds = function( World ) - World:ForEachPlayer( loopPlayer ) - end - cRoot:Get():ForEachWorld( loopWorlds ) - return true + if Split[2] == nil then + Player:SendMessage(cChatColor.Yellow .. "[INFO] " .. cChatColor.White .. "Usage: /tpa [Player]" ) + return true + end + local loopPlayer = function( OtherPlayer ) + if OtherPlayer:GetName() == Split[2] then + OtherPlayer:SendMessage(cChatColor.Yellow .. "[INFO] " .. cChatColor.White .. Player:GetName() .. " send a teleport request" ) + Player:SendMessage(cChatColor.Green .. "[INFO] " .. cChatColor.White .. "You send a teleport request to " .. OtherPlayer:GetName() ) + Destination[OtherPlayer:GetName()] = Player:GetName() + end + end + local loopWorlds = function( World ) + World:ForEachPlayer( loopPlayer ) + end + cRoot:Get():ForEachWorld( loopWorlds ) + return true end function HandleTPAcceptCommand( Split, Player ) - if Destination[Player:GetName()] == nil then - Player:SendMessage(cChatColor.Rose .. "[INFO] " .. cChatColor.White .. "Nobody has send you a teleport request" ) - return true - end - local loopPlayer = function( OtherPlayer ) - if Destination[Player:GetName()] == OtherPlayer:GetName() then - if OtherPlayer:GetWorld():GetName() ~= Player:GetWorld():GetName() then - OtherPlayer:MoveToWorld( Player:GetWorld():GetName() ) - end - OtherPlayer:TeleportToEntity( Player ) - Player:SendMessage(cChatColor.Yellow .. "[INFO] " .. cChatColor.White .. OtherPlayer:GetName() .. " teleported to you" ) - OtherPlayer:SendMessage(cChatColor.Green .. "[INFO] " .. cChatColor.White .. "You teleported to " .. Player:GetName() ) - Destination[Player:GetName()] = nil - end - end - local loopWorlds = function( World ) - World:ForEachPlayer( loopPlayer ) - end - cRoot:Get():ForEachWorld( loopWorlds ) - return true + if Destination[Player:GetName()] == nil then + Player:SendMessage(cChatColor.Rose .. "[INFO] " .. cChatColor.White .. "Nobody has send you a teleport request" ) + return true + end + local loopPlayer = function( OtherPlayer ) + if Destination[Player:GetName()] == OtherPlayer:GetName() then + if OtherPlayer:GetWorld():GetName() ~= Player:GetWorld():GetName() then + OtherPlayer:MoveToWorld( Player:GetWorld():GetName() ) + end + OtherPlayer:TeleportToEntity( Player ) + Player:SendMessage(cChatColor.Yellow .. "[INFO] " .. cChatColor.White .. OtherPlayer:GetName() .. " teleported to you" ) + OtherPlayer:SendMessage(cChatColor.Green .. "[INFO] " .. cChatColor.White .. "You teleported to " .. Player:GetName() ) + Destination[Player:GetName()] = nil + end + end + local loopWorlds = function( World ) + World:ForEachPlayer( loopPlayer ) + end + cRoot:Get():ForEachWorld( loopWorlds ) + return true end -- Teleports a_SrcPlayer to a player named a_DstPlayerName; if a_TellDst is true, will send a notice to the destination player @@ -73,8 +73,8 @@ function TeleportToPlayer(a_SrcPlayer, a_DstPlayerName, a_TellDst) end end - local World = a_SrcPlayer:GetWorld(); - if (not(World:DoWithPlayer(a_DstPlayerName, teleport))) then - a_SrcPlayer:SendMessage(cChatColor.Rose .. "[INFO] " .. cChatColor.White .. "Can't find player " .. a_DstPlayerName); + local World = a_SrcPlayer:GetWorld(); + if (not(World:DoWithPlayer(a_DstPlayerName, teleport))) then + a_SrcPlayer:SendMessage(cChatColor.Rose .. "[INFO] " .. cChatColor.White .. "Can't find player " .. a_DstPlayerName); end end \ No newline at end of file diff --git a/MCServer/Plugins/Core/web_serversettings.lua b/MCServer/Plugins/Core/web_serversettings.lua index 75f9b46c2..a53756b21 100644 --- a/MCServer/Plugins/Core/web_serversettings.lua +++ b/MCServer/Plugins/Core/web_serversettings.lua @@ -43,8 +43,8 @@ local function ShowGeneralSettings( Request ) SettingsIni:SetValue("Server", "MaxPlayers", Request.PostParams["Server_MaxPlayers"], false ) end if( tonumber( Request.PostParams["Server_Port"] ) ~= nil ) then - if( tonumber( Request.PostParams["Server_Port"] ) > 0 ) then - SettingsIni:SetValue("Server", "Port", Request.PostParams["Server_Port"], false ) + if( tonumber( Request.PostParams["Server_Port"] ) > 0 ) then + SettingsIni:SetValue("Server", "Port", Request.PostParams["Server_Port"], false ) end end if( tonumber( Request.PostParams["Server_PortsIPv6"] ) ~= nil ) then @@ -363,7 +363,7 @@ function ShowWorldSettings( Request ) WorldIni:DeleteValue( "SpawnPosition", "Z" ) WorldIni:SetValue( "SpawnPosition", "Z", Request.PostParams["World_SpawnZ"] ) end - if( tonumber( Request.PostParams["LimitWorldWidth"] ) ~= nil ) then + if( tonumber( Request.PostParams["LimitWorldWidth"] ) ~= nil ) then WorldIni:DeleteValue( "WorldLimit", "LimitRadius" ) WorldIni:SetValue( "WorldLimit", "LimitRadius", Request.PostParams["LimitWorldWidth"] ) end @@ -669,8 +669,8 @@ function ShowWorldSettings( Request )
- - +
LimitWorld
+
LimitWorld
Max chunks from spawn (0 to disable):

diff --git a/MCServer/Plugins/Core/worldlimiter.lua b/MCServer/Plugins/Core/worldlimiter.lua index 8fd3287b2..1bb1b4fc6 100644 --- a/MCServer/Plugins/Core/worldlimiter.lua +++ b/MCServer/Plugins/Core/worldlimiter.lua @@ -1,5 +1,5 @@ function OnPlayerMoving( Player ) - LimitWorldWidth = WorldsWorldLimit[Player:GetWorld():GetName()] + LimitWorldWidth = WorldsWorldLimit[Player:GetWorld():GetName()] if LimitWorldWidth > 0 then local World = Player:GetWorld() local SpawnX = math.floor(World:GetSpawnX() / 16) -- cgit v1.2.3