Class IceModule

java.lang.Object
com.hypixel.hytale.server.core.io.ice.IceModule

public final class IceModule extends Object
Attaches an IceResponder to every quiche listener, so connectivity checks are answered on the socket that carries the connection.

Only the quiche transport is supported. Its reader loop demultiplexes STUN before handing bytes to QUIC.

A host bound on both address families has two listeners and two sockets, so the responders are per listener rather than global.

A player-hosted world uses its client to mint credentials and configure each peer.

  • Method Details

    • registerPeer

      public static boolean registerPeer(@Nonnull IceCredentials local, @Nonnull IceCredentials remote, @Nonnull List<InetSocketAddress> remoteCandidates)
      Registers a peer with every quiche listener, so a check arriving on either family is answered.
      Returns:
      false when no listener could accept it, which means ICE hosting is unavailable here
    • unregisterPeer

      public static void unregisterPeer(@Nonnull String localUfrag)
    • shutdown

      public static void shutdown()
      Drops every registration and detaches the handlers, for when the world stops accepting joins.