UNPKG

@amelix/phoenix.js

Version:

A feature-rich API wrapper for the critically acclaimed chatting app Phoenix.. or something.

53 lines (52 loc) 2.07 kB
import Base from "./Base"; import { Client } from "./Client"; import Member from "./Member"; import { AnyServerChannel, ServerChannelData } from "./ServerChannel"; export default class Server extends Base { name: string; /** The CSS of this server, if any has been uploaded. */ css?: string; cssLastUpdated: number; /** The image URL for this server's icon. */ iconURL: string; iconLastUpdated: number; /** The member who owns this server. */ owner: Member; channels: Map<string, AnyServerChannel>; members: Map<string, Member>; /** Whether or not every single member in this server is cached or not. */ membersCached: boolean; constructor(client: Client, data: { [k: string]: any; }); /** * Create a channel in this server. Defaults to a text channel if not specified. * @returns Created channel */ createChannel(data: ServerChannelData): Promise<AnyServerChannel>; /** Fetch and cache a single member from this server. */ fetchMember(id: string): Promise<Member | undefined>; fetchMembers(): Promise<Map<string, Member>>; /** Delete the server's icon, replacing it with the defualt. */ deleteIcon(): Promise<void>; /** Fetch this server's CSS. */ fetchCSS(): Promise<string>; /** Post new CSS to this server. * This is not available to bots as there is no permission system yet and bots cannot own servers. * @returns Minified CSS */ editCSS(css: string): Promise<string>; /** Delete this server's custom CSS. * This is not available to bots as there is no permission system yet and bots cannot own servers. */ deleteCSS(): Promise<void>; /** Edit this server's name or transfer ownership. */ edit(data: ServerData, password?: string): Promise<this>; /** Delete the server. */ delete(password: string): Promise<void>; } interface ServerData { name?: string; /** ID of user to transfer ownership to */ owner?: string; } export {};