Class Target

java.lang.Object
dev.ua.theroer.magicutils.messaging.Target

public final class Target extends Object
Addressing hint describing which network members should receive a message.

Targets are transport-agnostic. The default plugin-messaging transport and the Redis transport interpret each Target.Kind on a best-effort basis; where a transport cannot honour a target precisely it falls back to a broadcast and lets receivers filter by serverName() / playerId().

  • Method Details

    • broadcast

      public static Target broadcast()
      A message for every subscriber on the channel, on every member.
      Returns:
      broadcast target
    • allBackends

      public static Target allBackends()
      A message for every backend server, excluding the proxy.
      Returns:
      all-backends target
    • proxy

      public static Target proxy()
      A message for the proxy only.
      Returns:
      proxy target
    • server

      public static Target server(String serverName)
      A message for a single backend server by its registered name.
      Parameters:
      serverName - backend server name (as known to the proxy)
      Returns:
      server target
    • player

      public static Target player(UUID playerId)
      A message for whichever backend currently hosts the given player.
      Parameters:
      playerId - player UUID
      Returns:
      player target
    • kind

      public Target.Kind kind()
      Returns the target kind.
      Returns:
      target kind
    • serverName

      @Nullable public @Nullable String serverName()
      Returns the destination server name for Target.Kind.SERVER.
      Returns:
      server name, or null for other kinds
    • playerId

      @Nullable public @Nullable UUID playerId()
      Returns the destination player id for Target.Kind.PLAYER.
      Returns:
      player id, or null for other kinds
    • equals

      public boolean equals(Object other)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object