summaryrefslogtreecommitdiffstats
path: root/MCServer/Plugins/Core/ban-unban.lua
diff options
context:
space:
mode:
Diffstat (limited to 'MCServer/Plugins/Core/ban-unban.lua')
-rw-r--r--MCServer/Plugins/Core/ban-unban.lua60
1 files changed, 60 insertions, 0 deletions
diff --git a/MCServer/Plugins/Core/ban-unban.lua b/MCServer/Plugins/Core/ban-unban.lua
new file mode 100644
index 000000000..cee511e37
--- /dev/null
+++ b/MCServer/Plugins/Core/ban-unban.lua
@@ -0,0 +1,60 @@
+function HandleBanCommand( Split, Player )
+ if( #Split < 2 ) then
+ Player:SendMessage( cChatColor.Green .. "Usage: /ban [Player] <Reason>" )
+ return true
+ end
+
+ local Reason = "You have been banned"
+ if( #Split > 2 ) then
+ Reason = table.concat(Split, " ", 3)
+ end
+
+ if( BanPlayer(Split[2], Reason) == false ) then
+ Player:SendMessage( cChatColor.Green .. "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;
+ end
+
+ LOGINFO("'" .. PlayerName .. "' has been banned (\"" .. Reason .. "\") ");
+ local Server = cRoot:Get():GetServer();
+ Server:SendMessage("Banned " .. PlayerName);
+
+ 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 \ No newline at end of file