Currently I am doing the following: I have a custom class Item that is extended by all kinds of custom classes. I can serilize this to and from an itemstack. Specific slots in the player inventory are only allowed to contain specific item types. After the player interacts with the inventory. The whole inventory is serialized to an array of my custom item class. Now I check if any of my custom items is at the wrong place. If yes I cancel the inventory action. Picking up an item will cause it to serialize and deserialize again. (Item names/lore are translated to players language) Any ideas/recommendations how I can improve the process?