use libfooddrinkbuff, add setting for activate an awesomeevents module hint

Martin Unkel [09-02-18 - 18:25]
use libfooddrinkbuff, add setting for activate an awesomeevents module hint
Filename
AwesomeEvents/AwesomeEvents.lua
AwesomeEvents/AwesomeEvents.txt
AwesomeEvents/Language/de.lua
AwesomeEvents/Language/ru.lua
AwesomeEvents/Language/strings.lua
AwesomeEvents/Libs/LibFoodDrinkBuff/LibFoodDrinkBuff.lua
AwesomeEvents/Modules/BuffFood.lua
AwesomeEventsMod/AwesomeEventsMod.txt
esoui_changelog.txt
diff --git a/AwesomeEvents/AwesomeEvents.lua b/AwesomeEvents/AwesomeEvents.lua
index 61c5e2b..80a57f3 100644
--- a/AwesomeEvents/AwesomeEvents.lua
+++ b/AwesomeEvents/AwesomeEvents.lua
@@ -3,7 +3,7 @@

   Author: @Ze_Mi <zemi@unive.de>
   Filename: AwesomeEvents.lua
-  Last Modified: 25.08.18 14:00
+  Last Modified: 02.09.18 20: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,10 +15,11 @@ Awesome_Events = {
     name = 'AwesomeEvents',
     panelName = 'AwesomeEventsOptions',
     title = 'Awesome Events',
-    version = '1.4-RC5',
+    version = '1.5-RC1',

     defaults = {
         isDefault = true,
+        showDisabledText = true,
         window = {
             left = GuiRoot:GetWidth()/2,
             top = 100,
@@ -370,6 +371,14 @@ function Awesome_Events:LoadModulesConfiguration()
             default = self.defaults.window.textColor[COLOR_AWEVS_WARNING],
         },
         {
+            type = 'checkbox',
+            name = GetString(SI_AWEVS_APPEARANCE_SHOWDISABLEDTEXT),
+            tooltip = GetString(SI_AWEVS_APPEARANCE_SHOWDISABLEDTEXT_HINT),
+            getFunc = function() return Awesome_Events.vars.showDisabledText end,
+            setFunc = function(newValue) Awesome_Events.vars.showDisabledText = newValue; Awesome_Events:UpdateViewSize(); end,
+            default = self.defaults.window.movable,
+        },
+        {
             type = 'header',
             name = '|c45D7F7' .. GetString(SI_AWEVS_IMPORT) .. '|r',
         },
@@ -666,21 +675,31 @@ function Awesome_Events:UpdateViewSize()
     -- show awesome events label if no other label active
     local child = AwesomeEventsView:GetChild(2)
     local text = child:GetText()
+    -- clear all mods disabled hint if labels exist
     if(totalHeight>0 and text~='')then
         child:SetText('')
         child:SetHeight(0)
+    -- show all mods disabled hint if no labels exist
     elseif(totalHeight==0)then
-        text = GetString(SI_AWEVS_NO_ACTIVE_MOD)
+        local numActiveMods = 0;
         for mod_id in libAM:module_pairs() do
             if(self.vars[mod_id].enabled)then
-                text = self.title
+                numActiveMods = numActiveMods+1
             end
         end
-        child:SetText(text)
-        child:SetWidth(0)
-        totalHeight = child:GetTextHeight()
-        child:SetHeight(totalHeight)
-        maxWidth = child:GetTextWidth()
+
+        -- zero mods enabled and hint enabled in settings ? -> show hint
+        if(numActiveMods == 0 and self.vars.showDisabledText)then
+            child:SetText(GetString(SI_AWEVS_ALL_MODS_DISABLED))
+            child:SetWidth(0)
+            totalHeight = child:GetTextHeight()
+            child:SetHeight(totalHeight)
+            maxWidth = child:GetTextWidth()
+        -- non zero mods enabled or text disabled in settings ? -> remove hint
+        elseif(text~='')then
+            child:SetText('')
+            child:SetHeight(0)
+        end
     end

     maxWidth = (maxWidth+20)
diff --git a/AwesomeEvents/AwesomeEvents.txt b/AwesomeEvents/AwesomeEvents.txt
index 1e80913..7406b37 100644
--- a/AwesomeEvents/AwesomeEvents.txt
+++ b/AwesomeEvents/AwesomeEvents.txt
@@ -1,16 +1,16 @@
-## APIVersion: 100024
-## Version: 1.4-RC5
-## Title: |cFFFFB0Awesome Events|r
-## Description: This addon adds many customizable notifications and information to your UI. (Version: 1.4-RC5)
+## Title: |cFFFFB0Awesome Events|r
 ## Author: Ze_Mi
-## OptionalDependsOn: LibStub, LibAddonMenu-2.0, LibAwesomeModule-1.0
+## Description: This addon adds many customizable notifications and information to your UI. (Version: 1.5-RC1)
+## Version: 1.5-RC1
+## APIVersion: 100024
+## OptionalDependsOn: LibStub, LibAddonMenu-2.0, LibMsgWin-1.0, LibFoodDrinkBuff, LibAwesomeModule-1.0
 ## SavedVariables: AwesomeEvents
-##
-## This Add-on is not created by, affiliated with or sponsored by ZeniMax Media Inc. or its affiliates.
-## The Elder Scrolls® and related logos are registered trademarks or trademarks of ZeniMax Media Inc. in the United States and/or other countries.
-## All rights reserved
-##
-## You can read the full terms at https://account.elderscrollsonline.com/add-on-terms
+
+# This Add-on is not created by, affiliated with or sponsored by ZeniMax Media Inc. or its affiliates.
+# The Elder Scrolls® and related logos are registered trademarks or trademarks of ZeniMax Media Inc. in the United States and/or other countries.
+# All rights reserved
+#
+# You can read the full terms at https://account.elderscrollsonline.com/add-on-terms

 Libs/LibStub/LibStub.lua
 Libs/LibAddonMenu-2.0/LibAddonMenu-2.0.lua
@@ -25,8 +25,9 @@ Libs/LibAddonMenu-2.0/controls/dropdown.lua
 Libs/LibAddonMenu-2.0/controls/header.lua
 Libs/LibAddonMenu-2.0/controls/slider.lua
 Libs/LibAddonMenu-2.0/controls/texture.lua
-Libs/LibAwesomeModule-1.0/LibAwesomeModule-1.0.lua
 Libs/LibMsgWin-1.0/LibMsgWin-1.0.lua
+Libs/LibFoodDrinkBuff/LibFoodDrinkBuff.lua
+Libs/LibAwesomeModule-1.0/LibAwesomeModule-1.0.lua

 Language/strings.lua
 Language/$(language).lua
diff --git a/AwesomeEvents/Language/de.lua b/AwesomeEvents/Language/de.lua
index 64e640c..7518e2d 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: 29.05.18 21:30
+  Last Modified: 02.09.18 17: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)
@@ -13,7 +13,7 @@
   ]]

 --main
