· 8 years ago · Mar 13, 2018, 12:12 AM
1local META = FindMetaTable("Player")
2META.OldBan = META.OldBan or META.Ban
3
4function META:Ban(mintues, kick)
5 local id = self:SteamID()
6 local ip = self:IPAddress() or "0.0.0.0"
7 local when = os.time()
8
9 sql.Query( "CREATE TABLE IF NOT EXISTS `banned_players`( `SteamID` VARCHAR(30) NOT NULL PRIMARY KEY, `UserIP` TEXT, `Time` INTEGER, `When` INTEGER );" )
10 sql.Query( string.format("INSERT INTO `banned_players`( `SteamID`, `UserIP`, `Time`, `When` ) VALUES( '%s', '%s', %s, %s );", id, ip, minutes, when) )
11 sql.Query( string.format("UPDATE `banned_players` SET `UserIP`='%s', `Time`=%s, `When`=%s WHERE SteamID='%s';", ip, minutes, when, id) )
12
13 return self:OldBan(minutes, kick)
14end
15
16timer.Create("CheckBan", 60, 0, function()
17 local when = os.time()
18 local compare = 0
19 local data = sql.Query( "SELECT * IN `banned_players`;" )
20
21 for _,v in next, data do
22 if data.Time > 0 then
23 sql.Query( string.format("UPDATE `banned_players` SET `UserIP`='%s', `Time`=%s, `When`=%s WHERE SteamID='%s';", data.UserIP, data.Time, data.When, data.SteamID) )
24 compare = data.When + (data.Time * 60)
25
26 if compare < when then
27
28 end
29 end
30 end
31end)