Interface ServerToClient

Hierarchy

Indexable

[k: `gamelist-count-${string}`]: ServerToClient["gamelist-count-:channel"]

Properties

ERROR: ((data: string | {
    errcode: string;
}) => void)

Type declaration

HUP: (() => void)

Type declaration

    • (): void
    • The client should reload

      Returns void

active-bots: ((data: {
    [id: number]: User;
}) => void)

Type declaration

    • (data: {
          [id: number]: User;
      }): void
    • Updates the list of bots that are connected and ready to the server

      Parameters

      • data: {
            [id: number]: User;
        }

      Returns void

active_game: ((data: GameListEntry) => void)

Type declaration

    • (data: GameListEntry): void
    • Message to inform the client of an active game, or a change to an existing game

      Parameters

      Returns void

automatch/cancel: ((data: {
    uuid: string;
}) => void)

Type declaration

    • (data: {
          uuid: string;
      }): void
    • An automatch request was canceled

      Parameters

      • data: {
            uuid: string;
        }
        • uuid: string

      Returns void

automatch/entry: ((data: AutomatchPreferences) => void)

Type declaration

automatch/start: ((data: {
    game_id: number;
    uuid: string;
}) => void)

Type declaration

    • (data: {
          game_id: number;
          uuid: string;
      }): void
    • An automatch request was started

      Parameters

      • data: {
            game_id: number;
            uuid: string;
        }
        • game_id: number
        • uuid: string

      Returns void

chat-join: ((data: {
    channel: string;
    users: User[];
}) => void)

Type declaration

    • (data: {
          channel: string;
          users: User[];
      }): void
    • User(s) joined a chat channel

      Parameters

      • data: {
            channel: string;
            users: User[];
        }
        • channel: string

          The channel

        • users: User[]

          List of users that joined

      Returns void

chat-message: ((data: {
    channel: string;
    country?: string;
    id: number;
    message: {
        i?: string;
        m: string;
        t: number;
    };
    professional: boolean;
    ranking: number;
    system?: true;
    system_message_type?: "flood";
    ui_class: string;
    username: string;
}) => void)

Type declaration

    • (data: {
          channel: string;
          country?: string;
          id: number;
          message: {
              i?: string;
              m: string;
              t: number;
          };
          professional: boolean;
          ranking: number;
          system?: true;
          system_message_type?: "flood";
          ui_class: string;
          username: string;
      }): void
    • Chat message was received

      Parameters

      • data: {
            channel: string;
            country?: string;
            id: number;
            message: {
                i?: string;
                m: string;
                t: number;
            };
            professional: boolean;
            ranking: number;
            system?: true;
            system_message_type?: "flood";
            ui_class: string;
            username: string;
        }
        • channel: string

          The channel

        • Optional country?: string

          Country the user is from

        • id: number

          User id of the sender

        • message: {
              i?: string;
              m: string;
              t: number;
          }

          The message received

          • Optional i?: string

            Message id. This is always set for non system mesages.

          • m: string

            Message text

          • t: number

            Timestamp of the message

        • professional: boolean

          True if the user is a professional

        • ranking: number

          Ranking of the sender

        • Optional system?: true

          Whether it's a system message or not

        • Optional system_message_type?: "flood"
        • ui_class: string

          UI class of the sender

        • username: string

          Username of the sender

      Returns void

chat-message-removed: ((data: {
    channel: string;
    uuid: string;
}) => void)

Type declaration

    • (data: {
          channel: string;
          uuid: string;
      }): void
    • A chat message should be removed from the display

      Parameters

      • data: {
            channel: string;
            uuid: string;
        }
        • channel: string

          The channel

        • uuid: string

          Message id. Note, despite the name, I don't think this is always a uuid in uuid format, just treat it as a string.

      Returns void

chat-part: ((data: {
    channel: string;
    user: User;
}) => void)

Type declaration

    • (data: {
          channel: string;
          user: User;
      }): void
    • User left a chat channel

      Parameters

      • data: {
            channel: string;
            user: User;
        }
        • channel: string

          The channel

        • user: User

          User that left

      Returns void

chat-topic: ((data: {
    channel: string;
    timestamp: number;
    topic: string;
}) => void)

Type declaration

    • (data: {
          channel: string;
          timestamp: number;
          topic: string;
      }): void
    • Channel topic was updated

      Parameters

      • data: {
            channel: string;
            timestamp: number;
            topic: string;
        }
        • channel: string

          The channel

        • timestamp: number

          Tiemstamp (ms) of the topic change

        • topic: string

          The new topic

      Returns void

