My plugin uses Inventory.containsAtLeast() to check whether a player has certain items. Generally, it works fine, but for written books it does not. In-game I create a book and sign it and then test to make sure that containsAtLeast() gets it, but it does not.
I think the issue is that a 'real' written book has metadata that should not be checked. Perhaps Itemstack_.isSimilar()_ should check this?
The figure below shows my findings: