Files
2026-09-13 09:51:39 +00:00

110 lines
4.4 KiB
Lua

pfUI:RegisterModule("gm", "vanilla", function ()
-- do not load by default
if C.gm.disable == "1" then return end
-- core specific commands
pfUI.gm_server = {
["elysium"] = {
["GM_PLAYERINFO"] = { ".pinfo #PLAYER", "Player Info" },
["GM_GO"] = { ".go #PLAYER", "Goto" },
["GM_APPEAR"] = { ".goname #PLAYER", "Appear" },
["GM_SUMMON"] = { ".namego #PLAYER", "Summon" },
["GM_RECALL"] = { ".recall #PLAYER", "Recall" },
["GM_KICK"] = { ".kick #PLAYER", "Kick" },
["GM_POSSES"] = { ".posses", "Posses" },
["GM_MUTE"] = { ".mute #PLAYER 5", "Mute 5 Minutes" },
["GM_UNMUTE"] = { ".unmute #PLAYER", "Unmute" },
["GM_FREEZE"] = { ".freez #PLAYER", "Freeze" },
["GM_UNFREEZE"] = { ".unaura 29826", "Unfreeze" },
["GM_FLY"] = { ".gm fly on", "Flying Mode" },
["GM_SPEED_BOOST"] = { ".modify aspeed 5", "Speed Boost" },
["GM_SPEED_MAX"] = { ".modify aspeed 10", "Max Speed" },
["GM_SPEED_RESET"] = { ".modify aspeed 1", "Reset Speed" },
["GM_TICKET_LIST"] = { ".ticket list", "List Tickets" },
},
}
UnitPopupButtons["GM_HEADER"] = { text = TEXT("\n"), dist = 0 }
for label, data in pairs(pfUI.gm_server[C.gm.server]) do
local displayname = data[2]
UnitPopupButtons[label] = { text = TEXT("|cffaaccff" .. displayname), dist = 0 }
end
-- chat dropdown
table.insert(UnitPopupMenus["FRIEND"], "GM_HEADER")
table.insert(UnitPopupMenus["FRIEND"], "GM_PLAYERINFO")
table.insert(UnitPopupMenus["FRIEND"], "GM_GO")
table.insert(UnitPopupMenus["FRIEND"], "GM_APPEAR")
table.insert(UnitPopupMenus["FRIEND"], "GM_SUMMON")
table.insert(UnitPopupMenus["FRIEND"], "GM_RECALL")
table.insert(UnitPopupMenus["FRIEND"], "GM_MUTE")
table.insert(UnitPopupMenus["FRIEND"], "GM_UNMUTE")
table.insert(UnitPopupMenus["FRIEND"], "GM_KICK")
-- player dropdown
table.insert(UnitPopupMenus["SELF"], "GM_HEADER")
table.insert(UnitPopupMenus["SELF"], "GM_FLY")
table.insert(UnitPopupMenus["SELF"], "GM_SPEED_BOOST")
table.insert(UnitPopupMenus["SELF"], "GM_SPEED_MAX")
table.insert(UnitPopupMenus["SELF"], "GM_SPEED_RESET")
table.insert(UnitPopupMenus["SELF"], "GM_RECALL")
table.insert(UnitPopupMenus["SELF"], "GM_TICKET_LIST")
-- player target dropdown
table.insert(UnitPopupMenus["PLAYER"], "GM_HEADER")
table.insert(UnitPopupMenus["PLAYER"], "GM_PLAYERINFO")
table.insert(UnitPopupMenus["PLAYER"], "GM_POSSES")
table.insert(UnitPopupMenus["PLAYER"], "GM_RECALL")
table.insert(UnitPopupMenus["PLAYER"], "GM_FREEZE")
table.insert(UnitPopupMenus["PLAYER"], "GM_UNFREEZE")
table.insert(UnitPopupMenus["PLAYER"], "GM_MUTE")
table.insert(UnitPopupMenus["PLAYER"], "GM_UNMUTE")
table.insert(UnitPopupMenus["PLAYER"], "GM_KICK")
-- party member dropdown
table.insert(UnitPopupMenus["PARTY"], "GM_HEADER")
table.insert(UnitPopupMenus["PARTY"], "GM_PLAYERINFO")
table.insert(UnitPopupMenus["PARTY"], "GM_GO")
table.insert(UnitPopupMenus["PARTY"], "GM_APPEAR")
table.insert(UnitPopupMenus["PARTY"], "GM_SUMMON")
table.insert(UnitPopupMenus["PARTY"], "GM_RECALL")
table.insert(UnitPopupMenus["PARTY"], "GM_MUTE")
table.insert(UnitPopupMenus["PARTY"], "GM_UNMUTE")
table.insert(UnitPopupMenus["PARTY"], "GM_KICK")
-- raid member dropdown
table.insert(UnitPopupMenus["RAID"], "GM_HEADER")
table.insert(UnitPopupMenus["RAID"], "GM_PLAYERINFO")
table.insert(UnitPopupMenus["RAID"], "GM_GO")
table.insert(UnitPopupMenus["RAID"], "GM_APPEAR")
table.insert(UnitPopupMenus["RAID"], "GM_SUMMON")
table.insert(UnitPopupMenus["RAID"], "GM_RECALL")
table.insert(UnitPopupMenus["RAID"], "GM_MUTE")
table.insert(UnitPopupMenus["RAID"], "GM_UNMUTE")
table.insert(UnitPopupMenus["RAID"], "GM_KICK")
-- pet dropdown
-- table.insert(UnitPopupMenus["PET"], "GM_HEADER")
hooksecurefunc("UnitPopup_OnClick", function()
local dropdownFrame = _G[UIDROPDOWNMENU_INIT_MENU]
local button = this.value
local unit = dropdownFrame.unit
local name = dropdownFrame.name
local server = dropdownFrame.server
for label, data in pairs(pfUI.gm_server[C.gm.server]) do
local command = data[1]
if button == label then
if name then
command = string.gsub(command, "#PLAYER", name)
command = string.gsub(command, CHAT_FLAG_GM, "")
end
SendChatMessage(command)
end
end
end)
end)