Note: LapisCommons is not actively maintained and deprecated. The Sponge API has become mature enough to contain almost all functionality LapisCommons once had. Please depend on the Sponge API instead.
These past few weeks have been a fantastic example of the community pulling together. I’ve never seen so many brilliant minds working towards the same goal. We’re even seeing plugin projects already underway!
It is in this environment that we’re proud to announce Lapis Commons. We’re a small group (5 developers as of this writing), building systems to ease the transition into Sponge and provide base services everyone can use. The project is completely open-source under the MIT license, and we welcome your advice, concerns, and contributions.
The key features of this toolkit are modular; if you’re not using a feature it will not cause server or memory load. We’ve also incorporated some very unusual performance innovations, and hope to provide more in the future.
We’re really proud to announce an official strategic partnership with the Pore team!
We’ve been fans since the beginning, and by working together we can make it even easier for servers to make a clean transition to Sponge. Welcome aboard!
The expected release feature set follows:
Permissions
Lapis provides extremely fast set-theoretic permissions with group inheritance.
Economy
Lapis supports multiple accounts per player, accounts for non-player entities, credit accounts, and allows third-party economy plugins to step in and provide unique services at any level of the chain.
Commands
With Lapis you can use as much or as little of the command framework as you like. We have services to turn String tokens into typesafe objects, all the way up to annotation-based commands with overloading and automatic tab-completion.
Persistence
Attach data to any object in the game. Configurable persistence providers for anything from flatfiles or json, to full-scale rdbms or odbms storage.
Configuration
Annotation-based configuration gives you a no-hassle way to define a configuration class and automatically sync it to disk.
Scripting
We’re targeting Lua with an eye towards providing JavaScript support down the road. Define custom commands which run through your Lua scripts!
Scheduling
Define long-running tasks which serialize their state and persist through restart.
We’re looking forward to seeing all the creations that our toolkit makes possible!
Website: http://lapis.blue/
Docs: http://docs.lapis.blue/
GitHub: http://git.io/lapis
IRC: #lapis on irc.esper.net
Contributing: Lapis Docs
API Draft: http://goo.gl/qjNG5m