|  | @@ -55,17 +55,12 @@ export class ViolationPlugin {
 | 
	
		
			
				|  |  |                          settings.muteRoleId);
 | 
	
		
			
				|  |  |                      return;
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | -                // First mute, then remove other roles
 | 
	
		
			
				|  |  | -                await member.roles.add(muteRoleResolve.result);
 | 
	
		
			
				|  |  | -                const mute = violation as Mute;
 | 
	
		
			
				|  |  | -                if (mute.previousRoles) {
 | 
	
		
			
				|  |  | -                    const result = await tryDo(member.roles.remove(mute.previousRoles));
 | 
	
		
			
				|  |  | -                    if (!result.ok) {
 | 
	
		
			
				|  |  | -                        logger.error("mute: couldn't remove all roles from user %s#%s (%s)!" ,
 | 
	
		
			
				|  |  | -                            member.user?.username,
 | 
	
		
			
				|  |  | -                            member.user?.discriminator,
 | 
	
		
			
				|  |  | -                            member.user?.id);
 | 
	
		
			
				|  |  | -                    }
 | 
	
		
			
				|  |  | +                const result = await tryDo(member.roles.set([ muteRoleResolve.result ]));
 | 
	
		
			
				|  |  | +                if (!result.ok) {
 | 
	
		
			
				|  |  | +                    logger.error("mute: Couldn't mute/remove roles for user %s#%s (%s)",
 | 
	
		
			
				|  |  | +                        member.user?.username,
 | 
	
		
			
				|  |  | +                        member.user?.discriminator,
 | 
	
		
			
				|  |  | +                        member.user?.id);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              },
 | 
	
		
			
				|  |  |              stop: async (guild: Guild, userId: string, settings: GuildViolationSettings, violation: TimedViolation): Promise<void> => {
 | 
	
	
		
			
				|  | @@ -87,7 +82,7 @@ export class ViolationPlugin {
 | 
	
		
			
				|  |  |                  await memberResolve.result.roles.remove(muteRole);
 | 
	
		
			
				|  |  |                  const mute = violation as Mute;
 | 
	
		
			
				|  |  |                  if (mute.previousRoles) {
 | 
	
		
			
				|  |  | -                    const result = await tryDo(memberResolve.result.roles.add(mute.previousRoles));
 | 
	
		
			
				|  |  | +                    const result = await tryDo(memberResolve.result.roles.set(mute.previousRoles));
 | 
	
		
			
				|  |  |                      if (!result.ok) {
 | 
	
		
			
				|  |  |                          logger.warn("mute: couldn't readd all roles for user %s (tried to restore role ids: %s)", memberResolve.result.id, mute.previousRoles.join(", "));
 | 
	
		
			
				|  |  |                      }
 |