Skip to content

Latest commit

 

History

History
580 lines (346 loc) · 22.1 KB

api-repository.md

File metadata and controls

580 lines (346 loc) · 22.1 KB

API Repository

There are a lot of tools, libraries and frameworks for Bukkit-based plugin development. This file lists an unexhaustive selection.

Contents

Frameworks

Full-blown frameworks that operate on top of Bukkit and define how you write your plugins.

  • helper by @lucko

    helper is another all-in-one framework that aims to reduce most boilerplate code in bukkit but also other stuff like lilypad, redis and database management.

    Main features:

    • Events
    • Scheduler
    • Promise
    • Metadata
    • Messenger
    • Commands
    • Scoreboard
    • GUI
    • Menu Scheming
    • Random
    • Bucket
    • Profiles
    • Plugin & Maven- Annotations
    • Terminables
    • Serialization
    • Bungee Messaging
    • JavaScript Plugins
  • kelp by @PXAV

    kelp is an all-in-one framework that aims to avoid version-depended code.

    Core features:

    • Sidebar system
    • Inventory system
    • NPC system:
    • Command system
    • Config system
  • SpigotLib by @gyurix

    SpigotLib is a collection of several useful libraries and APIs for Spigot plugin development.

    Features:

    • Animations
    • BungeeCord Communication
    • Chat API
    • Command API
    • Config management
    • EconomyAPI
    • Gui API
    • Json API
    • Language management
    • Map API
    • Mojang API
    • MySQL API
    • NBT API
    • Packet API
    • PlayerFile
    • RomanNums API
    • Scoreboard API
    • Time API
    • Title API
    • TPS meter and crashreporter
    • Variable API

Utilities

Tools that help you with compatibility, interopability, and workflow.

Environment

Version Independent Code

  • compatre by @JohnnyJayJay

    compatre replaces version-specific nms and craftbukkit types at runtime using bytecode manipulation.

    Main features:

    • Version compatibility with only a single annotation
    • Java agent/Custom class loader
  • ProtocolSupport by @ProtocolSupport

    ProtocolSupport exists to solve the age-old problem of "What do I do if my users refuse to update their client?" in the most effective way possible.

  • XSeries by @CryptoMorin

    XSeries provides abstraction for several version-depended classes.

    Main features:

    • potions, materials, sounds, particles, ...
    • blocks, entities, bioms

Dependency Management

  • libby by @Byteflux

    libby lets you add your external dependencies to the classpath without shading.

    Main features:

    • Dependency relocation
  • pdm by @knightzmc

    pdm lets you add your external dependencies to the classpath without shading.

    Main features:

    • Declarative dependency notation
    • Reuse of shared dependencies (including transitive ones)
    • Plugin to integrate with Gradle

Bridges

  • PlaceholderAPI by @extendedclip

    PlaceholderAPI provides a uniform way to share information with and use information from other plugins.

    Main features:

    • Developer API
    • External expansions
  • Vault by @MilkBowl

    Vault provides bridge APIs for common plugin systems on Bukkit servers.

    Main features:

    • Economy API
    • Chat API
    • Permissions API

CI/CD

  • Action-SpigotMC by @SpraxDev

    A GitHub action that allows you to easily compile Minecraft Spigot and install it in your runners local maven repository.

Commands

High-level alternatives and extensions for Bukkit's rusty command system. They all aim to reduce the boilerplate involved in writing commands the traditional way.

Templates

Templates are repositories which you can use to reduce the work on creating a new project with all that boilerplate stuff.

Libraries

Libraries are projects that focus on a specific aspect of plugins.

BungeeCord

  • Commy by @ExpDev07

    A simple yet powerful framework which simplifies the use of Plugin Messaging Channels.

  • protocolize by @Exceptionflug

    A lightweight BungeeCord protocol framework supporting items.

Chat

Configuration

Database

Events

