core: don't rely on sane global environment

some addons like to provide a broken _G variable to
the global environment breaking every other addon that
relies on it if existing. With this commit, make ShaguTweaks
no longer re-use the global _G, even if existing.
This commit is contained in:
shagu
2022-11-19 16:59:12 +01:00
parent 06006e36f9
commit 6c26bc6190
34 changed files with 57 additions and 34 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
local _G = _G or getfenv(0)
local _G = ShaguTweaks.GetGlobalEnv()
local GetExpansion = ShaguTweaks.GetExpansion
local mod = math.mod or mod
+24 -1
View File
@@ -1,6 +1,29 @@
local _G = _G or getfenv(0)
local gfind = string.gmatch or string.gfind
ShaguTweaks.GetExpansion = function()
local _, _, _, client = GetBuildInfo()
client = client or 11200
-- detect client expansion
if client >= 20000 and client <= 20400 then
return "tbc"
elseif client >= 30000 and client <= 30300 then
return "wotlk"
else
return "vanilla"
end
end
ShaguTweaks.GetGlobalEnv = function()
if ShaguTweaks.GetExpansion() == 'vanilla' then
return getfenv(0)
else
return _G or getfenv(0)
end
end
local _G = ShaguTweaks.GetGlobalEnv()
local gradientcolors = {}
ShaguTweaks.GetColorGradient = function(perc)
perc = perc > 1 and 1 or perc
+1 -1
View File
@@ -1,4 +1,4 @@
local _G = _G or getfenv(0)
local _G = ShaguTweaks.GetGlobalEnv()
local module = ShaguTweaks:register({
title = "Auto Dismount",
+1 -1
View File
@@ -1,4 +1,4 @@
local _G = _G or getfenv(0)
local _G = ShaguTweaks.GetGlobalEnv()
local strsplit = ShaguTweaks.strsplit
local module = ShaguTweaks:register({
+1 -1
View File
@@ -1,4 +1,4 @@
local _G = _G or getfenv(0)
local _G = ShaguTweaks.GetGlobalEnv()
local GetExpansion = ShaguTweaks.GetExpansion
local module = ShaguTweaks:register({
+1 -1
View File
@@ -1,4 +1,4 @@
local _G = _G or getfenv(0)
local _G = ShaguTweaks.GetGlobalEnv()
local gfind = string.gmatch or string.gfind
local GetUnitData = ShaguTweaks.GetUnitData
local hooksecurefunc = ShaguTweaks.hooksecurefunc
+1 -1
View File
@@ -1,4 +1,4 @@
local _G = _G or getfenv(0)
local _G = ShaguTweaks.GetGlobalEnv()
local scrollspeed = 1
local module = ShaguTweaks:register({
+1 -1
View File
@@ -1,4 +1,4 @@
local _G = _G or getfenv(0)
local _G = ShaguTweaks.GetGlobalEnv()
local hooksecurefunc = hooksecurefunc or ShaguTweaks.hooksecurefunc
local GetExpansion = ShaguTweaks.GetExpansion
local AddBorder = ShaguTweaks.AddBorder
+1 -1
View File
@@ -16,7 +16,7 @@ local module = ShaguTweaks:register({
-- Global code:
-- This is where you can put your most basic variable assignments.
-- Code in this scope will *always* run, no matter if the module is enabled or not.
local _G = _G or getfenv(0)
local _G = ShaguTweaks.GetGlobalEnv()
module.enable = function(self)
-- Module code:
+1 -1
View File
@@ -1,4 +1,4 @@
local _G = _G or getfenv(0)
local _G = ShaguTweaks.GetGlobalEnv()
local HookAddonOrVariable = ShaguTweaks.HookAddonOrVariable
local GetExpansion = ShaguTweaks.GetExpansion
local AddBorder = ShaguTweaks.AddBorder
+1 -1
View File
@@ -1,4 +1,4 @@
local _G = _G or getfenv(0)
local _G = ShaguTweaks.GetGlobalEnv()
local module = ShaguTweaks:register({
title = "Equip Compare",
+1 -1
View File
@@ -1,4 +1,4 @@
local _G = _G or getfenv(0)
local _G = ShaguTweaks.GetGlobalEnv()
local Abbreviate = ShaguTweaks.Abbreviate
local GetColorGradient = ShaguTweaks.GetColorGradient
local vanilla = ShaguTweaks.GetExpansion() == "vanilla" or nil
+1 -1
View File
@@ -1,4 +1,4 @@
local _G = _G or getfenv(0)
local _G = ShaguTweaks.GetGlobalEnv()
local Abbreviate = ShaguTweaks.Abbreviate
local GetColorGradient = ShaguTweaks.GetColorGradient
local vanilla = ShaguTweaks.GetExpansion() == "vanilla" or nil
+1 -1
View File
@@ -1,4 +1,4 @@
local _G = _G or getfenv(0)
local _G = ShaguTweaks.GetGlobalEnv()
local module = ShaguTweaks:register({
title = "Hide Errors",
+1 -1
View File
@@ -1,4 +1,4 @@
local _G = _G or getfenv(0)
local _G = ShaguTweaks.GetGlobalEnv()
local module = ShaguTweaks:register({
title = "Hide Gryphons",
+1 -1
View File
@@ -1,4 +1,4 @@
local _G = _G or getfenv(0)
local _G = ShaguTweaks.GetGlobalEnv()
local GetExpansion = ShaguTweaks.GetExpansion
local AddBorder = ShaguTweaks.AddBorder
local HookAddonOrVariable = ShaguTweaks.HookAddonOrVariable
+1 -1
View File
@@ -1,4 +1,4 @@
local _G = _G or getfenv(0)
local _G = ShaguTweaks.GetGlobalEnv()
local module = ShaguTweaks:register({
title = "MiniMap Clock",
+1 -1
View File
@@ -1,4 +1,4 @@
local _G = _G or getfenv(0)
local _G = ShaguTweaks.GetGlobalEnv()
local module = ShaguTweaks:register({
title = "MiniMap Square",
+1 -1
View File
@@ -1,4 +1,4 @@
local _G = _G or getfenv(0)
local _G = ShaguTweaks.GetGlobalEnv()
local module = ShaguTweaks:register({
title = "MiniMap Tweaks",
+1 -1
View File
@@ -1,4 +1,4 @@
local _G = _G or getfenv(0)
local _G = ShaguTweaks.GetGlobalEnv()
local module = ShaguTweaks:register({
title = "Movable Unit Frames",
+1 -1
View File
@@ -1,4 +1,4 @@
local _G = _G or getfenv(0)
local _G = ShaguTweaks.GetGlobalEnv()
local GetUnitData = ShaguTweaks.GetUnitData
local module = ShaguTweaks:register({
+1 -1
View File
@@ -1,4 +1,4 @@
local _G = _G or getfenv(0)
local _G = ShaguTweaks.GetGlobalEnv()
local module = ShaguTweaks:register({
title = "Nameplate Scale",
+1 -1
View File
@@ -1,4 +1,4 @@
local _G = _G or getfenv(0)
local _G = ShaguTweaks.GetGlobalEnv()
local module = ShaguTweaks:register({
title = "Sell Junk",
+1 -1
View File
@@ -1,4 +1,4 @@
local _G = _G or getfenv(0)
local _G = ShaguTweaks.GetGlobalEnv()
local L = ShaguTweaks.L
local gfind = string.gmatch or string.gfind
local GetUnitData = ShaguTweaks.GetUnitData
+1 -1
View File
@@ -1,4 +1,4 @@
local _G = _G or getfenv(0)
local _G = ShaguTweaks.GetGlobalEnv()
local GetExpansion = ShaguTweaks.GetExpansion
local UnitCastingInfo = ShaguTweaks.UnitCastingInfo
local UnitChannelInfo = ShaguTweaks.UnitChannelInfo
+1 -1
View File
@@ -1,4 +1,4 @@
local _G = _G or getfenv(0)
local _G = ShaguTweaks.GetGlobalEnv()
local module = ShaguTweaks:register({
title = "Debuff Timer",
+1 -1
View File
@@ -1,4 +1,4 @@
local _G = _G or getfenv(0)
local _G = ShaguTweaks.GetGlobalEnv()
local round = ShaguTweaks.round
local rgbhex = ShaguTweaks.rgbhex
local Abbreviate = ShaguTweaks.Abbreviate
+1 -1
View File
@@ -1,4 +1,4 @@
local _G = _G or getfenv(0)
local _G = ShaguTweaks.GetGlobalEnv()
local module = ShaguTweaks:register({
title = "Unit Frame Big Health",
+1 -1
View File
@@ -1,4 +1,4 @@
local _G = _G or getfenv(0)
local _G = ShaguTweaks.GetGlobalEnv()
local module = ShaguTweaks:register({
title = "Unit Frame Class Colors",
+1 -1
View File
@@ -1,4 +1,4 @@
local _G = _G or getfenv(0)
local _G = ShaguTweaks.GetGlobalEnv()
local addonpath
local tocs = { "", "-master", "-tbc", "-wotlk" }
+1 -1
View File
@@ -1,4 +1,4 @@
local _G = _G or getfenv(0)
local _G = ShaguTweaks.GetGlobalEnv()
local GetExpansion = ShaguTweaks.GetExpansion
local module = ShaguTweaks:register({
+1 -1
View File
@@ -1,4 +1,4 @@
local _G = _G or getfenv(0)
local _G = ShaguTweaks.GetGlobalEnv()
local module = ShaguTweaks:register({
title = "WorldMap Class Colors",
+1 -1
View File
@@ -1,4 +1,4 @@
local _G = _G or getfenv(0)
local _G = ShaguTweaks.GetGlobalEnv()
local module = ShaguTweaks:register({
title = "WorldMap Coordinates",
+1 -1
View File
@@ -1,4 +1,4 @@
local _G = _G or getfenv(0)
local _G = ShaguTweaks.GetGlobalEnv()
local HookScript = ShaguTweaks.HookScript
local module = ShaguTweaks:register({