Class AnvilGui
java.lang.Object
com.github.stefvanschie.inventoryframework.gui.type.util.Gui
com.github.stefvanschie.inventoryframework.gui.type.util.NamedGui
com.github.stefvanschie.inventoryframework.gui.type.AnvilGui
- All Implemented Interfaces:
InventoryBased, InventoryHolder
Represents a gui in the form of an anvil
- Since:
- 0.8.0
-
Field Summary
Fields inherited from class Gui
humanEntityCache, inventory, onBottomClick, onBottomDrag, onClose, onGlobalClick, onGlobalDrag, onOutsideClick, onTopClick, onTopDrag, plugin, updating -
Constructor Summary
ConstructorsConstructorDescriptionAnvilGui(@NotNull com.github.stefvanschie.inventoryframework.adventuresupport.TextHolder title) Constructs a new anvil guiAnvilGui(@NotNull com.github.stefvanschie.inventoryframework.adventuresupport.TextHolder title, @NotNull Plugin plugin) Constructs a new anvil gui for the givenplugin.Constructs a new anvil guiConstructs a new anvil gui for the givenplugin. -
Method Summary
Modifier and TypeMethodDescriptionvoidclick(@NotNull InventoryClickEvent event) This should delegate the provided inventory click event to the right pane, which can then handle this click event further.@NotNull AnvilGuicopy()Makes a copy of this gui and returns it.@NotNull InventoryCreates a new inventory of the type of the implementing class.@NotNull GuiComponentGets the gui component representing the first item@NotNull InventorygetItems()Gets all theGuiIteminstances in this gui.@NotNull GuiComponentGets the gui component representing the player inventory@NotNull StringGets the rename text currently specified in the anvil.@NotNull GuiComponentGets the gui component representing the result@NotNull GuiComponentGets the gui component representing the second itemintGets the count ofHumanEntityinstances that are currently viewing this GUI.@NotNull List<HumanEntity> Gets a mutable snapshot of the currentHumanEntityviewers of this GUI.booleanGets whether the player inventory is currently in use.static @Nullable AnvilGuiload(@NotNull Object instance, @NotNull InputStream inputStream) Loads an anvil gui from an XML file.static @Nullable AnvilGuiload(@NotNull Object instance, @NotNull InputStream inputStream, @NotNull Plugin plugin) Loads an anvil gui from an XML file.static @NotNull AnvilGuiLoads an anvil gui from the specified element, applying code references to the provided instance.static @NotNull AnvilGuiLoads an anvil gui from the specified element, applying code references to the provided instance.voidsetCost(short cost) Sets the enchantment level cost for this anvil gui.voidsetOnNameInputChanged(@NotNull Consumer<? super String> onNameInputChanged) Sets the consumer that should be called whenever the name input is changed.voidshow(@NotNull HumanEntity humanEntity) Shows a gui to a playervoidupdate()Update the gui for everyoneMethods inherited from class NamedGui
getTitle, getTitleHolder, isDirty, markChanges, setTitle, setTitleMethods inherited from class Gui
addInventory, callCallback, callOnBottomClick, callOnBottomDrag, callOnClose, callOnGlobalClick, callOnGlobalDrag, callOnOutsideClick, callOnTopClick, callOnTopDrag, getGui, getHumanEntityCache, initializeOrThrow, isUpdating, loadPane, loadPane, navigateToParent, registerGui, registerPane, registerPane, registerProperty, setOnBottomClick, setOnBottomDrag, setOnClose, setOnGlobalClick, setOnGlobalDrag, setOnOutsideClick, setOnTopClick, setOnTopDrag, setParent
-
Constructor Details
-
AnvilGui
Constructs a new anvil gui- Parameters:
title- the title/name of this gui.- Since:
- 0.8.0
-
AnvilGui
public AnvilGui(@NotNull @NotNull com.github.stefvanschie.inventoryframework.adventuresupport.TextHolder title) Constructs a new anvil gui- Parameters:
title- the title/name of this gui.- Since:
- 0.10.0
-
AnvilGui
-
AnvilGui
public AnvilGui(@NotNull @NotNull com.github.stefvanschie.inventoryframework.adventuresupport.TextHolder title, @NotNull @NotNull Plugin plugin) Constructs a new anvil gui for the givenplugin.- Parameters:
title- the title/name of this gui.plugin- the owning plugin of this gui- Since:
- 0.10.8
- See Also:
-
-
Method Details
-
update
-
getItems
-
show
Description copied from class:GuiShows a gui to a player -
copy
Description copied from class:GuiMakes a copy of this gui and returns it. This makes a deep copy of the gui. This entails that the underlying panes will be copied as per theirPane.copy()and miscellaneous data will be copied. The copy of this gui, will however have no viewers even if this gui currently has viewers. With this, cache data for viewers will also be non-existent for the copied gui. The original owning plugin of the gui is preserved, but the plugin will not be deeply copied. The returned gui will never be reference equal to the current gui. -
click
Description copied from class:GuiThis should delegate the provided inventory click event to the right pane, which can then handle this click event further. This should not call any internal click handlers, since those will already have been activated. -
getInventory
- Specified by:
getInventoryin interfaceInventoryHolder
-
setCost
public void setCost(short cost) Sets the enchantment level cost for this anvil gui. Taking the item from the result slot will not actually remove these levels. Having a cost specified does not impede a player's ability to take the item in the result item, even if the player does not have the specified amount of levels. The cost must be a non-negative number.- Parameters:
cost- the cost- Throws:
IllegalArgumentException- when the cost is less than zero- Since:
- 0.10.8
-
createInventory
Description copied from interface:InventoryBasedCreates a new inventory of the type of the implementing class.- Specified by:
createInventoryin interfaceInventoryBased- Returns:
- the new inventory
-
getRenameText
Gets the rename text currently specified in the anvil.- Returns:
- the rename text
- Since:
- 0.8.0
- See Also:
-
isPlayerInventoryUsed
@Contract(pure=true) public boolean isPlayerInventoryUsed()Description copied from class:GuiGets whether the player inventory is currently in use. This means whether the player inventory currently has an item in it.- Specified by:
isPlayerInventoryUsedin classGui- Returns:
- true if the player inventory is occupied, false otherwise
-
getViewerCount
@Contract(pure=true) public int getViewerCount()Description copied from class:GuiGets the count ofHumanEntityinstances that are currently viewing this GUI.- Specified by:
getViewerCountin classGui- Returns:
- the count of viewers
-
getViewers
Description copied from class:GuiGets a mutable snapshot of the currentHumanEntityviewers of this GUI. This is a snapshot (copy) and not a view, therefore modifications aren't visible.- Specified by:
getViewersin classGui- Returns:
- a snapshot of the current viewers
- See Also:
-
setOnNameInputChanged
Sets the consumer that should be called whenever the name input is changed. The argument is the new input. When this consumer is invoked, the value as returned bygetRenameText()will not have updated yet, hence allowing you to see the old value via that.- Parameters:
onNameInputChanged- the consumer to call when the rename input is changed- Since:
- 0.10.10
-
getFirstItemComponent
Gets the gui component representing the first item- Returns:
- the first item component
- Since:
- 0.8.0
-
getSecondItemComponent
Gets the gui component representing the second item- Returns:
- the second item component
- Since:
- 0.8.0
-
getResultComponent
Gets the gui component representing the result- Returns:
- the result component
- Since:
- 0.8.0
-
getPlayerGuiComponent
Gets the gui component representing the player inventory- Returns:
- the player gui component
- Since:
- 0.8.0
-
load
@Nullable @Contract(pure=true) public static @Nullable AnvilGui load(@NotNull @NotNull Object instance, @NotNull @NotNull InputStream inputStream, @NotNull @NotNull Plugin plugin) Loads an anvil gui from an XML file.- Parameters:
instance- the instance on which to reference fields and methodsinputStream- the input stream containing the XML dataplugin- the plugin that will be the owner of the created gui- Returns:
- the loaded anvil gui
- Since:
- 0.10.8
- See Also:
-
load
@NotNull public static @NotNull AnvilGui load(@NotNull @NotNull Object instance, @NotNull @NotNull Element element, @NotNull @NotNull Plugin plugin) Loads an anvil gui from the specified element, applying code references to the provided instance.- Parameters:
instance- the instance on which to reference fields and methodselement- the element to load the gui fromplugin- the plugin that will own the created gui- Returns:
- the loaded anvil gui
- Since:
- 0.10.8
- See Also:
-
load
@Nullable @Contract(pure=true) public static @Nullable AnvilGui load(@NotNull @NotNull Object instance, @NotNull @NotNull InputStream inputStream) Loads an anvil gui from an XML file.- Parameters:
instance- the instance on which to reference fields and methodsinputStream- the input stream containing the XML data- Returns:
- the loaded anvil gui
- Since:
- 0.8.0
-
load
@NotNull public static @NotNull AnvilGui load(@NotNull @NotNull Object instance, @NotNull @NotNull Element element) Loads an anvil gui from the specified element, applying code references to the provided instance.- Parameters:
instance- the instance on which to reference fields and methodselement- the element to load the gui from- Returns:
- the loaded anvil gui
- Since:
- 0.8.0
-