logging: another roles edgecase
This commit is contained in:
		
							parent
							
								
									6cfe1a9e62
								
							
						
					
					
						commit
						70758af75c
					
				
					 1 changed files with 23 additions and 8 deletions
				
			
		| 
						 | 
				
			
			@ -131,29 +131,44 @@ events.add("guildAuditLogEntryCreate", "logging", async function (entry) {
 | 
			
		|||
        break;
 | 
			
		||||
      }
 | 
			
		||||
      case AuditLogActions.MEMBER_ROLE_UPDATE: {
 | 
			
		||||
        const added = entry.after.$add != null;
 | 
			
		||||
        const isAdd = entry.after.$add != null;
 | 
			
		||||
        const isSelf = entry.user.id === entry.targetID;
 | 
			
		||||
        const roles = entry.after.$add ?? entry.after.$remove;
 | 
			
		||||
 | 
			
		||||
        const added = entry.after.$add;
 | 
			
		||||
        const removed = entry.after.$remove;
 | 
			
		||||
        let roles = added ?? removed;
 | 
			
		||||
 | 
			
		||||
        const addAndRemove = added != null && removed != null;
 | 
			
		||||
        if (addAndRemove) roles = [...added, ...removed];
 | 
			
		||||
 | 
			
		||||
        const plural = roles.length > 1 ? "s" : "";
 | 
			
		||||
 | 
			
		||||
        channel
 | 
			
		||||
          .createMessage({
 | 
			
		||||
            embeds: [
 | 
			
		||||
              {
 | 
			
		||||
                color: added ? COLOR_ADDED : COLOR_REMOVED,
 | 
			
		||||
                color: addAndRemove ? COLOR_CHANGED : isAdd ? COLOR_ADDED : COLOR_REMOVED,
 | 
			
		||||
                title: `Member Role${plural} Updated`,
 | 
			
		||||
                description: `<@${entry.user.id}> (${formatUsername(entry.user)}) ${added ? "added" : "removed"} ${
 | 
			
		||||
                  roles.length > 1 ? `${roles.length} ` : ""
 | 
			
		||||
                }role${plural} ${added ? "to" : "from"} ${
 | 
			
		||||
                description: `<@${entry.user.id}> (${formatUsername(entry.user)}) ${
 | 
			
		||||
                  addAndRemove ? "added and removed" : isAdd ? "added" : "removed"
 | 
			
		||||
                } ${roles.length > 1 ? `${roles.length} ` : ""}role${plural} ${added ? "to" : "from"} ${
 | 
			
		||||
                  isSelf ? "self" : `<@${entry.targetID}> (${formatUsername(entry.target.user)})`
 | 
			
		||||
                }`,
 | 
			
		||||
                timestamp: new Date().toISOString(),
 | 
			
		||||
                fields: [
 | 
			
		||||
                  {
 | 
			
		||||
                  !addAndRemove && {
 | 
			
		||||
                    name: `Role${plural}`,
 | 
			
		||||
                    value: roles.map((role) => `<@&${role.id}> (${role.name})`).join("\n"),
 | 
			
		||||
                  },
 | 
			
		||||
                ],
 | 
			
		||||
                  addAndRemove && {
 | 
			
		||||
                    name: "Added",
 | 
			
		||||
                    value: added.map((role) => `<@&${role.id}> (${role.name})`).join("\n"),
 | 
			
		||||
                  },
 | 
			
		||||
                  addAndRemove && {
 | 
			
		||||
                    name: "Removed",
 | 
			
		||||
                    value: removed.map((role) => `<@&${role.id}> (${role.name})`).join("\n"),
 | 
			
		||||
                  },
 | 
			
		||||
                ].filter((x) => !!x),
 | 
			
		||||
                footer: {
 | 
			
		||||
                  text: `Role ID${plural}: ${roles.map((role) => role.id).join(", ")}`,
 | 
			
		||||
                },
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue