Skip to content

Commit

Permalink
Base Emoji class for ReactionEmoji and renamed GuildEmoji classes (di…
Browse files Browse the repository at this point in the history
…scordjs#2230)

* feat: create base Emoji class for ReactionEmoji and new GuildEmoji

* rename EmojiStore to GuildEmojiStore to account for the new class' name
  • Loading branch information
SpaceEEC authored and Frangu Vlad committed Jan 18, 2018
1 parent 550cc6b commit 97e1ca0
Show file tree
Hide file tree
Showing 15 changed files with 261 additions and 275 deletions.
6 changes: 3 additions & 3 deletions src/client/Client.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ const UserStore = require('../stores/UserStore');
const ChannelStore = require('../stores/ChannelStore');
const GuildStore = require('../stores/GuildStore');
const ClientPresenceStore = require('../stores/ClientPresenceStore');
const EmojiStore = require('../stores/EmojiStore');
const GuildEmojiStore = require('../stores/GuildEmojiStore');
const { Events, browser } = require('../util/Constants');
const DataResolver = require('../util/DataResolver');
const { Error, TypeError, RangeError } = require('../errors');
Expand Down Expand Up @@ -208,11 +208,11 @@ class Client extends BaseClient {

/**
* All custom emojis that the client has access to, mapped by their IDs
* @type {EmojiStore<Snowflake, Emoji>}
* @type {GuildEmojiStore<Snowflake, GuildEmoji>}
* @readonly
*/
get emojis() {
const emojis = new EmojiStore({ client: this });
const emojis = new GuildEmojiStore({ client: this });
for (const guild of this.guilds.values()) {
if (guild.available) for (const emoji of guild.emojis.values()) emojis.set(emoji.id, emoji);
}
Expand Down
2 changes: 1 addition & 1 deletion src/client/actions/GuildEmojiCreate.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ class GuildEmojiCreateAction extends Action {
/**
* Emitted whenever a custom emoji is created in a guild.
* @event Client#emojiCreate
* @param {Emoji} emoji The emoji that was created
* @param {GuildEmoji} emoji The emoji that was created
*/

module.exports = GuildEmojiCreateAction;
4 changes: 2 additions & 2 deletions src/client/actions/GuildEmojiDelete.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ class GuildEmojiDeleteAction extends Action {
}

/**
* Emitted whenever a custom guild emoji is deleted.
* Emitted whenever a custom emoji is deleted in a guild.
* @event Client#emojiDelete
* @param {Emoji} emoji The emoji that was deleted
* @param {GuildEmoji} emoji The emoji that was deleted
*/

module.exports = GuildEmojiDeleteAction;
6 changes: 3 additions & 3 deletions src/client/actions/GuildEmojiUpdate.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ class GuildEmojiUpdateAction extends Action {
}

/**
* Emitted whenever a custom guild emoji is updated.
* Emitted whenever a custom emoji is updated in a guild.
* @event Client#emojiUpdate
* @param {Emoji} oldEmoji The old emoji
* @param {Emoji} newEmoji The new emoji
* @param {GuildEmoji} oldEmoji The old emoji
* @param {GuildEmoji} newEmoji The new emoji
*/

module.exports = GuildEmojiUpdateAction;
2 changes: 1 addition & 1 deletion src/client/actions/MessageReactionAdd.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ class MessageReactionAdd extends Action {
* Emitted whenever a reaction is added to a message.
* @event Client#messageReactionAdd
* @param {MessageReaction} messageReaction The reaction object
* @param {User} user The user that applied the emoji or reaction emoji
* @param {User} user The user that applied the guild or reaction emoji
*/

module.exports = MessageReactionAdd;
2 changes: 1 addition & 1 deletion src/errors/Messages.js
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ const Messages = {

WEBHOOK_MESSAGE: 'The message was not sent by a webhook.',

EMOJI_TYPE: 'Emoji must be a string or Emoji/ReactionEmoji',
EMOJI_TYPE: 'Emoji must be a string or GuildEmoji/ReactionEmoji',

REACTION_RESOLVE_USER: 'Couldn\'t resolve the user ID to remove from the reaction.',
};
Expand Down
3 changes: 2 additions & 1 deletion src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ module.exports = {
// Stores
ChannelStore: require('./stores/ChannelStore'),
ClientPresenceStore: require('./stores/ClientPresenceStore'),
EmojiStore: require('./stores/EmojiStore'),
GuildChannelStore: require('./stores/GuildChannelStore'),
GuildEmojiStore: require('./stores/GuildEmojiStore'),
GuildMemberStore: require('./stores/GuildMemberStore'),
GuildStore: require('./stores/GuildStore'),
ReactionUserStore: require('./stores/ReactionUserStore'),
Expand Down Expand Up @@ -64,6 +64,7 @@ module.exports = {
Guild: require('./structures/Guild'),
GuildAuditLogs: require('./structures/GuildAuditLogs'),
GuildChannel: require('./structures/GuildChannel'),
GuildEmoji: require('./structures/GuildEmoji'),
GuildMember: require('./structures/GuildMember'),
Invite: require('./structures/Invite'),
Message: require('./structures/Message'),
Expand Down
22 changes: 11 additions & 11 deletions src/stores/EmojiStore.js → src/stores/GuildEmojiStore.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
const Collection = require('../util/Collection');
const DataStore = require('./DataStore');
const Emoji = require('../structures/Emoji');
const GuildEmoji = require('../structures/GuildEmoji');
const ReactionEmoji = require('../structures/ReactionEmoji');
const DataResolver = require('../util/DataResolver');

/**
* Stores emojis.
* Stores guild emojis.
* @private
* @extends {DataStore}
*/
class EmojiStore extends DataStore {
class GuildEmojiStore extends DataStore {
constructor(guild, iterable) {
super(guild.client, iterable, Emoji);
super(guild.client, iterable, GuildEmoji);
this.guild = guild;
}

Expand Down Expand Up @@ -61,25 +61,25 @@ class EmojiStore extends DataStore {
}

/**
* Data that can be resolved into an Emoji object. This can be:
* Data that can be resolved into an GuildEmoji object. This can be:
* * A custom emoji ID
* * An Emoji object
* * A GuildEmoji object
* * A ReactionEmoji object
* @typedef {Snowflake|Emoji|ReactionEmoji} EmojiResolvable
* @typedef {Snowflake|GuildEmoji|ReactionEmoji} EmojiResolvable
*/

/**
* Resolves a EmojiResolvable to a Emoji object.
* Resolves an EmojiResolvable to an Emoji object.
* @param {EmojiResolvable} emoji The Emoji resolvable to identify
* @returns {?Emoji}
* @returns {?GuildEmoji}
*/
resolve(emoji) {
if (emoji instanceof ReactionEmoji) return super.resolve(emoji.id);
return super.resolve(emoji);
}

/**
* Resolves a EmojiResolvable to a Emoji ID string.
* Resolves an EmojiResolvable to an Emoji ID string.
* @param {EmojiResolvable} emoji The Emoji resolvable to identify
* @returns {?Snowflake}
*/
Expand Down Expand Up @@ -111,4 +111,4 @@ class EmojiStore extends DataStore {
}
}

module.exports = EmojiStore;
module.exports = GuildEmojiStore;
Loading

0 comments on commit 97e1ca0

Please sign in to comment.