A collection of utilities and extended APIs to support the rapid and easy development of Bukkit plugins.
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!
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.
Events- functional event handling and flexible listener registration
Scheduler- easy access to the Bukkit scheduler
Promise- a chain of operations (Futures) executing between both sync and async threads
Metadata- metadata with generic types, automatically expiring values and more
Messenger- message channel abstraction
Commands- create commands using the builder pattern
Scoreboard- asynchronous scoreboard using ProtocolLib
GUI- lightweight by highly adaptable and flexible menu abstraction
Menu Scheming- easily design menu layouts without having to worry about slot ids
Random- make random selections from collections of weighted elements
Bucket- sets of distributed and uniformly partitioned elements
Profiles- a lookup repository and cache for player uuid & name profiles
Plugin Annotations- automatically create plugin.yml files for your projects using annotations
Maven Annotations- download & install maven dependencies at runtime
Terminables- a family of interfaces to help easily manipulate objects which can be unregistered, stopped, or gracefully halted
Serialization- immutable and GSON compatible alternatives for common Bukkit objects
Bungee Messaging- wrapper for BungeeCord's plugin messaging API