Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 17 additions & 18 deletions AzerothAdmin.toc
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
## Interface: 30300
## Title: AzerothAdmin
## Author: SuperStyro Dev team + Manground Dev Team
## Version: 009
## Version: 010
## Notes: This addon works with Azerothcore 3.3.5
## Name: AzerothAdmin
## License: GPLv3
Expand All @@ -26,22 +26,21 @@ Libraries\FrameLib-1.0\FrameLib-1.0.lua
Libraries\Graph-1.0\Graph-1.0.lua
Locales\enUS.lua
Locales\strings.lua
Models.lua
Commands\Commands_Main.lua
Commands\Commands_Tele.lua
Commands\Commands_Log.lua
Commands\Commands_Char.lua
Commands\Commands_Ticket.lua
Commands\Commands_Misc.lua
Commands\Commands_Server.lua
Commands\Commands_NPC.lua
Commands\Commands_GO.lua
Commands\Commands_Who.lua
DBC.lua
TeleportTable.lua
FunctionInit.lua
AzerothAdmin.lua
MangLinkifier.lua
Data\Models.lua
Commands\Main.lua
Commands\Tele.lua
Commands\Char.lua
Commands\Ticket.lua
Commands\Misc.lua
Commands\Server.lua
Commands\NPC.lua
Commands\GO.lua
Commands\Who.lua
Data\DBC.lua
Data\TeleportTable.lua
Core\Init.lua
Core\AzerothAdmin.lua
Modules\Linkifier.lua
Frames\MangFrames_Start.lua
Frames\MangFrames_Tabs.lua
Frames\MangFrames_MiniMenu.lua
Expand All @@ -58,4 +57,4 @@ Frames\MangFrames_SectionServer.lua
Frames\MangFrames_SectionNpc.lua
Frames\MangFrames_SectionGO.lua
Frames\MangFrames_SectionWho.lua
MangFrames.lua
Frames\MangFrames.lua
21 changes: 21 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,26 @@
# AzerothAdmin Changelog

### -=[ Revision 010 - 11/27/2025]=-
- RESTRUCTURE addon to modular directory organization
- Created new directory structure (Core, Data, Modules, Frames folders)
- Moved data files (DBC.lua, Models.lua, TeleportTable.lua) to Data/
- Moved core files to Core/ (AzerothAdmin.lua, Init.lua)
- Moved MangLinkifier.lua to Modules/Linkifier.lua
- Moved MangFrames.lua to Frames/
- Renamed all Commands files to remove "Commands_" prefix
- Updated AzerothAdmin.toc with new file paths and version 10
- Removed reference to non-existent Commands_Log.lua from .toc
- FIX critical nil comparison crashes in server info OnUpdate handler
- Added nil check for delayParam before comparison
- Added nil check for diff value before using in graph
- Prevents "attempt to compare number with nil" error spam
- FIX table iteration bug in favorites removal (Core/AzerothAdmin.lua)
- Changed from pairs() with table.remove() to reverse iteration
- Affects all 8 favorite categories (items, itemsets, spells, skills, quests, creatures, objects, teles)
- FIX incorrect string.gmatch usage in teleport filtering
- Changed to string.find() which correctly returns nil when pattern not found
- Fixes broken teleport message hiding logic