-SafeAddString(SI_AWEVS_NO_ACTIVE_MOD, "Aktiviere ein AwesomeEvents Modul", 1)
+SafeAddString(SI_AWEVS_ALL_MODS_DISABLED, "Aktiviere ein AwesomeEvents Modul", 1)
 SafeAddString(SI_AWEVS_DESCRIPTION, "Mit AwesomeEvents kannst du während dem Spielen über viele interessante Ergeignisse informiert werden.\nDa es viele Module und Anpassungsmöglichkeiten gibt,\nsolltest du dir kurz Zeit nehmen und einmal alle Optionen bis unten durch stöbern.\nBei Verbesserungsvorschlägen, Wünschen, neuen Übersetzungen oder Fehlern, wende dich einfach an <zemi@unive.de> oder über das Spiel EU\PC @Ze_Mi :)", 1)

 --debug
@@ -43,6 +43,8 @@ SafeAddString(SI_AWEVS_APPEARANCE_COLOR_HINT,"Farbe von Hinweisen", 1)
 SafeAddString(SI_AWEVS_APPEARANCE_COLOR_HINT_HINT, "Ändere die Textfarbe von Hinweis-Meldungen.", 1)
 SafeAddString(SI_AWEVS_APPEARANCE_COLOR_WARNING,"Farbe von Warnungen", 1)
 SafeAddString(SI_AWEVS_APPEARANCE_COLOR_WARNING_HINT, "Ändere die Textfarbe von Warnungen.", 1)
+SafeAddString(SI_AWEVS_APPEARANCE_SHOWDISABLEDTEXT, "Hinweis: Kein Modul aktiviert", 1)
+SafeAddString(SI_AWEVS_APPEARANCE_SHOWDISABLEDTEXT_HINT, "Zeige einen Hinweis im Awesome Events Fenster, wenn keine Module aktiviert sind.", 1)

 --import
 SafeAddString(SI_AWEVS_IMPORT,"Einstellungen Importieren", 1)
diff --git a/AwesomeEvents/Language/ru.lua b/AwesomeEvents/Language/ru.lua
index 6c88717..8317fbc 100644
--- a/AwesomeEvents/Language/ru.lua
+++ b/AwesomeEvents/Language/ru.lua
@@ -3,7 +3,7 @@

   Author: Memoraike
   Filename: ru.lua
-  Last Modified: 29.05.18 21:30
+  Last Modified: 02.09.18 17: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)
@@ -17,7 +17,7 @@
 ---

 --main
-SafeAddString(SI_AWEVS_NO_ACTIVE_MOD, "Нет активных модулей", 1)
+SafeAddString(SI_AWEVS_ALL_MODS_DISABLED, "Нет активных модулей", 1)
 SafeAddString(SI_AWEVS_DESCRIPTION, "С AwesomeEvents Вы можете получить уведомления о множестве интересных событий во время игры,\nтак как здесь множество модулей и путей для настройки под Ваш стиль игры, не забудьте просмотреть все настройки.\nЕсли у Вас есть какие-либо пожелания, улучшения, переводы или же заметили ошибку, то не стесняйтесь и пишите автору <zemi@unive.de> или же в игре EU\PC @Ze_Mi :)", 1)

 --debug
