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