Hi everyone! I made a class called "SurpriseItem" that extends ItemStack, and add two vars in it. Then I added it into an inventory, and then try to get it back in InventoryClickEvent. However, when I'm trying to use SurpriseItem surpriseItem = (SurpriseItem) event.getCurrentItem(), it throws ClassCastException. Is there anyway to do that? (I want to share some data between my configloader and eventlisteners) Currently I am storing it by item lore, and hide it by using ProtocolLib. I want to find a way that needs not ProtocolLib... My friend told me to use Custom Event and Decorator Patter.. but I have no idea how to use them.. EDIT by Moderator: merged posts, please use the edit button instead of double posting.