Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| library:inventorygui:usage [2020/09/22 17:15] – created phoenix616 | library:inventorygui:usage [2025/04/18 12:45] (current) – [Creating the GUI] phoenix616 | ||
|---|---|---|---|
| Line 18: | Line 18: | ||
| The GUI supports 3\*3, 5\*1 and 9\*x inventory sizes. | The GUI supports 3\*3, 5\*1 and 9\*x inventory sizes. | ||
| Sizes that do not match these are getting expanded to the next bigger one. | Sizes that do not match these are getting expanded to the next bigger one. | ||
| - | |||
| ## Creating the GUI | ## Creating the GUI | ||
| You create GUIs assigned to an InventoryHolder like a Container or a LivingEntity. | You create GUIs assigned to an InventoryHolder like a Container or a LivingEntity. | ||
| Line 28: | Line 27: | ||
| gui.setFiller(new ItemStack(Material.GRAY_STAINED_GLASS, | gui.setFiller(new ItemStack(Material.GRAY_STAINED_GLASS, | ||
| ``` | ``` | ||
| + | |||
| + | If you want to use more advanced formatting of text with RGB colors then take a look at [[library: | ||
| ## Adding to the GUI | ## Adding to the GUI | ||
| Line 81: | Line 82: | ||
| and automatically changes the ItemStack icon. | and automatically changes the ItemStack icon. | ||
| ```java | ```java | ||
| - | gui.addElement(new GuiStateElement(' | + | GuiStateElement element = new GuiStateElement(' |
| new GuiStateElement.State( | new GuiStateElement.State( | ||
| change -> { | change -> { | ||
| Line 102: | Line 103: | ||
| "By clicking here you will stop flying" | "By clicking here you will stop flying" | ||
| ) | ) | ||
| - | )); | + | ); |
| - | ``` | + | |
| - | ... you can define as many states as you want, they will cycle through on each click | + | |
| - | you can also set the state directly via `GuiStateElement# | + | |
| + | # Set the current state | ||
| + | if (player.isFlying()) { | ||
| + | element.setState(" | ||
| + | } else { | ||
| + | element.setState(" | ||
| + | } | ||
| + | |||
| + | gui.addElement(element); | ||
| + | ``` | ||
| + | You can define as many states as you want, they will cycle through on each click. | ||
| + | You can also set the state directly via `GuiStateElement# | ||
| + | before you show the GUI or re-draw it. | ||
| ### Dynamic Element | ### Dynamic Element | ||
| - | You can also dynamically load elements each time the GUI is re-drawn. E.g. when you want to cache GUIs but not the | + | You can also dynamically load elements each time the GUI is re-drawn |
| - | text of some buttons or dynamically change them while they are open without closing and reopening them. | + | |
| Dynamic elements just return one of the other elements that should be displayed each time `InventoryGui# | Dynamic elements just return one of the other elements that should be displayed each time `InventoryGui# | ||
| Line 115: | Line 124: | ||
| the DynamicGuiElement' | the DynamicGuiElement' | ||
| ```java | ```java | ||
| - | gui.addElement(new DynamicGuiElement(' | + | gui.addElement(new DynamicGuiElement(' |
| return new StaticGuiElement(' | return new StaticGuiElement(' | ||
| click -> { | click -> { | ||
| Line 124: | Line 133: | ||
| })); | })); | ||
| ``` | ``` | ||
| - | As you can see you can change the content of a DynamicGuiElement after a player | + | As you can see you can change the content of a DynamicGuiElement after a player |
| ### Element Group | ### Element Group | ||