IF - Inventory Framework
0.12.2Create, alter and manage GUIs in an easy and maintainable manner
0.12.2latestV 0.12.23 weeks ago * Fix being unable to open non-extended guis * Fix the anvil, beacon, cartography table, enchanting table, grindstone, loom, merchant, smithing table, and stonecutter not working on Paper 26.2+0.12.1V 0.12.1Aug 27, 2026 + Add annotations for automatically wiring event handlers in gui subclasses + Add loom gui support + Add GuiComponent#setItem * Fix guis appearing empty when certain methods are called prior to opening * Fix certain items not being removed after updating * Fix certain gui types causing a memory leak * Fix compatibility issue with versions before 1.21 when used within a Paper plugin0.12.0V 0.12.0Mar 27, 2026 + Add 26.1 support * Allow super types in many event handlers * Utility methods on StaticPane now work across all slot types * Force pages in PaginatedPane to be continuous * Rename InventoryComponent to GuiComponent * Move Pane#loadItem to GuiItem#loadItem * Label now extends Pane instead of OutlinePane * Panes no longer have slots * Simplify Pane#draw and Pane#click - Remove versions 1.16.1-1.16.4, 1.17.0, 1.18.0-1.18.1, and 1.19.0-1.19.30.11.6V 0.11.6Dec 19, 2025 + Add 1.21.11 support + An exception is now thrown early if the server version isn't supported + Add option in paging buttons to always keep backwards and forwards buttons visible + Improve error handling when loading non-compliant XML files * Fix fonts not working * Fix paginated panes loaded by XML not getting their ID set when they have a populate attribute * Fix updating a title for chest guis causing updates to fail * Fix toggle button interactions not being canceled0.11.5V 0.11.5Oct 18, 2025 + Add 1.21.10 support0.11.4V 0.11.4Oct 15, 2025 + Add 1.21.9 support + Add StaticPane#getItem(Slot) + Add StaticPane#getSlottedItems() * Don't reopen inventories when updating0.11.3V 0.11.3Aug 6, 2025 + Add 1.21.8 support0.11.2V 0.11.2Jul 9, 2025 + Add 1.21.7 support0.11.1V 0.11.1Jun 21, 2025 + Add 1.21.6 support0.11.0V 0.11.0May 20, 2025 + Add 1.21.5 support * Fix desynchronisation on anvil, beacon, cartography table, enchanting table, grindstone, merchant, smithing table, and stonecutter guis * Fix viewers being incorrect for anvil, beacon, cartography table, enchanting table, grindstone, merchant, smithing table, and stonecutter guis * Fix player closing gui clearing the gui for other viewers - Remove 1.14 and 1.15 support0.10.19V 0.10.19Dec 9, 2024 + Add 1.21.4 support0.10.18V 0.10.18Nov 4, 2024 + Add support for 1.21.2 and 1.21.3 * Fix NMS break on 1.21.10.10.17V 0.10.17Aug 17, 2024 + Add 1.21.1 support0.10.16V 0.10.16Jul 26, 2024 * Fix plugins with paper-plugin.yml file not working * Fix GuiItem#clone() not supporting air items0.10.15V 0.10.15Jun 30, 2024 + Add 1.21 support0.10.14V 0.10.14May 16, 2024 + Add 1.20.5 and 1.20.6 support + Add Gui#setParent + Add PagingButtons component * Fix toggle buttons using the wrong plugin instance * Fix toggle buttons being displayed in the wrong position * Fix PatternPane#copy failing for non-square panes * Fix panes inside masonry panes being displayed in the wrong position * Fix 1.20.1 not working * Fix NPE for skulls0.10.13V 0.10.13Jan 5, 2024 + Add 1.20.3 and 1.20.4 support + Add crafter gui0.10.12V 0.10.12Oct 24, 2023 + Add 1.20.2 support * Fix ToggleButton handlers not always firing * Fix setting cursor in close event not working * Fix plugin not being passed to all gui types and panes * Fix crafting table gui not displaying items * Fix toggle buttons not working in masonry panes * Fix methods linked to XML files not allowing for supertypes of parameter types0.10.11V 0.10.11Jun 24, 2023 + Add 1.20.1 support0.10.10V 0.10.10Jun 9, 2023 + Add Minecraft 1.20 support + Add AnvilGui#setOnNameInputChanged(Consumer<? super String>) * Fix invisible items in OutlinePane making other items invisible * Fix GuiItem#copy() not copying over the plugin instance * Fix CartographyTableGui#copy() not copying over the plugin instance0.10.9V 0.10.9Mar 27, 2023 + Add 1.19.4 support * Fix StaticPane#addItem not overriding already set items in the same position * Fix anvil and grindstone gui not working on Bukkit and Spigot0.10.8V 0.10.8Dec 19, 2022 + Add the ability to specify custom plugin instances + Add slots + Add PaginatedPane#addPage(Pane) + Add ToggleButton#allowToggle(boolean) + Add GuiItem#setItem(ItemStack) + Add AnvilGui#setCost(short) + Add 1.19.3 support * Fix item movement behaviour in anvil guis * Fix invisible items showing up in OutlinePanes * Fix item movement behaviour in grindstone guis0.10.7V 0.10.7Aug 11, 2022 + Add 1.19.1 and 1.19.2 support + Add MerchantGui#setOnTradeSelect + Add Pane#createBorder * Fix ToggleButton not executing item events * Fix ChestGui#setRows removing panes * Fix inventories not restoring after a Gui#update call * Fix nested panes ignoring visibility * Fix MerchantGui#copy not copying all the data0.10.6V 0.10.6Jun 13, 2022 + Add cutom model data support in XML + Add 1.19 support * Fix cycle button not firing item click events * Fix chest guis always recreating inventories after changing the rows0.10.5V 0.10.5Mar 2, 2022 + Add delete page method to PaginatedPane + Allow for a processor in setText on Label + Add 1.18.2 support * Fix duplicate items with different actions performing the same action * Fix item action not being fired when a player toggles a toggle button * Fix the percentage bar always displaying a percentage of zero * Fix getColumn on Mask not working properly on non-square masks * Fix Adventure-based titles being improperly displayed in some inventories * Fix inconsistent inventory click event data for one slot drags * Fix not being able to modify panes inside a click handler * Improve off-hand ghost item removal0.10.4V 0.10.4Jan 3, 2022 + Add 1.18 / 1.18.1 support + Add enabled option to ToggleButton constructor * Fix lowercase priorities in XML being allowed * Improve error handling for paginated pane tags in XML0.10.3V 0.10.3Sep 16, 2021 * Fix populate methods not being called correctly0.10.2V 0.10.2Sep 4, 2021 * Fix item movement in smithing table gui0.10.1V 0.10.1Aug 17, 2021 + Allow setting level and experience on merchant guis + Allow setting discount on trades in merchant guis + Add center alignment to outline pane * Fix armor disappearing when opening a gui * Fix items not moving properly in grindstone gui * Fix viewers being empty for anvil guis0.10.0V 0.10.0Jul 9, 2021 + Add Adventure support + Add merchant gui + Add 1.17.1 support + Add StaticPane#removeItem(int x, int y) * Fix anvils not showing the result item on 1.17 * Fix opening a gui on closing causing events not to work0.9.9V 0.9.9Jun 22, 2021 + Add 1.17 support * Prevent cursor from being reset when gui updates0.9.8V 0.9.8Jun 6, 2021 + Add PatternPane0.9.7V 0.9.7May 25, 2021 * Fix empty pages throwing error on click0.9.6V 0.9.6May 19, 2021 + Add ToggleButton#isEnabled * Component clicks will be fired after their state has been changed0.9.5V 0.9.5Mar 9, 2021 * Fix percentage bar and slider having length of zero0.9.4V 0.9.4Feb 2, 2021 * Fix items sometimes failing to apply UUID correctly0.9.3V 0.9.3Jan 31, 2021 * Fix overriding item meta on a created gui item breaks click functionality0.9.2V 0.9.2Jan 21, 2021 * Fix inventory components not being cleared before re-rendering * Allow for subclasses of InventoryClickEvent as optional parameter in XML-bound click methods * Throw exception for panes with lengths or heights of zero0.9.1V 0.9.1Dec 26, 2020 * Fix coordinate calculation for pane clicks * Fix inability to open gui within a gui * Don't unnecessarily reset players' items * Fix close event not firing * Fix paginated pane throwing errors upon rendering * Correct players' off hand item after closing/updating a gui0.9.0V 0.9.0Dec 12, 2020 + Add support for drag events * Fix click events not firing * Fix empty tag throwing errors upon loading This is a breaking version, please review the wiki to see how to update to this version from previous versions.0.8.1V 0.8.1Dec 1, 2020 + Add MergedGui interface * Fix clicking on items not working for certain gui types * Fix setting the title not updating the gui correctly * Fix updating the gui causing it to close0.8.0V 0.8.0Nov 17, 2020 + Add anvil, barrel, beacon, blast furnace, brewing stand, cartography table, crafting table, dispenser, dropper, enchanting table, ender chest, furnace, grindstone, hopper, shulker box, smithing table, smoker and stonecutter inventories This is a breaking change, please read the wiki on how to update to this version: https://github.com/stefvanschie/IF/wiki/Updating-from-pre…0.7.2V 0.7.2Aug 18, 2020 + Add properties to gui items0.7.1V 0.7.1Aug 14, 2020 + Add GuiItem#setAction method + Add Pane#getUUID method0.7.0V 0.7.0Aug 10, 2020 * TheGui#copymethod now also copies the internalUUID.0.6.2V 0.6.2Aug 3, 2020 + Added copy methods to Gui, GuiItem and all panes0.6.1V 0.6.1Jun 30, 2020 * Fix item dragging not being handled * Fix players picking up items going into their inventory when bottom inventory is in use This version has been tested on Minecraft 1.16 and seems to work without changes. Of course if you do encounter issues, please report them.0.6.0V 0.6.0Jun 2, 2020 * No longer display items that are outside a pane's boundary * Switch to native NBT solution * Make callbacks error safe - Remove 1.12 and 1.13 support This update has API breaking changes. A guide on how to update from prior versions can be found here.0.5.19V 0.5.19Mar 15, 2020 * Additional safeguards for restoring cached inventories0.5.18V 0.5.18Jan 11, 2020 * Fix StaticPane#addItem not overriding existing locations ( 2b2339e)0.5.17V 0.5.17Jan 1, 2020 * Fix OutlinePane always repeating ( f208d34)0.5.16V 0.5.16Dec 30, 2019 + Add masks ( fe874f6)0.5.15V 0.5.15Dec 18, 2019 * Fix issue with onClose being called when a gui is being updated0.5.14V 0.5.14Nov 23, 2019 * Fix issue with clicking on non plugin placed items ( 8db1bb7)0.5.13V 0.5.13Nov 16, 2019 + Added PaginatedPane#getPanes(int) method ( b5788f2)0.5.12V 0.5.12Sep 23, 2019 * Fix list based item meta getting removed ( 6750763)0.5.11V 0.5.11Sep 22, 2019 * Fix MiniNBT not being shaded ( fcade00) * Fix item meta being lost ( 7873e83)0.5.10V 0.5.10Sep 16, 2019 * Fixed javadocs ( 812b536)0.5.9V 0.5.9Aug 24, 2019 + Add StaticPane#fillWith(ItemStack, Consumer) ( aee0acf) * Fix issue with item clicks not working when items were moved ( 68339af)0.5.8V 0.5.7Jun 24, 2019 + Added onOutsideClick setters and getters and as attribute for gui element in XML files; will be fired when someone clicks outside of the Gui ( bf3f608).0.5.7V 0.5.8Jun 24, 2019 + Added removeItem(GuiItem) methods to OutlinePane and StaticPane ( f6d73ed)0.5.6V 0.5.6Jun 1, 2019 * Fix issue where clicking in a PaginatedPane when opened on an unknown pane would throw an NullPointerException ( 6e33509)0.5.5V 0.5.5May 24, 2019 + Added PaginatedPane#populateWithGuiItems ( 032c2eb) * Fix PaginatedPane#display throwing NPE for non-existent pages ( 1d4d111)0.5.4V 0.5.4May 16, 2019 * Add 1.12 support for guis ( #14) * Fix memory leak ( 27f54d2) * Fix issues with PaginatedPane#populateWithItemStacks ( 4bbdbaa)0.5.3V 0.5.3Apr 29, 2019 * Fix error occurring when loading items from XML when amount and damage were not set.0.5.2V 0.5.2Apr 26, 2019 * Fix the onClose lambda also firing for other inventories than the one you registered to0.5.1V 0.5.1Apr 24, 2019 * Fixed compatibility issues with version 1.14-pre-50.5.0V 0.5.0Mar 16, 2019 + Added percentage bar UI element + Added label UI element + Added cycle button UI element + Added toggle button UI element + Added slider UI element0.4.0V 0.4.0Feb 5, 2019 + Panes can now be put/overflow into the bottom half of the inventory + Added onBottomClick to Gui * Fix issue with onGlobalClick not always firing = Renamed onLocalClick in Gui to onTopClick = Renamed onLocalClick in Pane to onClick0.3.2V 0.3.2Jan 6, 2019 + Added a clear method to panes, to remove all their items or panes0.3.1V 0.3.1Jan 5, 2019 * Incorrect pane loading for y coordinate * Incorrect loading of paginated panes = Improved exception handling on panes and items = Improved annotations0.3.0V 0.3.0Dec 2, 2018 + Added MasonryPane + Divided pane options into interfaces * XML reading issues now throw an exception, instead of doing whatever they like - Removed GuiLocation The wiki has been updated to reflect the new features and changes, which can be found here. This update has API breaking changes. A guide on how to update from prior versions can be found here.0.2.4V 0.2.4Oct 30, 2018 + Added new populateWithItemStacks method to PaginatedPane + Added new populateWithNames method to PaginatedPane + Added new fillWith method to StaticPane * Changed AssertionErrors to Exceptions0.2.3V 0.2.3Jul 24, 2018 * Air materials were being ignored0.2.2V 0.2.2Jul 21, 2018 * Fix clicking two or more times on an item that was loaded from an XML file and has one or more properties assigned to it causing an error.0.2.1V 0.2.1Jul 19, 2018 * Small bug fix which fixes malfunctioning reflection on certain fields0.2.0V 0.2.0Jul 11, 2018 + Added options to flip static and outline panes either horizontally or vertically. + Added option to call a consumer when the bottom side of the inventory is clicked when the GUI is open * Renamed click methods to local click methods. The wiki has been updated to reflect the new features and changes, which can be found here. This update has API breaking changes. A guide on how to update from prior versions can be found here.0.1.0May 27, 2018
Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
26.2MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.9MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
4.7MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta