If you really wanted to be fancy you could replace the /cast Heart Essence
line with ~~HE~~
Create a variable with the name HE and has the value
function() local itemLink= GetInventoryItemLink("player", 2) if GetItemInfo(itemLink) == "Heart of Azeroth" return '/cast Heart Essence' end end
What this would do is If you have a Neck Equipped, when GSE compiles your macro it would replace the ~~HE~~
in your macro with /cast Heart Essence
otherwise it would delete the ~~HE~~
and skip that line.