So recently I'm dealing with custom gui, and I decided to create an abstract gui (not really abstract but, yea), and other guis extends that. Those gui has their own Inventory, ItemStack, Inventory events. After reading some tutorials and famous plugin''s source code, I've discovered that creating an inventory with non-null InventoryHolder isn't a good idea (https://www.spigotmc.org/threads/what-is-the-inventoryholder-interface.342812/) So what I'm going to ask are - Should I let my custom gui implements InventoryHolder? - Should I Bukkit#createInventory with InventoryHolder? - Is it possible to not putting InventoryHolder but still be able to compare gui looks like (just looks like) Code (Text): if (holder instnanceof MenuGUI) Also is there any plugin with good gui implementation that I can look into? Thanks Edit: Btw checking inventory's title seems not a good idea to determine which gui it is since it can be the same over different gui classes and it can be hard to check when the gui has dynamic name.