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 |