Gui API


With this API you can create Guis in a few seconds.
You can create Guis easily through Java/Kotlin Code or by creating .mgui-Files with XML-Code.
For you to instantly jump in, most of the important Components are already delivered by this API.
If you however need a more specific Component, you can also implement your own logic through Bukkit-Events, Listeners or even create your own custom Component.
UNTIL NOW, THIS API IS ONLY FOR DEVELOPERS!
All Components
For more information on how to use these Components in code look in the Wiki under Component Overview.
Static Component: A simple Component that has no special logic. It simply stays in the Gui when interacted with.
FreeSpaceComponent: Keeps the Place it is placed in free (prevents other Components from using it).
EventComponent: Simply fires a Bukkit-Event when interacted with.
MessageComponent: Sends a Message to the Player that interacted with the Component.
TeleportComponent: Teleports the Player that interacted with the Component to a specific or relative Location.
GetItemComponent: Gives the Player that interacted with the Component all specified Items in the specified way.
Folder: Holds a new Gui inside which opens when interacted with.
Settings: Cycles throw different settings (represented by different Item, Name and Description) when clicked.
YesNoSetting: Cycles between two different Settings (By default used as a switch for activating/deactivating a Feature)
AdditionalOptionsComponent: Shows more Components when clicked, either under the AdditionalOptionsComponent in the same Gui or by opening a new Gui with these additional Components.
YesNoOption: Simply a variation of AdditionalOptionsComponent that only has two Items (by default used for Yes/No-Questions or to ask a Player if he really wants to perform the Action he just started).
And even more Components if you create your own...
Support
First of all I want to give a little heads-up. THIS IS ONLY A FREETIME-PROJECT. I unfortunately might not have enough time to fully support this project which might mean that there won't be updates for long periods of time. I started this project, because I needed an API myself with which I developed UI in my Minecraft-Plugins but that is already a long time ago. Nowadays I mostly don't develop Minecraft-Plugins in my free-time anymore. As seen with GuiAPI v2.0 this however doesn't mean that this project is 100% abandoned as I will go back to it sometimes in the future for sure (it is still very special to me) and I will at least try and answer as many issues/questions as possible, if they arise.
New Update:
GuiAPI v2.0 is here 🥳 and it brings a massive amount of change, quality of life and new features because it is basically a completely new Plugin. All the Code has been rewritten from the Ground-Up (now in Kotlin and not Java, but still 100% compatible with Java). This not only fixes many of the issues the 1.x-Versions of this Plugin had but also allows for much more features, including New Components and the possibility to create Guis entirely through XML-Code.
To find out even more about GuiAPI v2.0, including how to make your old code compatible with it, there has been an entire Page added to the Wiki just for that.
Future Plans:
As already stated, there are no mayor future plans for this API anymore, but that doesn't mean, that I don't have more ideas that I could add whenever I feel like going back to Plugin-Development for fun:
- The possibility to define Listeners for Click-Events inside .mgui-XML-Code
- Implementing multiple Pages in order to lift the size-limit of Minecraft-Inventories for Guis. If the Size of these would then be exceed, the Gui would simply create a new Page. You could switch between pages through simple previous/next controls at the Bottom of the Gui.
- Implementing Triggers into .mgui-XML-Code with which you could even specify WHEN the Gui should be created, completely eliminating the need for Java/Kotlin-Code in some cases
- …and of course more Components, if any new once are needed
I might also be working on a different Plugin that uses this one and find even more interesting additions or fixes that will be pushed in a future update, just don't wait for it.
Source-Code: GitHub.com
Wiki: GitHub-Wiki
Issues: GitHub-Issues
-
View User Profile
-
Send Message
Posted Dec 16, 2017I'm wondering how exactly do I edit the plugin itself? There's no commands that I know of for this plugin. And the permissions? What about a config for server files?
-
View User Profile
-
Send Message
Posted Jan 26, 2018In reply to trujangaming:
Right now this is a api you can only use in code. This means that there are no special files or permissions. If you want to set a permission you can now ask for some in your own plugin. But I will change this as far as possible.
-
View User Profile
-
Send Message
Posted May 4, 2017Nice Plugin!
-
View User Profile
-
Send Message
Posted May 5, 2017In reply to Timmy360xMC:
-
View User Profile
-
Send Message
Posted May 4, 2017Thank you very much for over 50 downloads.
Please write a comment if you like this API or didn't like it. It would be also interesting to hear if you have any problems you want to tell me, or a Idea for a new version