Commit e9b413fe authored by Maximilian Grüttemeier's avatar Maximilian Grüttemeier
Browse files

MBSync Dev Update

parent 8ef620b9
Loading
Loading
Loading
Loading
+12 −12
Original line number Diff line number Diff line
MSync = MSync or {}
MSync.modules = MSync.modules or {}
MSync.modules.SampleModule = MSync.modules.SampleModule or {}
MSync.modules.MBSync = MSync.modules.SampleModule or {}
--[[
 * @file       cl_samplemodule.lua
 * @package    Sample Module
@@ -12,17 +12,17 @@ MSync.modules.SampleModule = MSync.modules.SampleModule or {}
--[[
    Define name, description and module identifier
]]
MSync.modules.SampleModule.info = {
    Name = "Sample Module",
    ModuleIdentifier = "SampleModule",
    Description = "A basic example module on how to create modules",
MSync.modules.MBSync.info = {
    Name = "MySQL Ban Sync",
    ModuleIdentifier = "MBSync",
    Description = "Synchronise band across your servers",
    Version = "0.0.1"
}

--[[
    Define additional functions that are later used
]]
function MSync.modules.SampleModule.init() 
function MSync.modules.MBSync.init() 

    function MSync.modules.SampleModule.SampleFunction()
        return true
@@ -33,7 +33,7 @@ end
--[[
    Define the admin panel for the settings
]]
function MSync.modules.SampleModule.adminPanel(sheet)
function MSync.modules.MBSync.adminPanel(sheet)
    local pnl = vgui.Create( "DPanel", sheet )
    pnl:Dock(FILL)
    return pnl
@@ -42,7 +42,7 @@ end
--[[
    Define the client panel for client usage ( or as example: use it as additional admin gui which does not need msync.admingui permission)
]]
function MSync.modules.SampleModule.clientPanel()
function MSync.modules.MBSync.clientPanel()
    local pnl = vgui.Create( "DPanel" )

    return pnl
@@ -51,7 +51,7 @@ end
--[[
    Define net receivers and util.AddNetworkString
]]
function MSync.modules.SampleModule.net() 
function MSync.modules.MBSync.net() 
    net.Receive( "my_message", function( len, pl )
        if ( IsValid( pl ) and pl:IsPlayer() ) then
            print( "Message from " .. pl:Nick() .. " received. Its length is " .. len .. "." )
@@ -64,14 +64,14 @@ end
--[[
    Define ulx Commands and overwrite common ulx functions (module does not get loaded until ulx has fully been loaded)
]]
function MSync.modules.SampleModule.ulx() 
function MSync.modules.MBSync.ulx() 
    
end

--[[
    Define hooks your module is listening on e.g. PlayerDisconnect
]]
function MSync.modules.SampleModule.hooks() 
function MSync.modules.MBSync.hooks() 
    hook.Add("initialize", "msync_sampleModule_init", function()
        
    end)
@@ -80,4 +80,4 @@ end
--[[
    Return info ( Just for single module loading )
]]
return MSync.modules.SampleModule.info
 No newline at end of file
return MSync.modules.MBSync.info
 No newline at end of file
+47 −15
Original line number Diff line number Diff line
MSync = MSync or {}
MSync.modules = MSync.modules or {}
MSync.modules.SampleModule = MSync.modules.SampleModule or {}
MSync.modules.MBSync = MSync.modules.MBSync or {}
--[[
 * @file       sv_samplemodule.lua
 * @package    Sample Module
@@ -12,25 +12,57 @@ MSync.modules.SampleModule = MSync.modules.SampleModule or {}
--[[
    Define name, description and module identifier
]]
MSync.modules.SampleModule.info = {
    Name = "Sample Module",
    ModuleIdentifier = "SampleModule",
    Description = "A basic example module on how to create modules",
    Version = "1.0.0"
MSync.modules.MBSync.info = {
    Name = "MySQL Ban Sync",
    ModuleIdentifier = "MBSync",
    Description = "Synchronise band across your servers",
    Version = "0.0.1"
}

--[[
    Define mysql table and additional functions that are later used
]]
function MSync.modules.SampleModule.init( transaction ) 
function MSync.modules.MBSync.init( transaction ) 
    transaction:addQuery( MSync.DBServer:query([[
        CREATE TABLE IF NOT EXISTS `tbl_SampleModule` (
            SampleData INT
        CREATE TABLE IF NOT EXISTS `tbl_mbsync` (
            `p_id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
            `user_id` INT UNSIGNED NOT NULL,
            `admin_id` INT UNSIGNED NOT NULL,
            `reason` VARCHAR(45) NOT NULL,
            `date_unix` float NOT NULL,
            `lenght_unix` float NOT NULL,
            `server_group` INT UNSIGNED NOT NULL,
            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)
        );
    ]] ))
    
    function MSync.modules.SampleModule.SampleFunction()
        return true
    function MSync.modules.MBSync.banUser(ply, calling_ply, length, reason, allserver)
        local banUserQ = 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=? AND steamid64=?), 
                (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 rank=VALUES(rank);
        ]] )
        banUserQ:setString(1, ply:SteamID())
        banUserQ:setString(2, ply:SteamID64())
        banUserQ:setString(3, calling_ply:SteamID())
        banUserQ:setString(4, calling_ply:SteamID64())
        banUserQ:setString(5, reason)
        banUserQ:setNumber(6, os.time())
        banUserQ:setNumber(7, lenght)
        if not allserver then
            banUserQ:setString(8, MSync.settings.data.serverGroup)
        else
            banUserQ:setString(8, "allservers")
        end
            
        banUserQ:start()
    end

end
@@ -38,7 +70,7 @@ end
--[[
    Define net receivers and util.AddNetworkString
]]
function MSync.modules.SampleModule.net() 
function MSync.modules.MBSync.net() 
    net.Receive( "my_message", function( len, pl )
        if ( IsValid( pl ) and pl:IsPlayer() ) then
            print( "Message from " .. pl:Nick() .. " received. Its length is " .. len .. "." )
@@ -51,14 +83,14 @@ end
--[[
    Define ulx Commands and overwrite common ulx functions (module does not get loaded until ulx has fully been loaded)
]]
function MSync.modules.SampleModule.ulx() 
function MSync.modules.MBSync.ulx() 
    
end

--[[
    Define hooks your module is listening on e.g. PlayerDisconnect
]]
function MSync.modules.SampleModule.hooks() 
function MSync.modules.MBSync.hooks() 
    hook.Add("initialize", "msync_sampleModule_init", function()
        
    end)
@@ -67,4 +99,4 @@ end
--[[
    Return info ( Just for single module loading )
]]
return MSync.modules.SampleModule.info
 No newline at end of file
return MSync.modules.MBSync.info
 No newline at end of file