Document all the events

This commit is contained in:
Amish Shah
2016-08-20 00:15:04 +01:00
parent f8b2629b18
commit 65350348a8
26 changed files with 210 additions and 1 deletions

File diff suppressed because one or more lines are too long

View File

@@ -80,12 +80,20 @@ function firstPass() {
return cleaned;
}
const seenEvents = {};
function clean() {
const cleaned = firstPass();
for (const item of json) {
if (!item) {
continue;
}
if (item.kind === 'event') {
if (seenEvents[item.name]) {
console.log('dupe logs for', item.name);
}
seenEvents[item.name] = true;
}
if (item.kind === 'member') {
const obj = cleaned.classes[item.memberof] || cleaned.interfaces[item.memberof];
const newTypes = [];

View File

@@ -21,6 +21,12 @@ class ClientDataManager {
const guild = new Guild(this.client, data);
this.client.guilds.set(guild.id, guild);
if (this.pastReady && !already) {
/**
* Emitted whenever the client joins a Guild.
*
* @event Client#guildCreate
* @param {Guild} guild the created guild.
*/
this.client.emit(Constants.Events.GUILD_CREATE, guild);
}

View File

@@ -28,4 +28,12 @@ class ChannelUpdateAction extends Action {
}
}
/**
* Emitted whenever a channel is updated - e.g. name change, topic change.
*
* @event Client#channelUpdate
* @param {Channel} oldChannel the channel before the update
* @param {Channel} newChannel the channel after the update
*/
module.exports = ChannelUpdateAction;

View File

@@ -46,4 +46,11 @@ class GuildDeleteAction extends Action {
}
}
/**
* Emitted whenever a guild becomes unavailable, likely due to a server outage.
*
* @event Client#guildUnavailable
* @param {Guild} guild the guild that has become unavailable.
*/
module.exports = GuildDeleteAction;

View File

@@ -45,4 +45,14 @@ class GuildMemberRemoveAction extends Action {
}
}
/**
* Emitted whenever a member leaves a guild, or is kicked.
*
* @event Client#guildMemberRemove
* @param {Guild} guild the guild that the member has left.
* @param {GuildMember} member the member that has left the guild.
*/
module.exports = GuildMemberRemoveAction;

View File

@@ -28,4 +28,14 @@ class GuildRoleCreate extends Action {
}
}
/**
* Emitted whenever a guild role is created.
*
* @event Client#guildRoleCreate
* @param {Guild} guild the guild that the role was created in.
* @param {Role} role the role that was created.
*/
module.exports = GuildRoleCreate;

View File

@@ -44,4 +44,12 @@ class GuildRoleDeleteAction extends Action {
}
}
/**
* Emitted whenever a guild role is deleted.
*
* @event Client#guildRoleDelete
* @param {Guild} guild the guild that the role was deleted in.
* @param {Role} role the role that was deleted.
*/
module.exports = GuildRoleDeleteAction;

View File

@@ -33,4 +33,13 @@ class GuildRoleUpdateAction extends Action {
}
}
/**
* Emitted whenever a guild role is updated.
*
* @event Client#guildRoleUpdated
* @param {Guild} guild the guild that the role was updated in.
* @param {Role} oldRole the role before the update.
* @param {Role} newRole the role after the update.
*/
module.exports = GuildRoleUpdateAction;

View File

@@ -35,4 +35,12 @@ class GuildUpdateAction extends Action {
}
}
/**
* Emitted whenever a guild is updated - e.g. name change.
*
* @event Client#guildUpdate
* @param {Guild} oldGuild the guild before the update.
* @param {Guild} newGuild the guild after the update.
*/
module.exports = GuildUpdateAction;

View File

@@ -33,4 +33,12 @@ class MessageUpdateAction extends Action {
}
}
/**
* Emitted whenever a message is updated - e.g. embed or content change.
*
* @event Client#messageUpdate
* @param {Message} oldMessage the message before the update.
* @param {Message} newMessage the message after the update.
*/
module.exports = MessageUpdateAction;

View File

@@ -33,4 +33,12 @@ class UserUpdateAction extends Action {
}
}
/**
* Emitted whenever a detail of the logged in User changes - e.g. username.
*
* @event Client#userUpdate
* @param {ClientUser} oldClientUser the client user before the update.
* @param {ClientUser} newClientUser the client user after the update.
*/
module.exports = UserUpdateAction;

View File

