@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
TypeScript
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 {};