AnvilSearchGui

class AnvilSearchGui(player: ServerPlayer, title: Component, defaultText: String, validator: (String) -> AnvilSearchGui.ValidationResult, onConfirm: (String) -> Unit, onCancel: () -> Unit) : AnvilInputGui(source)

Reusable anvil input GUI with live validation feedback.

The right-side output slot dynamically shows a green checkmark (valid) or red indicator (invalid) as the player types. Used for book search, naming, and any text-entry workflow.

Parameters

player

The player viewing the GUI

title

Title displayed on the anvil screen

defaultText

Initial text in the input field

validator

Called on each keystroke to validate input

onConfirm

Called when the player clicks the confirmed valid result

onCancel

Called when the player closes the GUI or clicks cancel

Constructors

Link copied to clipboard
constructor(player: ServerPlayer, title: Component, defaultText: String, validator: (String) -> AnvilSearchGui.ValidationResult, onConfirm: (String) -> Unit, onCancel: () -> Unit)

Types

Link copied to clipboard
data class ValidationResult(val valid: Boolean, val message: Component)

Result of validating anvil input.

Properties

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open val height: Int
Link copied to clipboard
open val input: String?
Link copied to clipboard
Link copied to clipboard
open val isOpen: Boolean
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open val player: ServerPlayer?
Link copied to clipboard
open val size: Int
Link copied to clipboard
open val syncId: Int
Link copied to clipboard
open var title: Component?
Link copied to clipboard
open val type: MenuType<*>?
Link copied to clipboard
open val virtualSize: Int
Link copied to clipboard
open val width: Int

Functions

Link copied to clipboard
open fun addSlot(element: GuiElementBuilderInterface<*>?)
open fun addSlot(element: GuiElementInterface?)
open fun addSlot(itemStack: ItemStack?)
open fun addSlot(itemStack: ItemStack?, callback: GuiElementInterface.ClickCallback?)
open fun addSlot(itemStack: ItemStack?, callback: GuiElementInterface.ItemClickCallback?)
Link copied to clipboard
open fun addSlotRedirect(slot: Slot?)
Link copied to clipboard
open fun afterOpen()
Link copied to clipboard
open fun beforeOpen()
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open fun clearSlot(index: Int)
Link copied to clipboard
@ApiStatus.Internal
open fun click(index: Int, type: ClickType?, action: ClickType?): Boolean
Link copied to clipboard
open fun close()
open fun close(screenHandlerIsClosed: Boolean)
Link copied to clipboard
open fun getHotbarSlotIndex(slots: Int, index: Int): Int
Link copied to clipboard
open fun getSlot(index: Int): GuiElementInterface?
Link copied to clipboard
open fun getSlotRedirect(index: Int): Slot?
Link copied to clipboard
@Nullable
open fun getSlotRedirectOrPlayer(index: Int): @Nullable Slot?
Link copied to clipboard
open fun handleException(throwable: Throwable?)
Link copied to clipboard
@ApiStatus.Internal
open fun input(input: String?)
Link copied to clipboard
open fun insertItem(stack: ItemStack?, slots: List<Slot?>?, fromLast: Boolean): Boolean
open fun insertItem(stack: ItemStack?, startIndex: Int, endIndex: Int, fromLast: Boolean): Boolean
Link copied to clipboard
open fun onAnyClick(index: Int, type: ClickType?, action: ClickType?): Boolean
Link copied to clipboard
open fun onButtonClick(id: Int): Boolean
Link copied to clipboard
open fun onClick(index: Int, type: ClickType?, action: ClickType?, element: GuiElementInterface?): Boolean
Link copied to clipboard
open override fun onClose()
Link copied to clipboard
open fun onCraftRequest(recipe: RecipeDisplayId?, shift: Boolean)
Link copied to clipboard
open override fun onInput(input: String)
Link copied to clipboard
open fun onOpen()
Link copied to clipboard
open fun onPlayerClose(success: Boolean)
Link copied to clipboard
Link copied to clipboard
open fun onTick()
Link copied to clipboard
open fun open(): Boolean
Link copied to clipboard
open fun openAsScreenHandler(syncId: Int, playerInventory: Inventory?, player: Player?): AbstractContainerMenu?
Link copied to clipboard
open fun quickMove(index: Int): ItemStack?
Link copied to clipboard
Link copied to clipboard
open fun sendProperty(property: ScreenProperty?, value: Int)
open fun sendProperty(property: Int, value: Int)
Link copied to clipboard
open fun sendRawProperty(id: Int, value: Int)
Link copied to clipboard
open fun setDefaultInputValue(input: String?)
Link copied to clipboard
open fun setSlot(index: Int, element: GuiElementBuilderInterface<*>?)
open fun setSlot(index: Int, element: GuiElementInterface?)
open fun setSlot(index: Int, itemStack: ItemStack?)
open fun setSlot(index: Int, itemStack: ItemStack?, callback: GuiElementInterface.ClickCallback?)
open fun setSlot(index: Int, itemStack: ItemStack?, callback: GuiElementInterface.ItemClickCallback?)
Link copied to clipboard
open fun setSlotRedirect(index: Int, slot: Slot?)