Skip to content
This repository has been archived by the owner on Sep 26, 2018. It is now read-only.

Typings for the new moderation stuff on API #27

Merged
merged 11 commits into from
May 10, 2017
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
104 changes: 101 additions & 3 deletions index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -370,14 +370,15 @@ declare module 'discord.js' {
public acknowledge(): Promise<Guild>;
public addMember(user: UserResolvable, options: AddGuildMemberOptions): Promise<GuildMember>;
public allowDMs(allow: boolean): Promise<Guild>;
public ban(user: UserResolvable, deleteDays?: number): Promise<GuildMember | User | string>;
public ban(user: UserResolvable, options?: BanOptions | number | string): Promise<GuildMember | User | string>;
public createChannel(name: string, type: 'text' | 'voice', overwrites?: PermissionOverwrites[] | object[]): Promise<TextChannel | VoiceChannel>;
public createEmoji(attachment: BufferResolvable | Base64Resolvable, name: string, roles?: Collection<Snowflake, Role> | Role[]): Promise<Emoji>;
public createRole(data?: RoleData): Promise<Role>;
public delete(): Promise<Guild>;
public deleteEmoji(emoji: Emoji | string): Promise<void>;
public edit(data: GuildEditData): Promise<Guild>;
public equals(guild: Guild): boolean;
public fetchAuditLogs(options?: GuildAuditLogsFetchOptions): Promise<GuildAuditLogs>;
public fetchBans(): Promise<Collection<Snowflake, User>>;
public fetchInvites(): Promise<Collection<Snowflake, Invite>>;
public fetchMember(user: UserResolvable, cache?: boolean): Promise<GuildMember>;
Expand All @@ -404,6 +405,33 @@ declare module 'discord.js' {
public unban(user: UserResolvable): Promise<User>;
}

export class GuildAuditLogs {
constructor(guild: Guild, data: object);
public entries: Collection<Snowflake, GuildAuditLogsEntry>;

public static Actions: GuildAuditLogsActions;
public static Targets: GuildAuditLogsTargets;
public static Entry: typeof GuildAuditLogsEntry;
public static actionType(action: number): GuildAuditLogsActionType;
public static build(...args: any[]): Promise<GuildAuditLogs>;
public static targetType(target: number): GuildAuditLogsTarget;
}

class GuildAuditLogsEntry {
constructor(guild: Guild, data: object);
public action: GuildAuditLogsAction;
public actionType: GuildAuditLogsActionType;
public changes?: AuditLogChange[];
public readonly createdTimestamp: number;
public readonly createdAt: Date;
public executor: User;
public extra?: object | Role | GuildMember;
public id: Snowflake;
public reason?: string;
public target?: Guild | User | Role | Emoji | Invite | Webhook;
public targetType: GuildAuditLogsTarget;
}

export class GuildChannel extends Channel {
constructor(guild: Guild, data: object);
public readonly calculatedPosition: number;
Expand Down Expand Up @@ -458,13 +486,13 @@ declare module 'discord.js' {
public voiceSessionID: string;
public addRole(role: Role | Snowflake): Promise<GuildMember>;
public addRoles(roles: Collection<Snowflake, Role> | Role[] | Snowflake[]): Promise<GuildMember>;
public ban(deleteDays?: number): Promise<GuildMember>;
public ban(options?: BanOptions | number | string): Promise<GuildMember>;
public createDM(): Promise<DMChannel>;
public deleteDM(): Promise<DMChannel>;
public edit(data: object): Promise<GuildMember>;
public hasPermission(permission: PermissionResolvable | PermissionResolvable[], explicit?: boolean, checkAdmin?: boolean, checkOwner?: boolean): boolean;
public hasPermissions(permission: PermissionResolvable[], explicit?: boolean): boolean;
public kick(): Promise<GuildMember>;
public kick(reason?: string): Promise<GuildMember>;
public missingPermissions(permissions: PermissionResolvable[], explicit?: boolean): PermissionResolvable[];
public permissionsIn(channel: ChannelResolvable): Permissions;
public removeRole(role: Role | Snowflake): Promise<GuildMember>;
Expand Down Expand Up @@ -1274,10 +1302,21 @@ declare module 'discord.js' {
deaf?: boolean;
}

type AuditLogChange = {
key: string;
old?: any;
new?: any;
};

type AwaitMessagesOptions = MessageCollectorOptions & { errors?: string[] };

type AwaitReactionsOptions = ReactionCollectorOptions & { errors?: string[] };

type BanOptions = {
days?: number;
reason?: string;
};

type Base64Resolvable = Buffer | Base64String;

type Base64String = string;
Expand Down Expand Up @@ -1379,6 +1418,63 @@ declare module 'discord.js' {
nick?: string;
};

type GuildAuditLogsAction = keyof GuildAuditLogsActions;

type GuildAuditLogsActions = {
GUILD_UPDATE?: number,
CHANNEL_CREATE?: number,
CHANNEL_UPDATE?: number,
CHANNEL_DELETE?: number,
CHANNEL_OVERWRITE_CREATE?: number,
CHANNEL_OVERWRITE_UPDATE?: number,
CHANNEL_OVERWRITE_DELETE?: number,
MEMBER_KICK?: number,
MEMBER_PRUNE?: number,
MEMBER_BAN_ADD?: number,
MEMBER_BAN_REMOVE?: number,
MEMBER_UPDATE?: number,
MEMBER_ROLE_UPDATE?: number,
ROLE_CREATE?: number,
ROLE_UPDATE?: number,
ROLE_DELETE?: number,
INVITE_CREATE?: number,
INVITE_UPDATE?: number,
INVITE_DELETE?: number,
WEBHOOK_CREATE?: number,
WEBHOOK_UPDATE?: number,
WEBHOOK_DELETE?: number,
EMOJI_CREATE?: number,
EMOJI_UPDATE?: number,
EMOJI_DELETE?: number,
MESSAGE_DELETE?: number,
};

type GuildAuditLogsActionType = 'CREATE'
| 'DELETE'
| 'UPDATE'
| 'ALL';

type GuildAuditLogsFetchOptions = {
before?: Snowflake | GuildAuditLogsEntry;
after?: Snowflake | GuildAuditLogsEntry;
limit?: number;
user?: UserResolvable;
type?: string | number;
};

type GuildAuditLogsTarget = keyof GuildAuditLogsTargets;

type GuildAuditLogsTargets = {
GUILD?: string;
CHANNEL?: string;
USER?: string;
ROLE?: string;
INVITE?: string;
WEBHOOK?: string;
EMOJI?: string;
MESSAGE?: string;
};

type GuildEditData = {
name?: string;
region?: string;
Expand Down Expand Up @@ -1481,6 +1577,7 @@ declare module 'discord.js' {
MANAGE_CHANNELS?: number;
MANAGE_GUILD?: number;
ADD_REACTIONS?: number;
VIEW_AUDIT_LOG?: number;
READ_MESSAGES?: number;
SEND_MESSAGES?: number;
SEND_TTS_MESSAGES?: number;
Expand Down Expand Up @@ -1513,6 +1610,7 @@ declare module 'discord.js' {
MANAGE_CHANNELS?: boolean;
MANAGE_GUILD?: boolean;
ADD_REACTIONS?: boolean;
VIEW_AUDIT_LOG?: boolean;
READ_MESSAGES?: boolean;
SEND_MESSAGES?: boolean;
SEND_TTS_MESSAGES?: boolean;
Expand Down