@@ -182,6 +182,11 @@ class WebSocketManager {
if (unavailableCount === 0) {
this.status = Constants.Status.READY;
/**
* Emitted when the Client becomes ready to start working
*
* @event Client#ready
*/
this.client.emit(Constants.Events.READY);
this.packetManager.handleQueue();
}
@@ -196,6 +201,11 @@ class WebSocketManager {
this.status = Constants.Status.RECONNECTING;
this.ws.close();
this.packetManager.handleQueue();
/**
* Emitted when the Client tries to reconnect after being disconnected
*
* @event Client#reconnecting
*/
this.client.emit(Constants.Events.RECONNECTING);
this.connect(this.client.ws.gateway);
}

View File

@@ -17,4 +17,11 @@ class ChannelCreateHandler extends AbstractHandler {
}
/**
* Emitted whenever a Channel is created.
*
* @event Client#channelCreate
* @param {Channel} channel The channel that was created
*/
module.exports = ChannelCreateHandler;

View File

@@ -17,4 +17,11 @@ class ChannelDeleteHandler extends AbstractHandler {
}
/**
* Emitted whenever a Channel is deleted.
*
* @event Client#channelDelete
* @param {Channel} channel The channel that was deleted
*/
module.exports = ChannelDeleteHandler;

View File

@@ -19,4 +19,12 @@ class GuildBanAddHandler extends AbstractHandler {
}
/**
* Emitted whenever a member is banned from a guild.
*
* @event Client#guildBanAdd
* @param {Guild} guild The guild that the ban occurred in
* @param {User} user The user that was banned
*/
module.exports = GuildBanAddHandler;

View File

@@ -20,4 +20,12 @@ class GuildBanRemoveHandler extends AbstractHandler {
}
/**
* Emitted whenever a member is unbanned from a guild.
*
* @event Client#guildBanRemove
* @param {Guild} guild The guild that the unban occurred in
* @param {User} user The user that was unbanned
*/
module.exports = GuildBanRemoveHandler;

View File

@@ -16,4 +16,11 @@ class GuildDeleteHandler extends AbstractHandler {
}
/**
* Emitted whenever a Guild is deleted/left.
*
* @event Client#guildDelete
* @param {Guild} guild The guild that was deleted
*/
module.exports = GuildDeleteHandler;

View File

@@ -22,4 +22,12 @@ class GuildMembersChunkHandler extends AbstractHandler {
}
/**
* Emitted whenever a chunk of Guild members is received
*
* @event Client#guildMembersChunk
* @param {Guild} guild The guild that the chunks relate to
* @param {Array<GuildMember>} members The members in the chunk
*/
module.exports = GuildMembersChunkHandler;

View File

@@ -16,4 +16,11 @@ class MessageCreateHandler extends AbstractHandler {
}
/**
* Emitted whenever a message is created
*
* @event Client#message
* @param {Message} message The created message
*/
module.exports = MessageCreateHandler;

View File

@@ -16,4 +16,11 @@ class MessageDeleteHandler extends AbstractHandler {
}
/**
* Emitted whenever a message is deleted
*
* @event Client#messageDelete
* @param {Message} message The deleted message
*/
module.exports = MessageDeleteHandler;

View File

@@ -63,4 +63,21 @@ class PresenceUpdateHandler extends AbstractHandler {
}
/**
* Emitted whenever a user changes one of their details or starts/stop playing a game
*
* @event Client#presenceUpdate
* @param {User} oldUser the user before the presence update
* @param {User} newUser the user after the presence update
*/
/**
* Emitted whenever a member becomes available in a large Guild
*
* @event Client#guildMemberAvailable
* @param {Guild} guild The guild that the member became available in
* @param {GuildMember} member the member that became available
*/
module.exports = PresenceUpdateHandler;

View File

@@ -49,4 +49,20 @@ class TypingStartHandler extends AbstractHandler {
}
/**
* Emitted whenever a user starts typing in a channel
*
* @event Client#typingStart
* @param {Channel} channel the channel the user started typing in
* @param {User} user the user that started typing
*/
/**
* Emitted whenever a user stops typing in a channel
*
* @event Client#typingStop
* @param {Channel} channel the channel the user stopped typing in
* @param {User} user the user that stopped typing
*/
module.exports = TypingStartHandler;

View File

@@ -31,4 +31,12 @@ class VoiceStateUpdateHandler extends AbstractHandler {
}
/**
* Emitted whenever a user changes voice state - e.g. joins/leaves a channel, mutes/unmutes.
*
* @event Client#voiceStateUpdate
* @param {GuildMember} oldMember the member before the voice state update
* @param {GuildMember} newMember the member before the voice state update
*/
module.exports = VoiceStateUpdateHandler;

View File

@@ -88,6 +88,14 @@ class Guild {
member._roles = data.roles;
if (this.client.ws.status === Constants.Status.READY) {
/**
* Emitted whenever a Guild Member's Roles change - i.e. new role or removed role
*
* @event Client#guildMemberRolesUpdate
* @param {Guild} guild the guild that the update affects
* @param {Array<Role>} oldRoles the roles before the update
* @param {Guild} newRoles the roles after the update
*/
this.client.emit(Constants.Events.GUILD_MEMBER_ROLES_UPDATE, this, oldRoles, member.roles);
}
}

View File

@@ -121,6 +121,7 @@ exports.Events = {
MESSAGE_CREATE: 'message',
MESSAGE_DELETE: 'messageDelete',
MESSAGE_UPDATE: 'messageUpdate',
RECONNECTING: 'reconnecting',
};
exports.WSEvents = {