Leystryku

ulx_leysql syncbans v6

Dec 15th, 2016
379
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.13 KB | None | 0 0
  1. local oprint = print
  2. local print = function(...)
  3.     local t = {...}
  4.     for k,v in pairs(player.GetAll()) do
  5.         v:ChatPrint(t[1])
  6.     end
  7.     return oprint(...)
  8. end
  9.  
  10. local oldbans, err = ULib.parseKeyValues( ULib.fileRead( ULib.BANS_FILE ) )
  11.  
  12.  
  13.  
  14. local db = ulx_leysql.sqldb.dbobj
  15.  
  16. local values = {}
  17.  
  18. local size = table.Count(oldbans)
  19.  
  20. for k,v in pairs(oldbans) do
  21.     if(not v.time) then size = size - 1 continue end
  22.     v.name = v.name or "unknown"
  23.     v.time = tonumber(v.time)
  24.     v.unban = tonumber(v.unban)
  25.  
  26.     if(v.unban!=0) then
  27.         v.unban = (tonumber(v.unban)-tonumber(v.time))/60
  28.     end
  29.  
  30.     v.reason = v.reason or ""
  31.     v.admin = v.modified_admin or v.admin or "Console"
  32.     v.adminid = 0;
  33.  
  34.     local finda, findb = string.find(v.admin, "(STEAM_0:", 0, true)
  35.  
  36.     if(finda) then
  37.         local name_sid = v.admin
  38.         local normalid_withend = string.sub(name_sid, finda+1)
  39.         local normaldid = string.sub(normalid_withend, 0, -2)
  40.         v.adminid = util.SteamIDTo64(normaldid)
  41.        
  42.         local normalname = string.sub(name_sid, 0, finda-1)
  43.         v.admin = normalname
  44.  
  45.     end
  46.  
  47.     table.insert(values, "(" .. util.SteamIDTo64(k) .. ", '" .. db:escape(v.name) ..  "', " .. v.time .. "," .. v.unban .. ",'" .. db:escape(v.reason) .. "', " .. tostring(v.adminid) .. ", '" .. db:escape(v.admin) .. "', NULL, '')")
  48.  
  49. end
  50.  
  51.  
  52.  
  53. print("syncing bans, should end up being: " .. tostring(size) .. "in mysql!")
  54. local bans_add = db:query("INSERT INTO `lsql_bans`(`steamid`, `nick`, `time`, `duration`, `reason`, `bannedby`, `bannedby_nick`, `unbannedby`, `unbannedby_nick`) VALUES " .. table.concat(values, ","))
  55. bans_add:start()
  56.  
  57. local check_query = db:query("SELECT COUNT(*) as `cunt` FROM `lsql_bans`")
  58.  
  59. check_query.onSuccess = function(q, tbl)
  60.  
  61.     if(not tbl[1]) then print("something went wrong while syncing! :(") return end
  62.    
  63.     local num = tbl[1]["cunt"]
  64.    
  65.     if(num >= size) then
  66.         ErrorNoHalt("Successfully synced: " .. tostring(num) .. "bans !")
  67.     else
  68.         ErrorNoHalt("Something went wrong! " .. num .. " bans out of " .. size .. " got synced! :(")
  69.     end
  70. end
  71.  
  72. check_query.onError = function(q, s)
  73.    
  74.     ErrorNoHalt("Something went wrong! " .. q .. " :: " .. s)
  75. end
  76.  
  77. check_query:start()
Add Comment
Please, Sign In to add comment