Metatell AI Bot - v0.0.10
    Preparing search index...

    Interface MetatellClient

    Main client interface for interacting with Metatell services Extends VoiceCapableClient to support voice features

    interface MetatellClient {
        avatar: {
            getAvailableAnimations(): Promise<Animation[]>;
            getAvailableAssets(): Promise<AvatarAsset[]>;
            getPosition(): null | Vec3;
            lookAt(target: Vec3): Promise<void>;
            moveTo(position: Vec3): Promise<void>;
            play(animation: Animation): Promise<void>;
            rotateTo(rotation: Euler): Promise<void>;
            select(assetId: string): Promise<void>;
        };
        chat: {
            onMessage(
                handler: (
                    event: {
                        from: User;
                        mention?: { name: string; sessionId: string };
                        reply: (text: string) => Promise<void>;
                        text: string;
                    },
                ) => void,
            ): void;
            send(text: string): Promise<void>;
        };
        room: {
            getNearbyUsers(radius?: number): Promise<User[]>;
            getUsers(): Promise<User[]>;
        };
        voice: {
            playPcm(
                input: unknown,
                options: PcmInputOptions,
            ): Promise<PlaybackControls>;
        };
        connect(): Promise<void>;
        disconnect(): Promise<void>;
        getInfo(): Promise<BotInfo>;
        getRateLimit(key: "messages" | "moves" | "looks"): undefined | number;
        getSessionId(): null | string;
        getStatus(): { connected: boolean; connecting: boolean };
        getUsers(): User[];
        muteVoice?(muted: boolean): Promise<void>;
        off<E extends keyof MetatellClientEvents>(
            event: E,
            listener: MetatellClientEvents[E],
        ): this;
        on<E extends keyof MetatellClientEvents>(
            event: E,
            listener: MetatellClientEvents[E],
        ): this;
        sendVoiceFrame?(pcm: Int16Array): Promise<void>;
        setRateLimit(key: "messages" | "moves" | "looks", perSecond: number): void;
    }

    Hierarchy (View Summary)

    Implemented by

    Index

    Properties

    avatar: {
        getAvailableAnimations(): Promise<Animation[]>;
        getAvailableAssets(): Promise<AvatarAsset[]>;
        getPosition(): null | Vec3;
        lookAt(target: Vec3): Promise<void>;
        moveTo(position: Vec3): Promise<void>;
        play(animation: Animation): Promise<void>;
        rotateTo(rotation: Euler): Promise<void>;
        select(assetId: string): Promise<void>;
    }

    Bot avatar operations

    Type Declaration

    chat: {
        onMessage(
            handler: (
                event: {
                    from: User;
                    mention?: { name: string; sessionId: string };
                    reply: (text: string) => Promise<void>;
                    text: string;
                },
            ) => void,
        ): void;
        send(text: string): Promise<void>;
    }

    Chat-related operations

    Type Declaration

    • onMessage: function
      • Subscribe to all chat messages Receives all messages regardless of mentions

        Parameters

        • handler: (
              event: {
                  from: User;
                  mention?: { name: string; sessionId: string };
                  reply: (text: string) => Promise<void>;
                  text: string;
              },
          ) => void

        Returns void

    • send: function
    room: {
        getNearbyUsers(radius?: number): Promise<User[]>;
        getUsers(): Promise<User[]>;
    }

    Room-related operations

    Type Declaration

    voice: {
        playPcm(
            input: unknown,
            options: PcmInputOptions,
        ): Promise<PlaybackControls>;
    }

    Voice-related operations

    Type Declaration

    Methods

    • Connect to Metatell server and join the specified room

      Returns Promise<void>

      If authentication token is invalid

      If network connection fails

    • Get rate limit settings

      Parameters

      • key: "messages" | "moves" | "looks"

      Returns undefined | number

    • Set rate limit

      Parameters

      • key: "messages" | "moves" | "looks"
      • perSecond: number

      Returns void