Class AsyncPlayerChatEvent

All Implemented Interfaces:
Cancellable

public class AsyncPlayerChatEvent extends PlayerEvent implements Cancellable
This event will sometimes fire synchronously, depending on how it was triggered.

The constructor provides a boolean to indicate if the event was fired synchronously or asynchronously. When asynchronous, this event can be called from any thread, sans the main thread, and has limited access to the API.

If a player is the direct cause of this event by an incoming packet, this event will be asynchronous. If a plugin triggers this event by compelling a player to chat, this event will be synchronous.

Care should be taken to check Event.isAsynchronous() and treat the event appropriately.

  • Constructor Details

    • AsyncPlayerChatEvent

      public AsyncPlayerChatEvent(boolean async, @NotNull Player who, @NotNull String message, @NotNull Set<Player> players)
      Parameters:
      async - This changes the event to a synchronous state.
      who - the chat sender
      message - the message sent
      players - the players to receive the message. This may be a lazy or unmodifiable collection.
  • Method Details

    • getMessage

      @NotNull public String getMessage()
      Gets the message that the player is attempting to send. This message will be used with getFormat().
      Returns:
      Message the player is attempting to send
    • setMessage

      public void setMessage(@NotNull String message)
      Sets the message that the player will send. This message will be used with getFormat().
      Parameters:
      message - New message that the player will send
    • getFormat

      @NotNull public String getFormat()
      Gets the format to use to display this chat message.

      When this event finishes execution, the first format parameter is the Player.getDisplayName() and the second parameter is getMessage()

      Returns:
      String.format(String, Object...) compatible format string
    • setFormat

      public void setFormat(@NotNull String format) throws IllegalFormatException, NullPointerException
      Sets the format to use to display this chat message.

      When this event finishes execution, the first format parameter is the Player.getDisplayName() and the second parameter is getMessage()

      Parameters:
      format - String.format(String, Object...) compatible format string
      Throws:
      IllegalFormatException - if the underlying API throws the exception
      NullPointerException - if format is null
      See Also:
      String.format(String, Object...)
    • getRecipients

      @NotNull public Set<Player> getRecipients()
      Gets a set of recipients that this chat message will be displayed to.

      The set returned is not guaranteed to be mutable and may auto-populate on access. Any listener accessing the returned set should be aware that it may reduce performance for a lazy set implementation.

      Listeners should be aware that modifying the list may throw UnsupportedOperationException if the event caller provides an unmodifiable set.

      Returns:
      All Players who will see this chat message
    • 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)
      Description copied from interface: Cancellable
      Sets 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:
      setCancelled in interface Cancellable
      Parameters:
      cancel - true if you wish to cancel this event
    • getHandlers

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

      @NotNull public static HandlerList getHandlerList()