Skip to content

Commit

Permalink
Add support for multiple bdays on the same day
Browse files Browse the repository at this point in the history
  • Loading branch information
duncte123 committed Feb 22, 2021
1 parent 895260c commit d49eef4
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 16 deletions.
4 changes: 1 addition & 3 deletions src/main/java/me/duncte123/hirobot/database/Database.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
import me.duncte123.hirobot.database.objects.Birthday;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.time.LocalDate;
import java.util.List;

Expand All @@ -44,6 +43,5 @@ public interface Database {

void removeBirthday(long userId);

@Nullable
Birthday getBirthday(LocalDate date);
List<Birthday> getBirthdays(LocalDate date);
}
12 changes: 6 additions & 6 deletions src/main/java/me/duncte123/hirobot/database/SQLiteDatabase.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
import com.zaxxer.hikari.HikariDataSource;
import me.duncte123.hirobot.database.objects.Birthday;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand Down Expand Up @@ -197,9 +196,10 @@ public void removeBirthday(long userId) {
}
}

@Nullable
@Override
public Birthday getBirthday(LocalDate date) {
public List<Birthday> getBirthdays(LocalDate date) {
final List<Birthday> birthdays = new ArrayList<>();

try (final Connection conn = ds.getConnection()) {
try (final PreparedStatement smt =
// language=SQLite
Expand All @@ -208,18 +208,18 @@ public Birthday getBirthday(LocalDate date) {

try (final ResultSet resultSet = smt.executeQuery()) {
if (resultSet.next()) {
return new Birthday(
birthdays.add(new Birthday(
resultSet.getLong("user_id"),
resultSet.getString("date")
);
));
}
}
}
} catch (SQLException e) {
e.printStackTrace();
}

return null;
return birthdays;
}

private String pre0(int in) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
import java.time.LocalDate;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
Expand Down Expand Up @@ -194,17 +195,19 @@ public void initBdayTimer() {
}

private void handleBirthday(ZoneId zone) {
final Birthday birthday = this.database.getBirthday(LocalDate.now(zone));
final List<Birthday> birthdays = this.database.getBirthdays(LocalDate.now(zone));

if (birthday == null) {
if (birthdays.isEmpty()) {
return;
}

final int i = ThreadLocalRandom.current().nextInt(BDAY_MESSAGES.length);
for (final Birthday birthday : birthdays) {
final int i = ThreadLocalRandom.current().nextInt(BDAY_MESSAGES.length);

//noinspection ConstantConditions
this.hiro.jda.getTextChannelById(GENERAL_CHANNEL_ID)
.sendMessageFormat(BDAY_MESSAGES[i], birthday.getUserId())
.queue();
//noinspection ConstantConditions
this.hiro.jda.getTextChannelById(GENERAL_CHANNEL_ID)
.sendMessageFormat(BDAY_MESSAGES[i], birthday.getUserId())
.queue();
}
}
}

0 comments on commit d49eef4

Please sign in to comment.