Class Channel

Channel Class

Constructors

Properties

id: string

Accessors

  • get animatedIconURL(): undefined | string

    URL to the animated channel icon

    Returns undefined | string

  • get defaultPermissions(): undefined | { a: number; d: number }

    Default permissions for this server channel

    Returns undefined | { a: number; d: number }

  • get lastMessageAt(): undefined | Date

    Time when the last message was sent

    Returns undefined | Date

  • get lastMessageId(): undefined | string

    ID of the last message sent in this channel

    Returns undefined | string

  • get mentions(): undefined | ReactiveSet<string>

    Get mentions in this channel for user.

    Returns undefined | ReactiveSet<string>

  • get permission(): number

    Permission the currently authenticated user has against this channel

    Returns number

  • get permissions(): undefined | number

    Permissions allowed for users in this group

    Returns undefined | number

  • get potentiallyRestrictedChannel(): undefined | string | boolean

    Whether this channel may be hidden to some users

    Returns undefined | string | boolean

  • get recipientIds(): ReactiveSet<string>

    User ids of recipients of the group

    Returns ReactiveSet<string>

  • get rolePermissions(): undefined | Record<string, { a: number; d: number }>

    Role permissions for this server channel

    Returns undefined | Record<string, { a: number; d: number }>

  • get type(): | "SavedMessages"
    | "DirectMessage"
    | "Group"
    | "TextChannel"
    | "VoiceChannel"

    Channel type

    Returns "SavedMessages" | "DirectMessage" | "Group" | "TextChannel" | "VoiceChannel"

  • get typingIds(): ReactiveSet<string>

    User ids of people currently typing in channel

    Returns ReactiveSet<string>

  • get updatedAt(): Date

    Time when the channel was last updated (either created or a message was sent)

    Returns Date

