Skip to content
Easily use anvil guis to get a user's input
Branch: master
Clone or download
Latest commit 4b7a469 Aug 10, 2019


Easily use anvil guis to get a user's input.

This project was made since their is no easy way to do this with the Spigot / Bukkit APIs. It requires interaction with NMS and that is a pain in a non-private plugin where users will have lots of different versions of the server running.


Java 8 and Bukkit / Spigot. Most server versions in the Spigot Repository are supported.

My version isn't supported

If you are a developer, submit a pull request adding a wrapper class for your version. Otherwise, please create an issue on the issues tab.

How to use

As a dependency



In your plugin

new AnvilGUI.Builder()
    .onClose(player -> {                   //called when the inventory is closing
        player.sendMessage("You closed the inventory.");
    .onComplete((player, text) -> {        //called when the inventory output slot is clicked
        if(text.equalsIgnoreCase("you")) {
            player.sendMessage("You have magical powers!");
            return AnvilGUI.Response.close();
        } else {
            return AnvilGUI.Response.text("Incorrect.");
    .preventClose()                        //prevents the inventory from being closed
    .text("What is the meaning of life?")  //sets the text the GUI should start with
    .plugin(myPluginInstance)              //set the plugin instance
    .open(myPlayer);                       //opens the GUI for the player provided



Build with mvn clean install.


This project is licensed under the MIT License.

You can’t perform that action at this time.