From f14b0ec7fd15e5b7e1819327c07e6198160d422c Mon Sep 17 00:00:00 2001 From: Alexander Harkness Date: Sat, 3 Aug 2013 08:37:43 +0100 Subject: Lump in some core changes. Squashed commit of the following: commit f4ac029a0f1903fc9e49365117a81293303c8811 Author: Tiger Wang Date: Fri Aug 2 23:23:15 2013 +0100 Miscellaneous Changes Reduced ban/unban code size a little. Clarified console commands. Added commented code to onjoin when bugs are fixed. Removed embarrassing server wide messages. 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 | 45 ++++++++--------------- MCServer/Plugins/Core/console.lua | 69 ++++++++++++++++++++--------------- MCServer/Plugins/Core/onjoinleave.lua | 19 ++++++++-- MCServer/Plugins/Core/onlogin.lua | 2 - 4 files changed, 70 insertions(+), 65 deletions(-) (limited to 'MCServer/Plugins/Core') diff --git a/MCServer/Plugins/Core/ban-unban.lua b/MCServer/Plugins/Core/ban-unban.lua index 1ad9b7e75..480e5633e 100644 --- a/MCServer/Plugins/Core/ban-unban.lua +++ b/MCServer/Plugins/Core/ban-unban.lua @@ -4,37 +4,22 @@ function HandleBanCommand( Split, Player ) return true end - local Reason = "You have been banned" + local Reason = cChatColor.Red .. "You have been banned." .. cChatColor.White .. " Did you do something illegal?" if( #Split > 2 ) then Reason = table.concat(Split, " ", 3) end - - if( BanPlayer(Split[2], Reason) == false ) then - Player:SendMessage(cChatColor.Rose .. "[INFO] " .. cChatColor.White .. "Could not find player " .. Split[2] ) - return true - end - - return true -end - -function BanPlayer(PlayerName, Reason) - -- Ban the player in the banned.ini: - BannedPlayersIni:SetValueB("Banned", PlayerName, true) - BannedPlayersIni:WriteFile() - -- Kick the player: - if (Reason == nil) then - Reason = "You have been banned" - end - local Success = KickPlayer(PlayerName, Reason) - if (not(Success)) then - return false; + if KickPlayer(Split[2], Reason) == false then + BannedPlayersIni:DeleteValue("Banned", Split[2]) + BannedPlayersIni:SetValueB("Banned", Split[2], true) + BannedPlayersIni:WriteFile() + Player:SendMessage(cChatColor.Green .. "[INFO] " .. cChatColor.White .. "Could not find player, but banned anyway" ) + else + BannedPlayersIni:DeleteValue("Banned", Split[2]) + BannedPlayersIni:SetValueB("Banned", Split[2], true) + BannedPlayersIni:WriteFile() + Player:SendMessage(cChatColor.Green .. "[INFO] " .. cChatColor.White .. "Successfully kicked and banned player" ) end - - LOGINFO("'" .. PlayerName .. "' has been banned (\"" .. Reason .. "\") "); - local Server = cRoot:Get():GetServer(); - Server:SendMessage("Banned " .. PlayerName); - return true end @@ -45,16 +30,16 @@ function HandleUnbanCommand( Split, Player ) end if( BannedPlayersIni:GetValueB("Banned", Split[2], false) == false ) then - Player:SendMessage(cChatColor.Rose .. "[INFO] " .. cChatColor.White .. " is not banned!" ) + Player:SendMessage(cChatColor.Rose .. "[INFO] " .. cChatColor.White .. Split[2] .. " is not banned!" ) return true end - BannedPlayersIni:SetValueB("Banned", Split[2], false, false) + BannedPlayersIni:DeleteValue("Banned", Split[2]) + BannedPlayersIni:SetValueB("Banned", Split[2], false) BannedPlayersIni:WriteFile() - local Server = cRoot:Get():GetServer() LOGINFO( Player:GetName() .. " is unbanning " .. Split[2] ) - Server:SendMessage( "Unbanning " .. Split[2] ) + Player:SendMessage(cChatColor.Green .. "[INFO] " .. cChatColor.White .. "Unbanning " .. Split[2] ) return true end \ No newline at end of file diff --git a/MCServer/Plugins/Core/console.lua b/MCServer/Plugins/Core/console.lua index 7c1e6abde..59a60ae62 100644 --- a/MCServer/Plugins/Core/console.lua +++ b/MCServer/Plugins/Core/console.lua @@ -4,39 +4,47 @@ function InitConsoleCommands() local PluginMgr = cPluginManager:Get(); -- 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("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"); - PluginMgr:BindConsoleCommand("list", HandleConsoleList, "Lists all players in a machine-readable format"); - PluginMgr:BindConsoleCommand("listgroups", HandleConsoleListGroups, "Shows a list of all the groups"); - PluginMgr:BindConsoleCommand("numchunks", HandleConsoleNumChunks, "Shows number of chunks currently loaded"); - PluginMgr:BindConsoleCommand("players", HandleConsolePlayers, "Lists all connected players"); - PluginMgr:BindConsoleCommand("primaryserverversion", HandleConsolePrimaryServerVersion, "Gets or sets server version reported to 1.4+ clients"); - PluginMgr:BindConsoleCommand("rank", HandleConsoleRank, " [Player] [Group] - add a player to a group"); - PluginMgr:BindConsoleCommand("reload", HandleConsoleReload, "Reloads all plugins"); - PluginMgr:BindConsoleCommand("save-all", HandleConsoleSaveAll, "Saves all chunks"); - PluginMgr:BindConsoleCommand("say", HandleConsoleSay, "Sends a chat message to all players"); - PluginMgr:BindConsoleCommand("unload", HandleConsoleUnload, "Unloads all unused chunks"); + PluginMgr:BindConsoleCommand("ban", HandleConsoleBan, " ~ Bans 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"); + PluginMgr:BindConsoleCommand("list", HandleConsoleList, " - Lists all players in a machine-readable format"); + PluginMgr:BindConsoleCommand("listgroups", HandleConsoleListGroups, " - Shows a list of all the groups"); + PluginMgr:BindConsoleCommand("numchunks", HandleConsoleNumChunks, " - Shows number of chunks currently loaded"); + PluginMgr:BindConsoleCommand("players", HandleConsolePlayers, " - Lists all connected players"); + PluginMgr:BindConsoleCommand("getversion", HandleConsoleVersion, " - Gets server version reported to 1.4+ clients"); + PluginMgr:BindConsoleCommand("setversion", HandleConsoleVersion, " ~ Sets server version reported to 1.4+ clients"); + PluginMgr:BindConsoleCommand("rank", HandleConsoleRank, " ~ Add a player to a group"); + PluginMgr:BindConsoleCommand("reload", HandleConsoleReload, " - Reloads all plugins"); + PluginMgr:BindConsoleCommand("save-all", HandleConsoleSaveAll, " - Saves all chunks"); + PluginMgr:BindConsoleCommand("say", HandleConsoleSay, " - Sends a chat message to all players"); + PluginMgr:BindConsoleCommand("unload", HandleConsoleUnload, " - Unloads all unused chunks"); end function HandleConsoleBan(Split) if (#Split < 2) then return true, "Usage: ban [Player] "; - end - - local Reason = "You have been banned" - if (#Split > 2) then - Reason = table.concat(Split, " ", 3); - end + end + local Reason = cChatColor.Red .. "You have been banned." .. cChatColor.White .. " Did you do something illegal?" + if( #Split > 2 ) then + Reason = table.concat(Split, " ", 3) + end - if (not(BanPlayer(Split[2], Reason))) then - return true, "Could not find player " .. Split[2]; + if KickPlayer(Split[2], Reason) == false then + BannedPlayersIni:DeleteValue("Banned", Split[2]) + BannedPlayersIni:SetValueB("Banned", Split[2], true) + BannedPlayersIni:WriteFile() + LOGINFO("Could not find player, but banned anyway" ) + else + BannedPlayersIni:DeleteValue("Banned", Split[2]) + BannedPlayersIni:SetValueB("Banned", Split[2], true) + BannedPlayersIni:WriteFile() + LOGINFO("Successfully kicked and banned player" ) end - return true, "Player " .. Split[2] .. " has been banned."; + return true end function HandleConsoleUnban(Split) @@ -87,9 +95,10 @@ function HandleConsoleHelp(Split) table.sort(Commands, CompareCommands); local Out = ""; + Out = "'-' denotes no prefix, '~' denotes that a value is required.\n" for i, Command in ipairs(Commands) do Out = Out .. Command[1] .. string.rep(" ", MaxLength - Command[1]:len()); -- Align to a table - Out = Out .. " - " .. Command[2] .. "\n"; + Out = Out .. Command[2] .. "\n"; end return true, Out; end @@ -171,7 +180,7 @@ function HandleConsolePlayers(Split) return true, Out; end -function HandleConsolePrimaryServerVersion(Split) +function HandleConsoleVersion(Split) if (#Split == 1) then -- Display current version: local Version = cRoot:Get():GetPrimaryServerVersion(); @@ -218,7 +227,7 @@ function HandleConsoleRank(Split) World:ForEachPlayer( function (Player) if (Player:GetName() == Split[2]) then - Player:SendMessage(cChatColor.Green .. "You were moved to group " .. Split[3]); + Player:SendMessage(cChatColor.Yellow .. "[INFO] " .. cChatColor.White .. "You were moved to group " .. Split[3]); Player:LoadPermissionsFromDisk(); end end @@ -231,12 +240,14 @@ end function HandleConsoleReload(Split) Server = cRoot:Get():GetServer(); - Server:SendMessage(cChatColor.Green .. "Reloading all plugins."); + Server:SendMessage(cChatColor.Rose .. "[WARNING] " .. cChatColor.White .. "Reloading all plugins!"); cPluginManager:Get():ReloadPlugins(); return true; end function HandleConsoleSaveAll(Split) + Server = cRoot:Get():GetServer(); + Server:SendMessage(cChatColor.Rose .. "[WARNING] " .. cChatColor.White .. "Saving all chunks!"); cRoot:Get():SaveAllChunks(); return true; end @@ -248,7 +259,7 @@ function HandleConsoleSay(Split) Message = Message .. " " .. Text; end Message = Message:sub(2); -- Cut off the first space - cRoot:Get():GetServer():BroadcastChat(cChatColor.Purple .. "[SERVER] " .. Message); + cRoot:Get():GetServer():BroadcastChat(cChatColor.Gold .. "[SERVER] " .. cChatColor.Yellow .. Message); return true; end diff --git a/MCServer/Plugins/Core/onjoinleave.lua b/MCServer/Plugins/Core/onjoinleave.lua index 7acef47de..372f6af47 100644 --- a/MCServer/Plugins/Core/onjoinleave.lua +++ b/MCServer/Plugins/Core/onjoinleave.lua @@ -1,8 +1,19 @@ function OnPlayerJoined(Player) - ShowMOTDTo( Player ) - local Server = cRoot:Get():GetServer() - Server:SendMessage(cChatColor.Yellow .. "[JOIN] " .. cChatColor.White .. Player:GetName() .. " has joined the game" ) - return false + --if( BannedPlayersIni:GetValueB("Banned", Player:GetName(), false) == true ) then + -- LOGINFO( Player:GetName() .. " tried to join, but is banned!" ) + -- KickPlayer(Player:GetName(), cChatColor.Red .. "You are banned!" ) + -- return true + --elseif( WhiteListIni:GetValueB("WhiteListSettings", "WhiteListOn", false ) == true ) then + -- if( WhiteListIni:GetValueB("WhiteList", Player:GetName(), false ) == false ) then + -- LOGINFO( Player:GetName() .. " tried to join, but is not whitelisted!" ) + -- KickPlayer(Player:GetName(), cChatColor.Red .. "You are not whitelisted!" ) + -- end + --else + ShowMOTDTo( Player ) + local Server = cRoot:Get():GetServer() + Server:SendMessage(cChatColor.Yellow .. "[JOIN] " .. cChatColor.White .. Player:GetName() .. " has joined the game" ) + return false + --end end function OnDisconnect(Player, Reason) diff --git a/MCServer/Plugins/Core/onlogin.lua b/MCServer/Plugins/Core/onlogin.lua index cc79bb0ae..6826305b2 100644 --- a/MCServer/Plugins/Core/onlogin.lua +++ b/MCServer/Plugins/Core/onlogin.lua @@ -1,8 +1,6 @@ function OnLogin(Client, ProtocolVersion, Username) if( Username ~= "" ) then if( BannedPlayersIni:GetValueB("Banned", Username, false) == true ) then - 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 end -- cgit v1.2.3