This commit is contained in:
2025-03-13 16:28:23 +01:00
parent 468a68c3e7
commit 62e991cc66
23 changed files with 172 additions and 81 deletions

View File

@@ -1,4 +1,5 @@
--- PLAYER_TARGET_CHANGED --- PLAYER_TARGET_CHANGED
function(allstates) --- Deprecated in favor of Heimdall.AchievementSniffer
aura_env.TryInspect() --function(allstates)
end -- aura_env.TryInspect()
--end

View File

@@ -1,15 +1,16 @@
--- INSPECT_ACHIEVEMENT_READY --- INSPECT_ACHIEVEMENT_READY
function() --- Deprecated in favor of Heimdall.AchievementSniffer
local targetGuid = UnitGUID("target") --function()
if not targetGuid then return end -- local targetGuid = UnitGUID("target")
if not string.match(targetGuid, "Player") then return end -- if not targetGuid then return end
local targetName = UnitName("target") -- if not string.match(targetGuid, "Player") then return end
-- local targetName = UnitName("target")
local should = false --
if not WeakAurasSaved.Cyka.AchievementSniffer[targetName] then should = true end -- local should = false
if WeakAurasSaved.Cyka.AchievementSniffer2[targetName] then should = false end -- if not WeakAurasSaved.Cyka.AchievementSniffer[targetName] then should = true end
if aura_env.config.rescan then should = true end -- if WeakAurasSaved.Cyka.AchievementSniffer2[targetName] then should = false end
if not should then return end -- if aura_env.config.rescan then should = true end
-- if not should then return end
aura_env.Scan(targetName) --
end -- aura_env.Scan(targetName)
--end

View File

@@ -5,8 +5,12 @@ function(allstates)
if UnitIsPlayer(unit) then if UnitIsPlayer(unit) then
local name = UnitName(unit) local name = UnitName(unit)
local seen = false local seen = false
if WeakAurasSaved.Cyka.AchievementSniffer[name] then seen = true end if not Heimdall_Achievements then return end
if WeakAurasSaved.Cyka.AchievementSniffer2[name] then seen = true end if not Heimdall_Achievements.players then return end
if not Heimdall_Achievements.alreadySeen then return end
if Heimdall_Achievements.players[name] then seen = true end
if Heimdall_Achievements.alreadySeen[name] then seen = true end
allstates[unit] = { allstates[unit] = {
show = true, show = true,

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,10 @@
--DUEL_REQUESTED
function(e, sender)
if aura_env.whitelist[sender] then
print("Accepting duel from " .. sender)
AcceptDuel()
else
print("Declining duel from " .. sender)
CancelDuel()
end
end

View File

@@ -0,0 +1,18 @@
---@param input string
---@param deliminer string
---@return string[], string|nil
local function StrSplit(input, deliminer)
if not deliminer then return {}, "deliminer is nil" end
if not input then return {}, "input is nil" end
local parts = {}
for part in string.gmatch(input, "([^" .. deliminer .. "]+)") do
table.insert(parts, strtrim(part))
end
return parts, nil
end
aura_env.whitelist = {}
local swhitelist = StrSplit(aura_env.config.whitelist, ",")
for _, name in ipairs(swhitelist) do
aura_env.whitelist[name] = true
end

View File

@@ -0,0 +1,38 @@
--Integrate into a channel instead of whispers
--But probably also keep whispers, do both
--So for channel see
JoinPermanentChannel("foo")
LeaveChannelByName("foo")
--For existing channels see:
local foo = {GetChannelList()}
--There is also:
GetChannelName(0)
--Opa this also works:
ChannelKick("foobar", "Succpotato")
--But kick is actually ban...
--And unban does not actually work...
--Hmm...
--Relog (of the banned) seems to fix it (fix the kick that is)
--But relog does not fix the ban!
ChannelBan("foobar", "Succpotato")
ChannelUnban("foobar", "Succpotato")
--Mute and unmute both seem to work fine
ChannelMute("foobar", "Succpotato")
ChannelUnmute("foobar", "Succpotato")
--A player can be owner/moderator only for as long as they are online
--So these commands don't make much sense...
ChannelModerator("foobar", "Succpotato")
ChannelUnmoderator("foobar", "Succpotato")
--We can also set password!!
--But only by owner and only via chat
--/pass foobar secret
--Wiki:
--You can only be in ten chat channels at any given time. This does not include other chat types such as say, yell, party, raid, guild, officer, or whisper which are not considered channels.

View File

@@ -1,8 +1,5 @@
---@meta ---@meta
---@param unitId string
---@param index string|number index or name of debuff to query
---@param removable? boolean If 1, only debuffs removable by player will be returned; debuffIndex still begins at 1.
---@return string name The name of the spell or effect of the debuff, or nil if no debuff was found with the specified name or at the specified index. This is the name shown in yellow when you mouse over the icon. ---@return string name The name of the spell or effect of the debuff, or nil if no debuff was found with the specified name or at the specified index. This is the name shown in yellow when you mouse over the icon.
---@return string icon The identifier of (path and filename to) the indicated debuff, or nil if no debuff ---@return string icon The identifier of (path and filename to) the indicated debuff, or nil if no debuff
---@return number count The number of times the debuff has been applied to the target. Returns 0 for any debuff which doesn't stack. ---@return number count The number of times the debuff has been applied to the target. Returns 0 for any debuff which doesn't stack.
@@ -13,4 +10,9 @@
---@return boolean isStealable 1 if it is stealable otherwise nil ---@return boolean isStealable 1 if it is stealable otherwise nil
---@return boolean shouldConsolidate 1 if the buff should be placed in a buff consolidation box (usually long-term effects). ---@return boolean shouldConsolidate 1 if the buff should be placed in a buff consolidation box (usually long-term effects).
---@return number spellId spell ID of the aura. ---@return number spellId spell ID of the aura.
UnitDebuff = function(unitId, index, removable) end ---@overload fun(unit: string, index: number)
---@overload fun(unit: string, index: number, filter: string)
---@overload fun(unit: string, name: string)
---@overload fun(unit: string, name: string, rank: string|nil)
---@overload fun(unit: string, name: string, rank: string|nil, filter: auraFilter)
UnitDebuff = function() end

View File

@@ -1,15 +1,21 @@
---@diagnostic disable: missing-return, lowercase-global ---@diagnostic disable: missing-return, lowercase-global
---@alias auraFilter
---| 'RAID'
---| 'CANCELABLE'
---| 'HARMFUL'
---| 'HELPFUL'
---| 'NOT_CANCELABLE'
---| 'PLAYER'
---| 'RAID'
---@param unit string ---@param unit string
---@param index number ---@param index number
---@param name string
---@param rank string
---@param filter RAID
---@param CANCELABLE
---@param HARMFUL
---@param HELPFUL
---@param NOT_CANCELABLE
---@param PLAYER
---@param RAID
---Cancels a buff on the player. CancelUnitBuff becomes a protected function while under combat lockdown. ---Cancels a buff on the player. CancelUnitBuff becomes a protected function while under combat lockdown.
function CancelUnitBuff(unit, index, name, rank, filter, CANCELABLE, HARMFUL, HELPFUL, NOT_CANCELABLE, PLAYER, RAID) end ---@overload fun(unit: string, index: number)
---@overload fun(unit: string, index: number, rank: string)
---@overload fun(unit: string, index: number, rank: string, filter: auraFilter)
---@overload fun(unit: string, name: string)
---@overload fun(unit: string, name: string, rank: string)
---@overload fun(unit: string, name: string, rank: string, filter: auraFilter)
function CancelUnitBuff(unit, index, name, rank, filter) end

View File

@@ -1,9 +1,7 @@
---@diagnostic disable: missing-return, lowercase-global ---@diagnostic disable: missing-return, lowercase-global
---@param frameType string ---@overload fun(frameType: string): table
---@param name string ---@overload fun(frameType: string, name: string): table
---@param parent table ---@overload fun(frameType: string, name: string, parent: table): table
---@param template string ---@overload fun(frameType: string, name: string, parent: table, template: string): table
---@return table frame function CreateFrame(frameType, name, parent, template) end
---Creates a new Frame object
function CreateFrame(frameType, name, parent, template) end

View File

@@ -1,7 +1,7 @@
---@diagnostic disable: missing-return, lowercase-global ---@diagnostic disable: missing-return, lowercase-global
---@param emote string ---@param emote string
---@param target string
---@param hold boolean
---Performs a preset emote (with optional target). The list of built-in emote tokens can be found in global variables whose names follow the format "EMOTE"..num.."_TOKEN", where num is a number between 1 and MAXEMOTEINDEX (a variable local to ChatFrame.lua.) For custom emotes (as performed using the /emote or /me commands in the default UI), see SendChatMessage(). ---Performs a preset emote (with optional target). The list of built-in emote tokens can be found in global variables whose names follow the format "EMOTE"..num.."_TOKEN", where num is a number between 1 and MAXEMOTEINDEX (a variable local to ChatFrame.lua.) For custom emotes (as performed using the /emote or /me commands in the default UI), see SendChatMessage().
---@overload fun(emote: string, target: string)
---@overload fun(emote: string, target: string, hold: boolean)
function DoEmote(emote, target, hold) end function DoEmote(emote, target, hold) end

View File

@@ -1,8 +1,6 @@
---@diagnostic disable: missing-return, lowercase-global ---@diagnostic disable: missing-return, lowercase-global
---@param itemID number ---@param itemName string
---@param itemName string
---@param itemLink string
---@return string name ---@return string name
---@return string link ---@return string link
---@return number quality ---@return number quality
@@ -15,4 +13,6 @@
---@return string texture ---@return string texture
---@return number vendorPrice ---@return number vendorPrice
---Returns information about an item, by name, link or id. Will only return item information if it is directly available in memory. An item is present in memory if: It has been seen this session, OR It's present in Cache/enUS/Item-sparse.dba, where enUS is the user's locale If item information is not readily available, the client will first look on disk in DBFilesClient/Item-sparse.db2. If an item is found there, the client fires the GET_ITEM_INFO_RECEIVED event and keeps the result in memory for further GetItemInfo requests. If an item is not found on disk either, the client will send a server request for it. If the request fails, nothing happens. If the request succeeds, the client stores the item in memory and writes it to Cache/Locale/Item-sparse.dba. The client will never send more than one server request per id per session. ---Returns information about an item, by name, link or id. Will only return item information if it is directly available in memory. An item is present in memory if: It has been seen this session, OR It's present in Cache/enUS/Item-sparse.dba, where enUS is the user's locale If item information is not readily available, the client will first look on disk in DBFilesClient/Item-sparse.db2. If an item is found there, the client fires the GET_ITEM_INFO_RECEIVED event and keeps the result in memory for further GetItemInfo requests. If an item is not found on disk either, the client will send a server request for it. If the request fails, nothing happens. If the request succeeds, the client stores the item in memory and writes it to Cache/Locale/Item-sparse.dba. The client will never send more than one server request per id per session.
function GetItemInfo(itemID, itemName, itemLink) end ---@overload fun(itemID: number): table
---@overload fun(itemLink: string): table
function GetItemInfo(itemName) end

View File

@@ -1,4 +1,13 @@
---@diagnostic disable: missing-return, lowercase-global ---@diagnostic disable: missing-return, lowercase-global
---@class LootInfo
---@field isQuestItem boolean?
---@field item string Item name
---@field locked boolean Can loot?
---@field quality number Item quality
---@field quantity number Item quantity
---@field roll boolean
---@field texture number Texture file ID
---@return LootInfo[]
function GetLootInfo() end function GetLootInfo() end

View File

@@ -5,6 +5,6 @@
---@return string item ---@return string item
---@return number quantity ---@return number quantity
---@return number quality ---@return number quality
---@return 1nil locked ---@return number? locked (1 if locked, nil if not)
---Returns information about an item available as loot ---Returns information about an item available as loot
function GetLootSlotInfo(slot) end function GetLootSlotInfo(slot) end

View File

@@ -1,13 +1,15 @@
---@diagnostic disable: missing-return, lowercase-global ---@diagnostic disable: missing-return, lowercase-global
---@alias bookType
---| 'SPELL'
---| 'PET'
---@param index number ---@param index number
---@param bookType spell ---@param bookType bookType
---@param pet
---@param spell
---@param name string
---@param id number
---@return number start ---@return number start
---@return number duration ---@return number duration
---@return number enable ---@return number enable
---Returns cooldown information about a spell in the spellbook ---Returns cooldown information about a spell in the spellbook
function GetSpellCooldown(index, bookType, pet, spell, name, id) end ---@overload fun(name: string)
---@overload fun(id: number)
function GetSpellCooldown(index, bookType) end

View File

@@ -1,7 +1,7 @@
---@diagnostic disable: missing-return, lowercase-global ---@diagnostic disable: missing-return, lowercase-global
---@param unit string ---@param unit string
---@param name string
---@param exactMatch boolean
---Promotes a raid member to raid assistant ---Promotes a raid member to raid assistant
---@overload fun(name: string, exactMatch: boolean)
---@overload fun(unit: string)
function PromoteToAssistant(unit, name, exactMatch) end function PromoteToAssistant(unit, name, exactMatch) end

View File

@@ -1,20 +1,22 @@
---@diagnostic disable: missing-return, lowercase-global ---@diagnostic disable: missing-return, lowercase-global
---@alias channel
---| 'CHANNEL' channel
---| 'DND' text
---| 'EMOTE' /e
---| 'GUILD' /g
---| 'INSTANCE_CHAT' /i
---| 'OFFICER' /o
---| 'PARTY' /p
---| 'RAID' /ra
---| 'RAID_WARNING' /rw
---| 'SAY' /s
---| 'WHISPER' channel
---| 'YELL' /y
---@param text string ---@param text string
---@param chatType /y ---@param chatType channel
---@param CHANNEL channel
---@param DND text
---@param EMOTE /e
---@param GUILD /g
---@param INSTANCE_CHAT /i
---@param OFFICER /o
---@param PARTY /p
---@param RAID /ra
---@param RAID_WARNING /rw
---@param SAY /s
---@param WHISPER channel
---@param YELL /y
---@param languageIndex number
---@param channel string
---Sends a chat message ---Sends a chat message
function SendChatMessage(text, chatType, CHANNEL, DND, EMOTE, GUILD, INSTANCE_CHAT, OFFICER, PARTY, RAID, RAID_WARNING, SAY, WHISPER, YELL, languageIndex, channel) end ---@overload fun(text: string, chatType: channel, languageIndex: number)
---@overload fun(text: string, chatType: channel, languageIndex: number, channel: string)
function SendChatMessage(text, chatType, languageIndex, channel) end

View File

@@ -1,9 +1,9 @@
---@diagnostic disable: missing-return, lowercase-global ---@diagnostic disable: missing-return, lowercase-global
---@param unit string ---@param unit string
---@param name string
---@return string class ---@return string class
---@return string classFileName ---@return string classFileName
---@return number classIndex ---@return number classIndex
---Returns a unit's class. The second return (classFileName) can be used for locale-independent verification of a unit's class, or to look up class-related data in various global tables: RAID_CLASS_COLORS provides a standard color for each class (as seen in the default who, guild, calendar, and raid UIs) CLASS_ICON_TCOORDS provides coordinates to locate each class' icon within the "Interface\Glues\CharacterCreate\UI-CharacterCreate-Classes" texture For non-player units, the first return (class) will be the unit's name; to always get a localized class name regardless of unit type, use UnitClassBase instead. ---Returns a unit's class. The second return (classFileName) can be used for locale-independent verification of a unit's class, or to look up class-related data in various global tables: RAID_CLASS_COLORS provides a standard color for each class (as seen in the default who, guild, calendar, and raid UIs) CLASS_ICON_TCOORDS provides coordinates to locate each class' icon within the "Interface\Glues\CharacterCreate\UI-CharacterCreate-Classes" texture For non-player units, the first return (class) will be the unit's name; to always get a localized class name regardless of unit type, use UnitClassBase instead.
function UnitClass(unit, name) end ---@overload fun(name: string)
function UnitClass(unit) end

View File

@@ -1,7 +1,7 @@
---@diagnostic disable: missing-return, lowercase-global ---@diagnostic disable: missing-return, lowercase-global
---@param unit string ---@param unit string
---@param name string ---@return boolean exists
---@return 1nil exists
---Returns whether a unit exists. A unit "exists" if it can be referenced by the player; e.g. party1 exists if the player is in a party with at least one other member (regardless of whether that member is nearby), target exists if the player has a target, npc exists if the player is currently interacting with an NPC, etc. ---Returns whether a unit exists. A unit "exists" if it can be referenced by the player; e.g. party1 exists if the player is in a party with at least one other member (regardless of whether that member is nearby), target exists if the player has a target, npc exists if the player is currently interacting with an NPC, etc.
---@overload fun(name: string)
function UnitExists(unit, name) end function UnitExists(unit, name) end

View File

@@ -1,7 +1,7 @@
---@diagnostic disable: missing-return, lowercase-global ---@diagnostic disable: missing-return, lowercase-global
---@param unit string ---@param unit string
---@param name string ---@return boolean leader
---@return bool leader
---Returns whether a unit is the raid leader. ---Returns whether a unit is the raid leader.
---@overload fun(name: string)
function UnitIsGroupLeader(unit, name) end function UnitIsGroupLeader(unit, name) end

View File

@@ -2,7 +2,7 @@
---@param sep string ---@param sep string
---@param text string ---@param text string
---@param limit number ---@param limit number?
---@return string ... ---@return string ...
---Splits a string based on another seperator string. Also available as string.split (though not provided by the Lua standard library). ---Splits a string based on another seperator string. Also available as string.split (though not provided by the Lua standard library).
function strsplit(sep, text, limit) end function strsplit(sep, text, limit) end

View File

@@ -1,7 +1,7 @@
---@diagnostic disable: missing-return, lowercase-global ---@diagnostic disable: missing-return, lowercase-global
---@param str string ---@param str string
---@param trimChars string
---@return string text ---@return string text
---Trims leading and trailing characters (whitespace by default) from a string. Also available as string.trim (though not provided by the Lua standard library). ---Trims leading and trailing characters (whitespace by default) from a string. Also available as string.trim (though not provided by the Lua standard library).
---@overload fun(str: string, trimChars: string)
function strtrim(str, trimChars) end function strtrim(str, trimChars) end

View File

@@ -1 +1 @@
print(string.find("10 Gold", "%d+ ((Gold)|(Silver)|(Copper))")) print(string.gsub("SHIFT-Y", "SHIFT%-", "S"))