@@ -47,6 +47,8 @@ SafeAddString(SI_AWEVS_APPEARANCE_COLOR_HINT,"Цвет уведомлений",
 SafeAddString(SI_AWEVS_APPEARANCE_COLOR_HINT_HINT, "Изменить цвет текста уведомлений.", 1)
 SafeAddString(SI_AWEVS_APPEARANCE_COLOR_WARNING,"Цвет предупреждений", 1)
 SafeAddString(SI_AWEVS_APPEARANCE_COLOR_WARNING_HINT, "Изменить цвет текста предупреждений.", 1)
+SafeAddString(SI_AWEVS_APPEARANCE_SHOWDISABLEDTEXT, "Hint: No module enabled", 1)
+SafeAddString(SI_AWEVS_APPEARANCE_SHOWDISABLEDTEXT_HINT, "Show a message in the awesome events window if all modules are disabled.", 1)

 --import
 SafeAddString(SI_AWEVS_IMPORT, "Импорт настроек", 1)
diff --git a/AwesomeEvents/Language/strings.lua b/AwesomeEvents/Language/strings.lua
index 590f5d9..4128a1c 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: 29.05.18 20:30
+  Last Modified: 02.09.18 17: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)
@@ -13,7 +13,7 @@

 local strings = {
 	--main
-	SI_AWEVS_NO_ACTIVE_MOD="Enable an AwesomeEvents module",
+	SI_AWEVS_ALL_MODS_DISABLED="Enable an AwesomeEvents module",
 	SI_AWEVS_DESCRIPTION="With AwesomeEvents you can get notified about many interesting events while playing.\nSince there are many modules and ways you can customise your experience,\ndon't forget to scroll down the options page.\nIf you have any wishes, improvements, new translations or found a bug, don't hesitate to write me at <zemi@unive.de> or Ingame EU\PC @Ze_Mi :)",

 	--debug
@@ -43,6 +43,8 @@ local strings = {
 	SI_AWEVS_APPEARANCE_COLOR_HINT_HINT="Change the text color of hints.",
 	SI_AWEVS_APPEARANCE_COLOR_WARNING="Color (warning)",
 	SI_AWEVS_APPEARANCE_COLOR_WARNING_HINT="Change the text color of warnings.",
+	SI_AWEVS_APPEARANCE_SHOWDISABLEDTEXT="Hint: No module enabled",
+	SI_AWEVS_APPEARANCE_SHOWDISABLEDTEXT_HINT="Show a message in the awesome events window if all modules are disabled.",

 	--import
 	SI_AWEVS_IMPORT="Import Settings",
diff --git a/AwesomeEvents/Libs/LibFoodDrinkBuff/LibFoodDrinkBuff.lua b/AwesomeEvents/Libs/LibFoodDrinkBuff/LibFoodDrinkBuff.lua
new file mode 100644
index 0000000..de4a9e0
--- /dev/null
+++ b/AwesomeEvents/Libs/LibFoodDrinkBuff/LibFoodDrinkBuff.lua
@@ -0,0 +1,271 @@
+local LIB_IDENTIFIER = "LibFoodDrinkBuff"
+local lib = LibStub:NewLibrary(LIB_IDENTIFIER, 3)
+
+if not lib then return end
+
+----------------
+-- BUFF TYPES --
+----------------
+local FOOD_BUFF_NONE									= 0
+local FOOD_BUFF_MAX_HEALTH								= 1
+local FOOD_BUFF_MAX_MAGICKA								= 2
+local FOOD_BUFF_MAX_STAMINA								= 4
+local FOOD_BUFF_REGEN_HEALTH							= 8
+local FOOD_BUFF_REGEN_MAGICKA							= 16
+local FOOD_BUFF_REGEN_STAMINA							= 32
+local FOOD_BUFF_SPECIAL_VAMPIRE							= 64
+local FOOD_BUFF_FIND_FISHES								= 128
+local FOOD_BUFF_MAX_ALL									= FOOD_BUFF_MAX_HEALTH		+ FOOD_BUFF_MAX_MAGICKA		+ FOOD_BUFF_MAX_STAMINA									-- 7
+local FOOD_BUFF_MAX_HEALTH_MAGICKA						= FOOD_BUFF_MAX_HEALTH		+ FOOD_BUFF_MAX_MAGICKA																-- 3
+local FOOD_BUFF_MAX_HEALTH_MAGICKA_FISH					= FOOD_BUFF_MAX_HEALTH		+ FOOD_BUFF_MAX_MAGICKA		+ FOOD_BUFF_FIND_FISHES									-- 131
+local FOOD_BUFF_MAX_HEALTH_MAGICKA_REGEN_HEALTH_MAGICKA	= FOOD_BUFF_MAX_HEALTH		+ FOOD_BUFF_REGEN_HEALTH	+ FOOD_BUFF_MAX_MAGICKA		+ FOOD_BUFF_REGEN_MAGICKA	-- 27
+local FOOD_BUFF_MAX_HEALTH_MAGICKA_REGEN_MAGICKA		= FOOD_BUFF_MAX_HEALTH		+ FOOD_BUFF_MAX_MAGICKA		+ FOOD_BUFF_REGEN_MAGICKA								-- 19
+local FOOD_BUFF_MAX_HEALTH_MAGICKA_SPECIAL_VAMPIRE		= FOOD_BUFF_MAX_HEALTH		+ FOOD_BUFF_MAX_MAGICKA		+ FOOD_BUFF_SPECIAL_VAMPIRE								-- 67
+local FOOD_BUFF_MAX_HEALTH_REGEN_ALL					= FOOD_BUFF_MAX_HEALTH		+ FOOD_BUFF_REGEN_HEALTH	+ FOOD_BUFF_REGEN_MAGICKA	+ FOOD_BUFF_REGEN_STAMINA	-- 57
+local FOOD_BUFF_MAX_HEALTH_REGEN_HEALTH					= FOOD_BUFF_MAX_HEALTH		+ FOOD_BUFF_REGEN_HEALTH															-- 9
+local FOOD_BUFF_MAX_HEALTH_REGEN_MAGICKA				= FOOD_BUFF_MAX_HEALTH		+ FOOD_BUFF_REGEN_MAGICKA															-- 17
+local FOOD_BUFF_MAX_HEALTH_REGEN_STAMINA				= FOOD_BUFF_MAX_HEALTH		+ FOOD_BUFF_REGEN_STAMINA															-- 33
+local FOOD_BUFF_MAX_HEALTH_STAMINA						= FOOD_BUFF_MAX_HEALTH		+ FOOD_BUFF_MAX_STAMINA																-- 5
+local FOOD_BUFF_MAX_HEALTH_STAMINA_REGEN_HEALTH_STAMINA	= FOOD_BUFF_MAX_HEALTH		+ FOOD_BUFF_REGEN_HEALTH	+ FOOD_BUFF_MAX_STAMINA	+ FOOD_BUFF_REGEN_STAMINA		-- 29
+local FOOD_BUFF_MAX_MAGICKA_REGEN_HEALTH				= FOOD_BUFF_MAX_MAGICKA		+ FOOD_BUFF_REGEN_HEALTH															-- 10
+local FOOD_BUFF_MAX_MAGICKA_REGEN_MAGICKA				= FOOD_BUFF_MAX_MAGICKA		+ FOOD_BUFF_REGEN_MAGICKA															-- 18
+local FOOD_BUFF_MAX_MAGICKA_REGEN_STAMINA				= FOOD_BUFF_MAX_MAGICKA		+ FOOD_BUFF_REGEN_STAMINA															-- 34
+local FOOD_BUFF_MAX_MAGICKA_STAMINA						= FOOD_BUFF_MAX_MAGICKA		+ FOOD_BUFF_MAX_STAMINA																-- 6
+local FOOD_BUFF_MAX_STAMINA_HEALTH_REGEN_MAGICKA		= FOOD_BUFF_MAX_STAMINA		+ FOOD_BUFF_MAX_HEALTH		+ FOOD_BUFF_REGEN_MAGICKA								-- 21
+local FOOD_BUFF_MAX_STAMINA_HEALTH_REGEN_STAMINA		= FOOD_BUFF_MAX_HEALTH		+ FOOD_BUFF_MAX_STAMINA		+ FOOD_BUFF_REGEN_STAMINA								-- 37
+local FOOD_BUFF_MAX_STAMINA_REGEN_HEALTH				= FOOD_BUFF_MAX_STAMINA		+ FOOD_BUFF_REGEN_HEALTH															-- 12
+local FOOD_BUFF_MAX_STAMINA_REGEN_MAGICKA				= FOOD_BUFF_MAX_STAMINA		+ FOOD_BUFF_REGEN_MAGICKA															-- 20
+local FOOD_BUFF_MAX_STAMINA_REGEN_STAMINA				= FOOD_BUFF_MAX_STAMINA		+ FOOD_BUFF_REGEN_STAMINA															-- 36
+local FOOD_BUFF_REGEN_ALL								= FOOD_BUFF_REGEN_HEALTH	+ FOOD_BUFF_REGEN_MAGICKA	+ FOOD_BUFF_REGEN_STAMINA								-- 56
+local FOOD_BUFF_REGEN_HEALTH_MAGICKA					= FOOD_BUFF_REGEN_HEALTH	+ FOOD_BUFF_REGEN_MAGICKA															-- 24
+local FOOD_BUFF_REGEN_HEALTH_STAMINA					= FOOD_BUFF_REGEN_HEALTH	+ FOOD_BUFF_REGEN_STAMINA															-- 40
+local FOOD_BUFF_REGEN_MAGICKA_STAMINA					= FOOD_BUFF_REGEN_MAGICKA	+ FOOD_BUFF_REGEN_STAMINA															-- 48
+local FOOD_BUFF_REGEN_MAGICKA_STAMINA_FISH				= FOOD_BUFF_REGEN_MAGICKA	+ FOOD_BUFF_REGEN_STAMINA	+ FOOD_BUFF_FIND_FISHES									-- 176
+
+--------------------
+-- DRINKS'n'FOODS --
+--------------------
+local isDrinkBuff = {
+	[61322] = FOOD_BUFF_REGEN_HEALTH,								-- Health Recovery
+	[61325] = FOOD_BUFF_REGEN_MAGICKA,								-- Magicka Recovery
+	[61328] = FOOD_BUFF_REGEN_STAMINA,								-- Health & Magicka Recovery
+	[61335] = FOOD_BUFF_REGEN_HEALTH_MAGICKA,               		-- Health & Magicka Recovery (Liqueurs)
+	[61340] = FOOD_BUFF_REGEN_HEALTH_STAMINA,						-- Health & Stamina Recovery
+	[61345] = FOOD_BUFF_REGEN_MAGICKA_STAMINA,						-- Magicka & Stamina Recovery
+	[61350] = FOOD_BUFF_REGEN_ALL,									-- All Primary Stat Recovery
+	[66125] = FOOD_BUFF_MAX_HEALTH, 								-- Increase Max Health
+	[66132] = FOOD_BUFF_REGEN_HEALTH,                       		-- Health Recovery (Alcoholic Drinks)
+	[66137] = FOOD_BUFF_REGEN_MAGICKA,                      		-- Magicka Recovery (Tea)
+	[66141] = FOOD_BUFF_REGEN_STAMINA,                      		-- Stamina Recovery (Tonics)
+	[66586] = FOOD_BUFF_REGEN_HEALTH,                       		-- Health Recovery
+	[66590] = FOOD_BUFF_REGEN_MAGICKA,                      		-- Magicka Recovery
+	[66594] = FOOD_BUFF_REGEN_STAMINA,                      		-- Stamina Recovery
+	[68416] = FOOD_BUFF_REGEN_ALL,                          		-- All Primary Stat Recovery (Crown Refreshing Drink)
+	[72816] = FOOD_BUFF_REGEN_HEALTH_MAGICKA,               		-- Red Frothgar
+	[72965] = FOOD_BUFF_REGEN_HEALTH_STAMINA,               		-- Health and Stamina Recovery (Cyrodilic Field Brew)
+	[72968] = FOOD_BUFF_REGEN_HEALTH_MAGICKA,               		-- Health and Magicka Recovery (Cyrodilic Field Tea)
+	[72971] = FOOD_BUFF_REGEN_MAGICKA_STAMINA,              		-- Magicka and Stamina Recovery (Cyrodilic Field Tonic)
+	[84700] = FOOD_BUFF_REGEN_HEALTH_MAGICKA,               		-- 2h Witches event: Eyeballs
+	[84704] = FOOD_BUFF_REGEN_ALL,                          		-- 2h Witches event: Witchmother's Party Punch
+	[84720] = FOOD_BUFF_MAX_MAGICKA_REGEN_MAGICKA,          		-- 2h Witches event: Eye Scream
+	[84731] = FOOD_BUFF_MAX_HEALTH_MAGICKA_REGEN_MAGICKA,   		-- 2h Witches event: Witchmother's Potent Brew
+	[84732] = FOOD_BUFF_REGEN_HEALTH,                       		-- Increase Health Regen
+	[84733] = FOOD_BUFF_REGEN_HEALTH,                       		-- Increase Health Regen
+	[84735] = FOOD_BUFF_MAX_HEALTH_MAGICKA_SPECIAL_VAMPIRE, 		-- 2h Witches event: Double Bloody Mara
+	[85497] = FOOD_BUFF_REGEN_ALL,                          		-- All Primary Stat Recovery
+	[86559] = FOOD_BUFF_REGEN_MAGICKA_STAMINA_FISH,         		-- Fish Eye
+	[86560] = FOOD_BUFF_REGEN_STAMINA,                      		-- Stamina Recovery
+	[86673] = FOOD_BUFF_MAX_STAMINA_REGEN_STAMINA,          		-- Lava Foot Soup & Saltrice
+	[86674] = FOOD_BUFF_REGEN_STAMINA,                      		-- Stamina Recovery
+	[86677] = FOOD_BUFF_MAX_STAMINA_REGEN_HEALTH,           		-- Warning Fire (Bergama Warning Fire)
+	[86678] = FOOD_BUFF_REGEN_HEALTH,                       		-- Health Recovery
+	[86746] = FOOD_BUFF_REGEN_HEALTH_MAGICKA,               		-- Betnikh Spiked Ale (Betnikh Twice-Spiked Ale)
+	[86747] = FOOD_BUFF_REGEN_HEALTH,                       		-- Health Recovery
+	[86791] = FOOD_BUFF_REGEN_STAMINA,                      		-- Increase Stamina Recovery (Ice Bear Glow-Wine)
+	[89957] = FOOD_BUFF_MAX_STAMINA_HEALTH_REGEN_STAMINA,   		-- Dubious Camoran Throne
+	[92433] = FOOD_BUFF_REGEN_HEALTH_MAGICKA, 						-- Health & Magicka Recovery
+	[92476] = FOOD_BUFF_REGEN_HEALTH_STAMINA, 						-- Health & Stamina Recovery
+	[100502] = FOOD_BUFF_REGEN_HEALTH_MAGICKA,              		-- Deregulated Mushroom Stew (Health + magicka reg)
+	[107789] = FOOD_BUFF_MAX_HEALTH_STAMINA_REGEN_HEALTH_STAMINA,	-- Artaeum Takeaway Broth (Increase Health & Stamina & Health Recovery & Stamina Recovery)
+}
+
+local isFoodBuff = {
+	[17407] = FOOD_BUFF_MAX_HEALTH,                         		-- Increase Max Health
+	[17577] = FOOD_BUFF_MAX_MAGICKA_STAMINA, 						-- Increase Max Magicka & Stamina
+	[17581] = FOOD_BUFF_MAX_ALL, 									-- Increase All Primary Stats
+	[17608] = FOOD_BUFF_REGEN_MAGICKA_STAMINA, 						-- Magicka & Stamina Recovery
+	[17614] = FOOD_BUFF_REGEN_ALL, 									-- All Primary Stat Recovery
+	[61218] = FOOD_BUFF_MAX_ALL,									-- Increase All Primary Stats
+	[61255] = FOOD_BUFF_MAX_HEALTH_STAMINA,							-- Increase Max Health & Stamina
+	[61257] = FOOD_BUFF_MAX_HEALTH_MAGICKA,							-- Increase Max Health & Magicka
+	[61259] = FOOD_BUFF_MAX_HEALTH,									-- Increase Max Health
+	[61260] = FOOD_BUFF_MAX_MAGICKA,								-- Increase Max Magicka
+	[61261] = FOOD_BUFF_MAX_STAMINA,								-- Increase Max Stamina
+	[61294] = FOOD_BUFF_MAX_MAGICKA_STAMINA,						-- Increase Max Magicka & Stamina
+	[66128] = FOOD_BUFF_MAX_MAGICKA,                        		-- Increase Max Magicka (Fruit Dishes)
+	[66130] = FOOD_BUFF_MAX_STAMINA,                        		-- Increase Max Stamina (Vegetable Dishes)
+	[66551] = FOOD_BUFF_MAX_HEALTH,                         		-- Garlic and Pepper Venison Steak
+	[66568] = FOOD_BUFF_MAX_MAGICKA,                        		-- Increase Max Magicka
+	[66576] = FOOD_BUFF_MAX_STAMINA,                        		-- Increase Max Stamina
+	[68411] = FOOD_BUFF_MAX_ALL,                            		-- Crown store
+	[72819] = FOOD_BUFF_MAX_HEALTH_REGEN_STAMINA,           		-- Tripe Trifle Pocket
+	[72822] = FOOD_BUFF_MAX_HEALTH_REGEN_HEALTH,            		-- Blood Price Pie
+	[72824] = FOOD_BUFF_MAX_HEALTH_REGEN_ALL,               		-- Smoked Bear Haunch
+	[72956] = FOOD_BUFF_MAX_HEALTH_STAMINA,                 		-- Max Health and Stamina (Cyrodilic Field Tack)
+	[72959] = FOOD_BUFF_MAX_HEALTH_MAGICKA,                 		-- Max Health and Magicka (Cyrodilic Field Treat)
+	[72961] = FOOD_BUFF_MAX_MAGICKA_STAMINA,                		-- Max Stamina and Magicka (Cyrodilic Field Bar)
+	[84678] = FOOD_BUFF_MAX_MAGICKA,                        		-- Increase Max Magicka
+	[84681] = FOOD_BUFF_MAX_MAGICKA_STAMINA,                		-- Pumpkin Snack Skewer
+	[84709] = FOOD_BUFF_MAX_MAGICKA_REGEN_STAMINA,          		-- Crunchy Spider Skewer
+	[84725] = FOOD_BUFF_MAX_MAGICKA_REGEN_HEALTH,           		-- The Brains!
+	[84736] = FOOD_BUFF_MAX_HEALTH,                         		-- Increase Max Health
+	[85484] = FOOD_BUFF_MAX_ALL,                            		-- Increase All Primary Stats
+	[86749] = FOOD_BUFF_MAX_MAGICKA_STAMINA,                		-- Mud Ball
+	[86787] = FOOD_BUFF_MAX_STAMINA,                        		-- Rajhin's Sugar Claws
+	[86789] = FOOD_BUFF_MAX_HEALTH,                         		-- Alcaire Festival Sword-Pie
+	[89955] = FOOD_BUFF_MAX_STAMINA_REGEN_MAGICKA,          		-- Candied Jester's Coins
+	[89971] = FOOD_BUFF_MAX_STAMINA_HEALTH_REGEN_MAGICKA,   		-- Jewels of Misrule
+	[92435] = FOOD_BUFF_MAX_HEALTH_MAGICKA,                 		-- Increase Health & Magicka
+	[92437] = FOOD_BUFF_MAX_HEALTH,                         		-- Increase Health
+	[92474] = FOOD_BUFF_MAX_HEALTH_STAMINA,                 		-- Increase Health & Stamina
+	[92477] = FOOD_BUFF_MAX_HEALTH,                         		-- Increase Health
+	[100488] = FOOD_BUFF_MAX_ALL,                           		-- Spring-Loaded Infusion (Increase all primary stats)
+	[100498] = FOOD_BUFF_MAX_HEALTH_MAGICKA_REGEN_HEALTH_MAGICKA,	-- Clockwork Citrus Filet (Increase health + health Recovery, and magicka + magicka Recovery)
+	[107748] = FOOD_BUFF_MAX_HEALTH_MAGICKA_FISH,                 	-- Lure Allure (Increase Health & Magicka)
+}
+
+---------------
+-- FUNCTIONS --
+---------------
+function lib:GetTimeLeftInSeconds(timeInMilliseconds)
+-- Calculate time left of a food/drink buff
+	return math.max(zo_roundToNearest(timeInMilliseconds-(GetGameTimeMilliseconds()/1000), 1), 0)
+end
+
+function lib:GetFoodBuffInfos(unitTag)
+-- Returns: number buffType, bool isDrink, number abilityId, string buffName, number timeStarted, number timeEnds, textureString iconTexture
+	local numBuffs = GetNumBuffs(unitTag)
+	if numBuffs > 0 then
+		for i = 1, numBuffs do
+			-- get buff infos
+			--** _Returns: _buffName_, _timeStarted_, _timeEnding_, _buffSlot_, _stackCount_, _iconFilename_, _buffType_, _effectType_, _abilityType_, _statusEffectType_, _abilityId_, _canClickOff_
+			local buffName, timeStarted, timeEnding, _, _, iconTexture, _, _, _, _, abilityId = GetUnitBuffInfo(unitTag, i)
+			local buffTypeDrink = isDrinkBuff[abilityId] or false
+			local buffTypeFood = isFoodBuff[abilityId] or false
+			local buffType = FOOD_BUFF_NONE
+			local isDrink = false
+			-- It's a drink?
+			if buffTypeDrink then
+				isDrink = true
+				buffType = buffTypeDrink
+			elseif buffTypeFood then
+				buffType = buffTypeFood
+			end
+            -- return
+			if buffType ~= "" and buffType ~= FOOD_BUFF_NONE then
+				if isDrinkBuff[abilityId] or isFoodBuff[abilityId] then
+					return buffType, isDrink, abilityId, zo_strformat("<<C:1>>", buffName), timeStarted, timeEnding, iconTexture
+				end
+			end
+		end
+	end
+	return FOOD_BUFF_NONE, nil, nil, nil, nil, nil, nil
+end
+
+function lib:IsFoodBuffActive(unitTag)
+-- Returns: bool isBuffActive
+	local numBuffs = GetNumBuffs(unitTag)
+	if numBuffs > 0 then
+		for i = 1, numBuffs do
+			local _, _, _, _, _, _, _, _, _, _, abilityId = GetUnitBuffInfo(unitTag, i)
+				if isDrinkBuff[abilityId] or isFoodBuff[abilityId] then
+				return true
+			end
+		end
+	end
+	return false
+end
+
+function lib:IsFoodBuffActiveAndGetTimeLeft(unitTag)
+-- Returns: bool isBuffActive, number timeLeftInSeconds , number abilityId
+	local numBuffs = GetNumBuffs(unitTag)
+	if numBuffs > 0 then
+		for i = 1, numBuffs do
+			local _, _, timeEnding, _, _, _, _, _, _, _, abilityId = GetUnitBuffInfo(unitTag, i)
+			if isDrinkBuff[abilityId] or isFoodBuff[abilityId] then
+				return true, lib:GetTimeLeftInSeconds(timeEnding), abilityId
+			end
+		end
+	end
+	return false, 0, nil
+end
+
+function lib:IsAbilityADrinkBuff(abilityId)
+-- Returns: nilable:bool isAbilityADrinkBuff(true) or isAbilityAFoodBuff(false), or nil if not a food or drink buff
+	if nil == abilityId then return nil end
+	if isDrinkBuff[abilityId] then return true end
+	if isFoodBuff[abilityId] then return false end
+	return nil
+end
+
+-- Filter the event EVENT_EFFECT_CHANGED to the local player and only the abilityIds of the food/drink buffs
+-- Possible additional filterTypes are: REGISTER_FILTER_UNIT_TAG, REGISTER_FILTER_UNIT_TAG_PREFIX
+--> Performance gain as you check if a food/drink buff got active (gained, refreshed), or was  removed (faded, refreshed)
+function lib:RegisterAbilityIdsFilterOnEventEffectChanged(addonEventNameSpace, callbackFunc, filterType, filterParameter)
+	if addonEventNameSpace == nil or addonEventNameSpace == "" then return nil end
+	if callbackFunc == nil or type(callbackFunc) ~= "function" then return nil end
+	local eventCounter = 0
+	for abilityId, _ in pairs(isFoodBuff) do
+		eventCounter = eventCounter + 1
+		local eventName = addonEventNameSpace .. eventCounter
+		EVENT_MANAGER:RegisterForEvent(eventName, EVENT_EFFECT_CHANGED, callbackFunc)
+		EVENT_MANAGER:AddFilterForEvent(eventName, EVENT_EFFECT_CHANGED, REGISTER_FILTER_ABILITY_ID, abilityId, filterType, filterParameter)
+	end
+	for abilityId, _ in pairs(isDrinkBuff) do
+		eventCounter = eventCounter + 1
+		local eventName = addonEventNameSpace .. eventCounter
+		EVENT_MANAGER:RegisterForEvent(eventName, EVENT_EFFECT_CHANGED, callbackFunc)
+		EVENT_MANAGER:AddFilterForEvent(eventName, EVENT_EFFECT_CHANGED, REGISTER_FILTER_ABILITY_ID, abilityId, filterType, filterParameter)
+	end
+	return true
+end
+
+-- Unregister the register function above
+function lib:UnRegisterAbilityIdsFilterOnEventEffectChanged(addonEventNameSpace)
+    local eventCounter = 0
+    if addonEventNameSpace == nil or addonEventNameSpace == "" then return nil end
+    for abilityId, _ in pairs(isFoodBuff) do
+        eventCounter = eventCounter + 1
+        local eventName = addonEventNameSpace .. eventCounter
+        EVENT_MANAGER:UnregisterForEvent(eventName, EVENT_EFFECT_CHANGED)
+    end
+    for abilityId, _ in pairs(isDrinkBuff) do
+        eventCounter = eventCounter + 1
+        local eventName = addonEventNameSpace .. eventCounter
+        EVENT_MANAGER:UnregisterForEvent(eventName, EVENT_EFFECT_CHANGED)
+    end
+    return true
+end
+
+-------------
+-- GLOBALS --
+-------------
+lib.IS_FOOD_BUFF = isFoodBuff
+lib.IS_DRINK_BUFF = isDrinkBuff
+
+-----------
+-- DEBUG --
+-----------
+function DEBUG_ACTIVE_BUFFS()
+	local COUNT = 0
+	local PLAYER_TAG = "player"
+	local DIVIDER = ZO_ERROR_COLOR:Colorize("____________________________________")
+	d(DIVIDER)
+	df(ZO_ERROR_COLOR:Colorize("|cFF0000%s Debug:|r"), LIB_IDENTIFIER)
+	for i = 1, GetNumBuffs(PLAYER_TAG) do
+		local buffName, startTime, endTime, buffSlot, stackCount, iconFile, buffType, effectType, abilityType, statusEffectType, abilityId, canClickOff = GetUnitBuffInfo(PLAYER_TAG, i)
+		COUNT = COUNT + 1
+		d(zo_strformat("<<1>>. <<C:2>>, abilityId: <<3>>", COUNT, ZO_SELECTED_TEXT:Colorize(buffName), ZO_SELECTED_TEXT:Colorize(abilityId)))
+	end
+	d(DIVIDER)
+end
\ No newline at end of file
diff --git a/AwesomeEvents/Modules/BuffFood.lua b/AwesomeEvents/Modules/BuffFood.lua
index a6ff983..365ca0b 100644
--- a/AwesomeEvents/Modules/BuffFood.lua
+++ b/AwesomeEvents/Modules/BuffFood.lua
@@ -3,7 +3,7 @@

   Author: @Ze_Mi <zemi@unive.de>
   Filename: BuffFood.lua
-  Last Modified: 02.11.17 16:36
+  Last Modified: 02.09.18 20:30

   Copyright (c) 2017 by Martin Unkel
   License : CreativeCommons CC BY-NC-SA 4.0 Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)
@@ -12,6 +12,7 @@
   ]]

 local libAM = LibStub('LibAwesomeModule-1.0')
