mirror of
https://github.com/danbulant/discord.js
synced 2026-05-27 14:02:02 +00:00
add MessageMentions#has, remove old method (#1724)
* Update MessageMentions.js * remove old method * smh * Update Message.js * Update MessageMentions.js * Update MessageMentions.js * Update MessageMentions.js
This commit is contained in:
parent
5799ba28f9
commit
963cf42e0d
2 changed files with 17 additions and 26 deletions
|
|
@ -330,32 +330,6 @@ class Message {
|
||||||
this.channel.permissionsFor(this.client.user).has(Permissions.FLAGS.MANAGE_MESSAGES);
|
this.channel.permissionsFor(this.client.user).has(Permissions.FLAGS.MANAGE_MESSAGES);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether or not a user, channel or role is mentioned in this message.
|
|
||||||
* @param {GuildChannel|User|Role|string} data Either a guild channel, user or a role object, or a string representing
|
|
||||||
* the ID of any of these
|
|
||||||
* @returns {boolean}
|
|
||||||
*/
|
|
||||||
isMentioned(data) {
|
|
||||||
data = data && data.id ? data.id : data;
|
|
||||||
return this.mentions.users.has(data) || this.mentions.channels.has(data) || this.mentions.roles.has(data);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether or not a guild member is mentioned in this message. Takes into account
|
|
||||||
* user mentions, role mentions, and @everyone/@here mentions.
|
|
||||||
* @param {GuildMember|User} member The member/user to check for a mention of
|
|
||||||
* @returns {boolean}
|
|
||||||
*/
|
|
||||||
isMemberMentioned(member) {
|
|
||||||
// Lazy-loading is used here to get around a circular dependency that breaks things
|
|
||||||
if (!GuildMember) GuildMember = require('./GuildMember');
|
|
||||||
if (this.mentions.everyone) return true;
|
|
||||||
if (this.mentions.users.has(member.id)) return true;
|
|
||||||
if (member instanceof GuildMember && member.roles.some(r => this.mentions.roles.has(r.id))) return true;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Options that can be passed into editMessage.
|
* Options that can be passed into editMessage.
|
||||||
* @typedef {Object} MessageEditOptions
|
* @typedef {Object} MessageEditOptions
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
const Collection = require('../util/Collection');
|
const Collection = require('../util/Collection');
|
||||||
|
const GuildMember = require('./GuildMember');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Keeps track of mentions in a {@link Message}.
|
* Keeps track of mentions in a {@link Message}.
|
||||||
|
|
@ -115,6 +116,22 @@ class MessageMentions {
|
||||||
}
|
}
|
||||||
return this._channels;
|
return this._channels;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if a user is mentioned. Takes into account user mentions, role
|
||||||
|
* mentions, and @everyone/@here mentions.
|
||||||
|
* @param {UserResolvable|GuildMember|Role|GuildChannel} data User/GuildMember/Role/Channel to check
|
||||||
|
* @param {boolean} [strict=true] If role mentions and everyone/here mentions should be included
|
||||||
|
* @returns {boolean}
|
||||||
|
*/
|
||||||
|
has(data, strict = true) {
|
||||||
|
if (strict && this.everyone) return true;
|
||||||
|
if (strict && data instanceof GuildMember) {
|
||||||
|
for (const role of this.roles) if (data.roles.has(role.id)) return true;
|
||||||
|
}
|
||||||
|
const id = data.id || data;
|
||||||
|
return this.users.has(id) || this.channels.has(id) || this.roles.has(id);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue