surface.CreateFont("vklabel", {font = "roboto", size = 21, extended = true, antialias = true, weight = 500})
Discord.Logged = false
local AA = "https://vk.com/rusumb"
local CCB = "103582791465170661"
local BCB = "Вступите в группу VK и получите 25 рублей!"
local function ACB(CAB, BAB)
local AAB =
ui.Create(
"ui_frame",
function(CBA)
CBA:SetTitle(CAB)
CBA:ShowCloseButton(false)
CBA:SetWide(ScrW() * .2)
CBA:MakePopup()
end
)
local CCA = string.Wrap("ui.18", BAB, AAB:GetWide() - 10)
local BCA = AAB:GetTitleHeight()
for CBA, BBA in ipairs(CCA) do
local ABA =
ui.Create(
"DLabel",
function(CAA, BAA)
CAA:SetText(BBA)
CAA:SetFont("ui.18")
CAA:SizeToContents()
CAA:SetPos((BAA:GetWide() - CAA:GetWide()) / 2, BCA)
BCA = BCA + CAA:GetTall() + 5
end,
AAB
)
end
local ACA =
ui.Create(
"DButton",
function(CBA, BBA)
CBA:SetText("Ок")
CBA:SetPos(5, BCA)
CBA:SetSize(BBA:GetWide() - 10, 25)
CBA.DoClick = function(ABA)
BBA:Close()
end
BCA = BCA + CBA:GetTall() + 5
end,
AAB
)
AAB:SetTall(BCA)
AAB:Center()
AAB:Focus()
return AAB
end
local function CBB()
Discord.Synced = false
local CAB = "Discord"
local BAB = "Необходимо авторизовать бота\nПроверьте ваш Discord ( должен быть открыт )"
local AAB =
ui.Create(
"ui_frame",
function(CBA)
CBA:SetTitle(CAB)
CBA:ShowCloseButton(false)
CBA:SetWide(ScrW() * .2)
CBA:MakePopup()
end
)
local CCA = string.Wrap("ui.18", BAB, AAB:GetWide() - 10)
local BCA = AAB:GetTitleHeight()
for CBA, BBA in ipairs(CCA) do
local ABA =
ui.Create(
"DLabel",
function(CAA, BAA)
CAA:SetText(BBA)
CAA:SetFont("ui.18")
CAA:SizeToContents()
CAA:SetPos((BAA:GetWide() - CAA:GetWide()) / 2, BCA)
BCA = BCA + CAA:GetTall() + 5
end,
AAB
)
end
local ACA =
ui.Create(
"DButton",
function(CBA, BBA)
CBA:SetText("Отмена")
CBA:SetPos(5, BCA)
CBA:SetSize(BBA:GetWide() - 10, 25)
CBA.DoClick = function(ABA)
BBA:Close()
end
BCA = BCA + CBA:GetTall() + 5
end,
AAB
)
AAB:SetTall(BCA)
AAB:Center()
AAB:Focus()
return AAB
end
local function BBB(CAB, BAB)
http.Fetch(
"https://steamcommunity.com/profiles/" .. CAB .. "/?xml=1",
function(AAB)
if (AAB:find("<groupID64>" .. CCB .. "</groupID64>")) then
BAB(true)
else
BAB(false)
end
end
)
end
local function ABB(CAB, BAB, AAB, CCA, BCA, ACA)
CAB.Rows = (CAB.Rows or 0) + 1
local CBA = vgui.Create("EditablePanel", CAB)
CBA:DockMargin(0, 10, 0, 5)
CBA:Dock(TOP)
CBA:SetTall(25)
local BBA = vgui.Create("DLabel", CBA)
BBA:Dock(LEFT)
BBA:SetText(BAB)
BBA:SetFont("vklabel")
BBA:SetTextColor(Color(255, 255, 255))
BBA:SetContentAlignment(4)
BBA:SizeToContentsX()
local ABA = vgui.Create("DButton", CBA)
ABA:Dock(RIGHT)
ABA:SetWide(170)
ABA:SetText("Проверить")
ABA:DockMargin(5, 0, 0, 0)
ABA.DoClick = BCA
ABA.Think = function(BAA)
if ACA and ACA(BAA) then
BAA:SetEnabled(false)
BAA:SetText("Проверить")
BAA.Think = nil
end
end
local CAA = vgui.Create("DButton", CBA)
CAA:Dock(RIGHT)
CAA:SetText("Вступить +" .. AAB .. "р")
CAA:SetWide(170)
CAA.DoClick = CCA
CAA.Think = function(BAA)
if ACA and ACA() then
BAA:SetEnabled(false)
BAA.Think = nil
end
end
end
function openRewardMenu(CAB, BAB)
if IsValid(dsadasdsad) then
dsadasdsad:Close()
end
local AAB = ui.Create("ui_frame")
dsadasdsad = AAB
AAB:SetTitle("Награды")
AAB:MakePopup()
AAB:RequestFocus()
AAB.Think = function(ACA)
if Discord.Logged and CAB and BAB then
ACA:Close()
end
end
do
local ACA = function()
gui.OpenURL(AA)
end
local CBA = function()
ui.StringRequest(
"Группа VK",
"Прежде чем идти дальше, напишите в сообщения группы что-нибудь! В противном случае код для подтверждения страницы не придет.\nВведите ссылку на страницу:",
"",
function(BBA)
if BBA then
net.Start("CodeSendToUser")
net.WriteString(BBA)
net.SendToServer()
CAB = true
end
end
)
end
ABB(
AAB,
"Группа VK",
15,
ACA,
CBA,
function()
return CAB
end
)
end
if Discord then
local ACA
function Discord:OnError(ABA)
Discord.Synced = false
if IsValid(ACA) then
ACA:Close()
end
if ABA == 0 then
ACA = ACB("Discord", "Вы не состоите в группе")
elseif ABA == 1 then
ACA = ACB("Discord", "Что-то пошло не так, попробуйте позже.")
elseif ABA == 2 then
ACA = CBB()
self:DoAuth()
elseif ABA == 3 then
ACA = ACB("Discord", "Вы отменили авторизацию, проверка невозможна.")
elseif mode == 4 then
ACA = ACB("Discord", "Убедитесь что у вас открыт дискорд!")
end
if IsValid(ACA) then
ACA.Think = function(CAA)
if Discord.Logged then
CAA:Close()
end
end
end
end
local CBA = function()
gui.OpenURL(Discord.InviteLink)
end
local BBA = function(ABA)
ABA.Loading = true
net.Start("Discord")
net.WriteUInt(1, 2)
net.SendToServer()
end
ABB(
AAB,
"Группа Discord",
10,
CBA,
BBA,
function(ABA)
if ABA and ABA.Loading then
ABA:SetText("Идёт проверка" .. string.rep(".", CurTime() % 3))
end
if IsValid(ACA) and ABA then
ABA.Loading = false
ABA:SetText("Проверить")
end
if Discord.Logged then
return true
end
end
)
end
local CCA = function()
gui.OpenURL("https://steamcommunity.com/gid/" .. CCB)
end
local BCA = function(ACA)
if ACA then
ACA.Checking = true
end
BBB(
LocalPlayer():SteamID64(),
function(CBA)
BAB = CBA
if IsValid(ACA) then
ACA.Checking = false
end
if CBA then
net.Start("JoinedSteamGroup")
net.SendToServer()
end
end
)
end
ABB(
AAB,
"Группа Steam",
10,
CCA,
BCA,
function(ACA)
if ACA and ACA.Checking then
ACA:SetText("Проверка...")
return
end
return BAB
end
)
AAB:SetSize(505, 35 + AAB.Rows * 40)
AAB:Center()
end
net.Receive("OpenVKMenu", openRewardMenu)
function codevkscript()
ui.StringRequest(
"Группа VK",
"Введите ваш код для подтверждения страницы, который мы отправили вам в ЛС:",
"",
function(CAB)
if CAB then
net.Start("CodeAccepted")
net.WriteString(string.Trim(CAB))
net.SendToServer()
end
end
)
end
net.Receive("OpenCodeMenu", codevkscript)
function vkretrycode()
ui.StringRequest(
"Группа VK",
"Вы ничего не написали в сообщения группы и код прийти не может! Прежде чем идти дальше, напишите в сообщения группы что-нибудь!\nВведите ссылку на страницу:",
"",
function(CAB)
if CAB then
net.Start("CodeSendToUser")
net.WriteString(CAB)
net.SendToServer()
end
end
)
end
net.Receive("RetryCodeMenu", vkretrycode)
function vkretrycodeenter()
ui.StringRequest(
"Группа VK",
"Вы ввели неверный код!\nВведите ваш код для подтверждения страницы, который мы отправили вам в ЛС:",
"",
function(CAB)
if CAB then
net.Start("CodeAccepted")
net.WriteString(string.Trim(CAB))
net.SendToServer()
end
end
)
end
net.Receive("RetryCodeEnterMenu", vkretrycodeenter)
net.Receive(
"Rewards.OpenMenu",
function()
local CAB = net.ReadBool()
local BAB = net.ReadBool()
if not CAB or (Discord and not Discord.Logged) then
openRewardMenu(CAB, BAB)
end
end
)