Interface ChatParticipant

All Known Subinterfaces:
InGameSocialUser, SocialUser
All Known Implementing Classes:
AbstractSocialUser, BukkitSocialUser, ConsoleSocialUser

public interface ChatParticipant
Represents a participant in the chat system.

A ChatParticipant can have a main chat channel, optionally belong to a group channel, block certain channels, and track the last private message recipient. Some fields are wrapped in Mutable to indicate that they can be modified safely by the system or API consumers.

Implementations of this interface should provide thread-safe access to mutable fields where necessary.

  • Method Details

    • mainChannel

      Gets the participant's main chat channel.

      This is wrapped in Mutable so the main channel can be changed dynamically.

      Returns:
      a Mutable containing the current ChatChannel
    • groupChannel

      Gets the group chat channel the participant is currently part of, if any.
      Returns:
      an Optional containing the GroupChatChannel, or empty if not in a group
    • blockedChannels

      @NotNull @NotNull Set<String> blockedChannels()
      Returns the set of channel names that this participant has blocked.

      Blocked channels are those whose messages the participant will not receive.

      Returns:
      an immutable Set of blocked channel IDs
    • lastPrivateMessageRecipient

      @NotNull @NotNull Mutable<UUID> lastPrivateMessageRecipient()
      Gets the last participant to whom this user sent a private message.

      This is wrapped in Mutable so it can be updated whenever a private message is sent.

      Returns:
      a Mutable containing the UUID of the last private message recipient