mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-15 02:53:31 +01:00
In-order + duplicate mentions, cleanContent in Messages
This commit is contained in:
@@ -155,7 +155,7 @@ var Resolver = (function () {
|
|||||||
// resource is a string
|
// resource is a string
|
||||||
var _mentions = [];
|
var _mentions = [];
|
||||||
var changed = resource;
|
var changed = resource;
|
||||||
for (var _iterator2 = resource.match(/<@[^>]*>/g) || [], _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
|
for (var _iterator2 = resource.match(/<@[0-9]+>/g) || [], _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
|
||||||
var _ref2;
|
var _ref2;
|
||||||
|
|
||||||
if (_isArray2) {
|
if (_isArray2) {
|
||||||
@@ -170,8 +170,11 @@ var Resolver = (function () {
|
|||||||
var mention = _ref2;
|
var mention = _ref2;
|
||||||
|
|
||||||
var userID = mention.substring(2, mention.length - 1);
|
var userID = mention.substring(2, mention.length - 1);
|
||||||
_mentions.push(userID);
|
var user = this.internal.client.users.get("id", userID);
|
||||||
changed = changed.replace(new RegExp(mention, "g"), "@" + this.internal.client.users.get("id", userID).username);
|
if (user) {
|
||||||
|
_mentions.push(user);
|
||||||
|
changed = changed.replace(new RegExp(mention, "g"), "@" + user.username);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [_mentions, changed];
|
return [_mentions, changed];
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -48,9 +48,12 @@ var Message = (function (_Equality) {
|
|||||||
if (data.author instanceof _User2["default"]) this.author = data.author;else this.author = client.internal.users.add(new _User2["default"](data.author, client));
|
if (data.author instanceof _User2["default"]) this.author = data.author;else this.author = client.internal.users.add(new _User2["default"](data.author, client));
|
||||||
|
|
||||||
this.content = data.content;
|
this.content = data.content;
|
||||||
|
|
||||||
|
var mentionData = client.internal.resolver.resolveMentions(data.content);
|
||||||
|
this.cleanContent = mentionData[1];
|
||||||
this.mentions = new _UtilCache2["default"]();
|
this.mentions = new _UtilCache2["default"]();
|
||||||
|
|
||||||
data.mentions.forEach(function (mention) {
|
mentionData[0].forEach(function (mention) {
|
||||||
// this is .add and not .get because it allows the bot to cache
|
// this is .add and not .get because it allows the bot to cache
|
||||||
// users from messages from logs who may have left the server and were
|
// users from messages from logs who may have left the server and were
|
||||||
// not previously cached.
|
// not previously cached.
|
||||||
|
|||||||
@@ -98,10 +98,13 @@ export default class Resolver {
|
|||||||
// resource is a string
|
// resource is a string
|
||||||
var _mentions = [];
|
var _mentions = [];
|
||||||
var changed = resource;
|
var changed = resource;
|
||||||
for (var mention of (resource.match(/<@[^>]*>/g) || [])) {
|
for (var mention of (resource.match(/<@[0-9]+>/g) || [])) {
|
||||||
let userID = mention.substring(2, mention.length - 1);
|
var userID = mention.substring(2, mention.length - 1);
|
||||||
_mentions.push(userID);
|
var user = this.internal.client.users.get("id", userID);
|
||||||
changed = changed.replace(new RegExp(mention, "g"), `@${this.internal.client.users.get("id", userID).username}`);
|
if (user) {
|
||||||
|
_mentions.push(user);
|
||||||
|
changed = changed.replace(new RegExp(mention, "g"), `@${user.username}`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [_mentions, changed];
|
return [_mentions, changed];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,9 +27,12 @@ export default class Message extends Equality{
|
|||||||
this.author = client.internal.users.add(new User(data.author, client));
|
this.author = client.internal.users.add(new User(data.author, client));
|
||||||
|
|
||||||
this.content = data.content;
|
this.content = data.content;
|
||||||
|
|
||||||
|
var mentionData = client.internal.resolver.resolveMentions(data.content);
|
||||||
|
this.cleanContent = mentionData[1];
|
||||||
this.mentions = new Cache();
|
this.mentions = new Cache();
|
||||||
|
|
||||||
data.mentions.forEach((mention) => {
|
mentionData[0].forEach((mention) => {
|
||||||
// this is .add and not .get because it allows the bot to cache
|
// this is .add and not .get because it allows the bot to cache
|
||||||
// users from messages from logs who may have left the server and were
|
// users from messages from logs who may have left the server and were
|
||||||
// not previously cached.
|
// not previously cached.
|
||||||
|
|||||||
Reference in New Issue
Block a user