+local libFoodDrinkBuff = LibStub:GetLibrary("LibFoodDrinkBuff")
 local MOD = libAM:New('bufffood')

 MOD.title = GetString(SI_AWEMOD_BUFFFOOD)
@@ -78,17 +79,22 @@ end
 -- EVENT LISTENER

 local function __isFoodBuff(abilityId)
-    local foodAbilityIds = {
-        [17407]=1,[17577]=1,[17581]=1,[17608]=1,[17614]=1,[61218]=1,[61255]=1,[61257]=1,[61259]=1,[61260]=1,
-        [61261]=1,[61294]=1,[61322]=1,[61325]=1,[61328]=1,[61335]=1,[61340]=1,[61345]=1,[61350]=1,[66125]=1,
-        [66128]=1,[66130]=1,[66132]=1,[66137]=1,[66141]=1,[66551]=1,[66568]=1,[66576]=1,[66586]=1,[66590]=1,
-        [66594]=1,[68411]=1,[68416]=1,[72816]=1,[72819]=1,[72822]=1,[72824]=1,[72956]=1,[72959]=1,[72961]=1,
-        [72965]=1,[72968]=1,[72971]=1,[84678]=1,[84681]=1,[84700]=1,[84704]=1,[84709]=1,[84720]=1,[84725]=1,
-        [84731]=1,[84735]=1,[85484]=1,[85497]=1,[86559]=1,[86673]=1,[86677]=1,[86746]=1,[86749]=1,[86787]=1,
-        [86789]=1,[86791]=1,[89955]=1,[89957]=1,[89971]=1,[92433]=1,[92435]=1,[92474]=1,[92476]=1
-    }
-    return foodAbilityIds[abilityId]~=nil
-end -- __isFoodBuff
+    if(libFoodDrinkBuff)then
+        return libFoodDrinkBuff:IsAbilityADrinkBuff(abilityId) ~= nil
+    else
+        MOD:d("libFoodDrinkBuff is nil")
+        local foodAbilityIds = {
+            [17407]=1,[17577]=1,[17581]=1,[17608]=1,[17614]=1,[61218]=1,[61255]=1,[61257]=1,[61259]=1,[61260]=1,
+            [61261]=1,[61294]=1,[61322]=1,[61325]=1,[61328]=1,[61335]=1,[61340]=1,[61345]=1,[61350]=1,[66125]=1,
+            [66128]=1,[66130]=1,[66132]=1,[66137]=1,[66141]=1,[66551]=1,[66568]=1,[66576]=1,[66586]=1,[66590]=1,
+            [66594]=1,[68411]=1,[68416]=1,[72816]=1,[72819]=1,[72822]=1,[72824]=1,[72956]=1,[72959]=1,[72961]=1,
+            [72965]=1,[72968]=1,[72971]=1,[84678]=1,[84681]=1,[84700]=1,[84704]=1,[84709]=1,[84720]=1,[84725]=1,
+            [84731]=1,[84735]=1,[85484]=1,[85497]=1,[86559]=1,[86673]=1,[86677]=1,[86746]=1,[86749]=1,[86787]=1,
+            [86789]=1,[86791]=1,[89955]=1,[89957]=1,[89971]=1,[92433]=1,[92435]=1,[92474]=1,[92476]=1
+        }
+        return foodAbilityIds[abilityId]~=nil
+    end
+end -- MOD:isFoodBuff

 -- EVENT LISTENER

