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);
 | 
			
		||||
  if (!channel) return;
 | 
			
		||||
 | 
			
		||||
  const timestamp = new Date().toISOString();
 | 
			
		||||
  const user = member.user;
 | 
			
		||||
  const defaultAvatar = getDefaultAvatar(user.id, user.discriminator ?? 0);
 | 
			
		||||
  const avatar = user.avatar ? CDNEndpoints.USER_AVATAR(user.id, user.avatar) : defaultAvatar;
 | 
			
		||||
 | 
			
		||||
  const memberSearch = await hf.bot.requestHandler
 | 
			
		||||
    .request("POST", `/guilds/${guild.id}/members-search`, true, {
 | 
			
		||||
      and_query: {user_id: {or_query: [user.id]}},
 | 
			
		||||
      or_query: {},
 | 
			
		||||
      limit: 5,
 | 
			
		||||
    })
 | 
			
		||||
    .then((res) => res?.members?.[0])
 | 
			
		||||
    .catch(() => {});
 | 
			
		||||
  setTimeout(async () => {
 | 
			
		||||
    const memberSearch = await hf.bot.requestHandler
 | 
			
		||||
      .request("POST", `/guilds/${guild.id}/members-search`, true, {
 | 
			
		||||
        and_query: {user_id: {or_query: [user.id]}},
 | 
			
		||||
        or_query: {},
 | 
			
		||||
        limit: 5,
 | 
			
		||||
      })
 | 
			
		||||
      .then((res) => res?.members?.[0])
 | 
			
		||||
      .catch(() => {});
 | 
			
		||||
 | 
			
		||||
  let inviter;
 | 
			
		||||
  if (memberSearch?.inviter_id) inviter = await guild.getMember(memberSearch.inviter_id);
 | 
			
		||||
    let inviter;
 | 
			
		||||
    if (memberSearch?.inviter_id) inviter = await guild.getRESTMember(memberSearch.inviter_id).catch(() => {});
 | 
			
		||||
 | 
			
		||||
  channel
 | 
			
		||||
    .createMessage({
 | 
			
		||||
      embeds: [
 | 
			
		||||
        {
 | 
			
		||||
          color: COLOR_ADDED,
 | 
			
		||||
          title: "Member Joined",
 | 
			
		||||
          description: `<@${user.id}> (${formatUsername(user)})`,
 | 
			
		||||
          timestamp: new Date().toISOString(),
 | 
			
		||||
          thumbnail: {
 | 
			
		||||
            url: avatar,
 | 
			
		||||
    channel
 | 
			
		||||
      .createMessage({
 | 
			
		||||
        embeds: [
 | 
			
		||||
          {
 | 
			
		||||
            color: COLOR_ADDED,
 | 
			
		||||
            title: "Member Joined",
 | 
			
		||||
            description: `<@${user.id}> (${formatUsername(user)})`,
 | 
			
		||||
            timestamp,
 | 
			
		||||
            thumbnail: {
 | 
			
		||||
              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",
 | 
			
		||||
              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}`,
 | 
			
		||||
          },
 | 
			
		||||
        },
 | 
			
		||||
      ],
 | 
			
		||||
    })
 | 
			
		||||
    .catch(() => {});
 | 
			
		||||
        ],
 | 
			
		||||
      })
 | 
			
		||||
      .catch(() => {});
 | 
			
		||||
  }, 1000);
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
events.add("guildMemberRemove", "logging", async function (guild, member) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue