Files
wnsrc/lua/tfa/modules/tfa_envcheck.lua
lifestorm 94063e4369 Upload
2024-08-04 22:55:00 +03:00

93 lines
3.7 KiB
Lua

--[[
| 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/
--]]
-- Copyright (c) 2018-2020 TFA Base Devs
-- Permission is hereby granted, free of charge, to any person obtaining a copy
-- of this software and associated documentation files (the "Software"), to deal
-- in the Software without restriction, including without limitation the rights
-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-- copies of the Software, and to permit persons to whom the Software is
-- furnished to do so, subject to the following conditions:
-- The above copyright notice and this permission notice shall be included in all
-- copies or substantial portions of the Software.
-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-- SOFTWARE.
local EmptyFunc = function() end
local debugInfoTbl = debug.getinfo(EmptyFunc)
local function checkEnv(plyIn)
local printFunc = chat and chat.AddText or print
if game.SinglePlayer() then
if CLIENT then
local found = false
for _, wepDefTable in ipairs(weapons.GetList()) do
if wepDefTable.Spawnable and weapons.IsBasedOn(wepDefTable.ClassName, "tfa_gun_base") then
found = true
break
end
end
if not found then
printFunc("[TFA Base] Thank you for installing our weapons base! It appears that you have installed only the base itself, which does not include any weapons by default. Please install some weapons/packs that utilize TFA Base for full experience!")
end
end
local shortsrc = debugInfoTbl.short_src
if shortsrc:StartWith("addons") then -- legacy/unpacked addon
local addonRootFolder = shortsrc:GetPathFromFilename():Replace("lua/tfa/modules/", "")
if not file.Exists(addonRootFolder .. ".git", "GAME") and not file.Exists(addonRootFolder .. "LICENSE", "GAME") then -- assume unpacked version by missing both .git and LICENSE files, which are ignored by gmad.exe
printFunc("[TFA Base] You are using unpacked version of TFA Base.\nWe only provide support for Workshop and Git versions.")
end
end
else
local activeGamemode = engine.ActiveGamemode()
local isRP = activeGamemode:find("rp")
or activeGamemode:find("roleplay")
or activeGamemode:find("serious")
if isRP and (SERVER or (IsValid(plyIn) and (plyIn:IsAdmin() or plyIn:IsSuperAdmin()))) then
print("[TFA Base] You are running the base on DarkRP or DarkRP-derived gamemode. We can't guarantee that it will work correctly with any possible addons the server might have installed (especially the paid ones), so we don't provide support for RP gamemodes/servers. If you've encountered a conflict error with another addon, it's most likely that addon's fault. DO NOT CONTACT US ABOUT THAT!")
if TFA_BASE_VERSION <= 4.034 then -- seems to be common problem with SWRP servers
printFunc("[TFA Base] You have installed both SV/SV2 and Reduxed versions of the base. Make sure you are using only one version at the same time.")
end
end
end
end
if CLIENT then
hook.Add("HUDPaint", "TFA_CheckEnv", function()
local ply = LocalPlayer()
if not IsValid(ply) then return end
hook.Remove("HUDPaint", "TFA_CheckEnv")
checkEnv(ply)
end)
else
hook.Add("InitPostEntity", "TFA_CheckEnv", checkEnv)
end