Package org.bukkit.conversations

# Class ValidatingPrompt

java.lang.Object
org.bukkit.conversations.ValidatingPrompt

All Implemented Interfaces:
  `Cloneable`, `Prompt`

Direct Known Subclasses:
  `BooleanPrompt`, `FixedSetPrompt`, `NumericPrompt`, `PlayerNamePrompt`, `RegexPrompt`

public abstract class ValidatingPrompt extends Object implements Prompt
ValidatingPrompt is the base class for any prompt that requires validation. ValidatingPrompt will keep replaying the prompt text until the user enters a valid response.

## Field Summary

### Fields inherited from interface org.bukkit.conversations.Prompt

`END_OF_CONVERSATION`

## Constructor Summary

Constructors
Constructor
Description
`ValidatingPrompt()`

## Method Summary

Modifier and Type
Method
Description
`@Nullable Prompt`
`acceptInput(@NotNull ConversationContext context, @Nullable String input)`
Accepts and processes input from the user and validates it.
`protected abstract @Nullable Prompt`
`acceptValidatedInput(@NotNull ConversationContext context, @NotNull String input)`
Override this method to accept and processes the validated input from the user.
`boolean`
`blocksForInput(@NotNull ConversationContext context)`
Ensures that the prompt waits for the user to provide input.
`protected @Nullable String`
`getFailedValidationText(@NotNull ConversationContext context, @NotNull String invalidInput)`
Optionally override this method to display an additional message if the user enters an invalid input.
`protected abstract boolean`
`isInputValid(@NotNull ConversationContext context, @NotNull String input)`
Override this method to check the validity of the player's input.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.bukkit.conversations.Prompt

`getPromptText`

## Constructor Details

### ValidatingPrompt

public ValidatingPrompt()

## Method Details

### acceptInput

@Nullable public @Nullable Prompt acceptInput(@NotNull @NotNull ConversationContext context, @Nullable @Nullable String input)
Accepts and processes input from the user and validates it. If validation fails, this prompt is returned for re-execution, otherwise the next Prompt in the prompt graph is returned.

Specified by:
  `acceptInput` in interface `Prompt`
Parameters:
  `context` - Context information about the conversation.
  `input` - The input text from the user.
Returns:
  This prompt or the next Prompt in the prompt graph.

### blocksForInput

public boolean blocksForInput(@NotNull @NotNull ConversationContext context)
Ensures that the prompt waits for the user to provide input.

Specified by:
  `blocksForInput` in interface `Prompt`
Parameters:
  `context` - Context information about the conversation.
Returns:
  True.

### isInputValid

protected abstract boolean isInputValid(@NotNull @NotNull ConversationContext context, @NotNull @NotNull String input)
Override this method to check the validity of the player's input.

Parameters:
  `context` - Context information about the conversation.
  `input` - The player's raw console input.
Returns:
  True or false depending on the validity of the input.

### acceptValidatedInput

@Nullable protected abstract @Nullable Prompt acceptValidatedInput(@NotNull @NotNull ConversationContext context, @NotNull @NotNull String input)
Override this method to accept and processes the validated input from the user. Using the input, the next Prompt in the prompt graph should be returned.

Parameters:
  `context` - Context information about the conversation.
  `input` - The validated input text from the user.
Returns:
  The next Prompt in the prompt graph.

### getFailedValidationText

@Nullable protected @Nullable String getFailedValidationText(@NotNull @NotNull ConversationContext context, @NotNull @NotNull String invalidInput)
Optionally override this method to display an additional message if the user enters an invalid input.

Parameters:
  `context` - Context information about the conversation.
  `invalidInput` - The invalid input provided by the user.
Returns:
  A message explaining how to correct the input.