This is an API made specifically for spigot servers (Minecraft). Current supported versions: 1.8 R2 - latest. Lightweight replacement for Citizens. NPCLib only uses packets instead of registering the entity in the actual Minecraft server.
NPCLib has basic support for 1.7.10, as it not currently support multi-line text for this version (yet).
I used this module of ProtocolLib to intercept packets sent by players whilst interacting with NPCs. After retrieving the data from these packets, I can call a new NPCInteractEvent.
I integrated MineSkin into NPCLib as an easy way for developers to give NPCs a custom skin without buying multiple Minecraft accounts or saving the skin data themselves.
I use bStats to see how much server are using NPCLib, keeps me motivated and gives me insight in which version are used most. You can see the statistics of NPCLib here.