GUIs

  • AnvilGUI by @WesJD

    AnvilGUI provides an API to open an anvil inventory that reacts on renaming.

    Main features:

    • support of nearly every version
    • easy-to-use builder
    • set title, items, closing listener and completion listener
  • GuiLib by @Jannyboy11

    Yet another bukkit inventory gui library

  • IF by @stefvanschie

    An inventory framework for managing GUIs

  • interfaces by @Incendo

    A Java user-interface library with support for Minecraft.

  • SmartInvs by @MinusKube

    SmartInvs provides an interface for creating inventories by setting clickable items.

    Main features:

    • Iterator for inventory slots
    • Page system
    • Util methods to fill an inventory's row/column/borders/...
    • Actions when player clicks on an item

    More features and examples can be found here.

  • SpigotGUI by @JanHolger

    A simple to use graphical interface system for spigot.

  • triumph-gui by @TriumphTeam

    Simple lib to create inventory GUIs for Bukkit platforms.

  • yamif by @lus

    yet another minecraft inventory framework

    Main features:

    • intuitive and abstract component API
    • easy to use
    • minimal

Holograms

Maps

  • AnimatedFrames by @InventivetalentDev

    Play GIFs and display images in Minecraft

  • EzMediaCore by @MinecraftMediaLibrary

    A professional media playback library and plugin that allows you to play videos in Minecraft!

  • MakiScreen by @makitsune

    Streaming OBS video into maps on item frames at a high frame rate

  • maps by @cerus

    Easy-to-use API for creating clientside Spigot maps

  • menu-framework by @heroslender

    Innovating the way you make menus in minecraft java edition by using maps to render a custom UI and allowing the player to interact with it.

  • MinecraftMaps by @Redstonneur1256

    MinecraftMaps is a plugin and API used to create interactive in game displays.

  • packet-maps by @cerus

    Library for doing cool stuff (screenshots, videos, 3D rendering, gifs, ...) with Minecraft maps using packets

  • spigot-maps by @JohnnyJayJay

    Library to render custom images, gifs and text on Minecraft map items

    Main features:

    • Lots of customisation (how often to render, to whom to render, ...)
    • Tools to resize/crop/divide images and gifs to better fit maps
    • Persistence API

Mojang

NBT

  • Item-NBT-API by @tr7zw

    NMS-free NBT api with yaml, json, SQL and Redis serialization.

  • KotlinNBT by @DevSrSouza

    Named Binary Tag (NBT) library for Kotlin Multiplatform

  • simple-nbt by @cerus

    Very simple implementation of the NBT (Named Binary Tag) format, including reading and writing.

Noteblocks

NPCs

Packets

Particles

Scheduling

Scoreboards

  • FastBoard by @MrMicky-FR

    A Scoreboard API for Bukkit with 1.7-1.16 support.

  • JScoreboards by @JordanOsterberg

    An API with global and per-player scoreboard support.

  • MultiLineAPI by @iso2013

    This API adds custom lines of text below a players name.

  • Netherboard by @MinusKube

    Netherboard provides a simple-to-use wrapper for scoreboards.

    Main features:

    • simple syntax for creation BPlayerBoard board = Netherboard.instance().createBoard(player, scoreboard, "My Scoreboard");
    • simple syntax for adding/removing scores: board.set("Test Score", 5);, board.remove(5)
  • simple-scoreboard by @einfachBlu

    This library was made to handle easier the scoreboard components, especially tablist and the sidebar.

Sockets

Testing

  • MockBukkit by @seeseemelk

    MockBukkit is a framework that makes the unit testing of Bukkit plugins a whole lot easier. It aims to be provide complete mock implementation of CraftBukkit that can be completely controlled from a unit test.

Worlds

  • EntityCulling by @tr7zw

    Hides entities and tiles(mainly chests) that players are not able to see due to blocks in the way(occlusion culling), and then blocks packets for these entities.

  • FastAsyncWorldEdit by @boy0001

    Fork of WorldEdit that operates asynchronously for higher performance.

  • Iris by @VolmitSoftware

    Iris is a full-featured terrain generator including multiple dimensions and configuration opportunities.

  • Slime-World-Manager by @Grinderwolf

    Implementation of the Slime Region Format, developed by the Hypixel Dev Team.

  • WorldEdit by @sk89q

    Plugin and API to manipulate Minecraft worlds.

  • WorldGeneratorAPI by @rutgerkok

    API to create custom world generators easily.

  • WorldGuard by @sk89q

    Plugin and API to manage and protect custom areas of Minecraft worlds.

Other Languages

Who says that you can only use Java to write plugins?