Class Server

Server Class

Constructors

Properties

id: string

Accessors

  • get animatedIconURL(): undefined | string

    URL to the server's animated icon

    Returns undefined | string

  • get categories(): | undefined
    | { channels: string[]; id: string; title: string }[]

    Categories

    Returns undefined | { channels: string[]; id: string; title: string }[]

    • undefined
    • { channels: string[]; id: string; title: string }[]
      • channels: string[]

        Channels in this category

      • id: string

        Unique ID for this category

      • title: string

        Title for this category

  • get mentions(): string[]

    Find all message IDs of unread messages

    Returns string[]

    Array of message IDs which are unread

  • get orderedChannels(): (
        Omit<{ channels: string[]; id: string; title: string }, "channels"> & {
            channels: Channel[];
        }
    )[]

    Get an array of ordered categories with their respective channels. Uncategorised channels are returned in id="default" category.

    Returns (
        Omit<{ channels: string[]; id: string; title: string }, "channels"> & {
            channels: Channel[];
        }
    )[]

  • get orderedRoles(): {
        colour?: null
        | string;
        hoist?: boolean;
        id: string;
        name: string;
        permissions: { a: number; d: number };
        rank?: number;
    }[]

    Get an ordered array of roles with their IDs attached. The highest ranking roles will be first followed by lower ranking roles. This is dictated by the "rank" property which is smaller for higher priority roles.

    Returns {
        colour?: null | string;
        hoist?: boolean;
        id: string;
        name: string;
        permissions: { a: number; d: number };
        rank?: number;
    }[]

  • get permission(): number

    Permission the currently authenticated user has against this server

    Returns number

  • get roles(): ReactiveMap<
        string,
        {
            colour?: null
            | string;
            hoist?: boolean;
            name: string;
            permissions: { a: number; d: number };
            rank?: number;
        },
    >

    Roles

    Returns ReactiveMap<
        string,
        {
            colour?: null
            | string;
            hoist?: boolean;
            name: string;
            permissions: { a: number; d: number };
            rank?: number;
        },
    >

  • get systemMessages(): | undefined
    | null
    | {
        user_banned?: null
        | string;
        user_joined?: null | string;
        user_kicked?: null | string;
        user_left?: null | string;
    }

    System message channels

    Returns
        | undefined
        | null
        | {
            user_banned?: null
            | string;
            user_joined?: null | string;
            user_kicked?: null | string;
            user_left?: null | string;
        }

    • undefined
    • null
    • {
          user_banned?: null | string;
          user_joined?: null | string;
          user_kicked?: null | string;
          user_left?: null | string;
      }
      • Optionaluser_banned?: null | string

        ID of channel to send user banned messages in

      • Optionaluser_joined?: null | string

        ID of channel to send user join messages in

      • Optionaluser_kicked?: null | string

        ID of channel to send user kicked messages in

      • Optionaluser_left?: null | string

        ID of channel to send user left messages in

  • get unread(): boolean

    Check whether the server is currently unread

    Returns boolean

    Whether the server is unread

Methods

  • Delete the underlying server

    Parameters

    • OptionalleaveEvent: boolean

      Whether we are leaving

    Returns void

  • Create a channel

    Parameters

    • data: {
          description?: null | string;
          name: string;
          nsfw?: null | boolean;
          type?: "Text" | "Voice";
      }

      Channel create route data

      • Optionaldescription?: null | string

        Channel description

      • name: string

        Channel name

      • Optionalnsfw?: null | boolean

        Whether this channel is age restricted

      • Optionaltype?: "Text" | "Voice"

        Channel type

        Text
        

    Returns Promise<Channel>

    The newly-created channel

  • Create an emoji on the server

    Parameters

    • autumnId: string

      Autumn Id

    • options: Omit<
          {
              name: string;
              nsfw?: boolean;
              parent: { id: string; type: "Server" }
              | { type: "Detached" };
          },
          "parent",
      >

      Options

    Returns Promise<Emoji>

  • Create role

    Parameters

    • name: string

      Role name

    Returns Promise<
        {
            id: string;
            role: {
                colour?: null
                | string;
                hoist?: boolean;
                name: string;
                permissions: { a: number; d: number };
                rank?: number;
            };
        },
    >

  • Delete or leave a server

    Parameters

    • OptionalleaveSilently: boolean

      Whether to not send a message on leave

    Returns Promise<void>

  • Delete emoji

    Parameters

    • emojiId: string

      Emoji ID

    Returns Promise<void>

  • Delete role

    Parameters

    • roleId: string

      Role ID

    Returns Promise<void>

  • Edit a server

    Parameters

    • data: {
          analytics?: null | boolean;
          banner?: null | string;
          categories?: null | { channels: string[]; id: string; title: string }[];
          description?: null | string;
          discoverable?: null | boolean;
          flags?: null | number;
          icon?: null | string;
          name?: null | string;
          remove?:
              | null
              | ("Description" | "Icon" | "Categories" | "SystemMessages" | "Banner")[];
          system_messages?:
              | null
              | {
                  user_banned?: null
                  | string;
                  user_joined?: null | string;
                  user_kicked?: null | string;
                  user_left?: null | string;
              };
      }

      Changes

      • Optionalanalytics?: null | boolean

        Whether analytics should be collected for this server

        Must be enabled in order to show up on Revolt Discover.

      • Optionalbanner?: null | string

        Attachment Id for banner

      • Optionalcategories?: null | { channels: string[]; id: string; title: string }[]

        Category structure for server

      • Optionaldescription?: null | string

        Server description

      • Optionaldiscoverable?: null | boolean

        Whether this server is public and should show up on Revolt Discover

      • Optionalflags?: null | number

        Format: int32

        Bitfield of server flags

      • Optionalicon?: null | string

        Attachment Id for icon

      • Optionalname?: null | string

        Server name

      • Optionalremove?: null | ("Description" | "Icon" | "Categories" | "SystemMessages" | "Banner")[]

        Fields to remove from server object

      • Optionalsystem_messages?:
            | null
            | {
                user_banned?: null
                | string;
                user_joined?: null | string;
                user_kicked?: null | string;
                user_left?: null | string;
            }

        System message configuration

    Returns Promise<void>

  • Edit a role

    Parameters

    • roleId: string

      Role ID

    • data: {
          colour?: null | string;
          hoist?: null | boolean;
          name?: null | string;
          rank?: null | number;
          remove?: null | "Colour"[];
      }

      Role editing route data

      • Optionalcolour?: null | string

        Role colour

      • Optionalhoist?: null | boolean

        Whether this role should be displayed separately

      • Optionalname?: null | string

        Role name

      • Optionalrank?: null | number

        Format: int64

        Ranking position

        Smaller values take priority.

      • Optionalremove?: null | "Colour"[]

        Fields to remove from role object

    Returns Promise<
        {
            colour?: null
            | string;
            hoist?: boolean;
            name: string;
            permissions: { a: number; d: number };
            rank?: number;
        },
    >

  • Helper function to retrieve cached server member by their ID in this server

    Parameters

    • userId: string

      User's ID

    Returns undefined | ServerMember

    Server Member (if cached)

  • Check whether we have a given permission in a server

    Parameters

    • ...permission: (
          | "Video"
          | "Masquerade"
          | "ManageChannel"
          | "ManageServer"
          | "ManagePermissions"
          | "ManageRole"
          | "ManageCustomisation"
          | "KickMembers"
          | "BanMembers"
          | "TimeoutMembers"
          | "AssignRoles"
          | "ChangeNickname"
          | "ManageNicknames"
          | "ChangeAvatar"
          | "RemoveAvatars"
          | "ViewChannel"
          | "ReadMessageHistory"
          | "SendMessage"
          | "ManageMessages"
          | "ManageWebhooks"
          | "InviteOthers"
          | "SendEmbeds"
          | "UploadFiles"
          | "React"
          | "Connect"
          | "Speak"
          | "MuteMembers"
          | "DeafenMembers"
          | "MoveMembers"
          | "GrantAllSafe"
      )[]

      Permission Names

    Returns boolean

    Whether we have this permission

  • Check whether we have at least one of the given permissions in a server

    Parameters

    • ...permission: (
          | "Video"
          | "Masquerade"
          | "ManageChannel"
          | "ManageServer"
          | "ManagePermissions"
          | "ManageRole"
          | "ManageCustomisation"
          | "KickMembers"
          | "BanMembers"
          | "TimeoutMembers"
          | "AssignRoles"
          | "ChangeNickname"
          | "ManageNicknames"
          | "ChangeAvatar"
          | "RemoveAvatars"
          | "ViewChannel"
          | "ReadMessageHistory"
          | "SendMessage"
          | "ManageMessages"
          | "ManageWebhooks"
          | "InviteOthers"
          | "SendEmbeds"
          | "UploadFiles"
          | "React"
          | "Connect"
          | "Speak"
          | "MuteMembers"
          | "DeafenMembers"
          | "MoveMembers"
          | "GrantAllSafe"
      )[]

      Permission Names

    Returns boolean

    Whether we have one of the permissions

  • Query members from a server by name

    Parameters

    • query: string

      Name

    Returns Promise<{ members: ServerMember[]; users: User[] }>

    List of the server's members and their user objects

  • Set role permissions

    Parameters

    • roleId: string = "default"

      Role Id, set to 'default' to affect all users

    • permissions: number | { allow: number; deny: number }

      Permission value

      • number
      • { allow: number; deny: number }
        • allow: number

          Format: uint64

          Allow bit flags

        • deny: number

          Format: uint64

          Disallow bit flags

    Returns Promise<
        {
            _id: string;
            analytics?: boolean;
            banner?: | null
            | {
                _id: string;
                content_type: string;
                deleted?: null
                | boolean;
                filename: string;
                message_id?: null | string;
                metadata:
                    | { type: "File" }
                    | { type: "Text" }
                    | { height: number; type: "Image"; width: number }
                    | { height: number; type: "Video"; width: number }
                    | { type: "Audio" };
                object_id?: null | string;
                reported?: null | boolean;
                server_id?: null | string;
                size: number;
                tag: string;
                user_id?: null | string;
            };
            categories?: null
            | { channels: string[]; id: string; title: string }[];
            channels: string[];
            default_permissions: number;
            description?: null | string;
            discoverable?: boolean;
            flags?: number;
            icon?:
                | null
                | {
                    _id: string;
                    content_type: string;
                    deleted?: null
                    | boolean;
                    filename: string;
                    message_id?: null | string;
                    metadata:
                        | { type: "File" }
                        | { type: "Text" }
                        | { height: number; type: "Image"; width: number }
                        | { height: number; type: "Video"; width: number }
                        | { type: "Audio" };
                    object_id?: null | string;
                    reported?: null | boolean;
                    server_id?: null | string;
                    size: number;
                    tag: string;
                    user_id?: null | string;
                };
            name: string;
            nsfw?: boolean;
            owner: string;
            roles?: {
                [key: string]: {
                    colour?: null
                    | string;
                    hoist?: boolean;
                    name: string;
                    permissions: { a: number; d: number };
                    rank?: number;
                };
            };
            system_messages?: | null
            | {
                user_banned?: null
                | string;
                user_joined?: null | string;
                user_kicked?: null | string;
                user_left?: null | string;
            };
        },
    >

  • Optimised member fetch route

    Parameters

    • OptionalexcludeOffline: boolean

    Returns Promise<void>