Methods

  • Mark a channel as read

    Parameters

    • Optionalmessage: string | Message

      Last read message or its ID

    • OptionalskipRateLimiter: boolean

      Whether to skip the internal rate limiter

    • OptionalskipRequest: boolean

      For internal updates only

    • OptionalskipNextMarking: boolean

      For internal usage only

    Returns Promise<void>

    SavedMessages, DirectMessage, Group, TextChannel

  • Add a user to a group

    Parameters

    • user_id: string

      ID of the target user

    Returns Promise<void>

    Group

  • Create an invite to the channel

    Returns Promise<
        | {
            _id: string;
            channel: string;
            creator: string;
            server: string;
            type: "Server";
        }
        | { _id: string; channel: string; creator: string; type: "Group" },
    >

    Newly created invite code

    TextChannel, VoiceChannel

  • Delete or leave a channel

    Parameters

    • OptionalleaveSilently: boolean

      Whether to not send a message on leave

    Returns Promise<void>

    DirectMessage, Group, TextChannel, VoiceChannel

  • Delete many messages by their IDs

    Parameters

    • ids: string[]

      List of message IDs

    Returns Promise<void>

    SavedMessages, DirectMessage, Group, TextChannel

  • Edit a channel

    Parameters

    • data: {
          archived?: null | boolean;
          description?: null | string;
          icon?: null | string;
          name?: null | string;
          nsfw?: null | boolean;
          owner?: null | string;
          remove?: null | ("Description" | "Icon" | "DefaultPermissions")[];
      }

      Changes

      • Optionalarchived?: null | boolean

        Whether this channel is archived

      • Optionaldescription?: null | string

        Channel description

      • Optionalicon?: null | string

        Icon

        Provide an Autumn attachment Id.

      • Optionalname?: null | string

        Channel name

      • Optionalnsfw?: null | boolean

        Whether this channel is age-restricted

      • Optionalowner?: null | string

        Group owner

      • Optionalremove?: null | ("Description" | "Icon" | "DefaultPermissions")[]

        Fields to remove from channel

    Returns Promise<void>

  • Fetch a message by its ID

    Parameters

    • messageId: string

      ID of the target message

    Returns Promise<Message>

    Message

    SavedMessages, DirectMessage, Group, TextChannel

  • Fetch multiple messages from a channel

    Parameters

    • Optionalparams: Omit<
          | undefined
          | {
              after?: null
              | string;
              before?: null | string;
              include_users?: null | boolean;
              limit?: null | number;
              nearby?: null | string;
              sort?: null | "Relevance" | "Latest" | "Oldest";
          },
          "include_users",
      >

      Message fetching route data

    Returns Promise<Message[]>

    Messages

    SavedMessages, DirectMessage, Group, TextChannel

  • Fetch multiple messages from a channel including the users that sent them

    Parameters

    • Optionalparams: Omit<
          | undefined
          | {
              after?: null
              | string;
              before?: null | string;
              include_users?: null | boolean;
              limit?: null | number;
              nearby?: null | string;
              sort?: null | "Relevance" | "Latest" | "Oldest";
          },
          "include_users",
      >

      Message fetching route data

    Returns Promise<
        {
            members: undefined
            | ServerMember[];
            messages: Message[];
            users: User[];
        },
    >

    Object including messages and users

    SavedMessages, DirectMessage, Group, TextChannel

  • Check whether we have a given permission in a channel

    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 channel

    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

  • Remove a user from a group

    Parameters

    • user_id: string

      ID of the target user

    Returns Promise<void>

    Group

  • Search for messages

    Parameters

    • params: Omit<
          {
              after?: null
              | string;
              before?: null | string;
              include_users?: null | boolean;
              limit?: null | number;
              pinned?: null | boolean;
              query?: null | string;
              sort?: "Relevance" | "Latest" | "Oldest";
          },
          "include_users",
      >

      Message searching route data

    Returns Promise<Message[]>

    Messages

    SavedMessages, DirectMessage, Group, TextChannel

  • Search for messages including the users that sent them

    Parameters

    • params: Omit<
          {
              after?: null
              | string;
              before?: null | string;
              include_users?: null | boolean;
              limit?: null | number;
              pinned?: null | boolean;
              query?: null | string;
              sort?: "Relevance" | "Latest" | "Oldest";
          },
          "include_users",
      >

      Message searching route data

    Returns Promise<
        {
            members: undefined
            | ServerMember[];
            messages: Message[];
            users: User[];
        },
    >

    Object including messages and users

    SavedMessages, DirectMessage, Group, TextChannel

  • Send a message

    Parameters

    • data:
          | string
          | {
              attachments?: null
              | string[];
              content?: null | string;
              embeds?:
                  | null
                  | {
                      colour?: null
                      | string;
                      description?: null | string;
                      icon_url?: null | string;
                      media?: null | string;
                      title?: null | string;
                      url?: null | string;
                  }[];
              flags?: null
              | number;
              interactions?:
                  | null
                  | { reactions?: null
                  | string[]; restrict_reactions?: boolean };
              masquerade?:
                  | null
                  | {
                      avatar?: null
                      | string;
                      colour?: null | string;
                      name?: null | string;
                  };
              nonce?: null
              | string;
              replies?: null | { id: string; mention: boolean }[];
          }

      Either the message as a string or message sending route data

      • string
      • {
            attachments?: null | string[];
            content?: null | string;
            embeds?:
                | null
                | {
                    colour?: null
                    | string;
                    description?: null | string;
                    icon_url?: null | string;
                    media?: null | string;
                    title?: null | string;
                    url?: null | string;
                }[];
            flags?: null
            | number;
            interactions?:
                | null
                | { reactions?: null
                | string[]; restrict_reactions?: boolean };
            masquerade?:
                | null
                | { avatar?: null
                | string; colour?: null | string; name?: null | string };
            nonce?: null | string;
            replies?: null | { id: string; mention: boolean }[];
        }
        • Optionalattachments?: null | string[]

          Attachments to include in message

        • Optionalcontent?: null | string

          Message content to send

        • Optionalembeds?:
              | null
              | {
                  colour?: null
                  | string;
                  description?: null | string;
                  icon_url?: null | string;
                  media?: null | string;
                  title?: null | string;
                  url?: null | string;
              }[]

          Embeds to include in message

          Text embed content contributes to the content length cap

        • Optionalflags?: null | number

          Format: uint32

        • Optionalinteractions?: null | { reactions?: null | string[]; restrict_reactions?: boolean }

          Information about how this message should be interacted with

        • Optionalmasquerade?: null | { avatar?: null | string; colour?: null | string; name?: null | string }

          Masquerade to apply to this message

        • Optionalnonce?: null | string

          Unique token to prevent duplicate message sending

          This is deprecated and replaced by Idempotency-Key!

        • Optionalreplies?: null | { id: string; mention: boolean }[]

          Messages to reply to

    • idempotencyKey: string = ...

    Returns Promise<Message>

    Sent message

    SavedMessages, DirectMessage, Group, TextChannel

  • Set role permissions

    Parameters

    • role_id: string = "default"

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

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

      Permission value

      • allow: number

        Format: uint64

        Allow bit flags

      • deny: number

        Format: uint64

        Disallow bit flags

    Returns Promise<
        | { _id: string; channel_type: "SavedMessages"; user: string }
        | {
            _id: string;
            active: boolean;
            channel_type: "DirectMessage";
            last_message_id?: null | string;
            recipients: string[];
        }
        | {
            _id: string;
            channel_type: "Group";
            description?: null
            | string;
            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;
                };
            last_message_id?: null
            | string;
            name: string;
            nsfw?: boolean;
            owner: string;
            permissions?: null | number;
            recipients: string[];
        }
        | {
            _id: string;
            channel_type: "TextChannel";
            default_permissions?: null
            | { a: number; d: number };
            description?: null | string;
            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;
                };
            last_message_id?: null
            | string;
            name: string;
            nsfw?: boolean;
            role_permissions?: { [key: string]: { a: number; d: number } };
            server: string;
        }
        | {
            _id: string;
            channel_type: "VoiceChannel";
            default_permissions?: null
            | { a: number; d: number };
            description?: null | string;
            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;
            role_permissions?: { [key: string]: { a: number; d: number } };
            server: string;
        },
    >

    Group, TextChannel, VoiceChannel

  • Start typing in this channel

    Returns void

    DirectMessage, Group, TextChannel

  • Stop typing in this channel

    Returns void

    DirectMessage, Group, TextChannel