move manage announce roles to role controller
This commit is contained in:
		@@ -82,41 +82,5 @@ Für eine Erklärung wie das alles funktioniert mach einfach /mitgucken für ein
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export async function manageAnnouncementRoles(guild: Guild, reaction: MessageReaction, requestId: string) {
 | 
			
		||||
	const guildId = guild.id
 | 
			
		||||
	logger.info("Managing roles", { guildId, requestId })
 | 
			
		||||
 | 
			
		||||
	const announcementRole: Role | undefined = (await guild.roles.fetch()).find(role => role.id === config.bot.announcement_role)
 | 
			
		||||
	if (!announcementRole) {
 | 
			
		||||
		logger.error(`Could not find announcement role! Aborting! Was looking for role with id: ${config.bot.announcement_role}`, { guildId, requestId })
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	const usersWhoWantRole: User[] = (await reaction.users.fetch()).filter(user => !user.bot).map(user => user)
 | 
			
		||||
 | 
			
		||||
	const allUsers = (await guild.members.fetch())
 | 
			
		||||
 | 
			
		||||
	const usersWhoHaveRole: GuildMember[] = allUsers
 | 
			
		||||
		.filter(member => member.roles.cache
 | 
			
		||||
			.find(role => role.id === config.bot.announcement_role) !== undefined)
 | 
			
		||||
		.map(member => member)
 | 
			
		||||
 | 
			
		||||
	const usersWhoNeedRoleRevoked: GuildMember[] = usersWhoHaveRole
 | 
			
		||||
		.filter(userWhoHas => !usersWhoWantRole.map(wanter => wanter.id).includes(userWhoHas.id))
 | 
			
		||||
 | 
			
		||||
	const usersWhoDontHaveRole: GuildMember[] = allUsers
 | 
			
		||||
		.filter(member => member.roles.cache
 | 
			
		||||
			.find(role => role.id === config.bot.announcement_role) === undefined)
 | 
			
		||||
		.map(member => member)
 | 
			
		||||
 | 
			
		||||
	const usersWhoNeedRole: GuildMember[] = usersWhoDontHaveRole
 | 
			
		||||
		.filter(userWhoNeeds => usersWhoWantRole.map(wanter => wanter.id).includes(userWhoNeeds.id))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	logger.debug(`Theses users will get the role removed: ${JSON.stringify(usersWhoNeedRoleRevoked)}`, { guildId, requestId })
 | 
			
		||||
	logger.debug(`Theses users will get the role added: ${JSON.stringify(usersWhoNeedRole)}`, { guildId, requestId })
 | 
			
		||||
 | 
			
		||||
	usersWhoNeedRoleRevoked.forEach(user => user.roles.remove(announcementRole))
 | 
			
		||||
	usersWhoNeedRole.forEach(user => user.roles.add(announcementRole))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user