Advertisement
Guest User

Untitled

a guest
May 27th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.77 KB | None | 0 0
  1. if MaxPlayers then return end
  2. require("bbot")
  3. require("forceconvar")
  4.  
  5. local CVARMETAGETINT = _R.ConVar.GetInt
  6. local scriptenforcer = GetConVar("sv_scriptenforcer")
  7.  
  8. local function GetLoginUsername()
  9.     local user = GetUsername()
  10.     local m = string.gmatch(user, "\"([^\"]+)\"")
  11.  
  12.     local pkey = ""
  13.     for k,v in m do
  14.         if pkey == "AutoLoginUser" then
  15.             return k
  16.         end
  17.         pkey = k
  18.     end
  19.    
  20.     return nil
  21. end
  22.  
  23. function HandleChangelog(user, pass)
  24.     local contents = GetChangelog(user, pass)
  25.     if not contents then return end
  26.    
  27.     local ver = tonumber(contents:sub(1, contents:find("\n"))) 
  28.     if not ver then return end
  29.    
  30.     if not sql.TableExists("Bacon_Changelog") then
  31.         sql.Query("CREATE TABLE Bacon_Changelog(Version INTEGER)")
  32.     end
  33.    
  34.     if sql.Query("SELECT * FROM Bacon_Changelog WHERE Version >= " .. tostring(ver)) then
  35.         return
  36.     else
  37.         sql.Query("DELETE FROM Bacon_Changelog")
  38.         sql.Query("INSERT INTO Bacon_Changelog VALUES(" .. tostring(ver) .. ")")
  39.     end
  40.    
  41.     local lines = 1
  42.     for line in string.gmatch(contents, "\n") do
  43.         lines = lines + 1
  44.     end
  45.    
  46.     local Frame = vgui.Create("DFrame")
  47.     Frame:SetSize(500, 450)
  48.     Frame:SetPos(ScrW()/2 - Frame:GetWide(), ScrH()/2 - Frame:GetTall())
  49.     Frame:SetTitle("BaconBot has been updated!")
  50.    
  51.     Frame.Panel = vgui.Create("Panel", Frame)
  52.     Frame.Panel:SetPos(0, 22)
  53.     Frame.Panel:SetSize(Frame:GetWide(), Frame:GetTall() - 22)
  54.    
  55.     Frame.Panel.ScrollBar = vgui.Create("DVScrollBar", Frame.Panel)
  56.     Frame.Panel.TextBox = vgui.Create("DTextEntry", Frame.Panel)
  57.    
  58.     Frame.Panel.TextBox:SetPos(0, 22)
  59.     Frame.Panel.TextBox:SetEditable(false)
  60.     Frame.Panel.TextBox:SetMultiline(true)
  61.     Frame.Panel.TextBox:SetText(contents:sub(({contents:find("\n")})[1]))
  62.    
  63.     function Frame.Panel:PerformLayout()
  64.         self.ScrollBar:SetPos(self:GetWide() - 16, 0)
  65.         self.ScrollBar:SetSize(16, self:GetTall())     
  66.        
  67.         local Height = math.Max(lines * 16 + 100, 450-22)
  68.        
  69.         self.TextBox:SetTall(Height)
  70.         self.ScrollBar:SetUp(self:GetTall(), self.TextBox:GetTall())
  71.        
  72.         local WideOffset = self.ScrollBar.Enabled and 16 or 0
  73.         self.TextBox:SetSize(Frame.Panel:GetWide() - WideOffset, self.TextBox:GetTall())
  74.         self.TextBox:SetPos(0, self.ScrollBar:GetOffset())
  75.     end
  76.    
  77.     Frame:MakePopup()
  78. end
  79.  
  80. function Loader()
  81.    
  82.     if !sql.TableExists("Bacon_Pass2") then
  83.         sql.Query("CREATE TABLE Bacon_Pass2(Pass varchar(255), User varchar(255))")
  84.     end
  85.    
  86.     local LoginPanel = vgui.Create("DFrame")
  87.     LoginPanel:SetSize(195,215)
  88.     LoginPanel:SetPos(ScrW()/2-100,ScrH()/2-100)
  89.     LoginPanel:SetTitle("BaconBot_v3 - Login")
  90.    
  91.     local Logo = vgui.Create("DImage", LoginPanel)
  92.     Logo:SetMaterial(Material("BaconBot/Logo"))
  93.     Logo:SetPos(0,-40)
  94.     Logo:SetSize(200,200)
  95.    
  96.     local UserLabel = vgui.Create("DLabel", LoginPanel)
  97.     UserLabel:SetText("Username")
  98.     UserLabel:SetPos(15,120)
  99.     UserLabel:SizeToContents()
  100.    
  101.     local UserBox = vgui.Create("DTextEntry", LoginPanel)
  102.     UserBox:SetSize(120,20)
  103.     UserBox:SetPos(65,118)
  104.     UserBox.OnEnter=function() end
  105.    
  106.     local PassLabel = vgui.Create("DLabel", LoginPanel)
  107.     PassLabel:SetText("Password")
  108.     PassLabel:SetPos(15,145)
  109.     PassLabel:SizeToContents()
  110.    
  111.     local PassBox = vgui.Create("DTextEntry", LoginPanel)
  112.     PassBox:SetSize(120,20)
  113.     PassBox:SetPos(65,143)
  114.     PassBox.OnEnter=function() Login() end
  115.    
  116.     local AccessButton = vgui.Create("DButton", LoginPanel)
  117.     AccessButton:SetText("Request Access")
  118.     AccessButton:SetSize(100,25)
  119.     AccessButton:SetPos(50,175)
  120.     AccessButton.DoClick=function() Login() end
  121.    
  122.     function Login()
  123.    
  124.         if CVARMETAGETINT(scriptenforcer) != 0 then
  125.             ForceConVar(CreateConVar("sv_scriptenforcer", ""), tostring(0) )
  126.             print("ScriptEnforcer Disabled")
  127.         end
  128.        
  129.         AccessButton:SetDisabled(true)
  130.         PassBox:SetEditable(false)
  131.         AccessButton:SetText("Loading")
  132.         local Dot=""
  133.         timer.Create("LoadingDot",0.5,0,function()
  134.             if !AccessButton:IsValid() then
  135.                 timer.Destroy("LoadingDot")
  136.                 return
  137.             end
  138.             if Dot=="...." then
  139.                 Dot=""
  140.             end
  141.             Dot=Dot.."." AccessButton:SetText("Loading"..Dot)
  142.             surface.PlaySound("weapons/grenade/tick1.wav")
  143.         end)
  144.  
  145.         if !AttemptLoginAndLoad(UserBox:GetValue(), PassBox:GetValue(), string.lower(GetLoginUsername())) then
  146.             timer.Destroy("LoadingDot")
  147.             AccessButton:SetText("Access Granted!")
  148.             sql.Query("INSERT INTO Bacon_Pass2 VALUES ('"..PassBox:GetValue().."', '".. UserBox:GetValue() .. "')" )
  149.             surface.PlaySound("items/suitchargeok1.wav")
  150.  
  151.             timer.Simple(2,function()
  152.                 LoginPanel:Remove()
  153.             end)
  154.            
  155.             HandleChangelog(UserBox:GetValue(), PassBox:GetValue())
  156.         end
  157.  
  158.     end
  159.    
  160.     local q = sql.Query( "SELECT User, Pass FROM Bacon_Pass2" )
  161.     if q then      
  162.         local Pass=q[1].Pass
  163.         local User=q[1].User
  164.         PassBox:SetValue(Pass)
  165.         UserBox:SetValue(User)
  166.         //Login()
  167.     end
  168.     LoginPanel:MakePopup()
  169. end
  170.  
  171. timer.Simple(0, Loader)
  172. concommand.Add("ForceLaunch_BB",Loader)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement