*api bump to 100025

Martin Unkel [11-23-18 - 12:57]
*api bump to 100025
+new shadowy supplier module
Filename
AwesomeEvents/AwesomeEvents.lua
AwesomeEvents/AwesomeEvents.txt
AwesomeEvents/Language/de.lua
AwesomeEvents/Language/ru.lua
AwesomeEvents/Language/strings.lua
AwesomeEvents/Modules/ShadowySupplier.lua
AwesomeEventsMod/AwesomeEventsMod.txt
esoui_changelog.txt
esoui_description.txt
diff --git a/AwesomeEvents/AwesomeEvents.lua b/AwesomeEvents/AwesomeEvents.lua
index 80a57f3..af6f8f2 100644
--- a/AwesomeEvents/AwesomeEvents.lua
+++ b/AwesomeEvents/AwesomeEvents.lua
@@ -3,7 +3,7 @@

   Author: @Ze_Mi <zemi@unive.de>
   Filename: AwesomeEvents.lua
-  Last Modified: 02.09.18 20:30
+  Last Modified: 23.11.18 13:30

   Copyright (c) 2018 by Martin Unkel
   License : CreativeCommons CC BY-NC-SA 4.0 Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)
@@ -15,7 +15,7 @@ Awesome_Events = {
     name = 'AwesomeEvents',
     panelName = 'AwesomeEventsOptions',
     title = 'Awesome Events',
-    version = '1.5-RC1',
+    version = '1.6-RC1',

     defaults = {
         isDefault = true,
diff --git a/AwesomeEvents/AwesomeEvents.txt b/AwesomeEvents/AwesomeEvents.txt
index 7406b37..7c147a1 100644
--- a/AwesomeEvents/AwesomeEvents.txt
+++ b/AwesomeEvents/AwesomeEvents.txt
@@ -1,8 +1,8 @@
 ## Title: |cFFFFB0Awesome Events|r
 ## Author: Ze_Mi
-## Description: This addon adds many customizable notifications and information to your UI. (Version: 1.5-RC1)
-## Version: 1.5-RC1
-## APIVersion: 100024
+## Description: This addon adds many customizable notifications and information to your UI. (Version: 1.6-RC1)
+## Version: 1.6-RC1
+## APIVersion: 100025
 ## OptionalDependsOn: LibStub, LibAddonMenu-2.0, LibMsgWin-1.0, LibFoodDrinkBuff, LibAwesomeModule-1.0
 ## SavedVariables: AwesomeEvents

@@ -41,6 +41,7 @@ Modules/Inventory.lua
 Modules/Mails.lua
 Modules/Mount.lua
 Modules/RepairKits.lua
+Modules/ShadowySupplier.lua
 Modules/Skills.lua
 Modules/SkyShards.lua
 Modules/SoulGems.lua
diff --git a/AwesomeEvents/Language/de.lua b/AwesomeEvents/Language/de.lua
index 7518e2d..50eb88e 100644
--- a/AwesomeEvents/Language/de.lua
+++ b/AwesomeEvents/Language/de.lua
@@ -3,7 +3,7 @@

   Author: @Ze_Mi <zemi@unive.de>
   Filename: de.lua
-  Last Modified: 02.09.18 17:30
+  Last Modified: 23.11.18 13:30

   Copyright (c) 2018 by Martin Unkel
   License : CreativeCommons CC BY-NC-SA 4.0 Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)
@@ -176,6 +176,13 @@ SafeAddString(SI_AWEMOD_REPAIRKITS, "Reparatur-Kits", 1)
 SafeAddString(SI_AWEMOD_REPAIRKITS_HINT, "Lass dir anzeigen, wie viele Reparatur-Kisten du im Rucksack hast.", 1)
 SafeAddString(SI_AWEMOD_REPAIRKITS_LABEL, "Reparatur-Kits|r: |t16:16:EsoUI/Art/icons/store_repairkit_002.dds|t <<1[Keine/1 Kiste/$d Kisten]>>", 1)

+--module-shadowysupplier
+SafeAddString(SI_AWEMOD_SHADOWYSUPPLIER, "Verhüllter Versorger (Passive Fähigkeit)", 1)
+SafeAddString(SI_AWEMOD_SHADOWYSUPPLIER_HINT, "Der verhüllte Versorger ist eine passive Fähigkeit aus der Fertigkeitslinie der dunklen Bruderschaft. Erhalte eine Benachrichtigung mit verbleibender Zeit, wann der nächste verhüllte Versorger zur Verfügung steht, oder ob er bereits auf dich wartet.", 1)
+SafeAddString(SI_AWEMOD_SHADOWYSUPPLIER_TIMER, "Wartezeit-Hinweis ab (Minuten)", 1)
+SafeAddString(SI_AWEMOD_SHADOWYSUPPLIER_TIMER_HINT, "Zeigt den Verhüllter-Versorger-Hinweis mit Countdown an, sobald der verhüllte Versorger in weniger als der hier festgelegten Minutenzahl wieder verfügbar ist.", 1)
+SafeAddString(SI_AWEMOD_SHADOWYSUPPLIER_AVAILABLE_LABEL, "Verfügbar", 1)
+
 --module-skills
 SafeAddString(SI_AWEMOD_SKILLS, "Attribute- und Fertigkeiten", 1)
 SafeAddString(SI_AWEMOD_SKILLS_HINT, "Erhalte eine Benachrichtigung, sobald du über nicht gesetzte Attributs- und Fertigkeitspunkte verfügst.", 1)
diff --git a/AwesomeEvents/Language/ru.lua b/AwesomeEvents/Language/ru.lua
index 8317fbc..59d0de5 100644
--- a/AwesomeEvents/Language/ru.lua
+++ b/AwesomeEvents/Language/ru.lua
@@ -3,7 +3,7 @@

   Author: Memoraike
   Filename: ru.lua
-  Last Modified: 02.09.18 17:30
+  Last Modified: 23.11.18 13:30

   Copyright (c) 2018 by Martin Unkel and Memoraike
   License : CreativeCommons CC BY-NC-SA 4.0 Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)
@@ -180,6 +180,13 @@ SafeAddString(SI_AWEMOD_MOUNT_TIMER_HINT, "Отображение таймера
 --SafeAddString(SI_AWEMOD_REPAIRKITS_HINT, "See how many repair kits you have in your inventory.", 1)
 --SafeAddString(SI_AWEMOD_REPAIRKITS_LABEL, "Repair Kits|r: |t16:16:EsoUI/Art/icons/store_repairkit_002.dds|t <<1[None/1 kit/$d kits]>>", 1)

+--module-shadowysupplier
+--SafeAddString(SI_AWEMOD_SHADOWYSUPPLIER, "Shadowy Supplier (Passive Skill)", 1)
+--SafeAddString(SI_AWEMOD_SHADOWYSUPPLIER_HINT, "The shadowy supplier is a passive skill from the dark brotherhoods skill line. Get an information and timer about availability of Dark Brotherhood`s Shadowy Supplier (passive ability).", 1)
+--SafeAddString(SI_AWEMOD_SHADOWYSUPPLIER_TIMER, "Supplier cooldown timer (minutes)", 1)
+--SafeAddString(SI_AWEMOD_SHADOWYSUPPLIER_TIMER_HINT, "Will show the cooldown timer if Shadowy Supplier is available within the number of minutes below.", 1)
+--SafeAddString(SI_AWEMOD_SHADOWYSUPPLIER_AVAILABLE_LABEL, "Available", 1)
+
 --module-skills
 SafeAddString(SI_AWEMOD_SKILLS, "Атрибуты и очки умений", 1)
 SafeAddString(SI_AWEMOD_SKILLS_HINT, "Отображение уведомления, когда у Вас есть неиспользованные атрибуты или очки умений.", 1)
diff --git a/AwesomeEvents/Language/strings.lua b/AwesomeEvents/Language/strings.lua
index 4128a1c..22c3a0c 100644
--- a/AwesomeEvents/Language/strings.lua
+++ b/AwesomeEvents/Language/strings.lua
@@ -3,7 +3,7 @@

   Author: @Ze_Mi <zemi@unive.de>
   Filename: strings.lua
-  Last Modified: 02.09.18 17:30
+  Last Modified: 23.11.18 13:30

   Copyright (c) 2018 by Martin Unkel
   License : CreativeCommons CC BY-NC-SA 4.0 Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)
@@ -176,6 +176,13 @@ local strings = {
 	SI_AWEMOD_REPAIRKITS_HINT="See how many repair kits you have in your inventory.",
 	SI_AWEMOD_REPAIRKITS_LABEL="Repair Kits|r: |t16:16:EsoUI/Art/icons/store_repairkit_002.dds|t <<1[None/1 kit/$d kits]>>",

+	--module-shadowysupplier
+	SI_AWEMOD_SHADOWYSUPPLIER="Shadowy Supplier (Passive Skill)",
+	SI_AWEMOD_SHADOWYSUPPLIER_HINT="The shadowy supplier is a passive skill from the dark brotherhoods skill line. Get an information and timer about availability of Dark Brotherhood`s Shadowy Supplier (passive ability).",
+	SI_AWEMOD_SHADOWYSUPPLIER_TIMER="Supplier cooldown timer (minutes)",
+	SI_AWEMOD_SHADOWYSUPPLIER_TIMER_HINT="Will show the cooldown timer if Shadowy Supplier is available within the number of minutes below.",
+    SI_AWEMOD_SHADOWYSUPPLIER_AVAILABLE_LABEL="Available",
+
 	--module-skills
 	SI_AWEMOD_SKILLS="Attribute- & Skillpoints",
 	SI_AWEMOD_SKILLS_HINT="Get a notification if you have unspent attribute- or skillpoints.",
diff --git a/AwesomeEvents/Modules/ShadowySupplier.lua b/AwesomeEvents/Modules/ShadowySupplier.lua
new file mode 100644
index 0000000..a6e8ff8
--- /dev/null
+++ b/AwesomeEvents/Modules/ShadowySupplier.lua
@@ -0,0 +1,162 @@
+--[[
+  This file is part of Awesome Events.
+
+  Author: @Ze_Mi <zemi@unive.de>
+  Filename: ShadowySupplier.lua
+  Last Modified: 23.11.18 13:30
+
+  Copyright (c) 2018 by Martin Unkel
+  License : CreativeCommons CC BY-NC-SA 4.0 Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)
+
+  Please read the README file for further information.
+  ]]
+
+local libAM = LibStub('LibAwesomeModule-1.0')
+local MOD = libAM:New('shadowysupplier')
+
+MOD.title = GetString(SI_AWEMOD_SHADOWYSUPPLIER)
+MOD.hint = GetString(SI_AWEMOD_SHADOWYSUPPLIER_HINT)
+MOD.order = 40
+MOD.debug = false
+
+-- USER SETTINGS
+
+local DARKBROTHERHOOD_SHADOWYSUPPLIER_ABILITYID = 77396
+local DARKBROTHERHOOD_SHADOWYSUPPLIER_SKILLTYPE = SKILL_TYPE_GUILD --5
+local DARKBROTHERHOOD_SHADOWYSUPPLIER_SKILLINDEX = 2
+local DARKBROTHERHOOD_SHADOWYSUPPLIER_ABILITYINDEX = 4
+
+-- /script local a={}; a.name,_,_,_,_,a.purchased = GetSkillAbilityInfo(5,2,4); d(a)
+
+MOD.options = {
+    minutesLeftInfo = {
+        type = 'slider',
+        name = GetString(SI_AWEMOD_SHADOWYSUPPLIER_TIMER),
+        tooltip = GetString(SI_AWEMOD_SHADOWYSUPPLIER_TIMER_HINT),
+        min = 1,
+        max = 1200,
+        default = 480,
+        order = 5,
+    },
+}
+
+-- OVERRIDES
+
+function MOD:Enable(options)
+    self:d('Enable (in debug-mode)')
+    self.data = {
+        hasAbility = false,
+        availableAt = 0,
+        minutesLeft = 9999,
+        name = "Shadowy Supplier"
+    }
+    self:OnSkillAbilityProgressionUpdate()
+    self.dataUpdated = true
+end -- MOD:Enable
+
+function MOD:Set(key, value)
+    self:d('Set['..key..']', value)
+    if (key=='minutesLeftInfo') then
+        self:OnTimer(GetTimeStamp())
+    end
+end -- MOD:Set
+
+-- EVENT LISTENER
+function MOD:GetEventListeners()
+    return {
+        {
+            eventCode = EVENT_AWESOME_MODULE_TIMER,
+            callback = function (eventCode, timestamp)
+                return MOD:OnTimer(timestamp)
+            end,
+        },
+        {
+            eventCode = EVENT_SKILL_ABILITY_PROGRESSIONS_UPDATED,
+            callback = function (eventCode)
+                self:d('EVENT_SKILL_ABILITY_PROGRESSIONS_UPDATED')
+                MOD:OnSkillAbilityProgressionUpdate()
+            end,
+        },
+        {
+            eventCode = EVENT_CHATTER_END,
+            callback = function (eventCode)
+                if(self.data.hasAbility) then
+                    self:d('EVENT_CHATTER_END')
+                    MOD:OnSkillAbilityProgressionUpdate()
+                end
+            end,
+        },
+    }
+end
+
+-- EVENT HANDLER
+
+function MOD:OnTimer(timestamp)
+    self:d('OnTimer')
+
+    if(not self.data.hasAbility) then
+        return 0
+    end
+
+    if (self.data.availableAt > 0) then
+        self.data.minutesLeft = math.ceil( GetDiffBetweenTimeStamps(self.data.availableAt, timestamp) / 60)
+        self.dataUpdated = true
+        self:d(' => dataUpdated')
+    end
+
+    if (self.data.availableAt == 0)then
+        self:StopTimer()
+    end
+end
+
+function MOD:OnSkillAbilityProgressionUpdate()
+    self:d('OnSkillAbilityProgressionUpdate')
+    local abilityName,_,_,_,_,abilityPurchased = GetSkillAbilityInfo(DARKBROTHERHOOD_SHADOWYSUPPLIER_SKILLTYPE,DARKBROTHERHOOD_SHADOWYSUPPLIER_SKILLINDEX,DARKBROTHERHOOD_SHADOWYSUPPLIER_ABILITYINDEX)
+
+    self.data.name = abilityName
+    self.data.hasAbility = abilityPurchased
+
+    local timeRemaining = 0
+    if(abilityPurchased) then
+        self:d(' => enabled')
+        timeRemaining = GetTimeToShadowyConnectionsResetInSeconds()
+    else
+        self:d(' => disabled')
+    end
+
+    if(timeRemaining>0) then
+        local timestamp = GetTimeStamp()
+        self.data.availableAt = timestamp + timeRemaining
+        self.data.minutesLeft = math.ceil(timeRemaining / 60)
+    else
+        self.data.availableAt = 0
+        self.data.minutesLeft = 0
+    end
+
+    self.dataUpdated = true
+    self:d(' => dataUpdated')
+end
+
+-- LABEL HANDLER
+
+function MOD:Update(options)
+    self:d('Update')
+
+    if(self.data.hasAbility) then
+        self.label:SetText(self.FormatLabelText(self.data, options.minutesLeftInfo))
+    else
+        self.label:SetText("")
+    end
+end
+
+function MOD.FormatLabelText(data, minutesLeftInfo)
+    local text = ''
+    if (data.minutesLeft <= minutesLeftInfo) then
+        if (data.minutesLeft == 0) then
+            text = MOD.Colorize(COLOR_AWEVS_AVAILABLE, zo_strformat("<<C:1>>",data.name)) .. ': ' .. GetString(SI_AWEMOD_SHADOWYSUPPLIER_AVAILABLE_LABEL)
+        else
+            text = MOD.Colorize(COLOR_AWEVS_HINT, zo_strformat("<<C:1>>",data.name)) .. ': ' .. FormatTimeSeconds(60 * data.minutesLeft, TIME_FORMAT_STYLE_DESCRIPTIVE_SHORT, TIME_FORMAT_PRECISION_TWENTY_FOUR_HOUR, TIME_FORMAT_DIRECTION_NONE)
+        end
+    end
+    return text
+end
\ No newline at end of file
diff --git a/AwesomeEventsMod/AwesomeEventsMod.txt b/AwesomeEventsMod/AwesomeEventsMod.txt
index 4954ed7..d9939f4 100644
--- a/AwesomeEventsMod/AwesomeEventsMod.txt
+++ b/AwesomeEventsMod/AwesomeEventsMod.txt
@@ -1,8 +1,8 @@
 ## Title: |cFFFFB0Awesome Module - Balancing|r
 ## Author: Ze_Mi
-## Description: This AddOn is a balancing module to show you how to add new modules and notifications to the AwesomeEvents AddOn. (Version: 1.5-RC1)
-## Version: 1.5-RC1
-## APIVersion: 100024
+## Description: This AddOn is a balancing module to show you how to add new modules and notifications to the AwesomeEvents AddOn. (Version: 1.6-RC1)
+## Version: 1.6-RC1
+## APIVersion: 100025
 ## OptionalDependsOn: LibStub, LibAwesomeModule-1.0

 # This Add-on is not created by, affiliated with or sponsored by ZeniMax Media Inc. or its affiliates.
diff --git a/esoui_changelog.txt b/esoui_changelog.txt
index 0ab8751..13a2371 100644
--- a/esoui_changelog.txt
+++ b/esoui_changelog.txt
@@ -3,6 +3,12 @@

 [COLOR="Green"][SIZE="5"][B]Changelog (DE)[/B][/SIZE][/COLOR]

+[B]1.6-RC1 (23.11.2018):[/B]
+[LIST]
+[*]Neu: Cooldown für den verhüllten Versorger (Passive Fertigkeit der dunklen Bruderschaft)
+[*]API Bump für Murkmire
+[/LIST]
+
 [B]1.5-RC1 (02.09.2018):[/B]
 [LIST]
 [*]Der Hinweis 'Aktiviere ein AwesomeEvents Modul' ist nun in den Einstellungen an- und abschaltbar
@@ -135,6 +141,12 @@

 [COLOR="Green"][SIZE="5"][B]Changelog (EN)[/B][/SIZE][/COLOR]

+[B]1.6-RC1 (23.11.2018):[/B]
+[LIST]
+[*]Neu: Cooldown for shadowy supplier (passive ability from dark brotherhoods skill line)
+[*]API Bump für Murkmire
+[/LIST]
+
 [B]1.5-RC1 (02.09.2018):[/B]
 [LIST]
 [*]The 'Enabled an AwesomeEvents module' hint can be switched on and off in settings
diff --git a/esoui_description.txt b/esoui_description.txt
index 0a96a1e..c7c0195 100644
--- a/esoui_description.txt
+++ b/esoui_description.txt
@@ -33,6 +33,7 @@ Unter folgendem Link findest du die tolle Arbeit von CrazyDutchGuy: [URL="http:/
 [*]Hinweis über verbleibende Himmelsscherben bis zum nächsten Fertigkeitspunkt
 [*]Info zu freien Analyse-Slots für die Handwerksberufe oder verbleibender Wartezeit
 [*]Info zu möglichem Reittier-Training oder verbleibender Wartezeit
+[*]Info zu wartendem verhüllten Versorger oder verbleibender Wartezeit
 [*]Info zu verbleindenden Hehlerei- und Schiebe-Transaktionen
 [*]Neu: Info zu Bankplatz- und Rucksack-Auslastung
 [*]Neu: Info zu akutellem Vermögen (Gold) im Inventar und auf der Bank
@@ -95,6 +96,7 @@ If you are interested in the original version check out his great work at [URL="
 [*]Missing skyshards info
 [*]Crafts research timer / or available analysis slot info
 [*]Remaining mount training timer / or training available info
+[*]Shadowy supplier cooldown timer / or available info
 [*]Remaining thieve guild sells and launders info
 [*]New: Backpack and bank usage info
 [*]New: Current money info