Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- [MK] Servers ULX MySQL Automatic Rank Save
- -- Lets hope it works FOREVER
- --[[
- MySQL ULX Group Syncing by [MK] Servers
- - Used for keeping all groups synced
- ]]--
- require("mysqloo")
- local ULX_HOST = ""
- local ULX_PORT = 3306
- local ULX_DATABASE = ""
- local ULX_USERNAME = ""
- local ULX_PASSWORD = ""
- local ULXDB = mysqloo.connect(ULX_HOST, ULX_USERNAME, ULX_PASSWORD, ULX_DATABASE, ULX_PORT)
- ULXDB.onConnected = checkTable
- ULXDB.onConnectionFailed = DBError
- ULXDB:connect()
- function ULXDB:onConnected()
- Msg("Connected to database\n")
- checkTable(ULXDB)
- end
- function ULXDB:onConnectionFailed()
- Msg("Connected to Failed\n")
- end
- function checkQuery(query)
- local playerInfo = query:getData()
- if playerInfo[1] ~= nil then
- return true
- else
- return false
- end
- end
- local num_rows = 0
- function checkTable(server)
- print("Connected")
- local Qc = server:query( "CREATE TABLE IF NOT EXISTS `ulxmysql` (`steam` varchar(20) NOT NULL, `groups` varchar(30) NOT NULL)" )
- Qc.onError = function(Q,Err) print("Failed to Create Table: " .. Err) end
- Qc:start()
- end
- function LoadRank(ply)
- local queryQ = ULXDB:query("SELECT * FROM `ulxmysql` WHERE steam = '" .. ply:SteamID() .. "'")
- queryQ.onData = function(Q,D)
- queryQ.onSuccess = function(q)
- if checkQuery(q) then
- print("You are already created!")
- ulx.adduserids(nil,ply:SteamID(),D.groups)
- end
- end
- end
- queryQ.onError = function(Q,E) print("Q1") print(E) end
- queryQ:start()
- end
- function SaveRank(ply)
- if !(ply:IsUserGroup("user")) then
- local deleteQ = ULXDB:query("DELETE FROM `ulxmysql` WHERE `steam` = '" .. ply:SteamID() .. "'")
- deleteQ.onSuccess = function(q)
- if checkQuery(q) then
- print ("User is already created")
- end
- end
- deleteQ:start()
- end
- if !(ply:IsUserGroup("user")) then
- local InsertQ = ULXDB:query("INSERT INTO `ulxmysql` (`steam`, `groups`) VALUES ('"..ply:SteamID().."', '"..ply:GetUserGroup().."')")
- InsertQ.onError = DBError
- InsertQ:start()
- end
- end
- function SaveAllRanks()
- for k,v in pairs(player.GetAll()) do
- if !(v:IsUserGroup("user")) then
- local deleteQ = ULXDB:query("DELETE FROM `ulxmysql` WHERE `steam` = '" .. v:SteamID() .. "'")
- deleteQ.onSuccess = function(q)
- if checkQuery(q) then
- print("User is already created")
- end
- end
- deleteQ:start()
- end
- if !(v:IsUserGroup("user")) then
- local InsertQ = ULXDB:query("INSERT INTO `ulxmysql` (`steam`, `groups`) VALUES ('"..v:SteamID().."', '"..v:GetUserGroup().."')")
- InsertQ.onError = DBError
- InsertQ:start()
- end
- end
- end
- hook.Add("PlayerInitialSpawn", "PlaceUserToTheirGroup", LoadRank)
- hook.Add("PlayerDisconnected", "AddUserToTheirGroup", SaveRank)
- hook.Add("ShutDown", "AddAUserToTheirGroup", SaveAllRanks)
Advertisement
Add Comment
Please, Sign In to add comment