Code Monkey home page Code Monkey logo

savedinstances's Introduction

SavedInstances

Build Status

An addon that keeps track of the instance/raid lockouts saved against your characters, and related currencies and cooldowns.

Features:

  • Tooltip display shows current lockouts and data for all your characters, and optionally expired lockouts
  • Secondary tooltip (per-lockout) shows lockout details including bosses available, lock status and time remaining, and can be linked into chat
  • Tracks the honor points and conquest points of all your characters, including weekly caps
  • Tracks seals, resources, money, and other useful currencies (configurable display)
  • Tracks weekly World Boss Loots 
  • Tracks LFR bosses looted
  • Tracks holiday boss encounters
  • Tracks daily and weekly quests completed for each toon (mouseover entry to list completed quests)
  • Tracks Tanaan Jungle oil bosses: Doomroller, Deathtalon, Terrorfist, Vengeance (mouseover daily quests)
  • Tracks Garrison invasion rewards (mouseover weekly quests)
  • Tracks monthly Darkmoon Faire quests completed for each toon (mouseover weekly quests)
  • Tracks weekly "special" loots on the Timeless Isle and Isle of Thunder (mouseover weekly quests)
  • Tracks trade skill cooldowns (eg. Celestial cloth, Living Steel transmute, Secrets of Draenor, etc.)
  • Tracks data for all your characters across servers and factions
  • Can be configured to always show your favorite instances so you can use it like a shopping list
  • Tracks Blizzard's 10 instance per hour per account limit (*)
  • Tracking Bonus Loot Rolls (hidden by default), to help in "gaming" the bad luck protection (*)

Bug Reports and Feature Requests (Bug reports in comments might not be seen)

Translators: Apply localization here

Featured in Hearthcast Podcast #181

Known Issues

SavedInstances is pretty good, but it's still not quite perfect. There are currently a few issues:

  • When first installed, SavedInstances has no knowledge of your other characters: you'll need to log into each for their information to be recorded
  • (*) = Indicates a feature displaying data that cannot be directly queried from the server, but rather is collected by the addon while observing player actions. Actions taken while the addon is disabled, or from other computers, or before a client crash, can result in this display being temporarily out-of-date or incomplete.
  • Lockout time remaining and other features may be off by an hour when your region changes to and from Daylight Savings Time, or if you manually adjust the timezone of your computer.
  • Tracking for the 10 instance per hour limit uses heuristic detection and hence may occasionally be inaccurate (notably when another player has lead and performs explicit resets), but does a reasonable job for common cases.

Usage

SavedInstances will create a new button on the minimap, and you can use it to interact with SavedInstances just fine. The addon can also be displayed using a LibDataBroker-compatible display addon. I personally use Chocolate Bar which works quite well. Finally, you can bind a key or use "/si show" to open a detached window containing the display.

Multiple Accounts

If you are playing with multiple WoW accounts but want to keep track of all of them, you need to use Symlinks on your saved variable files.

savedinstances's People

Contributors

akazamzarak avatar caocon avatar chancedj avatar despia avatar dsabecky avatar duckwhale avatar elvador avatar etzmncbkrng avatar fgmenth avatar fia3d avatar hollicsh avatar icearea avatar jokeyrhyme avatar kralizek avatar kyramyz avatar liangyuxuan avatar lukem avatar mgarbacz avatar mitalie avatar mundi4 avatar ntowle avatar prg avatar roddd avatar ryoame-sp avatar speedwaystar avatar srenauld avatar stanzilla avatar stevesexperiments avatar tomknaepen avatar trid3nt1 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

savedinstances's Issues

keep it as WowAce subversion? Or switch to WowAce git or GitHub?

From: #54 (comment)

deciding on a home for the code: keep it in WowAce Subversion? switch to WowAce git? move it to GitHub?

I'm greatly prefer git to subversion, but that's just me
Also, whilst normally I would prefer to keep it on GitHub, do note that WowAce has the benefit of making translations slightly easier to submit

Of course, I'm happy either way, just want to see what others think

lua error sometimes on login

Got this once yesterday when logging in, and today too:

