- Tested Minecraft Versions:
- Source Code:
- https://github.com/stefvanschie/IF/graphs/contributorsThis resource is for developers only, if you're a server owner then this isn't intended for you.Tested Minecraft Versions shows the supported Minecraft version(s). This resource may work on other versions, but this hasn't been tested and no guarantees will be made that these versions keep working in the future.
IF - Inventory Framework is a lightweight, but powerful GUI framework, intended to help you create, alter and manage GUIs more easy. Here are a few things why I think IF stands out from other similar frameworks:
Pane based: IF relies fully on the usage of panes which allow you to separate your GUI in smaller parts which can be changed individually, without altering any other parts of your GUI.
XML reading: IF can read XML files and create entire GUIs from those. No more long methods creating your GUIs, just load them from an XML file. (Don't worry, XML is fully optional, just ignore it if you don't want to use it.)
Extensible: You can create your own panes with their own features to behave exactly how you want them to, without having to redesign a new GUI framework yourself from the ground up.
No more event handlers: No need to create listeners, listen to events and use a dozen if-statements to determine which item was clicked. IF will handle this all for you, so you can focus on creating your plugin.
Rotations: Easily apply linear two dimensional rotations on your panes to rotate your panes in different ways.
IF has an in-depth wiki detailing the workings of the framework and how to use it. You can find the wiki here.
IF works standalone. You have to shade it into your plugin, rather than add it to the server.
If you're not using a build system, you can download the resource from the download link here and add it as a dependency in your IDE.
If you're using Maven, add the following as dependency to your pom.xml:
IF is in the Central Repository, so you don't have to specify a repository.Code (XML):<dependency>
Then add this to shade IF into your plugin:
Replace [YOUR PACKAGE] with your main package.Code (XML):<plugin>
There are extensive tutorials and examples on the wiki, so I highly recommend checking it out to see how it works. If you're uncertain how XML works, there's also a small tutorial on that on the wiki as well.
Here's a small snippet on how to create a base GUI with one item in it.
Suggestions and feedback are highly appreciated!Code (Java)://create a gui with 5 rows and the title My GUI
ChestGui gui = new ChestGui(5, "My GUI");
//create a new pane occupying the entire gui
OutlinePane pane = new OutlinePane(0, 0, 9, 5);
ItemStack item = new ItemStack(Material.ICE);
//create an item which will send a message when clicked
GuiItem guiItem = new GuiItem(item, event -> event.getWhoClicked().sendMessage("You clicked on ice!"));
//add the item to the pane
//add the pane to the gui
IF - Inventory Framework 0.10.3
Create, alter and manage GUIs in an easy and maintainable manner