Guest User

Untitled

a guest
May 13th, 2013
1,342
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.78 KB | None | 0 0
  1. -- [MK] Servers ULX MySQL Automatic Rank Save
  2. -- Lets hope it works FOREVER
  3.  
  4. --[[
  5. MySQL ULX Group Syncing by [MK] Servers
  6. - Used for keeping all groups synced
  7. ]]--
  8.  
  9. require("mysqloo")
  10.  
  11. local ULX_HOST = ""
  12. local ULX_PORT = 3306
  13. local ULX_DATABASE = ""
  14. local ULX_USERNAME = ""
  15. local ULX_PASSWORD = ""
  16.  
  17. local ULXDB = mysqloo.connect(ULX_HOST, ULX_USERNAME, ULX_PASSWORD, ULX_DATABASE, ULX_PORT)
  18. ULXDB.onConnected = checkTable
  19. ULXDB.onConnectionFailed = DBError
  20. ULXDB:connect()
  21.  
  22. function ULXDB:onConnected()
  23. Msg("Connected to database\n")
  24. checkTable(ULXDB)
  25. end
  26.  
  27. function ULXDB:onConnectionFailed()
  28. Msg("Connected to Failed\n")
  29. end
  30.  
  31.  
  32. function checkQuery(query)
  33. local playerInfo = query:getData()
  34. if playerInfo[1] ~= nil then
  35. return true
  36. else
  37. return false
  38. end
  39. end
  40.  
  41. local num_rows = 0
  42. function checkTable(server)
  43. print("Connected")
  44. local Qc = server:query( "CREATE TABLE IF NOT EXISTS `ulxmysql` (`steam` varchar(20) NOT NULL, `groups` varchar(30) NOT NULL)" )
  45. Qc.onError = function(Q,Err) print("Failed to Create Table: " .. Err) end
  46. Qc:start()
  47. end
  48.  
  49.  
  50.  
  51. function LoadRank(ply)
  52. local queryQ = ULXDB:query("SELECT * FROM `ulxmysql` WHERE steam = '" .. ply:SteamID() .. "'")
  53. queryQ.onData = function(Q,D)
  54. queryQ.onSuccess = function(q)
  55. if checkQuery(q) then
  56. print("You are already created!")
  57. ulx.adduserids(nil,ply:SteamID(),D.groups)
  58. end
  59. end
  60. end
  61. queryQ.onError = function(Q,E) print("Q1") print(E) end
  62. queryQ:start()
  63. end
  64.  
  65. function SaveRank(ply)
  66. if !(ply:IsUserGroup("user")) then
  67. local deleteQ = ULXDB:query("DELETE FROM `ulxmysql` WHERE `steam` = '" .. ply:SteamID() .. "'")
  68. deleteQ.onSuccess = function(q)
  69. if checkQuery(q) then
  70. print ("User is already created")
  71. end
  72. end
  73. deleteQ:start()
  74. end
  75.  
  76. if !(ply:IsUserGroup("user")) then
  77. local InsertQ = ULXDB:query("INSERT INTO `ulxmysql` (`steam`, `groups`) VALUES ('"..ply:SteamID().."', '"..ply:GetUserGroup().."')")
  78. InsertQ.onError = DBError
  79. InsertQ:start()
  80. end
  81. end
  82.  
  83. function SaveAllRanks()
  84. for k,v in pairs(player.GetAll()) do
  85. if !(v:IsUserGroup("user")) then
  86. local deleteQ = ULXDB:query("DELETE FROM `ulxmysql` WHERE `steam` = '" .. v:SteamID() .. "'")
  87. deleteQ.onSuccess = function(q)
  88. if checkQuery(q) then
  89. print("User is already created")
  90. end
  91. end
  92. deleteQ:start()
  93. end
  94.  
  95. if !(v:IsUserGroup("user")) then
  96. local InsertQ = ULXDB:query("INSERT INTO `ulxmysql` (`steam`, `groups`) VALUES ('"..v:SteamID().."', '"..v:GetUserGroup().."')")
  97. InsertQ.onError = DBError
  98. InsertQ:start()
  99. end
  100. end
  101. end
  102.  
  103. hook.Add("PlayerInitialSpawn", "PlaceUserToTheirGroup", LoadRank)
  104. hook.Add("PlayerDisconnected", "AddUserToTheirGroup", SaveRank)
  105. hook.Add("ShutDown", "AddAUserToTheirGroup", SaveAllRanks)
Advertisement
Add Comment
Please, Sign In to add comment