Slider colour only updates when hovering over

Hello, im trying to change slider colours when the plugin ‘mode’ is changed to give the user some visual aid. The colour does change however, it only does so when i hover the cursor over each of them.
is there something that can force update sliders?
Thanks in advance!

#include "PluginProcessor.h"
#include "PluginEditor.h"

//==============================================================================
CW2DelayAudioProcessorEditor::CW2DelayAudioProcessorEditor (CW2DelayAudioProcessor& p, juce::AudioProcessorValueTreeState& vts)
    : AudioProcessorEditor (&p), audioProcessor (p), treeState(vts)
{
    setSize (550, 450);
    
    delayTimeValue = std::make_unique<juce::AudioProcessorValueTreeState::SliderAttachment>(treeState, "delayTime", delayTimeDial);
    delayTimeDial.setSliderStyle(juce::Slider::RotaryVerticalDrag);
    delayTimeDial.setRange(10, 3000, 0.1);
    
    delayTimeDial.getLookAndFeel().setColour(juce::Slider::rotarySliderOutlineColourId, juce::Colour(38, 38, 38));
    delayTimeDial.setTextBoxStyle(juce::Slider::TextEntryBoxPosition::TextBoxBelow, false, 60, 20);
    addAndMakeVisible(&delayTimeDial);
    
    delayFeedbackValue = std::make_unique<juce::AudioProcessorValueTreeState::SliderAttachment>(treeState, "delayFeedback", delayFeedbackDial);
    delayFeedbackDial.setSliderStyle(juce::Slider::RotaryVerticalDrag);
    delayFeedbackDial.setRange(0.0, 0.99, 0.01);
    delayFeedbackDial.setTextBoxStyle(juce::Slider::TextEntryBoxPosition::TextBoxBelow, false, 60, 20);
    addAndMakeVisible(&delayFeedbackDial);
    
    dryWetMixValue = std::make_unique<juce::AudioProcessorValueTreeState::SliderAttachment>(treeState, "dryWetMix", dryWetMixDial);
    dryWetMixDial.setSliderStyle(juce::Slider::RotaryVerticalDrag);
    dryWetMixDial.setRange(0.0, 1.0, 0.01);
    dryWetMixDial.setTextBoxStyle(juce::Slider::TextEntryBoxPosition::TextBoxBelow, false, 60, 20);
    addAndMakeVisible(&dryWetMixDial);
    
    modeValue = std::make_unique<juce::AudioProcessorValueTreeState::SliderAttachment>(treeState, "mode", modeDial);
    modeDial.setSliderStyle(juce::Slider::RotaryVerticalDrag);
    modeDial.setRange(0.0, 1.0, 0.5);
    modeDial.setTextBoxStyle(juce::Slider::TextEntryBoxPosition::NoTextBox, true, 0, 0);
    addAndMakeVisible(&modeDial);
}
CW2DelayAudioProcessorEditor::~CW2DelayAudioProcessorEditor()
{
}

//==============================================================================
void CW2DelayAudioProcessorEditor::paint (juce::Graphics& g)
{
    background = juce::ImageCache::getFromMemory(BinaryData::background_png, BinaryData::background_pngSize);
    g.drawImage(background, 0, 0, 550, 450, 0, 0, 5500, 4500);
    
    if (modeDial.getValue() == 0.5)
    {
        delayTimeDial.getLookAndFeel().setColour(juce::Slider::thumbColourId, juce::Colours::grey);
        delayTimeDial.getLookAndFeel().setColour(juce::Slider::rotarySliderFillColourId, juce::Colours::grey);
        return;
    }
    else if (modeDial.getValue() == 0)
    {
        delayTimeDial.getLookAndFeel().setColour(juce::Slider::thumbColourId, juce::Colours::red);
        delayTimeDial.getLookAndFeel().setColour(juce::Slider::rotarySliderFillColourId, juce::Colours::red);
        return;
    }
    else if (modeDial.getValue() == 1)
    {
        delayTimeDial.getLookAndFeel().setColour(juce::Slider::thumbColourId, juce::Colours::green);
        delayTimeDial.getLookAndFeel().setColour(juce::Slider::rotarySliderFillColourId, juce::Colours::green);
        return;
    }
}

void CW2DelayAudioProcessorEditor::resized()
{
    delayTimeDial.setBounds(50, 50, 150, 150);
    delayFeedbackDial.setBounds(200, 50, 150, 150);
    dryWetMixDial.setBounds(350, 50, 150, 150);
    modeDial.setBounds(210, 250, 125, 125);
}