1x SavedInstances\SavedInstances-r552.lua:2909: attempt to compare number with nil
SavedInstances\SavedInstances-r552.lua:2909: in function ?' ...Ons\Ace3\CallbackHandler-1.0\CallbackHandler-1.0-6.lua:145: in function <...Ons\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:145> [string "safecall Dispatcher[1]"]:4: in function <[string "safecall Dispatcher[1]"]:4> [C]: ? [string "safecall Dispatcher[1]"]:13: in function ?'
...Ons\Ace3\CallbackHandler-1.0\CallbackHandler-1.0-6.lua:90: in function `Fire'
Ace3\AceEvent-3.0\AceEvent-3.0-3.lua:120: in function <Ace3\AceEvent-3.0\AceEvent-3.0.lua:119>

Locals:
nil

Unable to see dungeons

Hi, I checked out the master branch also i downloaded from WowAce so i have version 7.0.8 and got the plugin configured to show the Classic and TBC dungeons that I have been running , and its not showing any data , is there something else I need to do ?

SavedInstancesDB = nil

Hey, I just downloaded the head as of today and tried it out for the first time ever, and it looks like the basic functionality of saving info about your characters is broken on my copy. I always only see the current character anywhere in the GUI, and I noticed that nothing is getting saved in my WTF\account---\SavedVariables\SavedInstances.lua file except "SavedInstancesDB = nil"

Anyone else seen this happen?

BTW, thanks for all the work you've done on this addon, it's looking great!

Keybind doesn't work

thanks for updating this addon, excellent work.
one minor problem.
I get this message when I press the addon keybind.

Message: [string "SAVEDINSTANCES"]:1: attempt to index global 'SavedInstances' (a nil value)
Time: 05/20/17 11:04:17
Count: 11
Stack: [C]: ?
[string "SAVEDINSTANCES"]:1: in function <[string "SAVEDINSTANCES"]:1>

I have little to no knowledge of coding but would really like to make this work. Please help me

Error when getting currency from a quest

Every time I turn in a quest that rewards some form of currency, SavedInstances throws an error.

1x SavedInstances\SavedInstances-7.0.8.lua:1811: attempt to index local 'texture' (a number value)
SavedInstances\SavedInstances-7.0.8.lua:1811: in function `QuestIsDarkmoonMonthly'
SavedInstances\SavedInstances-7.0.8.lua:1836: in function <SavedInstances\SavedInstances.lua:1830>
[C]: in function `GetQuestReward'
FrameXML\QuestFrame.lua:161: in function <FrameXML\QuestFrame.lua:147>

Locals:
self = <table> {
 GetCurrentMapAreaID = <function> defined @SavedInstances\SavedInstances.lua:1818
 GetServerOffset = <function> defined @SavedInstances\SavedInstances.lua:768
 oi_cache = <table> {
 }
 questdebug = <function> defined @SavedInstances\SavedInstances.lua:396
 QuestInfo = <function> defined @SavedInstances\SavedInstances.lua:328
 pvpdesertids = <table> {
 }
 icon = <table> {
 }
 histLiveCount = 0
 FindInstance = <function> defined @SavedInstances\SavedInstances.lua:976
 UpdateToonData = <function> defined @SavedInstances\SavedInstances.lua:1568
 GetRegion = <function> defined @SavedInstances\SavedInstances.lua:784
 InGroup = <function> defined @SavedInstances\SavedInstances.lua:2825
 chatMsg = <function> defined @SavedInstances\SavedInstances.lua:338
 CategorySize = <function> defined @SavedInstances\SavedInstances.lua:1063
 formatNumber = <function> defined @SavedInstances\SavedInstances.lua:454
 GetNextDailyResetTime = <function> defined @SavedInstances\SavedInstances.lua:809
 OrderedCategories = <function> defined @SavedInstances\SavedInstances.lua:1256
 instanceException = <function> defined @SavedInstances\SavedInstances.lua:1161
 db = <table> {
 }
 diff_strings = <table> {
 }
 LFRInstances = <table> {
 }
 transInstance = <table> {
 }
 IsDetached = <function> defined @SavedInstances\SavedInstances.lua:3358
 config = <table> {
 }
 QuestIsDarkmoonMonthly = <function> defined @SavedInstances\SavedInstances.lua:1804
 SkinFrame = <function> defined @SavedInstances\SavedInstances.lua:682
 Categories = <table> {
 }
 histTextUpdate = <function> defined @SavedInstances\SavedInstances.lua:3029
 HistoryEvent = <function> defined @SavedInstances\SavedInstances.lua:2860
 SetupVersion = <function> defined @SavedInstances\SavedInstances.lua:2601
 InstanceCategory = <function> defined @SavedInstances\SavedInstances.lua:1043
 histReapTime = 3600
 resetDetect = SavedInstancesResetDetectHiddenFrame {
 }
 HideDetached = <function> defined @SavedInstances\SavedInstances.lua:3361
 playedpending = false
 UpdateInstanceData = <function> defined @SavedInstances\SavedInstances.lua:1355
 seencds = <table> {
 }
 GetNextWeeklyResetTime = <function> defined @SavedInstances\SavedInstances.lua:868
 WorldBosses = <table> {
 }
 revision = 550
 skillwarned = <table> {
 }
 region = "US"
 histOldest = "n/a"
 debug = <function> defined @SavedInstances\SavedInstances.lua:342
 resetDays = <table> {
 }
 core = <table> {
 }
 activeHolidays = <table> {
 }
 LDB = <table> {
 }
 playedreg = <table> {
 }
 scaleCache = <table> {
 }
 UpdateInstance = <function> defined @SavedInstances\SavedInstances.lua:1471
 delayUpdate = 1511337685.2856
 ShowDetached = <function> defined @SavedInstances\SavedInstances.lua:3372
 oc_cache = <table> {
 }
 LookupInstance = <function> defined @SavedInstances\SavedInstances.lua:1012
 GetSeasonCurrency = <function> defined @SavedInstances\SavedInstances.lua:2370
 version = "7.0.8"
 idtext = <function> defined @SavedInstances\config.lua:45
 Indicators = <table> {
 }
 UpdateCurrency = <function> defined @SavedInstances\SavedInstances.lua:1754
 OrderedInstances = <function> defined @SavedInstances\SavedInstances.lua:1243
 updateSpellTip = <function> defined @SavedInstances\SavedInstances.lua:1549
 currency = <table> {
 }
 normalizeName = <function> defined @SavedInstances\SavedInstances.lua:950
 BonusRollShow = <function> defined @SavedInstances\SavedInstances.lua:4749
 instancesUpdated = true
 L = <table> {
 }
 specialQuests = <function> de

Possible Error in locale.lua

Have had a look at the locale.lua and found a possible error in the brazillian language.
In line 1256 is a break:

La["Ignore"] = [=[Ignorar
]=]

I'm not sure that this break should be there, so please have a look at the line. :)

Add Argus Emissaries to Saved Instance

Someone else posted on Curse to add Argus Emissaries to Saved Instance. I took a quick look to see if I could help narrow down the problem instead of just giving you a problem to fix.

I think the problem is at line 2939 where it selects only Bountys for MapID(1014)... I think you are going to have to add the MapID for Argus. I didn't have time to hunt down what that was so hopefully this at least gets you looking in the right direction.

I also noticed down at 2972 that that questID is not going to be flagged a lot on alts anymore...they changed it to not require that if the main has it. Not sure what complications that could be causing (I haven't noticed any on my alts, but thought I would point it out since I noticed it).

Skipping frames / issue with savedinstances update

Downloaded the github update for savedinstances and now my game basically has a hiccup or skips every 5 seconds or so. Turn off all addons except savedinstances to reproduce the problem. If I use the old version from twitch app or curse the problem doesn't occur. Only happens with this new version.

Any help or suggestions would be appreciated as I like the mythic keystone functionality and that doesn't exist with the old version. But the game is almost unplayable with this new version installed for whatever reason.

Thanks

Addon wont open anymore since last update

Pretty long errorcode

4x SavedInstances\SavedInstances-@[email protected]:4193: attempt to concatenate local 'kabbrev' (a nil value)
SavedInstances\SavedInstances-@[email protected]:4193: in function ShowTooltip' SavedInstances\SavedInstances-@[email protected]:2679: in function OnEnter'
ElvUI\Modules\datatexts\datatexts.lua:66: in function `onEnter'
ElvUI\Modules\datatexts\datatexts.lua:229: in function <ElvUI\Modules\datatexts\datatexts.lua:227>

Locals:
self =

{
SetDefaultModuleLibraries = defined @ElvUI\Libraries\AceAddon-3.0\AceAddon-3.0.lua:398
localarr#categoryrow =
{
}
EnableModule = defined @ElvUI\Libraries\AceAddon-3.0\AceAddon-3.0.lua:363
modules =
{
}
CancelTimer = defined @ElvUI\Libraries\AceTimer-3.0\AceTimer-3.0.lua:145
RequestLockInfo = defined @SavedInstances\SavedInstances.lua:2783
localarr#blankrow =
{
}
TRADE_SKILL_LIST_UPDATE = defined @SavedInstances\SavedInstances.lua:4890
SetDefaultModulePrototype = defined @ElvUI\Libraries\AceAddon-3.0\AceAddon-3.0.lua:440
defaultModuleState = true
IsEnabled = defined @ElvUI\Libraries\AceAddon-3.0\AceAddon-3.0.lua:482
localarr#columns =
{
}
ScheduleTimer = defined @ElvUI\Libraries\AceTimer-3.0\AceTimer-3.0.lua:92
DisableModule = defined @ElvUI\Libraries\AceAddon-3.0\AceAddon-3.0.lua:381
ADDON_LOADED = defined @SavedInstances\SavedInstances.lua:2763
RegisterMessage = defined @ElvUI\Libraries\CallbackHandler-1.0\CallbackHandler-1.0.lua:116
UnregisterMessage = defined @ElvUI\Libraries\CallbackHandler-1.0\CallbackHandler-1.0.lua:179
RegisterBucketEvent = defined @HandyNotes_DraenorTreasures\libs\AceBucket-3.0\AceBucket-3.0.lua:213
memcheck = defined @SavedInstances\SavedInstances.lua:3266
scan_item_cds = defined @SavedInstances\SavedInstances.lua:4784
localarr#showcol =
{
}
SetEnabledState = defined @ElvUI\Libraries\AceAddon-3.0\AceAddon-3.0.lua:455
enabledState = true
RegisterEvent = defined @ElvUI\Libraries\CallbackHandler-1.0\CallbackHandler-1.0.lua:116
localarr#RefreshTemp =
{
}
IterateModules = defined @ElvUI\Libraries\AceAddon-3.0\AceAddon-3.0.lua:468
TradeSkillRescan = defined @SavedInstances\SavedInstances.lua:4869
CHAT_MSG_MONSTER_YELL = defined @SavedInstances\SavedInstances.lua:2990
localarr#wbsave =
{
}
OnInitialize = defined @SavedInstances\SavedInstances.lua:2607
NewModule = defined @ElvUI\Libraries\AceAddon-3.0\AceAddon-3.0.lua:266
GetModule = defined @ElvUI\Libraries\AceAddon-3.0\AceAddon-3.0.lua:241
ShowTooltip = defined @SavedInstances\SavedInstances.lua:3724
defaultModuleLibraries =
{
}
TimeLeft = defined @ElvUI\Libraries\AceTimer-3.0\AceTimer-3.0.lua:170
localarr#holidayinst =
{
}
localarr#instancerow =
{
}
RefreshMythicKeyInfo = defined @SavedInstances\SavedInstances.lua:2846
ScheduleRepeatingTimer = defined @ElvUI\Libraries\AceTimer-3.0\AceTimer-3.0.lua:127
CancelAllTimers = defined @ElvUI\Libraries\AceTimer-3.0\AceTimer-3.0.lua:158
toonInit = defined @SavedInstances\SavedInstances.lua:2592
localarr#lfrbox =
{
}
GetName = defined @ElvUI\Libraries\AceAddon-3.0\AceAddon-3.0.lua:310
SetDefaultModuleState = defined @ElvUI\Libraries\AceAddon-3.0\AceAddon-3.0.lua:418
localarr#instancesaved =
{
}
localarr#categoryshown =
{
}
RefreshDailyWorldQuestInfo = defined @SavedInstances\SavedInstances.lua:2924
scale = 1
RegisterBucketMessage = defined @HandyNotes_DraenorTreasures\libs\AceBucket-3.0\AceBucket-3.0.lua:229
orderedModules =
{
}
baseName = "SavedInstances"
Disable = defined @ElvUI\Libr

Tomb of Sargeras - fix in initial comment

EDIT...

I am editing this initial comment to suggest changes to add in TOS

For LFR
After line 149.

[1494] = { total=3, base=1, parent=1527,altid=nil }, -- TOS1: The Gates of Hell
[1495] = { total=3, base=4, parent=1527,altid=nil, remap={ 1, 2, 3 } }, -- TOS2: Wailing Halls
[1496] = { total=2, base=7, parent=1527,altid=nil, remap={ 1, 2} }, -- TOS3: Chamber of the Avatar
[1497] = { total=1, base=9, parent=1527,altid=nil, remap={ 1 } }, -- TOS4: Deceiver's Fall

This is based on the current information that wing 1 is 3 bosses, wing 2 is 3 bosses, wing 3 is 2 bosses, then kiljaeden is alone in the last wing. The remap may not be correct but it is my best educated guess.

To open TOS for normal and above change

local maxid = 1500
to
local maxid = 1700

TOS is instance ID 1676 so it needs to be above to include. 1700 should be the closest without risking possible errors.

Suggested additional tracking: Argus and Broken Shore Rares. (or user addable)

I have been trying to farm all my toons through Argus to get the various mounts/pets.... ive found it difficult to track which toons have which one done... I would love to have additional options to add argus rares... or a user addable quest section... .let us manually put in a quest completion we can manually add.

13th Anniversary: World Bosses (kind of time-sensitive)

It was requested those bosses are added to SavedInstances - Link on Curse. Since they are available for a limited time only, this should probably be done sooner rather than later.

I don't have time to do this properly, but I've gathered the available quest IDs for another addon. They are regular daily quests, though the Dragons of Nightmare are on a rotation (presumably, that is), and it appears there is only one quest to check for all of them. I can't say more until I've seen the other bosses, but supposedly they'll all use the same quest and should simply be called "Dragon of Nightmare" or something like that.

Quest IDs so far (will edit in/confirm the remaining ones if someone wants to work on this):

47461 Kazzak
47464 Kazzak - Bonus roll
47462 Azuregos
47465 Azuregos - Bonus roll
47463 Dragon of Nightmare
47466 Dragon of Nightmare - Bonus roll

They should probably just be listed under "World Bosses".

Timewalking Weekly Quests --Boss Drops

I wondered if I might get some help on how to clear old Timewalking weekly quests from showing in Saved Instances. The quests seem to be stored as completed, well, forever now. Do they need a quest id update or something? I still have BC Timewalking showing in the list even though it's been weeks since the event (same for WotLK TW quests).

(Also, much love to the LFR tracking fixes, much appreciated from me and my 11 alts)

Just for clarification:
-- Timewalking Dungeon final boss drops
[40168] = "Weekly", -- The Swirling Vial - Burning Crusade Timewalking
[40173] = "Weekly", -- The Unstable Prism - Wrath of the Lich King Timewalking
[40786] = "Weekly", -- The Smoldering Ember - Cataclysm Timewalking - Horde
[40787] = "Weekly", -- The Smoldering Ember - Cataclysm Timewalking - Alliance
[45563] = "Weekly", -- The Shrouded Coin - Mists of Pandaria Timewalking

These quests are not resetting. Probably because they aren't technically "weekly". I believe we have 8 days to turn these in because the vendor stays up for a day after TW events are finished. So these quests are showing up in the Weekly completed list and never resetting.

7.3 Raid isn't tracked

When i kill bosses on the PTR in LFR, they show in the LFR window as killed, but SavedInstances won't show it.
What data is needed to add a complete new raid with its wings?

Argus Invasion World Boss IDs

[2010] = { quest=49169, expansion=6, level=110, name=EJ_GetEncounterInfo(2010) }, -- Matron Folnuna
[2011] = { quest=49167, expansion=6, level=110 }, -- Mistress Alluradel
[2012] = { quest=49166, expansion=6, level=110 }, -- Inquisitor Meto
[2013] = { quest=49170, expansion=6, level=110 }, -- Occularus
[2014] = { quest=49171, expansion=6, level=110 }, -- Sotanathor
[2015] = { quest=49168, expansion=6, level=110 }, -- Pit Lord Vilemus

These are the correct tracking IDs now. Would be nice if they didn't hide them next time...

Note that the name=EJ_GetEncounterInfo() bit is only needed for the first one as it comes up with an early PTR name for that boss (Mother Kena)

new Owner for Curse project?

As mentioned over in #54 we're open to transferring ownership of the Curse project

Nominate yourself here and we'll figure it out :)

Change emissary displays to keep completed quests

I love how you got the emissaries to display, but I didn't like how the line disappeared (or was left blank) when a character completed the quest. I tweaked the code a little so that it now shows a question mark when the quest is ready to turn-in and a checkmark when the quest has been completed. I also added in compatibility for users who had already completed an emissary quest prior to updating (it defaults to showing it as completed, with "Emissary Missing" as the name).

Here are my changes (explained in the comments):

function core:RefreshDailyWorldQuestInfo()
  local t = vars.db.Toons[thisToon]
  t.DailyWorldQuest = {}
  local BountyQuest = GetQuestBountyInfoForMapID(1014)
  for BountyIndex, BountyInfo in ipairs(BountyQuest) do
    local title = GetQuestLogTitle(GetQuestLogIndexByID(BountyInfo.questID))
    local timeleft = C_TaskQuest.GetQuestTimeLeftMinutes(BountyInfo.questID)
    local _, _, isFinish, questDone, questNeed = GetQuestObjectiveInfo(BountyInfo.questID, 1, false)
    if timeleft then											-- Changed to only use timeleft
      if timeleft > 2880 then
        if t.DailyWorldQuest.days2 then else t.DailyWorldQuest.days2 = {} end				-- Don't nil the data if the quest is complete
        t.DailyWorldQuest.days2.name = title
        t.DailyWorldQuest.days2.dayleft = 2
        t.DailyWorldQuest.days2.questneed = questNeed
        t.DailyWorldQuest.days2.questdone = questDone
        t.DailyWorldQuest.days2.isfinish = isFinish							-- Needed for question mark indicator
        t.DailyWorldQuest.days2.iscompleted = IsQuestFlaggedCompleted(BountyInfo.questID)		-- Needed for checkmark indicator
      elseif timeleft > 1440 then
        if t.DailyWorldQuest.days1 then else t.DailyWorldQuest.days1 = {} end				-- Don't nil the data if the quest is complete
        t.DailyWorldQuest.days1.name = title
        t.DailyWorldQuest.days1.dayleft = 1
        t.DailyWorldQuest.days1.questneed = questNeed
        t.DailyWorldQuest.days1.questdone = questDone
        t.DailyWorldQuest.days1.isfinish = isFinish							-- Needed for question mark indicator
        t.DailyWorldQuest.days1.iscompleted = IsQuestFlaggedCompleted(BountyInfo.questID)		-- Needed for checkmark indicator
      else
        if t.DailyWorldQuest.days0 then else t.DailyWorldQuest.days0 = {} end				-- Don't nil the data if the quest is complete
        t.DailyWorldQuest.days0.name = title
        t.DailyWorldQuest.days0.dayleft = 0
        t.DailyWorldQuest.days0.questneed = questNeed
        t.DailyWorldQuest.days0.questdone = questDone
        t.DailyWorldQuest.days0.isfinish = isFinish							-- Needed for question mark indicator
        t.DailyWorldQuest.days0.iscompleted = IsQuestFlaggedCompleted(BountyInfo.questID)		-- Needed for checkmark indicator
      end
    end
  end
-- This section enables backwards compatibility by using placeholder names and a forced "true" for completion
  if IsQuestFlaggedCompleted(43341) then
    if t.DailyWorldQuest.days0 == nil then
      t.DailyWorldQuest.days0 = {}
      t.DailyWorldQuest.days0.dayleft = 0
      t.DailyWorldQuest.days0.iscompleted = true
      t.DailyWorldQuest.days0.name = "Emissary Missing"
    end
    if t.DailyWorldQuest.days1 == nil then
      t.DailyWorldQuest.days1 = {}
      t.DailyWorldQuest.days1.dayleft = 1
      t.DailyWorldQuest.days1.iscompleted = true
      t.DailyWorldQuest.days1.name = "Emissary Missing"
    end
    if t.DailyWorldQuest.days2 == nil then
      t.DailyWorldQuest.days2 = {}
      t.DailyWorldQuest.days2.dayleft = 2
      t.DailyWorldQuest.days2.iscompleted = true
      t.DailyWorldQuest.days2.name = "Emissary Missing"
    end
  end
end
  if vars.db.Tooltip.DailyWorldQuest then
    local show = {}
    for toon, t in cpairs(vars.db.Toons, true) do
      if t.DailyWorldQuest then
        for day,DailyInfo in pairs(t.DailyWorldQuest) do
          if DailyInfo.name then
            show[DailyInfo.dayleft] = DailyInfo.name
            addColumns(columns, toon, tooltip)
          end
        end
      end
    end
    for dayleft = 0 , 2 do
      if show[dayleft] then
        local showday = show[dayleft]
        if not firstcategory and vars.db.Tooltip.CategorySpaces then
          addsep()
        end
        show[dayleft] = tooltip:AddLine(YELLOWFONT .. showday .. " (+" .. dayleft .. " " .. L["Day"] .. ")" .. FONTEND)				-- The lack of spaces bothered me. Sorry.
      end
    end
    for toon, t in cpairs(vars.db.Toons, true) do
      if t.DailyWorldQuest then
        for day,DailyInfo in pairs(t.DailyWorldQuest) do
          if show[DailyInfo.dayleft] then
            local col = columns[toon..1]
            if DailyInfo.iscompleted == true then
              tooltip:SetCell(show[DailyInfo.dayleft], col, "\124T"..READY_CHECK_READY_TEXTURE..":0|t", "CENTER", maxcol)				-- If the emissary is completed (turned in), show a checkmark
            elseif DailyInfo.isfinish == true then
              tooltip:SetCell(show[DailyInfo.dayleft], col, "\124T"..READY_CHECK_WAITING_TEXTURE..":0|t", "CENTER", maxcol)				-- If the emissary is finished (not turned in), show a question mark
            else
              tooltip:SetCell(show[DailyInfo.dayleft], col, DailyInfo.questdone .. "/" .. DailyInfo.questneed , "CENTER",maxcol)				-- Otherwise, show the numbers
            end
          end
        end
      end
    end
  end

Reminder for Pet dungeon weekly

Would like to see specific weekly/daily quests in its column at all times, even if they are not completed, so they can act like reminders. Just like in the picture below:

http://i.imgur.com/HpWoXsn.jpg

The specific quests I would like to be added, would be these:

[46292] = "Weekly", -- Pet Battle Challenge: Deadmines
[45539] = "Weekly", -- Pet Battle Challenge: Wailing Caverns

I don't know how to make these appear at all times, which is what I want, but I guess their ids are correct from Wowhead, atleast.

[Request} New Seal of Fate purchased with Mark of Honor

Thanks again for updating this addon :)

Seal of Fate purchased with Mark of Honor is not calculated properly via weekly seal cap. I purchased 3 seal of fate this week, 2 with order resource and 1 with mark of honor. Weekly "purchasable" cap shows 2/3 tho it should be 3/3.
Also, the [Sealing Fate: Marks of Honor] quest is currently shown under Daily quests instead of Weekly Quests.

Possible micro stutter on 5 second timer? - possibly WORLD_MAP_UPDATE

Did you add in a roughly 5 second timer into this edit? There seems to be a slight (for a brief like millisecond) micro stutter on a 5 second interval in game with this version enabled.

I noticed I was having an ever so slight stuttering today while doing world quests on the broken shore. I went through pretty much all of my addons to see what was causing it and once I narrowed it down to saved instances, I was sure that it was causing the stuttering. I have tested sitting idle with only saved instances enabled and it indeed causes a slight delay every (roughly) 4-5 seconds

I will go through and see if you added some loop or timer to see if I can trace down what is causing this but it is definitely the modification of this addon that is the culprit.

new instance "Siege of Triumvira"

hi

new dj "siege of Triumvira" is missing, having a mythic key of it make the addon crash

["siege of triumvira"] = L["SoT"] is the easy part to add near the other dj abbreviation

then there is this code :
local KeystoneAbbrev = {
[197] = L["EoA"],
[198] = L["DHT"], ...
[210] = L["CoS"],
[227] = L["L Kara"],
[233] = L["CoEN"]

not sure which number allocate to SOT

Remap for TOS

Looks like remapping will be needed

Here is what was deduced

[1494] = { total=3, base=1, parent=1527,altid=nil, remap={ 1, 2, 3 } }, -- ToS1: The Gates of Hell (6/27/17)
[1495] = { total=3, base=4, parent=1527,altid=nil, remap={ 1, 2, 3 } }, -- ToS2: Wailing Halls (7/11/17)
[1496] = { total=2, base=7, parent=1527,altid=nil, remap={ 7, 8 } }, -- ToS3: Chamber of the Avatar (7/25/17)
[1497] = { total=1, base=9, parent=1527,altid=nil, remap={ 9 } }, -- ToS4: Deceiver's Fall (8/8/17)

Issue with mythic+ tracking

Hey,

nice to see someone is trying to maintain this addon!

Having issue with mythic+ tracking:

177x SavedInstances\SavedInstances-@[email protected]:2865: attempt to compare number with nil
SavedInstances\SavedInstances-@[email protected]:2865: in function ?' ...dia\libs\CallbackHandler-1.0\CallbackHandler-1.0-6.lua:145: in function <...dia\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:145> [string "safecall Dispatcher[2]"]:4: in function <[string "safecall Dispatcher[2]"]:4> [C]: ? [string "safecall Dispatcher[2]"]:13: in function ?'
...dia\libs\CallbackHandler-1.0\CallbackHandler-1.0-6.lua:90: in function `Fire'
ElvUI\Libraries\AceEvent-3.0\AceEvent-3.0-3.lua:120: in function <ElvUI\Libraries\AceEvent-3.0\AceEvent-3.0.lua:119>

Locals:
nil

tryed with all addons disabled and it didnt go away... english client. i think issue starts with:

local KeyInfo = {strsplit(':', keyLink)}

but my knowledge what could be wrong ends there :)

M+ weekly reward resetting

For whatever reason blizzard's C_ChallengeMode.IsWeeklyRewardAvailable() only returns true for the very first time you login after a weekly reset on that character.

Afterwards it returns false even if the chest wasn't opened. Perhaps some workaround with saving that state until you open the chest.

SavedInstances not initializing addon

When I logged on today after updating the SavedInstances alpha update from some time the past night through twitch/curse client I got this error:

2x SavedInstances\config.lua:34: attempt to call method 'SetupOptions' (a nil value)
SavedInstances\config.lua:34: in function <SavedInstances\config.lua:32>
(tail call): ?
[C]: ?
[string "safecall Dispatcher[1]"]:9: in function <[string "safecall Dispatcher[1]"]:5>
(tail call): ?
...ccountant_Classic\Libs\AceAddon-3.0\AceAddon-3.0-12.lua:529: in function `InitializeAddon'
...ccountant_Classic\Libs\AceAddon-3.0\AceAddon-3.0-12.lua:644: in function <...ccountant_Classic\Libs\AceAddon-3.0\AceAddon-3.0.lua:636>

Locals:
nil

Minimap icon disappeared :(

Hi, I have downloaded and installed the latest version of SI but the minimap icon has been disappeared. I cannot see any option to make it appeared back. Kind of annoying. Please help. Great thanks.

DMF error

SavedInstances\SavedInstances-7.0.8.lua:1811: attempt to index local 'texture' (a number value)
SavedInstances\SavedInstances-7.0.8.lua:1811: in function QuestIsDarkmoonMonthly' SavedInstances\SavedInstances-7.0.8.lua:1836: in function <SavedInstances\SavedInstances.lua:1830> [C]: ? [C]: in function GetQuestReward'
Leatrix_Plus\Leatrix_Plus-7.3.25.lua:1753: in function <Leatrix_Plus\Leatrix_Plus.lua:1686>

Locals:
self =

{
GetCurrentMapAreaID = defined @SavedInstances\SavedInstances.lua:1818
GetServerOffset = defined @SavedInstances\SavedInstances.lua:768
oi_cache =
{
}
questdebug = defined @SavedInstances\SavedInstances.lua:396
QuestInfo = defined @SavedInstances\SavedInstances.lua:328
pvpdesertids =
{
}
icon =
{
}
histLiveCount = 0
FindInstance = defined @SavedInstances\SavedInstances.lua:976
UpdateToonData = defined @SavedInstances\SavedInstances.lua:1568
GetRegion = defined @SavedInstances\SavedInstances.lua:784
InGroup = defined @SavedInstances\SavedInstances.lua:2825
chatMsg = defined @SavedInstances\SavedInstances.lua:338
CategorySize = defined @SavedInstances\SavedInstances.lua:1063
formatNumber = defined @SavedInstances\SavedInstances.lua:454
GetNextDailyResetTime = defined @SavedInstances\SavedInstances.lua:809
OrderedCategories = defined @SavedInstances\SavedInstances.lua:1256
instanceException = defined @SavedInstances\SavedInstances.lua:1161
db =
{
}
diff_strings =
{
}
LFRInstances =
{
}
transInstance =
{
}
IsDetached = defined @SavedInstances\SavedInstances.lua:3358
config =
{
}
QuestIsDarkmoonMonthly = defined @SavedInstances\SavedInstances.lua:1804
SkinFrame = defined @SavedInstances\SavedInstances.lua:682
Categories =
{
}
histTextUpdate = defined @SavedInstances\SavedInstances.lua:3029
HistoryEvent = defined @SavedInstances\SavedInstances.lua:2860
SetupVersion = defined @SavedInstances\SavedInstances.lua:2601
InstanceCategory = defined @SavedInstances\SavedInstances.lua:1043
histReapTime = 3600
resetDetect = SavedInstancesResetDetectHiddenFrame {
}
HideDetached = defined @SavedInstances\SavedInstances.lua:3361
playedpending = false
UpdateInstanceData = defined @SavedInstances\SavedInstances.lua:1355
delayedReset = false
GetNextWeeklyResetTime = defined @SavedInstances\SavedInstances.lua:868
WorldBosses =
{
}
revision = 550
region = "US"
histOldest = "n/a"
PlayedTime = 1510184928
resetDays =
{
}
core =
{
}
activeHolidays =
{
}
LDB =
{
}
playedreg =
{
}
scaleCache =
{
}
UpdateInstance = defined @SavedInstances\SavedInstances.lua:1471
delayUpdate = 1510184929
debug = defined @SavedInstances\SavedInstances.lua:342
oc_cache =
{
}
LookupInstance = defined @SavedInstances\SavedInstances.lua:1012
GetSeasonCurrency = defined @SavedInstances\SavedInstances.lua:2370
version = "7.0.8"
idtext = defined @SavedInstances\config.lua:45
Indicators =
{
}
UpdateCurrency = defined @SavedInstances\SavedInstances.lua:1754
OrderedInstances = defined @SavedInstances\SavedInstances.lua:1243
updateSpellTip = defined @SavedInstances\SavedInstances.lua:1549
currency =
{
}
normalizeName = defined @SavedInstances\SavedInstances.lua:950
BonusRollShow = defined @SavedInstances\SavedInstances.lua:4749
instancesUpdated = true
L =
{
}
specialQuests = defined @SavedInstances\SavedInstances.lua:231
dbmhook = true
ShowDetached = <functio

Minimap icon missing

Since some versions (I cannot remember) I am missing the minimap icon of this addon.

Tried the following:
completely delete Addon Folder and replaced it with master. (Restarted Game)

Using savedinstances current version (7.0.8 for wow 7.1.0) displays the icon just fine

I saw that in /libs folder theres loads of folders missing. Maybe thats fixed when this github release is cast onto curse some day, but not fixed if users simply download the current master as zip and want to start using it.

Dragging current master onto a from curse installed version (so lib folder keeps intact) works fine and displays minimap icon again.

Inquisitor Meto

Quest ID is 49172

49166 (what I had for Pit Lord Vilemus) is also triggering so that one cannot be correct either.

Might be a good idea to comment out the other two bosses for now until the correct IDs can be confirmed in the next couple of weeks.

edit: I imagine they will be 49168 and 49170 which keeps up with the pattern, just not sure which is which. Will do some more digging.

[Request] Re-order Currencies

Not sure how easy or difficult it would be, but the ability to re-order the currencies (i.e. have nethershards show on top instead of in the middle) would be very nice.

Lua error on 7.2.5

Hi,

Thanks so much for maintaining this addon. I am getting the following error as of 7.2.5 and was wondering if you would be willing to take a look at a fix.

Date: 2017-06-14 02:50:00
ID: 2
Error occured in: Global
Count: 1
Message: ..\AddOns\SavedInstances\SavedInstances.lua line 1816:
attempt to index local 'texture' (a number value)
Debug:
SavedInstances\SavedInstances.lua:1816: QuestIsDarkmoonMonthly()
SavedInstances\SavedInstances.lua:1841:
SavedInstances\SavedInstances.lua:1835
[C]: GetQuestReward()
..\FrameXML\QuestFrame.lua:161:
..\FrameXML\QuestFrame.lua:147
Locals:
self =

{
GetCurrentMapAreaID = defined @interface\AddOns\SavedInstances\SavedInstances.lua:1823
GetServerOffset = defined @interface\AddOns\SavedInstances\SavedInstances.lua:773
oi_cache =
{
}
questdebug = defined @interface\AddOns\SavedInstances\SavedInstances.lua:401
QuestInfo = defined @interface\AddOns\SavedInstances\SavedInstances.lua:333
pvpdesertids =
{
}
icon =
{
}
histLiveCount = 0
FindInstance = defined @interface\AddOns\SavedInstances\SavedInstances.lua:981
UpdateToonData = defined @interface\AddOns\SavedInstances\SavedInstances.lua:1573
GetRegion = defined @interface\AddOns\SavedInstances\SavedInstances.lua:789
InGroup = defined @interface\AddOns\SavedInstances\SavedInstances.lua:2830
chatMsg = defined @interface\AddOns\SavedInstances\SavedInstances.lua:343
CategorySize = defined @interface\AddOns\SavedInstances\SavedInstances.lua:1068
formatNumber = defined @interface\AddOns\SavedInstances\SavedInstances.lua:459
GetNextDailyResetTime = defined @interface\AddOns\SavedInstances\SavedInstances.lua:814
OrderedCategories = defined @interface\AddOns\SavedInstances\SavedInstances.lua:1261
instanceException = defined @interface\AddOns\SavedInstances\SavedInstances.lua:1166
db =
{
}
diff_strings =
{
}
LFRInstances =
{
}
transInstance =
{
}
IsDetached = defined @interface\AddOns\SavedInstances\SavedInstances.lua:3363
config =
{
}
QuestIsDarkmoonMonthly = defined @interface\AddOns\SavedInstances\SavedInstances.lua:1809
SkinFrame = defined @interface\AddOns\SavedInstances\SavedInstances.lua:687
Categories =
{
}
histTextUpdate = defined @interface\AddOns\SavedInstances\SavedInstances.lua:3034
HistoryEvent = defined @interface\AddOns\SavedInstances\SavedInstances.lua:2865
SetupVersion = defined @interface\AddOns\SavedInstances\SavedInstances.lua:2606
InstanceCategory = defined @interface\AddOns\SavedInstances\SavedInstances.lua:1048
histReapTime = 3600
resetDetect = SavedInstancesResetDetectHiddenFrame {
}
HideDetached = defined @interface\AddOns\SavedInstances\SavedInstances.lua:3366
currency_sort = defined @interface\AddOns\SavedInstances\SavedInstances.lua:2477
updatetooltip_throttle = 0.26700001396239
UpdateInstanceData = defined @interface\AddOns\SavedInstances\SavedInstances.lua:1360
headerfont = SavedInstancedTooltipHeaderFont {
}
GetNextWeeklyResetTime = defined @interface\AddOns\SavedInstances\SavedInstances.lua:873
WorldBosses =
{
}
revision = 550
oc_cache =
{
}
region = "US"
histOldest = "n/a"
resetDays =
{
}
core =
{
}
activeHolidays =
{
}
LDB =
{
}
scaleCache =
{
}
PlayedTime = 1497433763
UpdateInstance = defined @interface\AddOns\SavedInstances\SavedInstances.lua:1476
delayUpdate = 1497433783
debug = defined @interface\AddOns\SavedInstances\SavedInstances.lua:347
firstupdate = false
LookupInstance = defined @interface\AddOns\SavedInstances\SavedInstances.lua:1017
GetSeasonCurrency = defined @interface\AddOns\SavedInstances\SavedInstances.lua:2375
version = "7.0.8"
idtext = defined @interface\AddOns\SavedInstances\config.lua:45
Indicators =
{
}
UpdateCurrency = defined @interface\AddOns\SavedInstances\SavedInstances.lua:1759
OrderedInstances = defined @interface\AddOns\SavedInstances\SavedInstances.lua:1248
updateSpellTip = defined @interface\AddOns\SavedInstances\SavedInstances.lua:1554
currency =
{
}
normalizeName = defined @interface\AddOns\SavedInstances\SavedInstances.lua:955
BonusRollShow = defined @interface\AddOns\SavedInstances\SavedInstances.lua:4754
instancesUpdated = true
L =

AddOns:

(truncated)

Thanks for your help!
Matt

[Request] Contract or truncate the MythicKeystone text.

I was wondering if it would be possible to shorten the name of keys with regards to the current keystone each toon has. It takes up a lot of space and expands the character section longer than most.

For example: "Return to Karazhan: Lower(7) could be converted to "L Kara 7" perhaps. Or something thereabout.

I have included a screenshot to illustrate the point. I am quite the ALToholic.

savedinstances

P.S. As an side, is it possible to disable the Emissary lines somewhere? I'm having a hard time finding them.
P.P.S. Thank you very, very much for keeping this addon working and up-to-date. Many of us appreciate it.

[Request] Track Greater Invasion points

Would like to track Greater Invasion bosses same as World bosses tracking , if possible with separate tag than "World Bosses" on minimap button .
Thank you

Thank you.

You don't run a forum so it's hard to find a place to say thank you. I know this isn't the appropriate place but not sure where else to do it.

I truly appreciate the work you do for this addon. Thank you.

Track the weekly 150 resource cost Argus troops. It's a weekly quest, 900 cost after that each week.

The new order hall troops are obtained through weekly/repeatable quests.
The first each week only costs 150 order hall resources. The ones after that each week cost 900.

http://www.wowhead.com/quest=48910 Supplying Krokuun

http://www.wowhead.com/quest=48911 Void Inoculation

http://www.wowhead.com/quest=48912 Supplying the Antoran Campaign

It would be great to be able to track those just like any other weekly content.

Thanks!

new open-source license

From: #54 (comment)

deciding on a new license: I'd suggest resuming the BSD-2-Clause (a.k.a. Simplified BSD), or maybe switching to MIT or Apache 2.0

Those aren't the only options of course, we're open to suggestions
We've also seen GPL suggested

CurseForge localization broken due to packager misbehaving

Users are already posting errors, see here and here.

The CF packager has plenty of bugs that have been around for months, such as those reported here and here. There are likely others. One of those has caused the recent alpha build to break, because of multi-line phrases without a translation (as mentioned in the last link, point 2.)

I'm not sure if this can be fixed by setting handle-unlocalized, but since "blank" is the default behaviour, perhaps one of the alternatives works here:

  • handle-unlocalized - what to do when you have an unlocalized string.

    if "english", then it will output the english value.
    if "comment", then it will output the english value, but comment it out the line.
    if "blank" (default), then it will output "", but comment out the line.
    if "ignore", then no line will be printed out.

Licensing :(

Hi, I'm the original author of this addon, from it's initial release up to 4.2.4 when oscarucb graciously took over (I think, I could have the details wrong)

Firstly, I'm glad to see others still find SavedInstances useful, and it's terrific that others have taken its stewardship upon themselves

I was contacted about the licensing issues with the current last-published version on Curse.com, and am participating in a discussion over there:
https://www.wowace.com/projects/saved_instances/issues/295

I'm not sure this is strictly legal to use any of the code that was licensed as All Rights Reserved

This is the commit where oscarucb changed the license from BSD to All Rights Reserved: c85c585
This was then tagged as version 5.7.3

So, all the code up to this commit was BSD and able to be used as anyone sees fit
Everything from this commit onwards is completely locked up and can only be published / modified / relicensed / etc by oscarucb themselves

I think what you are doing is amazing, and I want to find a way to grant you the proper access required to publish this to Curse.com officially
But, I feel like we might be required to drop all the commits that were marked as All Rights Reserved

I'm no copyright lawyer, and I want to have an open dialogue and see what other people think
I could also just be a crazy old programmer with silly ideas :P

Anyone else have any thoughts on how to proceed here?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.