Loading lua/msync/server/modules/sv_mbsync.lua +173 −27 Original line number Diff line number Diff line Loading @@ -2,11 +2,11 @@ MSync = MSync or {} MSync.modules = MSync.modules or {} MSync.modules.MBSync = MSync.modules.MBSync or {} --[[ * @file sv_samplemodule.lua * @package Sample Module * @file sv_mbsync.lua * @package MySQL Ban Sync * @author Aperture Development * @license root_dir/LICENCE * @version 1.0.0 * @version 0.0.2 ]] --[[ Loading @@ -15,8 +15,8 @@ MSync.modules.MBSync = MSync.modules.MBSync or {} MSync.modules.MBSync.info = { Name = "MySQL Ban Sync", ModuleIdentifier = "MBSync", Description = "Synchronise band across your servers", Version = "0.0.1" Description = "Synchronise bans across your servers", Version = "0.0.2" } --[[ Loading @@ -34,8 +34,8 @@ function MSync.modules.MBSync.init( transaction ) `server_group` INT UNSIGNED NOT NULL, `ban_lifted` INT UNSIGNED, FOREIGN KEY (server_group) REFERENCES tbl_server_grp(p_group_id), FOREIGN KEY (userid) REFERENCES tbl_users(p_user_id), FOREIGN KEY (adminid) REFERENCES tbl_users(p_user_id) FOREIGN KEY (user_id) REFERENCES tbl_users(p_user_id), FOREIGN KEY (admin_id) REFERENCES tbl_users(p_user_id) ); ]] )) Loading @@ -51,8 +51,7 @@ function MSync.modules.MBSync.init( transaction ) (SELECT p_user_id FROM tbl_users WHERE steamid=? AND steamid64=?), ?, ?, ?, (SELECT p_group_id FROM tbl_server_grp WHERE group_name=?) ) ON DUPLICATE KEY UPDATE reason=VALUES(reason) AND lenght_unix=VALUES(lenght_unix) AND server_group=VALUES(server_group); ); ]] ) banUserQ:setString(1, ply:SteamID()) banUserQ:setString(2, ply:SteamID64()) Loading @@ -70,6 +69,65 @@ function MSync.modules.MBSync.init( transaction ) banUserQ:start() end --[[ Description: Function to ban a userid Returns: nothing ]] function MSync.modules.MBSync.banUserID(userid, calling_ply, length, reason, allserver) local banUserIdQ = MSync.DBServer:prepare( [[ INSERT INTO `tbl_mbsync` (user_id, admin_id, reason, date_unix, lenght_unix, server_group) VALUES ( (SELECT p_user_id FROM tbl_users WHERE steamid=? OR steamid64=? OR p_user_id=?), (SELECT p_user_id FROM tbl_users WHERE steamid=? AND steamid64=?), ?, ?, ?, (SELECT p_group_id FROM tbl_server_grp WHERE group_name=?) ); ]] ) banUserIdQ:setString(1, userid) banUserIdQ:setString(2, userid) banUserIdQ:setString(3, userid) banUserIdQ:setString(4, calling_ply:SteamID()) banUserIdQ:setString(5, calling_ply:SteamID64()) banUserIdQ:setString(6, reason) banUserIdQ:setNumber(7, os.time()) banUserIdQ:setNumber(8, lenght) if not allserver then banUserIdQ:setString(9, MSync.settings.data.serverGroup) else banUserIdQ:setString(9, "allservers") end banUserIdQ:start() end --[[ Description: Function to edit a ban Returns: nothing ]] function MSync.modules.MBSync.editBan(banId, reason, lenght, calling_ply, allserver) local editBanQ = MSync.DBServer:prepare( [[ UPDATE `tbl_mbsync` SET reason=?, lenght_unix=?, adminid=(SELECT p_user_id FROM tbl_users WHERE steamid=? AND steamid64=?), server_group=(SELECT p_group_id FROM tbl_server_grp WHERE group_name=?) WHERE p_ID=? ]] ) editBanQ:setString(1, reason) editBanQ:setString(2, lenght) editBanQ:setString(3, calling_ply:SteamID()) editBanQ:setString(4, calling_ply:SteamID64()) if not allserver then editBanQ:setString(5, MSync.settings.data.serverGroup) else editBanQ:setString(5, "allservers") end editBanQ:setString(6, banId) editBanQ:start() end --[[ Description: Function to unban a banId Returns: nothing Loading Loading @@ -104,11 +162,7 @@ function MSync.modules.MBSync.init( transaction ) unBanUserQ:setString(2, calling_ply:SteamID64()) unBanUserQ:setString(3, ply:SteamID()) unBanUserQ:setString(4, ply:SteamID64()) if not allserver then banUserQ:setString(5, MSync.settings.data.serverGroup) else banUserQ:setString(5, "allservers") end unBanUserQ:setString(5, MSync.settings.data.serverGroup) unBanUserQ:start() end Loading @@ -119,24 +173,116 @@ function MSync.modules.MBSync.init( transaction ) ]] function MSync.modules.MBSync.getBans(ply) local getBansQ = MSync.DBServer:prepare( [[ SELECT * FROM `tbl_mbsync`; SELECT tbl_mbsync.p_id, tbl_mbsync.reason, tbl_mbsync.date_unix, tbl_mbsync.lenght_unix, banned.steamid AS 'banned.steamid', banned.steamid64 AS 'banned.steamid64', banned.nickname AS 'banned.nickname', admin.steamid AS 'admin.steamid', admin.steamid64 AS 'admin.steamid64', admin.nickname AS 'admin.nickname', unban_admin.steamid AS 'unban_admin.steamid', unban_admin.steamid64 AS 'unban_admin.steamid64', unban_admin.nickname AS 'unban_admin.nickname', tbl_server_grp.group_name FROM `tbl_mbsync` LEFT JOIN tbl_server_grp ON tbl_mbsync.server_group = tbl_server_grp.p_group_id LEFT JOIN tbl_users AS banned ON tbl_mbsync.userid = banned.p_user_id LEFT JOIN tbl_users AS admin ON tbl_mbsync.adminid = admin.p_user_id LEFT JOIN tbl_users AS unban_admin ON tbl_mbsync.ban_lifted = unban_admin.p_user_id ; ]] ) getBansQ:setString(1, ply:SteamID()) unBanUserQ:setString(2, ply:SteamID64()) unBanUserQ:setString(3, calling_ply:SteamID()) unBanUserQ:setString(4, calling_ply:SteamID64()) unBanUserQ:setString(5, reason) unBanUserQ:setNumber(6, os.time()) unBanUserQ:setNumber(7, lenght) if not allserver then unBanUserQ:setString(8, MSync.settings.data.serverGroup) else unBanUserQ:setString(8, "allservers") end --[[ Ban Table Lua structure: bans = { [tbl_mbsync.p_id] = { reason = tbl_mbsync.reason banDate = tbl_mbsync.date_unix banLenght = tbl_mbsync.lenght_unix bannedUser = { steamid = banned.steamid steamid64 = banned.steamid64 nickname = banned.nickname } banningAdmin = { steamid = admin.steamid steamid64 = admin.steamid64 nickname = admin.nickname } unBanningAdmin = { steamid = unban_admin.steamid steamid64 = unban_admin.steamid64 nickname = unban_admin.nickname } } } ]] banunBanUserQUserQ:start() end --[[ Description: Function to get all active bans Returns: nothing ]] function MSync.modules.MBSync.getActiveBans() local getActiveBansQ = MSync.DBServer:prepare( [[ SELECT tbl_mbsync.*, banned.steamid, banned.steamid64, banned.nickname, admin.nickname FROM `tbl_mbsync` LEFT JOIN tbl_users AS banned ON tbl_mbsync.userid = banned.p_group_id LEFT JOIN tbl_users AS admin ON tbl_mbsync.adminid = admin.p_group_id WHERE ban_lifted IS NULL AND ( (date_unix+lenght_unix)>? OR lenght_unix=0 ) AND ( server_group=(SELECT p_group_id FROM tbl_server_grp WHERE group_name=?) OR server_group=(SELECT p_group_id FROM tbl_server_grp WHERE group_name='allservers') ) ]] ) getActiveBansQ:setNumber(1, os.time()) getActiveBansQ:setString(8, MSync.settings.data.serverGroup) --[[ Ban Table Lua structure: activeBans = { [banned.steamid64] = { banId = tbl_mbsync.p_id reason = tbl_mbsync.reason timestamp = tbl_mbsync.date_unix length = tbl_mbsync.lenght_unix banned = { steamid = banned.steamid Nickname = banned.nickname } adminNickname = admin.nickname } } ]] function getActiveBansQ.onData( q, data ) if data.rank == ply:GetUserGroup() then return end; ply:SetUserGroup(data[1].rank) end getActiveBansQ:start() end end --[[ Loading Loading
lua/msync/server/modules/sv_mbsync.lua +173 −27 Original line number Diff line number Diff line Loading @@ -2,11 +2,11 @@ MSync = MSync or {} MSync.modules = MSync.modules or {} MSync.modules.MBSync = MSync.modules.MBSync or {} --[[ * @file sv_samplemodule.lua * @package Sample Module * @file sv_mbsync.lua * @package MySQL Ban Sync * @author Aperture Development * @license root_dir/LICENCE * @version 1.0.0 * @version 0.0.2 ]] --[[ Loading @@ -15,8 +15,8 @@ MSync.modules.MBSync = MSync.modules.MBSync or {} MSync.modules.MBSync.info = { Name = "MySQL Ban Sync", ModuleIdentifier = "MBSync", Description = "Synchronise band across your servers", Version = "0.0.1" Description = "Synchronise bans across your servers", Version = "0.0.2" } --[[ Loading @@ -34,8 +34,8 @@ function MSync.modules.MBSync.init( transaction ) `server_group` INT UNSIGNED NOT NULL, `ban_lifted` INT UNSIGNED, FOREIGN KEY (server_group) REFERENCES tbl_server_grp(p_group_id), FOREIGN KEY (userid) REFERENCES tbl_users(p_user_id), FOREIGN KEY (adminid) REFERENCES tbl_users(p_user_id) FOREIGN KEY (user_id) REFERENCES tbl_users(p_user_id), FOREIGN KEY (admin_id) REFERENCES tbl_users(p_user_id) ); ]] )) Loading @@ -51,8 +51,7 @@ function MSync.modules.MBSync.init( transaction ) (SELECT p_user_id FROM tbl_users WHERE steamid=? AND steamid64=?), ?, ?, ?, (SELECT p_group_id FROM tbl_server_grp WHERE group_name=?) ) ON DUPLICATE KEY UPDATE reason=VALUES(reason) AND lenght_unix=VALUES(lenght_unix) AND server_group=VALUES(server_group); ); ]] ) banUserQ:setString(1, ply:SteamID()) banUserQ:setString(2, ply:SteamID64()) Loading @@ -70,6 +69,65 @@ function MSync.modules.MBSync.init( transaction ) banUserQ:start() end --[[ Description: Function to ban a userid Returns: nothing ]] function MSync.modules.MBSync.banUserID(userid, calling_ply, length, reason, allserver) local banUserIdQ = MSync.DBServer:prepare( [[ INSERT INTO `tbl_mbsync` (user_id, admin_id, reason, date_unix, lenght_unix, server_group) VALUES ( (SELECT p_user_id FROM tbl_users WHERE steamid=? OR steamid64=? OR p_user_id=?), (SELECT p_user_id FROM tbl_users WHERE steamid=? AND steamid64=?), ?, ?, ?, (SELECT p_group_id FROM tbl_server_grp WHERE group_name=?) ); ]] ) banUserIdQ:setString(1, userid) banUserIdQ:setString(2, userid) banUserIdQ:setString(3, userid) banUserIdQ:setString(4, calling_ply:SteamID()) banUserIdQ:setString(5, calling_ply:SteamID64()) banUserIdQ:setString(6, reason) banUserIdQ:setNumber(7, os.time()) banUserIdQ:setNumber(8, lenght) if not allserver then banUserIdQ:setString(9, MSync.settings.data.serverGroup) else banUserIdQ:setString(9, "allservers") end banUserIdQ:start() end --[[ Description: Function to edit a ban Returns: nothing ]] function MSync.modules.MBSync.editBan(banId, reason, lenght, calling_ply, allserver) local editBanQ = MSync.DBServer:prepare( [[ UPDATE `tbl_mbsync` SET reason=?, lenght_unix=?, adminid=(SELECT p_user_id FROM tbl_users WHERE steamid=? AND steamid64=?), server_group=(SELECT p_group_id FROM tbl_server_grp WHERE group_name=?) WHERE p_ID=? ]] ) editBanQ:setString(1, reason) editBanQ:setString(2, lenght) editBanQ:setString(3, calling_ply:SteamID()) editBanQ:setString(4, calling_ply:SteamID64()) if not allserver then editBanQ:setString(5, MSync.settings.data.serverGroup) else editBanQ:setString(5, "allservers") end editBanQ:setString(6, banId) editBanQ:start() end --[[ Description: Function to unban a banId Returns: nothing Loading Loading @@ -104,11 +162,7 @@ function MSync.modules.MBSync.init( transaction ) unBanUserQ:setString(2, calling_ply:SteamID64()) unBanUserQ:setString(3, ply:SteamID()) unBanUserQ:setString(4, ply:SteamID64()) if not allserver then banUserQ:setString(5, MSync.settings.data.serverGroup) else banUserQ:setString(5, "allservers") end unBanUserQ:setString(5, MSync.settings.data.serverGroup) unBanUserQ:start() end Loading @@ -119,24 +173,116 @@ function MSync.modules.MBSync.init( transaction ) ]] function MSync.modules.MBSync.getBans(ply) local getBansQ = MSync.DBServer:prepare( [[ SELECT * FROM `tbl_mbsync`; SELECT tbl_mbsync.p_id, tbl_mbsync.reason, tbl_mbsync.date_unix, tbl_mbsync.lenght_unix, banned.steamid AS 'banned.steamid', banned.steamid64 AS 'banned.steamid64', banned.nickname AS 'banned.nickname', admin.steamid AS 'admin.steamid', admin.steamid64 AS 'admin.steamid64', admin.nickname AS 'admin.nickname', unban_admin.steamid AS 'unban_admin.steamid', unban_admin.steamid64 AS 'unban_admin.steamid64', unban_admin.nickname AS 'unban_admin.nickname', tbl_server_grp.group_name FROM `tbl_mbsync` LEFT JOIN tbl_server_grp ON tbl_mbsync.server_group = tbl_server_grp.p_group_id LEFT JOIN tbl_users AS banned ON tbl_mbsync.userid = banned.p_user_id LEFT JOIN tbl_users AS admin ON tbl_mbsync.adminid = admin.p_user_id LEFT JOIN tbl_users AS unban_admin ON tbl_mbsync.ban_lifted = unban_admin.p_user_id ; ]] ) getBansQ:setString(1, ply:SteamID()) unBanUserQ:setString(2, ply:SteamID64()) unBanUserQ:setString(3, calling_ply:SteamID()) unBanUserQ:setString(4, calling_ply:SteamID64()) unBanUserQ:setString(5, reason) unBanUserQ:setNumber(6, os.time()) unBanUserQ:setNumber(7, lenght) if not allserver then unBanUserQ:setString(8, MSync.settings.data.serverGroup) else unBanUserQ:setString(8, "allservers") end --[[ Ban Table Lua structure: bans = { [tbl_mbsync.p_id] = { reason = tbl_mbsync.reason banDate = tbl_mbsync.date_unix banLenght = tbl_mbsync.lenght_unix bannedUser = { steamid = banned.steamid steamid64 = banned.steamid64 nickname = banned.nickname } banningAdmin = { steamid = admin.steamid steamid64 = admin.steamid64 nickname = admin.nickname } unBanningAdmin = { steamid = unban_admin.steamid steamid64 = unban_admin.steamid64 nickname = unban_admin.nickname } } } ]] banunBanUserQUserQ:start() end --[[ Description: Function to get all active bans Returns: nothing ]] function MSync.modules.MBSync.getActiveBans() local getActiveBansQ = MSync.DBServer:prepare( [[ SELECT tbl_mbsync.*, banned.steamid, banned.steamid64, banned.nickname, admin.nickname FROM `tbl_mbsync` LEFT JOIN tbl_users AS banned ON tbl_mbsync.userid = banned.p_group_id LEFT JOIN tbl_users AS admin ON tbl_mbsync.adminid = admin.p_group_id WHERE ban_lifted IS NULL AND ( (date_unix+lenght_unix)>? OR lenght_unix=0 ) AND ( server_group=(SELECT p_group_id FROM tbl_server_grp WHERE group_name=?) OR server_group=(SELECT p_group_id FROM tbl_server_grp WHERE group_name='allservers') ) ]] ) getActiveBansQ:setNumber(1, os.time()) getActiveBansQ:setString(8, MSync.settings.data.serverGroup) --[[ Ban Table Lua structure: activeBans = { [banned.steamid64] = { banId = tbl_mbsync.p_id reason = tbl_mbsync.reason timestamp = tbl_mbsync.date_unix length = tbl_mbsync.lenght_unix banned = { steamid = banned.steamid Nickname = banned.nickname } adminNickname = admin.nickname } } ]] function getActiveBansQ.onData( q, data ) if data.rank == ply:GetUserGroup() then return end; ply:SetUserGroup(data[1].rank) end getActiveBansQ:start() end end --[[ Loading