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;
 | 
					        break;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      case AuditLogActions.MEMBER_ROLE_UPDATE: {
 | 
					      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 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" : "";
 | 
					        const plural = roles.length > 1 ? "s" : "";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        channel
 | 
					        channel
 | 
				
			||||||
          .createMessage({
 | 
					          .createMessage({
 | 
				
			||||||
            embeds: [
 | 
					            embeds: [
 | 
				
			||||||
              {
 | 
					              {
 | 
				
			||||||
                color: added ? COLOR_ADDED : COLOR_REMOVED,
 | 
					                color: addAndRemove ? COLOR_CHANGED : isAdd ? COLOR_ADDED : COLOR_REMOVED,
 | 
				
			||||||
                title: `Member Role${plural} Updated`,
 | 
					                title: `Member Role${plural} Updated`,
 | 
				
			||||||
                description: `<@${entry.user.id}> (${formatUsername(entry.user)}) ${added ? "added" : "removed"} ${
 | 
					                description: `<@${entry.user.id}> (${formatUsername(entry.user)}) ${
 | 
				
			||||||
                  roles.length > 1 ? `${roles.length} ` : ""
 | 
					                  addAndRemove ? "added and removed" : isAdd ? "added" : "removed"
 | 
				
			||||||
                }role${plural} ${added ? "to" : "from"} ${
 | 
					                } ${roles.length > 1 ? `${roles.length} ` : ""}role${plural} ${added ? "to" : "from"} ${
 | 
				
			||||||
                  isSelf ? "self" : `<@${entry.targetID}> (${formatUsername(entry.target.user)})`
 | 
					                  isSelf ? "self" : `<@${entry.targetID}> (${formatUsername(entry.target.user)})`
 | 
				
			||||||
                }`,
 | 
					                }`,
 | 
				
			||||||
                timestamp: new Date().toISOString(),
 | 
					                timestamp: new Date().toISOString(),
 | 
				
			||||||
                fields: [
 | 
					                fields: [
 | 
				
			||||||
                  {
 | 
					                  !addAndRemove && {
 | 
				
			||||||
                    name: `Role${plural}`,
 | 
					                    name: `Role${plural}`,
 | 
				
			||||||
                    value: roles.map((role) => `<@&${role.id}> (${role.name})`).join("\n"),
 | 
					                    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: {
 | 
					                footer: {
 | 
				
			||||||
                  text: `Role ID${plural}: ${roles.map((role) => role.id).join(", ")}`,
 | 
					                  text: `Role ID${plural}: ${roles.map((role) => role.id).join(", ")}`,
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue