Add resolveUserID and improve other resolutions

This commit is contained in:
Schuyler Cebulskie
2016-09-18 22:59:38 -04:00
parent ab7682f921
commit bbddfef7f6

View File

@@ -38,18 +38,24 @@ class ClientDataResolver {
* @returns {?User} * @returns {?User}
*/ */
resolveUser(user) { resolveUser(user) {
if (user instanceof User) { if (user instanceof User) return user;
return user; if (typeof user === 'string') return this.client.users.get(user) || null;
} else if (typeof user === 'string') { if (user instanceof GuildMember) return user.user;
return this.client.users.get(user); if (user instanceof Message) return user.author;
} else if (user instanceof Message) { if (user instanceof Guild) return user.owner;
return user.author; return null;
} else if (user instanceof Guild) { }
return user.owner;
} else if (user instanceof GuildMember) {
return user.user;
}
/**
* Resolves a UserResolvable to a user ID string
* @param {UserResolvable} user The UserResolvable to identify
* @returns {?string}
*/
resolveUserID(user) {
if (user instanceof User || user instanceof GuildMember) return user.id;
if (typeof user === 'string') return user || null;
if (user instanceof Message) return user.author.id;
if (user instanceof Guild) return user.owner.id;
return null; return null;
} }
@@ -66,7 +72,7 @@ class ClientDataResolver {
*/ */
resolveGuild(guild) { resolveGuild(guild) {
if (guild instanceof Guild) return guild; if (guild instanceof Guild) return guild;
if (typeof guild === 'string') return this.client.guilds.get(guild); if (typeof guild === 'string') return this.client.guilds.get(guild) || null;
return null; return null;
} }
@@ -90,7 +96,7 @@ class ClientDataResolver {
user = this.resolveUser(user); user = this.resolveUser(user);
if (!guild || !user) return null; if (!guild || !user) return null;
return guild.members.get(user.id); return guild.members.get(user.id) || null;
} }
/** /**
@@ -127,8 +133,8 @@ class ClientDataResolver {
resolveChannel(channel) { resolveChannel(channel) {
if (channel instanceof Channel) return channel; if (channel instanceof Channel) return channel;
if (channel instanceof Message) return channel.channel; if (channel instanceof Message) return channel.channel;
if (channel instanceof Guild) return channel.channels.get(channel.id); if (channel instanceof Guild) return channel.channels.get(channel.id) || null;
if (typeof channel === 'string') return this.client.channels.get(channel.id); if (typeof channel === 'string') return this.client.channels.get(channel.id) || null;
return null; return null;
} }