Re-fetch member info from the API if we can't find a user on a main guild
parent
846f33bdf1
commit
3cc566e6b0
|
@ -3,6 +3,7 @@ const config = require('./config');
|
|||
|
||||
const bot = new Eris.CommandClient(config.token, {
|
||||
getAllUsers: true,
|
||||
restMode: true,
|
||||
}, {
|
||||
prefix: config.prefix,
|
||||
ignoreSelf: true,
|
||||
|
|
|
@ -4,6 +4,7 @@ const moment = require('moment');
|
|||
const uuid = require('uuid');
|
||||
const humanizeDuration = require('humanize-duration');
|
||||
|
||||
const bot = require('../bot');
|
||||
const knex = require('../knex');
|
||||
const config = require('../config');
|
||||
const utils = require('../utils');
|
||||
|
@ -134,29 +135,36 @@ async function createNewThreadForUser(user, quiet = false) {
|
|||
|
||||
let infoHeader = infoHeaderItems.join(', ');
|
||||
|
||||
// Guild info
|
||||
const guildInfoHeaderItems = new Map();
|
||||
// Guild member info
|
||||
const mainGuilds = utils.getMainGuilds();
|
||||
|
||||
mainGuilds.forEach(guild => {
|
||||
const member = guild.members.get(user.id);
|
||||
if (! member) return;
|
||||
for (const guild of mainGuilds) {
|
||||
let member = guild.members.get(user.id);
|
||||
|
||||
if (! member) {
|
||||
try {
|
||||
member = await bot.getRESTGuildMember(guild.id, user.id);
|
||||
} catch (e) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if (member) {
|
||||
const {nickname, joinDate} = getHeaderGuildInfo(member);
|
||||
guildInfoHeaderItems.set(guild.name, [
|
||||
const headerStr = [
|
||||
`NICKNAME **${nickname}**`,
|
||||
`JOINED **${joinDate}** ago`
|
||||
]);
|
||||
});
|
||||
].join(', ');
|
||||
|
||||
guildInfoHeaderItems.forEach((items, guildName) => {
|
||||
if (mainGuilds.length === 1) {
|
||||
infoHeader += `\n${items.join(', ')}`;
|
||||
infoHeader += `\n${headerStr}`;
|
||||
} else {
|
||||
infoHeader += `\n**[${guildName}]** ${items.join(', ')}`;
|
||||
infoHeader += `\n**[${guild.name}]** ${headerStr}`;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// ModMail history / previous logs
|
||||
const userLogCount = await getClosedThreadCountByUserId(user.id);
|
||||
if (userLogCount > 0) {
|
||||
infoHeader += `\n\nThis user has **${userLogCount}** previous modmail threads. Use \`${config.prefix}logs\` to see them.`;
|
||||
|
|
Loading…
Reference in New Issue