@@ -36,6 +36,7 @@ function MSync.modules.MRSync.init( transaction )
3636 ]] ))
3737
3838 --[[
39+ OBSOLETE
3940 Description: Function to save a players rank
4041 Returns: nothing
4142 ]]
@@ -93,20 +94,61 @@ function MSync.modules.MRSync.init( transaction )
9394 addUserRankQ :start ()
9495 end
9596
97+ --[[
98+ Description: Function to validate user rank in DB is correct
99+ Arguments:
100+ - steamid [STRING] - the steamid of the user to validate
101+ - group [STRING] - the group of the user to validate
102+ ]]
103+ function MSync .modules .MRSync .validateData ( steamid , group )
104+
105+ if MSync .modules .MRSync .settings .nosync [group ] then return end ;
106+
107+ local removeOldRanksQ
108+
109+ if not MSync .modules .MRSync .settings .syncall [group ] then
110+
111+ removeOldRanksQ = MSync .DBServer :prepare ( [[
112+ DELETE FROM `tbl_mrsync` WHERE user_id=(SELECT p_user_id FROM tbl_users WHERE steamid=? AND steamid64=?) AND server_group=(SELECT p_group_id FROM tbl_server_grp WHERE group_name='allservers');
113+ ]] )
114+ removeOldRanksQ :setString (1 , steamid )
115+ removeOldRanksQ :setString (2 , util .SteamIDTo64 (steamid ))
116+
117+ removeOldRanksQ .onSuccess = function ( q , data )
118+ MSync .modules .MRSync .saveRankByID (steamid , group )
119+ end
120+ else
121+
122+ removeOldRanksQ = MSync .DBServer :prepare ( [[
123+ DELETE FROM `tbl_mrsync` WHERE user_id=(SELECT p_user_id FROM tbl_users WHERE steamid=? AND steamid64=?);
124+ ]] )
125+ removeOldRanksQ :setString (1 , steamid )
126+ removeOldRanksQ :setString (2 , util .SteamIDTo64 (steamid ))
127+
128+ removeOldRanksQ .onSuccess = function ( q , data )
129+ MSync .modules .MRSync .saveRankByID (steamid , group )
130+ end
131+ end
132+
133+ removeOldRanksQ :start ()
134+ end
135+
96136 --[[
97137 Description: Function to load a players rank
98138 Returns: nothing
99139 ]]
100140 function MSync .modules .MRSync .loadRank (ply )
101141 local loadUserQ = MSync .DBServer :prepare ( [[
102- SELECT rank FROM `tbl_mrsync`
142+ SELECT ` rank` FROM `tbl_mrsync`
103143 WHERE user_id=(
104144 SELECT p_user_id FROM tbl_users WHERE steamid=? AND steamid64=?
105145 ) AND (server_group=(
106146 SELECT p_group_id FROM tbl_server_grp WHERE group_name=?
107147 ) OR server_group=(
108148 SELECT p_group_id FROM tbl_server_grp WHERE group_name='allservers'
109- ));
149+ ))
150+ ORDER BY server_group ASC
151+ LIMIT 1;
110152 ]] )
111153 loadUserQ :setString (1 , ply :SteamID ())
112154 loadUserQ :setString (2 , ply :SteamID64 ())
@@ -226,12 +268,14 @@ function MSync.modules.MRSync.hooks()
226268
227269 -- Save rank on disconnect
228270 hook .Add (" PlayerDisconnected" , " mrsync.H.saveRank" , function (ply )
229- MSync .modules .MRSync .saveRank (ply )
271+ -- MSync.modules.MRSync.saveRank(ply)
272+ MSync .modules .MRSync .validateData (ply :SteamID (), ply :GetUserGroup ())
230273 end )
231274
232275 -- Save rank on GroupChange
233276 hook .Add (" ULibUserGroupChange" , " mrsync.H.saveRankOnUpdate" , function (sid , _ , _ , new_group , _ )
234- MSync .modules .MRSync .saveRankByID (sid , new_group )
277+ -- MSync.modules.MRSync.saveRankByID(sid, new_group)
278+ MSync .modules .MRSync .validateData (sid , new_group )
235279 end )
236280end
237281
0 commit comments