@@ -103,7 +109,7 @@ function MOD:GetEventListeners()
         {
             eventCode = EVENT_EFFECT_CHANGED,
             callback = function(eventCode, changeType, effectSlot, effectName, unitTag, beginTime, endTime, stackCount, iconName, buffType, effectType, abilityType, statusEffectType, unitName, unitId, abilityId, sourceUnitType)
-                if(sourceUnitType == COMBAT_UNIT_TYPE_PLAYER and effectType == BUFF_EFFECT_TYPE_BUFF and statusEffectType == STATUS_EFFECT_TYPE_NONE and __isFoodBuff(abilityId))then
+                if(sourceUnitType == COMBAT_UNIT_TYPE_PLAYER and effectType == BUFF_EFFECT_TYPE_BUFF and statusEffectType == STATUS_EFFECT_TYPE_NONE)then
                     MOD:OnEffectChanged(abilityId,changeType,effectName,endTime)
                 end
             end,
@@ -189,8 +195,9 @@ function MOD:OnEffectChanged(abilityId,changeType,effectName,endTime)
         for i=1,numBuffs do
             --local buffName, timeStarted, timeEnding, buffSlot, stackCount, iconFilename, buffType, effectType, abilityType, statusEffectType, abilityId, canClickOff, castByPlayer
             local buffName, _, timeEnding, _, _, _, _, _, _, _, abilityId, _, _ = GetUnitBuffInfo('player', i)
-            self:d(buffName .. (__isFoodBuff(abilityId) and ' is a foodbuff' or ' is not a foodbuff'))
-            if(__isFoodBuff(abilityId))then
+            local isFoodBuff = __isFoodBuff(abilityId);
+            self:d(buffName .. (isFoodBuff and ' is a foodbuff' or ' is not a foodbuff') .. ' ' .. abilityId   )
+            if(isFoodBuff)then
                 local secondsLeft =  math.ceil(timeEnding-GetFrameTimeSeconds())
                 self.data.buffName = buffName
                 self.data.availableAt = GetTimeStamp() + secondsLeft
diff --git a/AwesomeEventsMod/AwesomeEventsMod.txt b/AwesomeEventsMod/AwesomeEventsMod.txt
index 46dc763..4954ed7 100644
--- a/AwesomeEventsMod/AwesomeEventsMod.txt
+++ b/AwesomeEventsMod/AwesomeEventsMod.txt
@@ -1,15 +1,15 @@
-## APIVersion: 100024
-## Version: 1.4-RC5
-## Title: |cFFFFB0Awesome Module - Balancing|r
-## Description: This AddOn is a balancing module to show you how to add new modules and notifications to the AwesomeEvents AddOn. (Version: 1.4-RC5)
+## 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
 ## OptionalDependsOn: LibStub, LibAwesomeModule-1.0
-##
-## This Add-on is not created by, affiliated with or sponsored by ZeniMax Media Inc. or its affiliates.
-## The Elder Scrolls® and related logos are registered trademarks or trademarks of ZeniMax Media Inc. in the United States and/or other countries.
-## All rights reserved
-##
-## You can read the full terms at https://account.elderscrollsonline.com/add-on-terms
+
+# This Add-on is not created by, affiliated with or sponsored by ZeniMax Media Inc. or its affiliates.
+# The Elder Scrolls® and related logos are registered trademarks or trademarks of ZeniMax Media Inc. in the United States and/or other countries.
+# All rights reserved
+#
+# You can read the full terms at https://account.elderscrollsonline.com/add-on-terms

 Libs/LibStub/LibStub.lua
 Libs/LibAwesomeModule-1.0/LibAwesomeModule-1.0.lua
diff --git a/esoui_changelog.txt b/esoui_changelog.txt
index dec3e35..0ab8751 100644
--- a/esoui_changelog.txt
+++ b/esoui_changelog.txt
@@ -3,9 +3,15 @@

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

+[B]1.5-RC1 (02.09.2018):[/B]
+[LIST]
+[*]Der Hinweis 'Aktiviere ein AwesomeEvents Modul' ist nun in den Einstellungen an- und abschaltbar
+[*]Zur Erkennung von BuffFood wird nun LibFoodDrinkBuff verwendet
+[/LIST]
+
 [B]1.4-RC5 (25.08.2018):[/B]
 [LIST]
-[*]API Bump für 100024
+[*]API Bump für Wolfhunter
 [/LIST]

 [B]1.4-RC4 (31.05.2018):[/B]
@@ -129,9 +135,15 @@

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

+[B]1.5-RC1 (02.09.2018):[/B]
+[LIST]
+[*]The 'Enabled an AwesomeEvents module' hint can be switched on and off in settings
+[*]LibFoodDrinkBuff is used for recognition of food buffs.
+[/LIST]
+
 [B]1.4-RC5 (25.08.2018):[/B]
 [LIST]
-[*]API Bump for 100024
+[*]API Bump for Wolfhunter
 [/LIST]

 [B]1.4-RC4 (31.05.2018):[/B]