### -=[ Revision 009 - 11/27/2025]=-
- FIX WoW 3.3.5 compatibility issues across multiple files
- Replace deprecated `getglobal()` with `_G[]` notation
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
50 changes: 33 additions & 17 deletions AzerothAdmin.lua → Core/AzerothAdmin.lua
Original file line number Diff line number Diff line change
Expand Up @@ -837,7 +837,7 @@ function AzerothAdmin:AddMessage(frame, text, r, g, b, id)
output = AzerothAdmin.db.account.style.showchat
end
--this is to hide the message shown before the teles
if string.gmatch(text, Strings["ma_GmatchTeleFound"]) then
if string.find(text, Strings["ma_GmatchTeleFound"]) then
catchedSth = true
output = AzerothAdmin.db.account.style.showchat
end
Expand Down Expand Up @@ -1466,36 +1466,52 @@ function AzerothAdmin:Favorites(value, searchtype)
self:LogAction("Added some "..searchtype.."s to the favorites.")
elseif value == "remove" then
if searchtype == "item" then
for k,v in pairs(self.db.account.favorites.items) do
if v["checked"] then table.remove(self.db.account.favorites.items, k) end
for i = #self.db.account.favorites.items, 1, -1 do
if self.db.account.favorites.items[i]["checked"] then
table.remove(self.db.account.favorites.items, i)
end
end
elseif searchtype == "itemset" then
for k,v in pairs(self.db.account.favorites.itemsets) do
if v["checked"] then table.remove(self.db.account.favorites.itemsets, k) end
for i = #self.db.account.favorites.itemsets, 1, -1 do
if self.db.account.favorites.itemsets[i]["checked"] then
table.remove(self.db.account.favorites.itemsets, i)
end
end
elseif searchtype == "spell" then
for k,v in pairs(self.db.account.favorites.spells) do
if v["checked"] then table.remove(self.db.account.favorites.spells, k) end
for i = #self.db.account.favorites.spells, 1, -1 do
if self.db.account.favorites.spells[i]["checked"] then
table.remove(self.db.account.favorites.spells, i)
end
end
elseif searchtype == "skill" then
for k,v in pairs(self.db.account.favorites.skills) do
if v["checked"] then table.remove(self.db.account.favorites.skills, k) end
for i = #self.db.account.favorites.skills, 1, -1 do
if self.db.account.favorites.skills[i]["checked"] then
table.remove(self.db.account.favorites.skills, i)
end
end
elseif searchtype == "quest" then
for k,v in pairs(self.db.account.favorites.quests) do
if v["checked"] then table.remove(self.db.account.favorites.quests, k) end
for i = #self.db.account.favorites.quests, 1, -1 do
if self.db.account.favorites.quests[i]["checked"] then
table.remove(self.db.account.favorites.quests, i)
end
end
elseif searchtype == "creature" then
for k,v in pairs(self.db.account.favorites.creatures) do
if v["checked"] then table.remove(self.db.account.favorites.creatures, k) end
for i = #self.db.account.favorites.creatures, 1, -1 do
if self.db.account.favorites.creatures[i]["checked"] then
table.remove(self.db.account.favorites.creatures, i)
end
end
elseif searchtype == "object" then
for k,v in pairs(self.db.account.favorites.objects) do
if v["checked"] then table.remove(self.db.account.favorites.objects, k) end
for i = #self.db.account.favorites.objects, 1, -1 do
if self.db.account.favorites.objects[i]["checked"] then
table.remove(self.db.account.favorites.objects, i)
end
end
elseif searchtype == "tele" then
for k,v in pairs(self.db.account.favorites.teles) do
if v["checked"] then table.remove(self.db.account.favorites.teles, k) end
for i = #self.db.account.favorites.teles, 1, -1 do
if self.db.account.favorites.teles[i]["checked"] then
table.remove(self.db.account.favorites.teles, i)
end
end
end
self:LogAction("Removed some favorited "..searchtype.."s from the list.")
Expand Down
2 changes: 1 addition & 1 deletion FunctionInit.lua → Core/Init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -280,7 +280,7 @@ function InitControls()
AzerothAdmin:PrepareScript(ma_whisperticketbutton , nil , function() Ticket("whisper") end)
AzerothAdmin:PrepareScript(ma_goticketbutton , nil , function() Ticket("goticket") end)
AzerothAdmin:PrepareScript(ma_showbutton , "Show loaded tickets" , function() ShowTickets() end)
--ma_showticketsbutton

--[[Misc Tab]]
AzerothAdmin:PrepareScript(ma_bgcolorshowbutton , nil , function() ShowColorPicker("bg") end)
AzerothAdmin:PrepareScript(ma_frmcolorshowbutton , nil , function() ShowColorPicker("frm") end)
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
17 changes: 10 additions & 7 deletions Frames/MangFrames_SectionServer.lua
Original file line number Diff line number Diff line change
Expand Up @@ -366,18 +366,21 @@ function AzerothAdmin:CreateServerSection()
x:SetScript("OnUpdate",function()
q = q + 1
-- Check if ma_delayparam exists before using it
if ma_delayparam and q > tonumber(ma_delayparam:GetText()) then --10000=approx 1 minute, 50000=approx 5 minutes FIX #13
local delayParam = ma_delayparam and tonumber(ma_delayparam:GetText())
if delayParam and q > delayParam then --10000=approx 1 minute, 50000=approx 5 minutes FIX #13
AzerothAdmin:ChatMsg(".server info")
q = 0
--TODO: Change the way the value of 'ma_difftext' is set to be able to add 'ms' to the end of the value
local s = tonumber(ma_difftext:GetText())
local r = 100 -- Trinity says anything over 150 is bad
if s > r then
z:SetBarColors({1.0,0.0,0.0,1.0},{1.0,0.0,0.0,1.0}) -->100, turn red
else
z:SetBarColors({0.0,1.0,0.0,1.0},{0.0,1.0,0.0,1.0}) --otherwise green
if s then
local r = 100 -- Trinity says anything over 150 is bad
if s > r then
z:SetBarColors({1.0,0.0,0.0,1.0},{1.0,0.0,0.0,1.0}) -->100, turn red
else
z:SetBarColors({0.0,1.0,0.0,1.0},{0.0,1.0,0.0,1.0}) --otherwise green
end
z:AddBar(s)
end
z:AddBar(s)
end
if x.NextUpdate>GetTime() then
return
Expand Down
File renamed without changes.