Is there anything wrong with my code?

I am trying to make a lucid dreaming sleep mask, which will light up LEDs in the mask every 90 minutes to indicate you are dreaming. The user before falling asleep will hold a button. Then if the button is let go after being held down for at least 3 seconds, the main part of the code will run. My problem is that the lights will not light up at all and I'm not sure why. Thanks for the help!

int ledPin1 = 6; // the numbers of the LED pins
int ledPin2 = 7;
int ledPin3 = 8;
int ledPin4 = 9;
int ledPin5 = 10;
int ledPin6 = 11;
int ledPin7 = 12;
int ledPin8 = 13;
const int buttonPin1 = 4; // the numbers of the button pins
const int buttonPin2 = 3;

int buttonState1 = 0;
int buttonState2 = 0;

long timecount1 = 0;

unsigned long previousMillis = 0; // stores when time was last measured
long OnTime = 5000; // time until lights turn on in milliseconds
long OffTime = 5000; // time unitl lights turn off in milliseconds

long cycle = 1000;

void setup() {
  // put your setup code here, to run once:
  pinMode(ledPin1, OUTPUT);
  pinMode(ledPin2, OUTPUT);
  pinMode(ledPin3, OUTPUT);
  pinMode(ledPin4, OUTPUT);
  pinMode(ledPin5, OUTPUT);
  pinMode(ledPin6, OUTPUT);
  pinMode(ledPin7, OUTPUT);
  pinMode(ledPin8, OUTPUT);
  pinMode(buttonPin1, INPUT);
  pinMode(buttonPin2, INPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  unsigned long currentMillis = millis();
  
  buttonState1 = digitalRead(buttonPin1);
  buttonState2 = digitalRead(buttonPin2);
  
  // increases timecount by 1 for each second button1 has been pressed
  if ((buttonState1 == HIGH) && (currentMillis - previousMillis == 1)) {
    timecount1++;
    previousMillis = currentMillis;
  } 
  
  // turns off lights if button2 is pressed
  if (buttonState2 == HIGH) {
    digitalWrite(ledPin1, LOW);
    digitalWrite(ledPin2, LOW);
    digitalWrite(ledPin3, LOW);
    digitalWrite(ledPin4, LOW);
    digitalWrite(ledPin5, LOW);
    digitalWrite(ledPin6, LOW);
    digitalWrite(ledPin7, LOW);
    digitalWrite(ledPin8, LOW);
    timecount1 = 0;
    previousMillis = currentMillis;
  }
  
  // runs code if both buttons are unpressed and the ON button has been pressed for at least 3 seconds
  if ((buttonState1 == LOW) && (buttonState2 == LOW) && (timecount1 >= 3)) {
    // runs code if 90 minutes have passed
    if (currentMillis - previousMillis >= cycle) {
      previousMillis = currentMillis;
      for (int i = 1; i <= 6; i++) {
        if (currentMillis - previousMillis >= OnTime) {
          digitalWrite(ledPin1, HIGH);
          digitalWrite(ledPin2, HIGH);
          digitalWrite(ledPin3, HIGH);
          digitalWrite(ledPin4, HIGH);
          digitalWrite(ledPin5, HIGH);
          digitalWrite(ledPin6, HIGH);
          digitalWrite(ledPin7, HIGH);
          digitalWrite(ledPin8, HIGH);
        }
        if (currentMillis - previousMillis >= OffTime) {
          digitalWrite(ledPin1, LOW);
          digitalWrite(ledPin2, LOW);
          digitalWrite(ledPin3, LOW);
          digitalWrite(ledPin4, LOW);
          digitalWrite(ledPin5, LOW);
          digitalWrite(ledPin6, LOW);
          digitalWrite(ledPin7, LOW);
          digitalWrite(ledPin8, LOW);
        }
      }
      previousMillis = currentMillis;
    }
  }
}
  if ((buttonState1 == HIGH) && (currentMillis - previousMillis >= 1))

AWOL:

  if ((buttonState1 == HIGH) && (currentMillis - previousMillis >= 1))

I changed it but it still doesn't work :confused: might there be something wrong with the way i'm using millis?

My problem is that the lights will not light up at all

But you wrote a test program to check the wiring, right?

// increases timecount by 1 for each second button1 has been pressed
  if ((buttonState1 == HIGH) && (currentMillis - previousMillis == 1)) {

Comment says 1 second, but code says 1mS. Same with others. Try 1000, 3000, etc,