chat-update-user: ((data: {
    channel: string;
    old_player_id: number;
    user: User;
}) => void)

Type declaration

    • (data: {
          channel: string;
          old_player_id: number;
          user: User;
      }): void
    • A user's profile was updated

      Parameters

      • data: {
            channel: string;
            old_player_id: number;
            user: User;
        }
        • channel: string

          The channel

        • old_player_id: number

          Player id entry that was update. This might change in the case of a guest logging in, in this case this will switch from being a nevative (guest) id, to some positive id. It is not expected that a non guest id should change using this system.

        • user: User

          New user details

      Returns void

game/:id/auto_resign: ((data: {
    expiration: number;
    game_id: number;
    player_id: number;
}) => void)

Type declaration

    • (data: {
          expiration: number;
          game_id: number;
          player_id: number;
      }): void
    • Informs the client the player is scheduled to resign if not cleared

      Parameters

      • data: {
            expiration: number;
            game_id: number;
            player_id: number;
        }
        • expiration: number

          Whent he auto resign will happen

        • game_id: number

          The game id

        • player_id: number

          The player id

      Returns void

game/:id/chat: ((data: {
    channel: "main" | "malkovich" | "hidden" | "personal" | "spectator" | "shadowban";
    line: GameChatLine;
}) => void)

Type declaration

    • (data: {
          channel: "main" | "malkovich" | "hidden" | "personal" | "spectator" | "shadowban";
          line: GameChatLine;
      }): void
    • A game chat message

      Parameters

      • data: {
            channel: "main" | "malkovich" | "hidden" | "personal" | "spectator" | "shadowban";
            line: GameChatLine;
        }
        • channel: "main" | "malkovich" | "hidden" | "personal" | "spectator" | "shadowban"
        • line: GameChatLine

      Returns void

game/:id/chat/remove: ((data: {
    chat_ids: string[];
    game_id: number;
}) => void)

Type declaration

    • (data: {
          chat_ids: string[];
          game_id: number;
      }): void
    • Game chat lines should be removed

      Parameters

      • data: {
            chat_ids: string[];
            game_id: number;
        }
        • chat_ids: string[]

          The chat ids

        • game_id: number

          The game id

      Returns void

game/:id/clear_auto_resign: ((data: {
    game_id: number;
    player_id: number;
}) => void)

Type declaration

    • (data: {
          game_id: number;
          player_id: number;
      }): void
    • The auto resign for the given player has been cleared

      Parameters

      • data: {
            game_id: number;
            player_id: number;
        }
        • game_id: number

          The game id

        • player_id: number

          The player id

      Returns void

game/:id/clock: ((data: GameClock) => void)

Type declaration

game/:id/conditional_moves: ((data: {
    conditional_moves: ConditionalMoveResponse;
    game_id: number;
    move_number: number;
}) => void)

Type declaration

    • (data: {
          conditional_moves: ConditionalMoveResponse;
          game_id: number;
          move_number: number;
      }): void
    • Update the conditional moves currently active

      Parameters

      • data: {
            conditional_moves: ConditionalMoveResponse;
            game_id: number;
            move_number: number;
        }
        • conditional_moves: ConditionalMoveResponse

          The conditional moves. The top level should be an array that looks like [null, { ... }] where the second element contains the responses to the opponent's move.

        • game_id: number

          The game id

        • move_number: number

          The move number from which the condtional moves are rooted in

      Returns void

game/:id/error: ((data: string) => void)

Type declaration

    • (data: string): void
    • Error that should be displayed to the user

      Parameters

      • data: string

      Returns void

game/:id/gamedata: ((data: GoEngineConfig) => void)

Type declaration

game/:id/latency: ((data: {
    game_id: number;
    latency: number;
    player_id: number;
}) => void)

Type declaration

    • (data: {
          game_id: number;
          latency: number;
          player_id: number;
      }): void
    • Update latency information for a player

      Parameters

      • data: {
            game_id: number;
            latency: number;
            player_id: number;
        }
        • game_id: number

          The game id

        • latency: number

          The latency in milliseconds

        • player_id: number

          The player id

      Returns void

game/:id/phase: ((data: "play" | "stone removal" | "finished") => void)

Type declaration

    • (data: "play" | "stone removal" | "finished"): void
    • The phase has changed for the game

      Parameters

      • data: "play" | "stone removal" | "finished"

      Returns void

game/:id/removed_stones: ((data: {
    all_removed: string;
    removed: boolean;
    stones: string;
} | {
    strict_seki_mode: boolean;
}) => void)

Type declaration

    • (data: {
          all_removed: string;
          removed: boolean;
          stones: string;
      } | {
          strict_seki_mode: boolean;
      }): void
    • Update the state of the stone removal phase

      Parameters

      • data: {
            all_removed: string;
            removed: boolean;
            stones: string;
        } | {
            strict_seki_mode: boolean;
        }

      Returns void

game/:id/removed_stones_accepted: ((data: {
    end_time: number;
    outcome: string;
    phase: "finished";
    player_id: number;
    players: {
        black: User | {
            accepted_stones: string;
            accepted_strict_seki_mode: boolean;
        };
        white: User | {
            accepted_stones: string;
            accepted_strict_seki_mode: boolean;
        };
    };
    score: Score;
    stones: string;
    strict_seki_mode: boolean;
    winner: number;
}) => void)

Type declaration

    • (data: {
          end_time: number;
          outcome: string;
          phase: "finished";
          player_id: number;
          players: {
              black: User | {
                  accepted_stones: string;
                  accepted_strict_seki_mode: boolean;
              };
              white: User | {
                  accepted_stones: string;
                  accepted_strict_seki_mode: boolean;
              };
          };
          score: Score;
          stones: string;
          strict_seki_mode: boolean;
          winner: number;
      }): void
    • The stone removal phase has been completed, this is the final state and indicates a phase change to the given phase (should always be "finished")

      Parameters

      • data: {
            end_time: number;
            outcome: string;
            phase: "finished";
            player_id: number;
            players: {
                black: User | {
                    accepted_stones: string;
                    accepted_strict_seki_mode: boolean;
                };
                white: User | {
                    accepted_stones: string;
                    accepted_strict_seki_mode: boolean;
                };
            };
            score: Score;
            stones: string;
            strict_seki_mode: boolean;
            winner: number;
        }
        • end_time: number

          Timestamp in ms

        • outcome: string

          Outcome of the game

        • phase: "finished"

          Game phase (finished

        • player_id: number
        • players: {
              black: User | {
                  accepted_stones: string;
                  accepted_strict_seki_mode: boolean;
              };
              white: User | {
                  accepted_stones: string;
                  accepted_strict_seki_mode: boolean;
              };
          }

          Current players and their accepted stone statuses

          • black: User | {
                accepted_stones: string;
                accepted_strict_seki_mode: boolean;
            }

            Active black player id

          • white: User | {
                accepted_stones: string;
                accepted_strict_seki_mode: boolean;
            }
        • score: Score

          Score

        • stones: string
        • strict_seki_mode: boolean

          True if Japanese strict seki mode was true. This will probably always be false and may be removed in the future.

        • winner: number

          Player id of the winner

      Returns void

game/:id/reset: ((data: {
    game_id: number;
    gamestart_beep?: boolean;
    message: string;
    player_to_move: number;
}) => void)

Type declaration

    • (data: {
          game_id: number;
          gamestart_beep?: boolean;
          message: string;
          player_to_move: number;
      }): void
    • This is sent out when a game is started. This seems like a misnomer, the web client does no "resetting". This may be renamed in the future. If you care about this message, please contact anoek.

      Parameters

      • data: {
            game_id: number;
            gamestart_beep?: boolean;
            message: string;
            player_to_move: number;
        }
        • game_id: number

          The game id

        • Optional gamestart_beep?: boolean

          If a gamestart sound should be played

        • message: string

          A message to display as a notification, this seems to always be "Game has begun" for the time being.

        • player_to_move: number

          The current player to move

      Returns void

game/:id/reset-chats: (() => void)

Type declaration

    • (): void
    • The chat log should be reset.

      Returns void

game/:id/undo_accepted: ((data: number) => void)

Type declaration

    • (data: number): void
    • Undo move has been accepted, the parameter is the new move number

      Parameters

      • data: number

      Returns void

game/:id/undo_canceled: ((data: number) => void)

Type declaration

    • (data: number): void
    • Undo request has been canceled, the parameter is the move number of the original request

      Parameters

      • data: number

      Returns void

game/:id/undo_requested: ((data: number) => void)

Type declaration

    • (data: number): void
    • Undo request has been requested, the parameter is the move number that we want to go back to

      Parameters

      • data: number

      Returns void

gamelist-count: ((data: {
    correspondence: number;
    live: number;
}) => void)

Type declaration

    • (data: {
          correspondence: number;
          live: number;
      }): void
    • Update number of live and correspondence games are currently being played

      Parameters

      • data: {
            correspondence: number;
            live: number;
        }
        • correspondence: number

          Number of correspondence games

        • live: number

          Number of live games

      Returns void

gamelist-count-:channel: ((data: {
    correspondence: number;
    live: number;
}) => void)

Type declaration

    • (data: {
          correspondence: number;
          live: number;
      }): void
    • Update number of live and correspondence games are currently being played in a particular channel

      Parameters

      • data: {
            correspondence: number;
            live: number;
        }
        • correspondence: number

          Number of correspondence games

        • live: number

          Number of live games

      Returns void

hostinfo: ((data: {
    clients: number;
    hostname: string;
    uptime: number;
}) => void)

Type declaration

    • (data: {
          clients: number;
          hostname: string;
          uptime: number;
      }): void
    • General host information for the termination server you are connected to. This is a response to the hostinfo client message.

      Parameters

      • data: {
            clients: number;
            hostname: string;
            uptime: number;
        }
        • clients: number

          Number of clients connected, if available

        • hostname: string

          The hostname of the server

        • uptime: number

          Number of seconds the server has been running

      Returns void

incident-report: ((data: {
    cleared_by_user?: boolean;
    created: string;
    id: number;
    moderator?: User;
    moderator_note: string;
    report_type: string;
    reported_conversation?: string;
    reported_game?: number;
    reported_review?: number;
    reported_user?: User;
    reporter_note: string;
    reporter_note_translation: {
        source_language: string;
        source_text: string;
        target_language: string;
        target_text: string;
    };
    reporting_user?: User;
    source: string;
    state: "pending" | "claimed" | "resolved";
    system_note: string;
    updated: string;
    url: string;
    was_helpful: boolean;
}) => void)

Type declaration

    • (data: {
          cleared_by_user?: boolean;
          created: string;
          id: number;
          moderator?: User;
          moderator_note: string;
          report_type: string;
          reported_conversation?: string;
          reported_game?: number;
          reported_review?: number;
          reported_user?: User;
          reporter_note: string;
          reporter_note_translation: {
              source_language: string;
              source_text: string;
              target_language: string;
              target_text: string;
          };
          reporting_user?: User;
          source: string;
          state: "pending" | "claimed" | "resolved";
          system_note: string;
          updated: string;
          url: string;
          was_helpful: boolean;
      }): void
    • Incident report update

      Parameters

      • data: {
            cleared_by_user?: boolean;
            created: string;
            id: number;
            moderator?: User;
            moderator_note: string;
            report_type: string;
            reported_conversation?: string;
            reported_game?: number;
            reported_review?: number;
            reported_user?: User;
            reporter_note: string;
            reporter_note_translation: {
                source_language: string;
                source_text: string;
                target_language: string;
                target_text: string;
            };
            reporting_user?: User;
            source: string;
            state: "pending" | "claimed" | "resolved";
            system_note: string;
            updated: string;
            url: string;
            was_helpful: boolean;
        }
        • Optional cleared_by_user?: boolean
        • created: string
        • id: number
        • Optional moderator?: User
        • moderator_note: string
        • report_type: string
        • Optional reported_conversation?: string
        • Optional reported_game?: number
        • Optional reported_review?: number
        • Optional reported_user?: User
        • reporter_note: string
        • reporter_note_translation: {
              source_language: string;
              source_text: string;
              target_language: string;
              target_text: string;
          }
          • source_language: string
          • source_text: string
          • target_language: string
          • target_text: string
        • Optional reporting_user?: User
        • source: string
        • state: "pending" | "claimed" | "resolved"
        • system_note: string
        • updated: string
        • url: string
        • was_helpful: boolean

      Returns void

itc: ((data: {
    data: any;
    event: string;
}) => void)

Type declaration

    • (data: {
          data: any;
          event: string;
      }): void
    • "Inter Tab Communication" message. This is a client utility to enable relaying of messages between devices - the event and data are application defined, the server blindly relays to all connected devices for the sending user. Note this is relayed to all devices regardless of client, so your application should be prepared to handle ITC messages from other applications, not just your own application. (For instance, the web client sending this will arrive on an android and ios instance)

      Parameters

      • data: {
            data: any;
            event: string;
        }
        • data: any

          User defined data

        • event: string

          User defined event string

      Returns void

net/pong: ((data: {
    client: number;
    server: number;
}) => void)

Type declaration

    • (data: {
          client: number;
          server: number;
      }): void
    • Pong response from a ping

      Parameters

      • data: {
            client: number;
            server: number;
        }
        • client: number

          Client timestamp that was sent

        • server: number

          Server timestamp when it was received

      Returns void

notification: ((data: {
    type: string;
    [key: string]: any;
}) => void)

Type declaration

private-message: ((data: {
    from: User;
    message: {
        i: string;
        m: string;
        t: number;
    };
    superchat_enabled?: boolean;
    to: User;
}) => void)

Type declaration

    • (data: {
          from: User;
          message: {
              i: string;
              m: string;
              t: number;
          };
          superchat_enabled?: boolean;
          to: User;
      }): void
    • A private message was received

      Parameters

      • data: {
            from: User;
            message: {
                i: string;
                m: string;
                t: number;
            };
            superchat_enabled?: boolean;
            to: User;
        }
        • from: User

          Who sent the message

        • message: {
              i: string;
              m: string;
              t: number;
          }

          The message received

          • i: string

            Message id.

          • m: string

            Message text

          • t: number

            Timestamp of the message

        • Optional superchat_enabled?: boolean

          If true, the private message should be forced to be in focus, this is when a moderator needs to talk with a player and ignoring the moderator is not suitable thing to do.

        • to: User

          Your user id

      Returns void

private-superchat: ((data: {
    enable: boolean;
    moderator_id: number;
    moderator_username: string;
    player_id: number;
    player_username: string;
}) => void)

Type declaration

    • (data: {
          enable: boolean;
          moderator_id: number;
          moderator_username: string;
          player_id: number;
          player_username: string;
      }): void
    • Notify the client that a private message "super chat" has started. A super chat is an undismissable chat sent by a moderator. It should take all focus and not let the client do anything until the conversation is resolved (the enable flag is set to false)

      Parameters

      • data: {
            enable: boolean;
            moderator_id: number;
            moderator_username: string;
            player_id: number;
            player_username: string;
        }
        • enable: boolean

          Whether the superchat is enabled or not. When true, the client should make an undismissable chat window, when false the window can be dismissed.

        • moderator_id: number

          The moderator id contacting the player

        • moderator_username: string

          The moderator username contacting the player

        • player_id: number

          Your id

        • player_username: string

          Your username

      Returns void

remote_storage/sync_complete: (() => void)

Type declaration

    • (): void
    • Notification that the server has completed sending all remote storage data and the client should now be up to date.

      Returns void

remote_storage/update: ((data: {
    key: string;
    modified: string;
    replication: RemoteStorageReplication;
    value: any;
}) => void)

Type declaration

    • (data: {
          key: string;
          modified: string;
          replication: RemoteStorageReplication;
          value: any;
      }): void
    • Updates a key value pair

      Parameters

      • data: {
            key: string;
            modified: string;
            replication: RemoteStorageReplication;
            value: any;
        }
        • key: string

          Key for the k/v pair

        • modified: string

          Timestamp of the update

        • replication: RemoteStorageReplication

          Replication mode

        • value: any

          Value of of the k/v pair

      Returns void

review/:id/full_state: ((data: ReviewMessage[]) => void)

Type declaration

review/:id/r: ((data: ReviewMessage) => void)

Type declaration

score-estimator-enabled-state: ((data: {
    game_id: number;
    shared_ip_with_player: boolean;
}) => void)

Type declaration

    • (data: {
          game_id: number;
          shared_ip_with_player: boolean;
      }): void
    • Notifies the client whether the the client shares an IP with one of the players of the game. This is used to disable the score estimator in anonymous browsing windows for players of a game when the score estimator is disabled for the game.

      Parameters

      • data: {
            game_id: number;
            shared_ip_with_player: boolean;
        }
        • game_id: number

          The game ID

        • shared_ip_with_player: boolean

          True if the client shares an IP with one of the players of the game

      Returns void

seekgraph/global: ((data: {
    challenge_id: number;
    delete: true;
} | {
    black: User;
    challenge_id: number;
    creator: number;
    game_id: number;
    game_started?: true;
    rengo?: true;
    rengo_auto_start?: boolean;
    rengo_black_team?: number[];
    rengo_casual_mode?: boolean;
    rengo_white_team?: number[];
    time_control: string;
    time_control_parameters: JGOFTimeControl;
    white: User;
} | {
    challenge_id: number;
    challenger_color: "black" | "white" | "automatic";
    disable_analysis: boolean;
    game_id: number;
    handicap: null | number;
    height: number;
    invite_only: boolean;
    komi: null | number;
    max_rank: number;
    min_rank: number;
    name: string;
    professional: boolean;
    ranked: boolean;
    ranking: number;
    rengo: boolean;
    rengo_auto_start: boolean;
    rengo_black_team: number[];
    rengo_casual_mode: boolean;
    rengo_nominees: number[];
    rengo_participants: number[];
    rengo_white_team: number[];
    rules: string;
    time_control: string;
    time_control_parameters: JGOFTimeControl;
    time_per_move: number;
    user_id: number;
    username: string;
    uuid: string;
    width: number;
}) => void)

Type declaration

    • (data: {
          challenge_id: number;
          delete: true;
      } | {
          black: User;
          challenge_id: number;
          creator: number;
          game_id: number;
          game_started?: true;
          rengo?: true;
          rengo_auto_start?: boolean;
          rengo_black_team?: number[];
          rengo_casual_mode?: boolean;
          rengo_white_team?: number[];
          time_control: string;
          time_control_parameters: JGOFTimeControl;
          white: User;
      } | {
          challenge_id: number;
          challenger_color: "black" | "white" | "automatic";
          disable_analysis: boolean;
          game_id: number;
          handicap: null | number;
          height: number;
          invite_only: boolean;
          komi: null | number;
          max_rank: number;
          min_rank: number;
          name: string;
          professional: boolean;
          ranked: boolean;
          ranking: number;
          rengo: boolean;
          rengo_auto_start: boolean;
          rengo_black_team: number[];
          rengo_casual_mode: boolean;
          rengo_nominees: number[];
          rengo_participants: number[];
          rengo_white_team: number[];
          rules: string;
          time_control: string;
          time_control_parameters: JGOFTimeControl;
          time_per_move: number;
          user_id: number;
          username: string;
          uuid: string;
          width: number;
      }): void
    • Parameters

      • data: {
            challenge_id: number;
            delete: true;
        } | {
            black: User;
            challenge_id: number;
            creator: number;
            game_id: number;
            game_started?: true;
            rengo?: true;
            rengo_auto_start?: boolean;
            rengo_black_team?: number[];
            rengo_casual_mode?: boolean;
            rengo_white_team?: number[];
            time_control: string;
            time_control_parameters: JGOFTimeControl;
            white: User;
        } | {
            challenge_id: number;
            challenger_color: "black" | "white" | "automatic";
            disable_analysis: boolean;
            game_id: number;
            handicap: null | number;
            height: number;
            invite_only: boolean;
            komi: null | number;
            max_rank: number;
            min_rank: number;
            name: string;
            professional: boolean;
            ranked: boolean;
            ranking: number;
            rengo: boolean;
            rengo_auto_start: boolean;
            rengo_black_team: number[];
            rengo_casual_mode: boolean;
            rengo_nominees: number[];
            rengo_participants: number[];
            rengo_white_team: number[];
            rules: string;
            time_control: string;
            time_control_parameters: JGOFTimeControl;
            time_per_move: number;
            user_id: number;
            username: string;
            uuid: string;
            width: number;
        }

      Returns void

ui-push: ((data: {
    data: string;
    event: string;
}) => void)

Type declaration

    • (data: {
          data: string;
          event: string;
      }): void
    • A UI Push notification. The event and data are not well defined here, they come as a result to subscribing to ui push channels with ui-pushes/subscribe.

      Parameters

      • data: {
            data: string;
            event: string;
        }
        • data: string

          UI Push data

        • event: string

          UI Push event

      Returns void

user/state: ((data: {
    [player_id: number]: boolean;
}) => void)

Type declaration

    • (data: {
          [player_id: number]: boolean;
      }): void
    • Updates whether a user is online or not. Subscribe to these updates for particular users using the user/monitor command.

      Parameters

      • data: {
            [player_id: number]: boolean;
        }
        • [player_id: number]: boolean

      Returns void

Generated using TypeDoc