Bläddra i källkod

fix role mentions in DMs

Markus-Rost 4 år sedan
förälder
incheckning
180a421ec9
2 ändrade filer med 25 tillägg och 3 borttagningar
  1. 9 1
      cmds/verify.js
  2. 16 2
      functions/verify.js

+ 9 - 1
cmds/verify.js

@@ -1,4 +1,5 @@
 const {randomBytes} = require('crypto');
+const {MessageEmbed} = require('discord.js');
 var db = require('../util/database.js');
 var verify = require('../functions/verify.js');
 const {oauthVerify, allowDelete, escapeFormatting} = require('../util/functions.js');
@@ -150,7 +151,14 @@ function cmd_verify(lang, msg, args, line, wiki) {
 						]
 					});
 					if ( result.send_private ) {
-						msg.member.send( msg.channel.toString() + ', ' + result.content, {embed: options.embed, components: []} ).then( message => {
+						let dmEmbed = new MessageEmbed(options.embed);
+						dmEmbed.fields.forEach( field => {
+							field.value.replace( /<@&(\d+)>/g, (mention, id) => {
+								if ( !msg.guild.roles.cache.has(id) ) return mention;
+								return '@' + msg.guild.roles.cache.get(id)?.name;
+							} );
+						} );
+						msg.member.send( msg.channel.toString() + '; ' + result.content, {embed: dmEmbed, components: []} ).then( message => {
 							msg.reactEmoji('📩');
 							allowDelete(message, msg.author.id);
 							msg.delete({timeout: 60000, reason: lang.get('verify.footer')}).catch(log_error);

+ 16 - 2
functions/verify.js

@@ -814,7 +814,14 @@ global.verifyOauthUser = function(state, access_token, settings) {
 						return channel.messages.add(message);
 					}, () => {
 						if ( (verifynotice.flags & 1 << 0) === 1 << 0 ) {
-							member.send(channel.toString() + ', ' + content, options).then( message => {
+							let dmEmbed = new MessageEmbed(options.embed);
+							dmEmbed.fields.forEach( field => {
+								field.value.replace( /<@&(\d+)>/g, (mention, id) => {
+									if ( !channel.guild.roles.cache.has(id) ) return mention;
+									return '@' + channel.guild.roles.cache.get(id)?.name;
+								} );
+							} );
+							member.send(channel.toString() + '; ' + content, Object.assign({}, options, {embed: dmEmbed})).then( message => {
 								allowDelete(message, member.id);
 							}, error => {
 								if ( error?.code === 50007 ) { // CANNOT_MESSAGE_USER
@@ -827,7 +834,14 @@ global.verifyOauthUser = function(state, access_token, settings) {
 					} );
 				}
 				else if ( (verifynotice.flags & 1 << 0) === 1 << 0 ) {
-					member.send(channel.toString() + ', ' + content, options).then( message => {
+					let dmEmbed = new MessageEmbed(options.embed);
+					dmEmbed.fields.forEach( field => {
+						field.value.replace( /<@&(\d+)>/g, (mention, id) => {
+							if ( !channel.guild.roles.cache.has(id) ) return mention;
+							return '@' + channel.guild.roles.cache.get(id)?.name;
+						} );
+					} );
+					member.send(channel.toString() + '; ' + content, Object.assign({}, options, {embed: dmEmbed})).then( message => {
 						allowDelete(message, member.id);
 					}, error => {
 						if ( error?.code === 50007 ) { // CANNOT_MESSAGE_USER