Compare commits
3 Commits
e85c14ea45
...
06b7f5fca0
Author | SHA1 | Date | |
---|---|---|---|
06b7f5fca0 | |||
0ab14de0e2 | |||
a25b6a20d5 |
74
Heimdall.lua
74
Heimdall.lua
@@ -2,7 +2,7 @@ local addonname, shared = ...
|
|||||||
---@cast shared HeimdallShared
|
---@cast shared HeimdallShared
|
||||||
---@cast addonname string
|
---@cast addonname string
|
||||||
|
|
||||||
local VERSION = "3.11.0"
|
local VERSION = "3.12.0"
|
||||||
shared.VERSION = VERSION
|
shared.VERSION = VERSION
|
||||||
|
|
||||||
local function init()
|
local function init()
|
||||||
@@ -541,3 +541,75 @@ loadedFrame:RegisterEvent("ADDON_LOADED")
|
|||||||
loadedFrame:SetScript("OnEvent", function(self, event, addonName)
|
loadedFrame:SetScript("OnEvent", function(self, event, addonName)
|
||||||
if addonName == addonname then init() end
|
if addonName == addonname then init() end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
local loadedFrame = CreateFrame("Frame")
|
||||||
|
loadedFrame:RegisterEvent("ADDON_LOADED")
|
||||||
|
loadedFrame:SetScript("OnEvent", function(self, event, addonName)
|
||||||
|
if addonName == addonname then init() end
|
||||||
|
end)
|
||||||
|
|
||||||
|
-- Create the import/export frame
|
||||||
|
local ccpFrame = CreateFrame("Frame", "CCPFrame", UIParent)
|
||||||
|
ccpFrame:SetSize(512 * 1.5, 512 * 1.5)
|
||||||
|
ccpFrame:SetPoint("CENTER")
|
||||||
|
ccpFrame:SetFrameStrata("HIGH")
|
||||||
|
ccpFrame:EnableMouse(true)
|
||||||
|
ccpFrame:SetMovable(true)
|
||||||
|
ccpFrame:SetResizable(false)
|
||||||
|
ccpFrame:SetBackdrop({
|
||||||
|
bgFile = "Interface/Tooltips/UI-Tooltip-Background",
|
||||||
|
edgeFile = "Interface/Tooltips/UI-Tooltip-Border",
|
||||||
|
tile = true,
|
||||||
|
tileSize = 4,
|
||||||
|
edgeSize = 4,
|
||||||
|
insets = {
|
||||||
|
left = 4,
|
||||||
|
right = 4,
|
||||||
|
top = 4,
|
||||||
|
bottom = 4,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
ccpFrame:SetBackdropColor(0, 0, 0, 0.8)
|
||||||
|
ccpFrame:SetBackdropBorderColor(0.5, 0.5, 0.5, 1)
|
||||||
|
|
||||||
|
ccpFrame:SetMovable(true)
|
||||||
|
ccpFrame:EnableMouse(true)
|
||||||
|
ccpFrame:RegisterForDrag("LeftButton")
|
||||||
|
ccpFrame:SetScript("OnDragStart", function(self) self:StartMoving() end)
|
||||||
|
ccpFrame:SetScript("OnDragStop", function(self) self:StopMovingOrSizing() end)
|
||||||
|
ccpFrame:SetScript("OnShow", function(self) self:SetScale(1) end)
|
||||||
|
ccpFrame:Hide()
|
||||||
|
|
||||||
|
-- Create scroll frame
|
||||||
|
local scrollFrame = CreateFrame("ScrollFrame", "CCPFrameScrollFrame", ccpFrame, "UIPanelScrollFrameTemplate")
|
||||||
|
scrollFrame:SetPoint("TOPLEFT", ccpFrame, "TOPLEFT", 10, -10)
|
||||||
|
scrollFrame:SetPoint("BOTTOMRIGHT", ccpFrame, "BOTTOMRIGHT", -30, 10)
|
||||||
|
|
||||||
|
-- Create the text box
|
||||||
|
local ccpFrameTextBox = CreateFrame("EditBox", "CCPFrameTextBox", scrollFrame)
|
||||||
|
ccpFrameTextBox:SetSize(512 * 1.5 - 40, 512 * 1.5 - 20)
|
||||||
|
ccpFrameTextBox:SetPoint("TOPLEFT", scrollFrame, "TOPLEFT", 0, 0)
|
||||||
|
ccpFrameTextBox:SetFont("Fonts\\FRIZQT__.ttf", 12)
|
||||||
|
ccpFrameTextBox:SetTextColor(1, 1, 1, 1)
|
||||||
|
ccpFrameTextBox:SetTextInsets(10, 10, 10, 10)
|
||||||
|
ccpFrameTextBox:SetMultiLine(true)
|
||||||
|
ccpFrameTextBox:SetAutoFocus(true)
|
||||||
|
ccpFrameTextBox:SetMaxLetters(1000000)
|
||||||
|
ccpFrameTextBox:SetScript("OnEscapePressed", function(self) ccpFrame:Hide() end)
|
||||||
|
|
||||||
|
-- Set the scroll frame's scroll child
|
||||||
|
scrollFrame:SetScrollChild(ccpFrameTextBox)
|
||||||
|
|
||||||
|
CCP = function(window)
|
||||||
|
window = window or 1
|
||||||
|
local charFrame = _G["ChatFrame" .. window]
|
||||||
|
local maxLines = charFrame:GetNumMessages() or 0
|
||||||
|
local chat = {}
|
||||||
|
for i = 1, maxLines do
|
||||||
|
local currentMsg = charFrame:GetMessageInfo(i)
|
||||||
|
chat[#chat + 1] = currentMsg
|
||||||
|
end
|
||||||
|
ccpFrameTextBox:SetText(table.concat(chat, "\n"))
|
||||||
|
ccpFrame:Show()
|
||||||
|
ccpFrameTextBox:SetFocus()
|
||||||
|
end
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
## Interface: 70300
|
## Interface: 70300
|
||||||
## Title: Heimdall
|
## Title: Heimdall
|
||||||
## Version: 3.11.0
|
## Version: 3.12.0
|
||||||
## Notes: Watches over areas and alerts when hostiles spotted
|
## Notes: Watches over areas and alerts when hostiles spotted
|
||||||
## Author: Cyka
|
## Author: Cyka
|
||||||
## SavedVariables: Heimdall_Data, Heimdall_Achievements
|
## SavedVariables: Heimdall_Data, Heimdall_Achievements
|
||||||
|
2
Meta
2
Meta
Submodule Meta updated: e0b57e39fc...46ecd9a143
@@ -213,7 +213,30 @@ shared.Whoer = {
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
return true
|
local err = NotifyZoneChanged(player, zone)
|
||||||
|
if err then print(string.format("Error notifying for %s: %s", tostring(name), tostring(err))) end
|
||||||
|
end
|
||||||
|
player.zone = zone
|
||||||
|
player.lastSeen = timestamp
|
||||||
|
HeimdallStinkies[name] = player
|
||||||
|
if not Heimdall_Data.who then Heimdall_Data.who = {} end
|
||||||
|
if not Heimdall_Data.who.data then Heimdall_Data.who.data = {} end
|
||||||
|
Heimdall_Data.who.data[name] = player
|
||||||
|
end
|
||||||
|
end
|
||||||
|
-- Turns out WA cannot do this (
|
||||||
|
-- aura_env.UpdateMacro()
|
||||||
|
-- We MAY not need this
|
||||||
|
-- _G["FriendsFrameCloseButton"]:Click()
|
||||||
|
end)
|
||||||
|
|
||||||
|
do
|
||||||
|
local function UpdateStinkies()
|
||||||
|
for name, player in pairs(HeimdallStinkies) do
|
||||||
|
if player.lastSeenInternal + Heimdall_Data.config.who.ttl < GetTime() then
|
||||||
|
NotifyGone(player)
|
||||||
|
--PlaySoundFile("Interface\\Sounds\\Uncloak.ogg", "Master")
|
||||||
|
HeimdallStinkies[name] = nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if not Heimdall_Data.config.who.debug then
|
if not Heimdall_Data.config.who.debug then
|
||||||
@@ -644,10 +667,27 @@ shared.Whoer = {
|
|||||||
Heimdall_Data.who.data[name] = player
|
Heimdall_Data.who.data[name] = player
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
-- Turns out WA cannot do this (
|
whoQueryIdx = whoQueryIdx + 1
|
||||||
-- aura_env.UpdateMacro()
|
if whoQueryIdx > #shared.WhoQueryService.queries then whoQueryIdx = 1 end
|
||||||
_G["FriendsFrameCloseButton"]:Click()
|
lastQuery = query
|
||||||
end)
|
---@diagnostic disable-next-line: param-type-mismatch
|
||||||
|
SetWhoToUI(1)
|
||||||
|
SetWhoToUI(1)
|
||||||
|
SendWho(query.query)
|
||||||
|
whoWaiting = true
|
||||||
|
end
|
||||||
|
local function Tick()
|
||||||
|
DoQuery()
|
||||||
|
C_Timer.NewTimer(1, Tick, 1)
|
||||||
|
end
|
||||||
|
Tick()
|
||||||
|
|
||||||
|
local original_FriendsFrame_OnEvent = FriendsFrame_OnEvent
|
||||||
|
local function my_FriendsFrame_OnEvent(event)
|
||||||
|
if not (event == "WHO_LIST_UPDATE" and whoWaiting) then original_FriendsFrame_OnEvent() end
|
||||||
|
end
|
||||||
|
FriendsFrame_OnEvent = my_FriendsFrame_OnEvent
|
||||||
|
end
|
||||||
|
|
||||||
do
|
do
|
||||||
local function UpdateStinkies()
|
local function UpdateStinkies()
|
||||||
|
Reference in New Issue
Block a user