logging: delay joins by a second to be able to get members-search info
This commit is contained in:
parent
38e3ace7af
commit
636a52290e
1 changed files with 58 additions and 55 deletions
|
@ -318,68 +318,71 @@ events.add("guildMemberAdd", "logging", async function (guild, member) {
|
||||||
const channel = await getLoggingChannel(guild);
|
const channel = await getLoggingChannel(guild);
|
||||||
if (!channel) return;
|
if (!channel) return;
|
||||||
|
|
||||||
|
const timestamp = new Date().toISOString();
|
||||||
const user = member.user;
|
const user = member.user;
|
||||||
const defaultAvatar = getDefaultAvatar(user.id, user.discriminator ?? 0);
|
const defaultAvatar = getDefaultAvatar(user.id, user.discriminator ?? 0);
|
||||||
const avatar = user.avatar ? CDNEndpoints.USER_AVATAR(user.id, user.avatar) : defaultAvatar;
|
const avatar = user.avatar ? CDNEndpoints.USER_AVATAR(user.id, user.avatar) : defaultAvatar;
|
||||||
|
|
||||||
const memberSearch = await hf.bot.requestHandler
|
setTimeout(async () => {
|
||||||
.request("POST", `/guilds/${guild.id}/members-search`, true, {
|
const memberSearch = await hf.bot.requestHandler
|
||||||
and_query: {user_id: {or_query: [user.id]}},
|
.request("POST", `/guilds/${guild.id}/members-search`, true, {
|
||||||
or_query: {},
|
and_query: {user_id: {or_query: [user.id]}},
|
||||||
limit: 5,
|
or_query: {},
|
||||||
})
|
limit: 5,
|
||||||
.then((res) => res?.members?.[0])
|
})
|
||||||
.catch(() => {});
|
.then((res) => res?.members?.[0])
|
||||||
|
.catch(() => {});
|
||||||
|
|
||||||
let inviter;
|
let inviter;
|
||||||
if (memberSearch?.inviter_id) inviter = await guild.getMember(memberSearch.inviter_id);
|
if (memberSearch?.inviter_id) inviter = await guild.getRESTMember(memberSearch.inviter_id).catch(() => {});
|
||||||
|
|
||||||
channel
|
channel
|
||||||
.createMessage({
|
.createMessage({
|
||||||
embeds: [
|
embeds: [
|
||||||
{
|
{
|
||||||
color: COLOR_ADDED,
|
color: COLOR_ADDED,
|
||||||
title: "Member Joined",
|
title: "Member Joined",
|
||||||
description: `<@${user.id}> (${formatUsername(user)})`,
|
description: `<@${user.id}> (${formatUsername(user)})`,
|
||||||
timestamp: new Date().toISOString(),
|
timestamp,
|
||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: avatar,
|
url: avatar,
|
||||||
|
},
|
||||||
|
fields: [
|
||||||
|
{
|
||||||
|
name: "Created",
|
||||||
|
value: `<t:${Math.floor(snowflakeToTimestamp(user.id) / 1000)}:R>`,
|
||||||
|
inline: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Join Method",
|
||||||
|
value: memberSearch?.join_source_type
|
||||||
|
? `${JoinSourceTypeNames[memberSearch.join_source_type]}${
|
||||||
|
memberSearch.source_invite_code
|
||||||
|
? ` via \`${memberSearch.source_invite_code}\``
|
||||||
|
: memberSearch.integration_type
|
||||||
|
? ` via \`${
|
||||||
|
GuildIntegrationTypes[memberSearch.integration_type] ??
|
||||||
|
`<unknown integration: ${memberSearch.integration_type}>`
|
||||||
|
}\``
|
||||||
|
: ""
|
||||||
|
}`
|
||||||
|
: "Unknown",
|
||||||
|
inline: true,
|
||||||
|
},
|
||||||
|
inviter && {
|
||||||
|
name: "Inviter",
|
||||||
|
value: `<@${inviter.id}> ${formatUsername(inviter.user)}`,
|
||||||
|
inline: true,
|
||||||
|
},
|
||||||
|
].filter((x) => !!x),
|
||||||
|
footer: {
|
||||||
|
text: `User ID: ${user.id}`,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
fields: [
|
],
|
||||||
{
|
})
|
||||||
name: "Created",
|
.catch(() => {});
|
||||||
value: `<t:${Math.floor(snowflakeToTimestamp(user.id) / 1000)}:R>`,
|
}, 1000);
|
||||||
inline: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Join Method",
|
|
||||||
value: memberSearch?.join_source_type
|
|
||||||
? `${JoinSourceTypeNames[memberSearch.join_source_type]}${
|
|
||||||
memberSearch.source_invite_code
|
|
||||||
? ` via \`${memberSearch.source_invite_code}\``
|
|
||||||
: memberSearch.integration_type
|
|
||||||
? ` via \`${
|
|
||||||
GuildIntegrationTypes[memberSearch.integration_type] ??
|
|
||||||
`<unknown integration: ${memberSearch.integration_type}>`
|
|
||||||
}\``
|
|
||||||
: ""
|
|
||||||
}`
|
|
||||||
: "Unknown",
|
|
||||||
inline: true,
|
|
||||||
},
|
|
||||||
inviter && {
|
|
||||||
name: "Inviter",
|
|
||||||
value: `<@${inviter.id}> ${formatUsername(inviter.user)}`,
|
|
||||||
inline: true,
|
|
||||||
},
|
|
||||||
].filter((x) => !!x),
|
|
||||||
footer: {
|
|
||||||
text: `User ID: ${user.id}`,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
})
|
|
||||||
.catch(() => {});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
events.add("guildMemberRemove", "logging", async function (guild, member) {
|
events.add("guildMemberRemove", "logging", async function (guild, member) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue