swiftlys2/docs/api/ai/
API Reference Menus.OptionsBase

InputMenuOption

Class
Namespace: SwiftlyS2.Core.Menus.OptionsBase · Assembly: SwiftlyS2.CS2.dll
public sealed class InputMenuOption : MenuOptionBase, IMenuOption, IDisposable

Represents a menu option that allows text input from players.

View source

Constructors

InputMenuOption(int, Func<string, bool>?, string, string?, int, int)

Creates an instance of InputMenuOption.

public InputMenuOption(int maxLength = 16, Func<string, bool>? validator = null, string defaultValue = "", string? hintMessage = null, int updateIntervalMs = 120, int pauseIntervalMs = 1000)
Parameters
  • maxLengthintoptionalMaximum input length. Defaults to 16.
  • validatorFunc<string, bool>?optionalOptional function to validate input. Returns true if valid.
  • defaultValuestringoptionalThe default input value. Defaults to empty string.
  • hintMessagestring?optionalOptional hint message to display when waiting for input. Defaults to English prompt.
  • updateIntervalMsintoptionalThe interval in milliseconds between text updates. Defaults to 120ms.
  • pauseIntervalMsintoptionalThe pause duration in milliseconds before starting the next text update cycle. Defaults to 1000ms.

When using this constructor, the Text property must be manually set to specify the initial text.

InputMenuOption(string, int, Func<string, bool>?, string, string?, int, int)

Creates an instance of InputMenuOption.

public InputMenuOption(string text, int maxLength = 16, Func<string, bool>? validator = null, string defaultValue = "", string? hintMessage = null, int updateIntervalMs = 120, int pauseIntervalMs = 1000)
Parameters
  • textstringThe text content to display.
  • maxLengthintoptionalMaximum input length. Defaults to 16.
  • validatorFunc<string, bool>?optionalOptional function to validate input. Returns true if valid.
  • defaultValuestringoptionalThe default input value. Defaults to empty string.
  • hintMessagestring?optionalOptional hint message to display when waiting for input. Defaults to English prompt.
  • updateIntervalMsintoptionalThe interval in milliseconds between text updates. Defaults to 120ms.
  • pauseIntervalMsintoptionalThe pause duration in milliseconds before starting the next text update cycle. Defaults to 1000ms.

Methods

Dispose()

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

public override void Dispose()

GetDisplayText(IPlayer, int)

Gets the display text for this option as it should appear to the specified player.

public override string GetDisplayText(IPlayer player, int displayLine = 0)
Parameters
  • playerIPlayerThe player requesting the display text.
  • displayLineintoptionalThe display line index of the option.
Returns
The formatted display text for the option.

When a menu option occupies multiple lines, MenuAPI may only need to display a specific line of that option. When LineCount=1 : The displayLine parameter is not needed; return the HTML-formatted string directly. When LineCount>=2 : Check the displayLine parameter: displayLine=0 : Return all content displayLine=1 : Return only the first line content displayLine=2 : Return only the second line content And so on... Note: MenuAPI ensures that the displayLine parameter will not exceed the option's LineCount .

GetValue(IPlayer)

Gets the current input value for the specified player.

public string GetValue(IPlayer player)
Parameters
  • playerIPlayerThe player whose value to retrieve.
Returns
The current input value.

SetValue(IPlayer, string)

Sets the input value for the specified player and triggers validation.

public bool SetValue(IPlayer player, string value)
Parameters
  • playerIPlayerThe player whose value to set.
  • valuestringThe value to set.
Returns
True if the value is valid and was set, false otherwise.

ValueChanged

Occurs when a player submits a valid input value.

public event EventHandler<MenuOptionValueChangedEventArgs<string>>? ValueChanged
Value
EventHandler<MenuOptionValueChangedEventArgs<string>>?