helper is a development toolkit / library for Bukkit plugin developers. It provides a number of utilities and extended APIs which help to reduce boilerplate code and offer alternative paradigms for creating content.
💡 helper started off as a library to experiment with an alternative paradigm for creating event listeners. Over time, more functionality has been added, usually as a response to a specific development need as I completed freelance work.
🌍 I don't use helper in any of my public projects - it's quite a big library, and I don't like to add bloat unnecessarily!
✅ However, it has been used extensively in a number of private server projects, most notably, in most custom plugins on servers operated by Voldex Games (TheArchon, PrimeMC, etc). I'm also aware of a number of other developers / development teams who still actively use helper, which is awesome!
I'm no longer actively working on further API additions, but the project is still being used frequently by various development teams, and I accept pull requests!
- Download (download links for the standalone helper plugins)
- Wiki (almost-fully-complete documentation for helper)
helper
: The main helper project
helper-sql
: Provides SQL datasources using HikariCP.
helper-redis
: Provides Redis clients and implements the helper Messaging system using Jedis.
helper-mongo
: Provides MongoDB datasources.
helper-lilypad
: Implements the helper Messaging system using LilyPad.
helper-profiles
: Provides a cached lookup service for player profiles.
helper-js
: JavaScript plugins using Nashorn.
Events
- functional event handling and flexible listener registrationScheduler
- easy access to the Bukkit schedulerPromise
- a chain of operations (Futures) executing between both sync and async threadsMetadata
- metadata with generic types, automatically expiring values and moreMessenger
- message channel abstractionCommands
- create commands using the builder patternScoreboard
- asynchronous scoreboard using ProtocolLibGUI
- lightweight by highly adaptable and flexible menu abstractionMenu Scheming
- easily design menu layouts without having to worry about slot idsRandom
- make random selections from collections of weighted elementsBucket
- sets of distributed and uniformly partitioned elementsProfiles
- a lookup repository and cache for player uuid & name profilesPlugin Annotations
- automatically create plugin.yml files for your projects using annotationsMaven Annotations
- download & install maven dependencies at runtimeTerminables
- a family of interfaces to help easily manipulate objects which can be unregistered, stopped, or gracefully haltedSerialization
- immutable and GSON compatible alternatives for common Bukkit objectsBungee Messaging
- wrapper for BungeeCord's plugin messaging APIJavaScript Plugins
- javascript plugins using helper-js and Nashorn