Skip to content

Latest commit

 

History

History
67 lines (47 loc) · 8.01 KB

README.md

File metadata and controls

67 lines (47 loc) · 8.01 KB

helper Build Status Discord

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.

History

💡 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!

Status

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!

Links

  • Download (download links for the standalone helper plugins)
  • Wiki (almost-fully-complete documentation for helper)

Modules

helper: The main helper project

Artifact Maven Central Javadocs

helper-sql: Provides SQL datasources using HikariCP.

Artifact Maven Central Javadocs

helper-redis: Provides Redis clients and implements the helper Messaging system using Jedis.

Artifact Maven Central Javadocs

helper-mongo: Provides MongoDB datasources.

Artifact Maven Central Javadocs

helper-lilypad: Implements the helper Messaging system using LilyPad.

Artifact Maven Central Javadocs

helper-profiles: Provides a cached lookup service for player profiles.

Artifact Maven Central Javadocs

helper-js: JavaScript plugins using Nashorn.

Artifact Maven Central Javadocs

Feature Overview

  • 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
  • JavaScript Plugins - javascript plugins using helper-js and Nashorn

... and much more!