mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 05:43:46 +03:00
Upload
This commit is contained in:
75
gamemodes/helix/plugins/xenforolink/sv_hooks.lua
Normal file
75
gamemodes/helix/plugins/xenforolink/sv_hooks.lua
Normal file
@@ -0,0 +1,75 @@
|
||||
--[[
|
||||
| This file was obtained through the combined efforts
|
||||
| of Madbluntz & Plymouth Antiquarian Society.
|
||||
|
|
||||
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
||||
| Maloy, DrPepper10 @ RIP, Atle!
|
||||
|
|
||||
| Visit for more: https://plymouth.thetwilightzone.ru/
|
||||
--]]
|
||||
|
||||
|
||||
local PLUGIN = PLUGIN
|
||||
|
||||
function PLUGIN:PlayerLoadedCharacter(client, character)
|
||||
self:GetXenforoGroups(client)
|
||||
end
|
||||
|
||||
function PLUGIN:PlayerInitialSpawn(client)
|
||||
local query = mysql:Select("xenforo_link")
|
||||
query:Where("steamid", client:SteamID64())
|
||||
query:Callback(function(result)
|
||||
if (result and #result > 0) then
|
||||
client.ixXenforoID = result[1]["forum_id"]
|
||||
client.ixXenforoGroups = result[1]["groups"] and util.JSONToTable(result[1]["groups"]) or nil
|
||||
for i = #client.ixXenforoGroups, 1, -1 do
|
||||
if (!ix.xenforo.stored[tostring(client.ixXenforoGroups[i])]) then
|
||||
table.remove(client.ixXenforoGroups, i)
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
query:Execute()
|
||||
end
|
||||
|
||||
function PLUGIN:PostPlayerLoadout(client)
|
||||
if (!client:GetCharacter()) then return end
|
||||
|
||||
local flags = client:GetLocalVar("xenforoFlags", "")
|
||||
|
||||
if (flags == "") then return end
|
||||
for i = 1, #flags do
|
||||
local flag = flags[i]
|
||||
local info = ix.flag.list[flag]
|
||||
|
||||
if (info and info.callback) then
|
||||
info.callback(client, true)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function PLUGIN:CanWhitelistPlayer(target, faction)
|
||||
if (ix.config.Get("whitelistForumLink") and ix.xenforo.restrictedWhitelists[faction.index]) then
|
||||
return false, "xenforoWhitelistForumLink"
|
||||
end
|
||||
end
|
||||
|
||||
function PLUGIN:ModifyXenforoGroups(client, groups)
|
||||
if (client:GetLocalVar("MentorActive")) then
|
||||
groups[#groups + 1] = "mentor_active"
|
||||
end
|
||||
|
||||
if (client:GetLocalVar("GMToggledOn")) then
|
||||
groups[#groups + 1] = "gamemaster_active"
|
||||
end
|
||||
end
|
||||
|
||||
function PLUGIN:PlayerDataRestored(client)
|
||||
local groups = client:GetData("xenforoGroups", {})
|
||||
local newGroups = {}
|
||||
for k, v in pairs(groups) do
|
||||
newGroups[tostring(k)] = v
|
||||
end
|
||||
|
||||
client:SetData("xenforoGroups", newGroups)
|
||||
end
|
||||
Reference in New Issue
Block a user