Class EventClient<T>

Simple wrapper around the Revolt websocket service.

Type Parameters

  • T extends AvailableProtocols

Hierarchy

  • AsyncEventEmitter<Events<T, EventProtocol<T>>>
    • EventClient

Constructors

  • Create a new event client.

    Type Parameters

    • T extends 1

    Parameters

    • protocolVersion: T

      Target protocol version

    • transportFormat: "json" = "json"

      Communication format

    • Optionaloptions: Partial<EventClientOptions>

      Configuration options

    Returns EventClient<T>

Properties

"[brandSymbol]": Events

This field doesn't actually exist, it's just a way to make TS properly infer the events from classes that extend AsyncEventEmitter

options: EventClientOptions
ping: Accessor<number>
state: Accessor<ConnectionState>

Accessors

  • get lastError(): | undefined
    | { data: any; type: "socket" }
    | {
        data: (
            | { type: "LabelMe" }
            | { type: "AlreadyOnboarded" }
            | { type: "UsernameTaken" }
            | { type: "InvalidUsername" }
            | { type: "DiscriminatorChangeRatelimited" }
            | { type: "UnknownUser" }
            | { type: "AlreadyFriends" }
            | { type: "AlreadySentRequest" }
            | { type: "Blocked" }
            | { type: "BlockedByOther" }
            | { type: "NotFriends" }
            | { max: number; type: "TooManyPendingFriendRequests" }
            | { type: "UnknownChannel" }
            | { type: "UnknownAttachment" }
            | { type: "UnknownMessage" }
            | { type: "CannotEditMessage" }
            | { type: "CannotJoinCall" }
            | { max: number; type: "TooManyAttachments" }
            | { max: number; type: "TooManyEmbeds" }
            | { max: number; type: "TooManyReplies" }
            | { max: number; type: "TooManyChannels" }
            | { type: "EmptyMessage" }
            | { type: "PayloadTooLarge" }
            | { type: "CannotRemoveYourself" }
            | { max: number; type: "GroupTooLarge" }
            | { type: "AlreadyInGroup" }
            | { type: "NotInGroup" }
            | { type: "AlreadyPinned" }
            | { type: "NotPinned" }
            | { type: "UnknownServer" }
            | { type: "InvalidRole" }
            | { type: "Banned" }
            | { max: number; type: "TooManyServers" }
            | { max: number; type: "TooManyEmoji" }
            | { max: number; type: "TooManyRoles" }
            | { type: "AlreadyInServer" }
            | { type: "CannotTimeoutYourself" }
            | { type: "ReachedMaximumBots" }
            | { type: "IsBot" }
            | { type: "BotIsPrivate" }
            | { type: "CannotReportYourself" }
            | { permission: string; type: "MissingPermission" }
            | { permission: string; type: "MissingUserPermission" }
            | { type: "NotElevated" }
            | { type: "NotPrivileged" }
            | { type: "CannotGiveMissingPermissions" }
            | { type: "NotOwner" }
            | { collection: string; operation: string; type: "DatabaseError" }
            | { type: "InternalError" }
            | { type: "InvalidOperation" }
            | { type: "InvalidCredentials" }
            | { type: "InvalidProperty" }
            | { type: "InvalidSession" }
            | { type: "NotAuthenticated" }
            | { type: "DuplicateNonce" }
            | { type: "NotFound" }
            | { type: "NoEffect" }
            | { error: string; type: "FailedValidation" }
            | { type: "ProxyError" }
            | { type: "FileTooSmall" }
            | { max: number; type: "FileTooLarge" }
            | { type: "FileTypeNotAllowed" }
            | { type: "ImageProcessingFailed" }
            | { type: "NoEmbedData" }
            | { type: "VosoUnavailable" }
        ) & { location: string };
        type: "revolt";
    }

    Last error encountered by events client

    Returns
        | undefined
        | { data: any; type: "socket" }
        | {
            data: (
                | { type: "LabelMe" }
                | { type: "AlreadyOnboarded" }
                | { type: "UsernameTaken" }
                | { type: "InvalidUsername" }
                | { type: "DiscriminatorChangeRatelimited" }
                | { type: "UnknownUser" }
                | { type: "AlreadyFriends" }
                | { type: "AlreadySentRequest" }
                | { type: "Blocked" }
                | { type: "BlockedByOther" }
                | { type: "NotFriends" }
                | { max: number; type: "TooManyPendingFriendRequests" }
                | { type: "UnknownChannel" }
                | { type: "UnknownAttachment" }
                | { type: "UnknownMessage" }
                | { type: "CannotEditMessage" }
                | { type: "CannotJoinCall" }
                | { max: number; type: "TooManyAttachments" }
                | { max: number; type: "TooManyEmbeds" }
                | { max: number; type: "TooManyReplies" }
                | { max: number; type: "TooManyChannels" }
                | { type: "EmptyMessage" }
                | { type: "PayloadTooLarge" }
                | { type: "CannotRemoveYourself" }
                | { max: number; type: "GroupTooLarge" }
                | { type: "AlreadyInGroup" }
                | { type: "NotInGroup" }
                | { type: "AlreadyPinned" }
                | { type: "NotPinned" }
                | { type: "UnknownServer" }
                | { type: "InvalidRole" }
                | { type: "Banned" }
                | { max: number; type: "TooManyServers" }
                | { max: number; type: "TooManyEmoji" }
                | { max: number; type: "TooManyRoles" }
                | { type: "AlreadyInServer" }
                | { type: "CannotTimeoutYourself" }
                | { type: "ReachedMaximumBots" }
                | { type: "IsBot" }
                | { type: "BotIsPrivate" }
                | { type: "CannotReportYourself" }
                | { permission: string; type: "MissingPermission" }
                | { permission: string; type: "MissingUserPermission" }
                | { type: "NotElevated" }
                | { type: "NotPrivileged" }
                | { type: "CannotGiveMissingPermissions" }
                | { type: "NotOwner" }
                | { collection: string; operation: string; type: "DatabaseError" }
                | { type: "InternalError" }
                | { type: "InvalidOperation" }
                | { type: "InvalidCredentials" }
                | { type: "InvalidProperty" }
                | { type: "InvalidSession" }
                | { type: "NotAuthenticated" }
                | { type: "DuplicateNonce" }
                | { type: "NotFound" }
                | { type: "NoEffect" }
                | { error: string; type: "FailedValidation" }
                | { type: "ProxyError" }
                | { type: "FileTooSmall" }
                | { max: number; type: "FileTooLarge" }
                | { type: "FileTypeNotAllowed" }
                | { type: "ImageProcessingFailed" }
                | { type: "NoEmbedData" }
                | { type: "VosoUnavailable" }
            ) & { location: string };
            type: "revolt";
        }

Methods

  • Type Parameters

    • K extends (keyof AsyncEventEmitterPredefinedEvents) | (keyof Events<T, EventProtocol<T>>)

    Parameters

    • eventName: K
    • listener: Exclude<
          InternalAsyncEventEmitterInternalListenerForEvent<
              AsyncEventEmitter<Events<T, EventProtocol<T>>>,
              K,
              Events<T, EventProtocol<T>>,
          >["listener"],
          undefined,
      >

    Returns this

  • Type Parameters

    • K extends string | symbol

    Parameters

    • eventName: K
    • listener: Exclude<
          InternalAsyncEventEmitterInternalListenerForEvent<
              AsyncEventEmitter<Events<T, EventProtocol<T>>>,
              K,
              Events<T, EventProtocol<T>>,
          >["listener"],
          undefined,
      >

    Returns this

  • Connect to the websocket service.

    Parameters

    • uri: string

      WebSocket URI

    • token: string

      Authentication token

    Returns void

  • Type Parameters

    • K extends (keyof AsyncEventEmitterPredefinedEvents) | (keyof Events<T, EventProtocol<T>>)

    Parameters

    • eventName: K
    • ...args: InternalGetAsyncEventEmitterEventParameters<
          AsyncEventEmitter<Events<T, EventProtocol<T>>>,
          K,
      >

    Returns boolean

  • Type Parameters

    • K extends string | symbol

    Parameters

    • eventName: K
    • ...args: InternalGetAsyncEventEmitterEventParameters<
          AsyncEventEmitter<Events<T, EventProtocol<T>>>,
          K,
      >

    Returns boolean

  • Returns (string | symbol)[] & (keyof AsyncEventEmitterPredefinedEvents)[] & (
        keyof Events<T, EventProtocol<T>>
    )[]

  • Returns number

  • Handle events intended for client before passing them along.

    Parameters

    • event: EventProtocol<T>["server"]

      Event

    Returns void

  • Type Parameters

    • K extends (keyof AsyncEventEmitterPredefinedEvents) | (keyof Events<T, EventProtocol<T>>)

    Parameters

    • eventName: K

    Returns number

  • Parameters

    • eventName: string | symbol

    Returns number

  • Type Parameters

    • K extends (keyof AsyncEventEmitterPredefinedEvents) | (keyof Events<T, EventProtocol<T>>)

    Parameters

    • eventName: K

    Returns Exclude<
        InternalAsyncEventEmitterInternalListenerForEvent<
            AsyncEventEmitter<Events<T, EventProtocol<T>>>,
            K,
            Events<T, EventProtocol<T>>,
        >["listener"],
        undefined,
    >[]

  • Type Parameters

    • K extends string | symbol

    Parameters

    • eventName: K

    Returns Exclude<
        InternalAsyncEventEmitterInternalListenerForEvent<
            AsyncEventEmitter<Events<T, EventProtocol<T>>>,
            K,
            Events<T, EventProtocol<T>>,
        >["listener"],
        undefined,
    >[]

  • Type Parameters

    • K extends (keyof AsyncEventEmitterPredefinedEvents) | (keyof Events<T, EventProtocol<T>>)

    Parameters

    • eventName: K
    • listener: Exclude<
          InternalAsyncEventEmitterInternalListenerForEvent<
              AsyncEventEmitter<Events<T, EventProtocol<T>>>,
              K,
              Events<T, EventProtocol<T>>,
          >["listener"],
          undefined,
      >

    Returns this

  • Type Parameters

    • K extends string | symbol

    Parameters

    • eventName: K
    • listener: Exclude<
          InternalAsyncEventEmitterInternalListenerForEvent<
              AsyncEventEmitter<Events<T, EventProtocol<T>>>,
              K,
              Events<T, EventProtocol<T>>,
          >["listener"],
          undefined,
      >

    Returns this

  • Type Parameters

    • K extends (keyof AsyncEventEmitterPredefinedEvents) | (keyof Events<T, EventProtocol<T>>)

    Parameters

    • eventName: K
    • listener: Exclude<
          InternalAsyncEventEmitterInternalListenerForEvent<
              AsyncEventEmitter<Events<T, EventProtocol<T>>>,
              K,
              Events<T, EventProtocol<T>>,
          >["listener"],
          undefined,
      >

    Returns this

  • Type Parameters

    • K extends string | symbol

    Parameters

    • eventName: K
    • listener: Exclude<
          InternalAsyncEventEmitterInternalListenerForEvent<
              AsyncEventEmitter<Events<T, EventProtocol<T>>>,
              K,
              Events<T, EventProtocol<T>>,
          >["listener"],
          undefined,
      >

    Returns this

  • Type Parameters

    • K extends (keyof AsyncEventEmitterPredefinedEvents) | (keyof Events<T, EventProtocol<T>>)

    Parameters

    • eventName: K
    • listener: Exclude<
          InternalAsyncEventEmitterInternalListenerForEvent<
              AsyncEventEmitter<Events<T, EventProtocol<T>>>,
              K,
              Events<T, EventProtocol<T>>,
          >["listener"],
          undefined,
      >

    Returns this

  • Type Parameters

    • K extends string | symbol

    Parameters

    • eventName: K
    • listener: Exclude<
          InternalAsyncEventEmitterInternalListenerForEvent<
              AsyncEventEmitter<Events<T, EventProtocol<T>>>,
              K,
              Events<T, EventProtocol<T>>,
          >["listener"],
          undefined,
      >

    Returns this

  • Type Parameters

    • K extends (keyof AsyncEventEmitterPredefinedEvents) | (keyof Events<T, EventProtocol<T>>)

    Parameters

    • eventName: K
    • listener: Exclude<
          InternalAsyncEventEmitterInternalListenerForEvent<
              AsyncEventEmitter<Events<T, EventProtocol<T>>>,
              K,
              Events<T, EventProtocol<T>>,
          >["listener"],
          undefined,
      >

    Returns this

  • Type Parameters

    • K extends string | symbol

    Parameters

    • eventName: K
    • listener: Exclude<
          InternalAsyncEventEmitterInternalListenerForEvent<
              AsyncEventEmitter<Events<T, EventProtocol<T>>>,
              K,
              Events<T, EventProtocol<T>>,
          >["listener"],
          undefined,
      >

    Returns this

  • Type Parameters

    • K extends (keyof AsyncEventEmitterPredefinedEvents) | (keyof Events<T, EventProtocol<T>>)

    Parameters

    • eventName: K
    • listener: Exclude<
          InternalAsyncEventEmitterInternalListenerForEvent<
              AsyncEventEmitter<Events<T, EventProtocol<T>>>,
              K,
              Events<T, EventProtocol<T>>,
          >["listener"],
          undefined,
      >

    Returns this

  • Type Parameters

    • K extends string | symbol

    Parameters

    • eventName: K
    • listener: Exclude<
          InternalAsyncEventEmitterInternalListenerForEvent<
              AsyncEventEmitter<Events<T, EventProtocol<T>>>,
              K,
              Events<T, EventProtocol<T>>,
          >["listener"],
          undefined,
      >

    Returns this

  • Type Parameters

    • K extends (keyof AsyncEventEmitterPredefinedEvents) | (keyof Events<T, EventProtocol<T>>)

    Parameters

    • eventName: K

    Returns InternalAsyncEventEmitterInternalListenerForEvent<
        AsyncEventEmitter<Events<T, EventProtocol<T>>>,
        K,
        Events<T, EventProtocol<T>>,
    >[]

  • Type Parameters

    • K extends string | symbol

    Parameters

    • eventName: K

    Returns InternalAsyncEventEmitterInternalListenerForEvent<
        AsyncEventEmitter<Events<T, EventProtocol<T>>>,
        K,
        Events<T, EventProtocol<T>>,
    >[]

  • Type Parameters

    • K extends (keyof AsyncEventEmitterPredefinedEvents) | (keyof Events<T, EventProtocol<T>>)

    Parameters

    • event: K

    Returns this

  • Type Parameters

    • K extends (keyof AsyncEventEmitterPredefinedEvents) | (keyof Events<T, EventProtocol<T>>)

    Parameters

    • Optionalevent: K

    Returns this

  • Parameters

    • event: string | symbol

    Returns this

  • Parameters

    • Optionalevent: string | symbol

    Returns this

  • Type Parameters

    • K extends (keyof AsyncEventEmitterPredefinedEvents) | (keyof Events<T, EventProtocol<T>>)

    Parameters

    • eventName: K
    • listener: Exclude<
          InternalAsyncEventEmitterInternalListenerForEvent<
              AsyncEventEmitter<Events<T, EventProtocol<T>>>,
              K,
              Events<T, EventProtocol<T>>,
          >["listener"],
          undefined,
      >

    Returns this

  • Type Parameters

    • K extends string | symbol

    Parameters

    • eventName: K
    • listener: Exclude<
          InternalAsyncEventEmitterInternalListenerForEvent<
              AsyncEventEmitter<Events<T, EventProtocol<T>>>,
              K,
              Events<T, EventProtocol<T>>,
          >["listener"],
          undefined,
      >

    Returns this

  • Send an event to the server.

    Parameters

    • event: EventProtocol<T>["client"]

      Event

    Returns void

  • Parameters

    • n: number

    Returns this

  • Returns Promise<boolean>

  • Type Parameters

    • EventMap extends {}
    • EventName extends PropertyKey = (keyof AsyncEventEmitterPredefinedEvents) | keyof EventMap

    Parameters

    • emitter: AsyncEventEmitter<EventMap>
    • eventName: (keyof AsyncEventEmitterPredefinedEvents) | EventName

    Returns number

  • Parameters

    • emitter: AsyncEventEmitter<any>
    • eventName: string | symbol

    Returns number

  • Type Parameters

    • EventMap extends {}
    • EventName extends PropertyKey = (keyof AsyncEventEmitterPredefinedEvents) | keyof EventMap

    Parameters

    • emitter: AsyncEventEmitter<EventMap>
    • eventName: EventName
    • Optionaloptions: AbortableMethods

    Returns AsyncGenerator<
        InternalGetAsyncEventEmitterEventParameters<
            AsyncEventEmitter<EventMap>,
            EventName,
            EventMap,
        >,
        void,
    >

  • Parameters

    • emitter: AsyncEventEmitter<any>
    • eventName: string | symbol
    • Optionaloptions: AbortableMethods

    Returns AsyncGenerator<any[], void>

  • Type Parameters

    • EventMap extends {}
    • EventName extends PropertyKey = (keyof AsyncEventEmitterPredefinedEvents) | keyof EventMap

    Parameters

    • emitter: AsyncEventEmitter<EventMap>
    • eventName: EventName
    • Optionaloptions: AbortableMethods

    Returns Promise<
        InternalGetAsyncEventEmitterEventParameters<
            AsyncEventEmitter<EventMap>,
            EventName,
            EventMap,
        >,
    >

  • Parameters

    • emitter: AsyncEventEmitter<any>
    • eventName: string | symbol
    • Optionaloptions: AbortableMethods

    Returns Promise<any[]>

MMNEPVFCICPMFPCPTTAAATR