Class AsyncTabCompleteEvent

java.lang.Object
org.bukkit.event.Event
com.destroystokyo.paper.event.server.AsyncTabCompleteEvent
All Implemented Interfaces:
Cancellable

@NullMarked public class AsyncTabCompleteEvent extends Event implements Cancellable
Allows plugins to compute tab completion results asynchronously.

If this event provides completions, then the standard synchronous process will not be fired to populate the results. However, the synchronous TabCompleteEvent will fire with the Async results.

Only 1 process will be allowed to provide completions, the Async Event, or the standard process.

  • Constructor Details

  • Method Details

    • getSender

      public CommandSender getSender()
      Get the sender completing this command.
      Returns:
      the CommandSender instance
    • getCompletions

      public List<String> getCompletions()
      The list of completions which will be offered to the sender, in order. This list is mutable and reflects what will be offered.

      If this collection is not empty after the event is fired, then the standard process of calling Command.tabComplete(CommandSender, String, String[]) or current player names will not be called.

      Returns:
      a list of offered completions
    • setCompletions

      public void setCompletions(List<String> completions)
      Set the completions offered, overriding any already set. If this collection is not empty after the event is fired, then the standard process of calling Command.tabComplete(CommandSender, String, String[]) or current player names will not be called.

      The passed collection will be cloned to a new List. You must call {getCompletions()} to mutate from here

      Parameters:
      completions - the new completions
    • completions

      public List<AsyncTabCompleteEvent.Completion> completions()
      The list of completions which will be offered to the sender, in order. This list is mutable and reflects what will be offered.

      If this collection is not empty after the event is fired, then the standard process of calling Command.tabComplete(CommandSender, String, String[]) or current player names will not be called.

      Returns:
      a list of offered completions
    • completions

      public void completions(List<AsyncTabCompleteEvent.Completion> newCompletions)
      Set the completions offered, overriding any already set. If this collection is not empty after the event is fired, then the standard process of calling Command.tabComplete(CommandSender, String, String[]) or current player names will not be called.

      The passed collection will be cloned to a new List. You must call completions() to mutate from here

      Parameters:
      newCompletions - the new completions
    • getBuffer

      public String getBuffer()
      Return the entire buffer which formed the basis of this completion.
      Returns:
      command buffer, as entered
    • isCommand

      public boolean isCommand()
      Returns:
      true if it is a command being tab completed, false if it is a chat message.
    • getLocation

      public @Nullable Location getLocation()
      Returns:
      The position looked at by the sender, or null if none
    • isHandled

      public boolean isHandled()
      If true, the standard process of calling Command.tabComplete(CommandSender, String, String[]) or current player names will not be called.
      Returns:
      Is completions considered handled. Always true if completions is not empty.
    • setHandled

      public void setHandled(boolean handled)
      Sets whether to consider the completion request handled. If true, the standard process of calling Command.tabComplete(CommandSender, String, String[]) or current player names will not be called.
      Parameters:
      handled - if this completion should be marked as being handled
    • isCancelled

      public boolean isCancelled()
      Description copied from interface: Cancellable
      Gets the cancellation state of this event. A cancelled event will not be executed in the server, but will still pass to other plugins
      Specified by:
      isCancelled in interface Cancellable
      Returns:
      true if this event is cancelled
    • setCancelled

      public void setCancelled(boolean cancel)
      Sets the cancellation state of this event. A cancelled event will not be executed in the server, but will still pass to other plugins.
      Will provide no completions, and will not fire the synchronous process
      Specified by:
      setCancelled in interface Cancellable
      Parameters:
      cancel - true if you wish to cancel this event
    • getHandlers

      public HandlerList getHandlers()
      Specified by:
      getHandlers in class Event
    • getHandlerList

      public static HandlerList getHandlerList()