diff --git a/application/src/main/java/org/togetherjava/tjbot/features/bookmarks/BookmarksListRemoveHandler.java b/application/src/main/java/org/togetherjava/tjbot/features/bookmarks/BookmarksListRemoveHandler.java index a6996bf687..5f851d8b44 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/bookmarks/BookmarksListRemoveHandler.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/bookmarks/BookmarksListRemoveHandler.java @@ -314,7 +314,7 @@ Request withSelectedBookmarksToRemove(Set selectedBookmarkIdsToRemove) { } static Request fromArgs(List args) { - RequestType requestType = RequestType.valueOf(args.get(0)); + RequestType requestType = RequestType.valueOf(args.getFirst()); String componentName = args.get(1); int currentPageIndex = Integer.parseInt(args.get(2)); diff --git a/application/src/main/java/org/togetherjava/tjbot/features/code/CodeMessageHandler.java b/application/src/main/java/org/togetherjava/tjbot/features/code/CodeMessageHandler.java index 35a8c8da26..5e9e7b69d9 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/code/CodeMessageHandler.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/code/CodeMessageHandler.java @@ -152,7 +152,7 @@ private Button createButtonForAction(CodeAction action, long originalMessageId) @Override public void onButtonClick(ButtonInteractionEvent event, List args) { - long originalMessageId = Long.parseLong(args.get(0)); + long originalMessageId = Long.parseLong(args.getFirst()); event.deferEdit().queue(); diff --git a/application/src/main/java/org/togetherjava/tjbot/features/filesharing/FileSharingMessageListener.java b/application/src/main/java/org/togetherjava/tjbot/features/filesharing/FileSharingMessageListener.java index 030218ad94..3f65e87aac 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/filesharing/FileSharingMessageListener.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/filesharing/FileSharingMessageListener.java @@ -98,7 +98,7 @@ public void onMessageReceived(MessageReceivedEvent event) { @Override public void onButtonClick(ButtonInteractionEvent event, List args) { Member interactionUser = event.getMember(); - String gistAuthorId = args.get(0); + String gistAuthorId = args.getFirst(); boolean hasSoftModPermissions = interactionUser.getRoles().stream().map(Role::getName).anyMatch(isSoftModRole); diff --git a/application/src/main/java/org/togetherjava/tjbot/features/github/GitHubReference.java b/application/src/main/java/org/togetherjava/tjbot/features/github/GitHubReference.java index 00a58ae82a..5592e04592 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/github/GitHubReference.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/github/GitHubReference.java @@ -120,7 +120,7 @@ public void onMessageReceived(MessageReceivedEvent event) { List embeds = new ArrayList<>(); while (matcher.find()) { - long defaultRepoId = config.getGitHubRepositories().get(0); + long defaultRepoId = config.getGitHubRepositories().getFirst(); int issueId = Integer.parseInt(matcher.group(ID_GROUP)); findIssue(issueId, defaultRepoId).ifPresent(issue -> embeds.add(generateReply(issue))); diff --git a/application/src/main/java/org/togetherjava/tjbot/features/help/HelpSystemHelper.java b/application/src/main/java/org/togetherjava/tjbot/features/help/HelpSystemHelper.java index 27022fcf5f..70a96aea7c 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/help/HelpSystemHelper.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/help/HelpSystemHelper.java @@ -337,7 +337,7 @@ private static ForumTag requireTag(String tagName, ForumChannel forumChannel) { .formatted(forumChannel.getName(), forumChannel.getGuild().getName(), tagName)); } - return matchingTags.get(0); + return matchingTags.getFirst(); } boolean hasTagManageRole(Member member) { diff --git a/application/src/main/java/org/togetherjava/tjbot/features/help/HelpThreadCommand.java b/application/src/main/java/org/togetherjava/tjbot/features/help/HelpThreadCommand.java index 9981177d73..0adcd14a22 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/help/HelpThreadCommand.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/help/HelpThreadCommand.java @@ -25,6 +25,7 @@ import java.time.temporal.ChronoUnit; import java.util.Arrays; import java.util.EnumMap; +import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Objects; @@ -213,7 +214,7 @@ private void resetActivity(SlashCommandInteractionEvent event, ThreadChannel hel helpThread.getHistory() .retrievePast(1) - .map(messages -> messages.get(0)) + .map(List::getFirst) .queue(lastMessage -> manuallyResetChannelActivityCache.put(helpThread.getIdLong(), lastMessage.getIdLong())); diff --git a/application/src/main/java/org/togetherjava/tjbot/features/help/HelpThreadCreatedListener.java b/application/src/main/java/org/togetherjava/tjbot/features/help/HelpThreadCreatedListener.java index 306aaed2a2..e01a879e82 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/help/HelpThreadCreatedListener.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/help/HelpThreadCreatedListener.java @@ -179,7 +179,7 @@ private boolean isPostAuthor(Member interactionUser, Message message) { } String embedAuthor = Objects - .requireNonNull(message.getEmbeds().get(0).getAuthor(), + .requireNonNull(message.getEmbeds().getFirst().getAuthor(), "embed author for forum post is null") .getName(); diff --git a/application/src/main/java/org/togetherjava/tjbot/features/jshell/renderer/RendererUtils.java b/application/src/main/java/org/togetherjava/tjbot/features/jshell/renderer/RendererUtils.java index 086f8d3b9d..9d44c0df57 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/jshell/renderer/RendererUtils.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/jshell/renderer/RendererUtils.java @@ -59,8 +59,7 @@ static GeneralStatus getGeneralStatus(JShellResult result) { return GeneralStatus.PARTIAL_SUCCESS; // At least one snippet is a success } - return getGeneralStatus( - result.snippetsResults().get(result.snippetsResults().size() - 1).status()); + return getGeneralStatus(result.snippetsResults().getLast().status()); } static Color getStatusColor(JShellResult result) { diff --git a/application/src/main/java/org/togetherjava/tjbot/features/mathcommands/TeXCommand.java b/application/src/main/java/org/togetherjava/tjbot/features/mathcommands/TeXCommand.java index 24af6790b8..dd0e717f92 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/mathcommands/TeXCommand.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/mathcommands/TeXCommand.java @@ -164,7 +164,7 @@ private boolean isInvalidInlineFormat(String latex) { @Override public void onButtonClick(final ButtonInteractionEvent event, final List args) { - if (!args.get(0).equals(Objects.requireNonNull(event.getMember()).getId())) { + if (!args.getFirst().equals(Objects.requireNonNull(event.getMember()).getId())) { event.reply("You are not the person who executed the command, you cannot do that") .setEphemeral(true) .queue(); diff --git a/application/src/main/java/org/togetherjava/tjbot/features/moderation/ReportCommand.java b/application/src/main/java/org/togetherjava/tjbot/features/moderation/ReportCommand.java index d7c5192a1d..61eeb0f3ae 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/moderation/ReportCommand.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/moderation/ReportCommand.java @@ -223,7 +223,7 @@ private static String createUserReply(Result result) { private record ReportedMessage(String content, String id, String jumpUrl, String channelID, Instant timestamp, String authorName, String authorAvatarUrl) { static ReportedMessage ofArgs(List args) { - String content = args.get(0); + String content = args.getFirst(); String id = args.get(1); String jumpUrl = args.get(2); String channelID = args.get(3); diff --git a/application/src/main/java/org/togetherjava/tjbot/features/moderation/TransferQuestionCommand.java b/application/src/main/java/org/togetherjava/tjbot/features/moderation/TransferQuestionCommand.java index a50eeed757..58ad3a5766 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/moderation/TransferQuestionCommand.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/moderation/TransferQuestionCommand.java @@ -95,7 +95,7 @@ public void onMessageContext(MessageContextInteractionEvent event) { String originalMessageId = event.getTarget().getId(); String originalChannelId = event.getTarget().getChannel().getId(); String authorId = event.getTarget().getAuthor().getId(); - String mostCommonTag = tags.get(0); + String mostCommonTag = tags.getFirst(); String chatGptPrompt = "Summarize the following text into a concise title or heading not more than 4-5 words, remove quotations if any: %s" .formatted(originalMessage); @@ -142,7 +142,7 @@ public void onMessageContext(MessageContextInteractionEvent event) { public void onModalSubmitted(ModalInteractionEvent event, List args) { event.deferReply(true).queue(); - String authorId = args.get(0); + String authorId = args.getFirst(); String messageId = args.get(1); String channelId = args.get(2); ForumChannel helperForum = getHelperForum(event.getJDA()); @@ -226,13 +226,13 @@ private RestAction createForumPost(ModalInteractionEvent event, String transferQuestionTag = event.getValue(MODAL_TAG).getAsString(); ForumChannel questionsForum = getHelperForum(event.getJDA()); - String mostCommonTag = tags.get(0); + String mostCommonTag = tags.getFirst(); String queryTag = StringDistances.closestMatch(transferQuestionTag, tags).orElse(mostCommonTag); ForumTag tag = getTagOrDefault(questionsForum.getAvailableTagsByName(queryTag, true), - () -> questionsForum.getAvailableTagsByName(mostCommonTag, true).get(0)); + () -> questionsForum.getAvailableTagsByName(mostCommonTag, true).getFirst()); return questionsForum.createForumPost(forumTitle, forumMessage) .setTags(ForumTagSnowflake.fromId(tag.getId())) @@ -279,7 +279,7 @@ private ForumChannel getHelperForum(JDA jda) { private static ForumTag getTagOrDefault(List tagsFoundOnForum, Supplier defaultTag) { - return tagsFoundOnForum.isEmpty() ? defaultTag.get() : tagsFoundOnForum.get(0); + return tagsFoundOnForum.isEmpty() ? defaultTag.get() : tagsFoundOnForum.getFirst(); } private MessageEmbed makeEmbedForPost(User originalUser, String originalMessage) { diff --git a/application/src/main/java/org/togetherjava/tjbot/features/moderation/audit/AuditCommand.java b/application/src/main/java/org/togetherjava/tjbot/features/moderation/audit/AuditCommand.java index 1f7d017155..b466bcf18f 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/moderation/audit/AuditCommand.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/moderation/audit/AuditCommand.java @@ -133,7 +133,7 @@ private List> groupActionsByPages(List actions) groupedActions.add(new ArrayList<>(AuditCommand.MAX_PAGE_LENGTH)); } - groupedActions.get(groupedActions.size() - 1).add(actions.get(i)); + groupedActions.getLast().add(actions.get(i)); } return groupedActions; @@ -271,7 +271,7 @@ public void onButtonClick(ButtonInteractionEvent event, List args) { int currentPage = Integer.parseInt(args.get(3)); int turnPageBy = Integer.parseInt(args.get(4)); - long guildId = Long.parseLong(args.get(0)); + long guildId = Long.parseLong(args.getFirst()); long targetId = Long.parseLong(args.get(1)); int pageToDisplay = currentPage + turnPageBy; diff --git a/application/src/main/java/org/togetherjava/tjbot/features/moderation/audit/ModAuditLogRoutine.java b/application/src/main/java/org/togetherjava/tjbot/features/moderation/audit/ModAuditLogRoutine.java index b143a5cf64..6af6fa2248 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/moderation/audit/ModAuditLogRoutine.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/moderation/audit/ModAuditLogRoutine.java @@ -154,8 +154,7 @@ private static Instant computeClosestNextScheduleDate(Instant instant, List scheduleDates = scheduleHours.stream() .map(hour -> dateAtTime.apply(offsetDateTime, hour)) .collect(Collectors.toCollection(ArrayList::new)); - int rolloverHour = - (scheduleHours.get(scheduleHours.size() - 1) + periodHours) % HOURS_OF_DAY; + int rolloverHour = (scheduleHours.getLast() + periodHours) % HOURS_OF_DAY; scheduleDates.add(dateAtTime.apply(offsetDateTime.plusDays(1), rolloverHour)); return scheduleDates.stream() diff --git a/application/src/main/java/org/togetherjava/tjbot/features/moderation/modmail/ModMailCommand.java b/application/src/main/java/org/togetherjava/tjbot/features/moderation/modmail/ModMailCommand.java index 723587378b..3395a8c828 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/moderation/modmail/ModMailCommand.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/moderation/modmail/ModMailCommand.java @@ -135,7 +135,7 @@ public void onModalSubmitted(ModalInteractionEvent event, List args) { String userMessage = event.getValue(OPTION_MESSAGE).getAsString(); long userId = event.getUser().getIdLong(); - long userGuildId = Long.parseLong(args.get(0)); + long userGuildId = Long.parseLong(args.getFirst()); boolean wantsToStayAnonymous = Boolean.parseBoolean(args.get(1)); Optional modMailAuditLog = getModMailChannel(event.getJDA(), userGuildId); diff --git a/application/src/main/java/org/togetherjava/tjbot/features/moderation/scam/ScamBlocker.java b/application/src/main/java/org/togetherjava/tjbot/features/moderation/scam/ScamBlocker.java index 63ce8d8003..5330ffd351 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/moderation/scam/ScamBlocker.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/moderation/scam/ScamBlocker.java @@ -362,7 +362,7 @@ private record ComponentIdArguments(ScamBlockerConfig.Mode mode, long guildId, l long messageId, long authorId, String contentHash) { static ComponentIdArguments fromList(List args) { - ScamBlockerConfig.Mode mode = ScamBlockerConfig.Mode.valueOf(args.get(0)); + ScamBlockerConfig.Mode mode = ScamBlockerConfig.Mode.valueOf(args.getFirst()); long guildId = Long.parseLong(args.get(1)); long channelId = Long.parseLong(args.get(2)); long messageId = Long.parseLong(args.get(3)); diff --git a/application/src/main/java/org/togetherjava/tjbot/features/reminder/ReminderCommand.java b/application/src/main/java/org/togetherjava/tjbot/features/reminder/ReminderCommand.java index 152e6cfe3a..88bcef8607 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/reminder/ReminderCommand.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/reminder/ReminderCommand.java @@ -124,7 +124,7 @@ public void onSlashCommand(SlashCommandInteractionEvent event) { @Override public void onButtonClick(ButtonInteractionEvent event, List args) { - int pageToShow = Integer.parseInt(args.get(0)); + int pageToShow = Integer.parseInt(args.getFirst()); EmojiUnion emoji = event.getButton().getEmoji(); if (PREVIOUS_BUTTON_EMOJI.equals(emoji)) { diff --git a/application/src/main/java/org/togetherjava/tjbot/features/utils/RateLimiter.java b/application/src/main/java/org/togetherjava/tjbot/features/utils/RateLimiter.java index 87e4abb783..145ee6a9ca 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/utils/RateLimiter.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/utils/RateLimiter.java @@ -76,7 +76,7 @@ public Instant nextAllowedRequestTime(Instant time) { return Instant.now(); } - return currentUses.get(0).plus(duration); + return currentUses.getFirst().plus(duration); } } diff --git a/application/src/test/java/org/togetherjava/tjbot/features/reminder/ReminderCommandTest.java b/application/src/test/java/org/togetherjava/tjbot/features/reminder/ReminderCommandTest.java index 9ce493ede0..ce1c37181f 100644 --- a/application/src/test/java/org/togetherjava/tjbot/features/reminder/ReminderCommandTest.java +++ b/application/src/test/java/org/togetherjava/tjbot/features/reminder/ReminderCommandTest.java @@ -118,7 +118,7 @@ void userIsNotLimitedIfOtherUserHasTooManyPendingReminders() { List remindersOfSecondUser = rawReminders.readReminders(secondUser); assertEquals(1, remindersOfSecondUser.size()); - assertEquals("foo", remindersOfSecondUser.get(0)); + assertEquals("foo", remindersOfSecondUser.getFirst()); } @Test @@ -133,6 +133,6 @@ void canCreateReminders() { List pendingReminders = rawReminders.readReminders(); assertEquals(1, pendingReminders.size()); - assertEquals("foo", pendingReminders.get(0)); + assertEquals("foo", pendingReminders.getFirst()); } } diff --git a/application/src/test/java/org/togetherjava/tjbot/jda/ButtonClickEventBuilder.java b/application/src/test/java/org/togetherjava/tjbot/jda/ButtonClickEventBuilder.java index e2e94c507c..a2a474dbcc 100644 --- a/application/src/test/java/org/togetherjava/tjbot/jda/ButtonClickEventBuilder.java +++ b/application/src/test/java/org/togetherjava/tjbot/jda/ButtonClickEventBuilder.java @@ -221,7 +221,7 @@ private static Button requireSingleButton(List buttons) { + " Either only use a single button or explicitly state the clicked button"); } - return buttons.get(0); + return buttons.getFirst(); } private ButtonInteractionEvent mockButtonClickEvent(Message message, Button clickedButton) { diff --git a/formatter/src/main/java/org/togetherjava/tjbot/formatter/formatting/FormatterRules.java b/formatter/src/main/java/org/togetherjava/tjbot/formatter/formatting/FormatterRules.java index 3f6b31b422..65cae69299 100644 --- a/formatter/src/main/java/org/togetherjava/tjbot/formatter/formatting/FormatterRules.java +++ b/formatter/src/main/java/org/togetherjava/tjbot/formatter/formatting/FormatterRules.java @@ -229,7 +229,7 @@ static String patchMultiLineComment(String content, String indent) { /* * Example multi-line comment */ - String firstLine = lines.get(0); + String firstLine = lines.getFirst(); List otherLines = lines.subList(1, lines.size()); String otherLinesText = otherLines.stream() diff --git a/formatter/src/test/java/org/togetherjava/tjbot/formatter/tokenizer/LexerTest.java b/formatter/src/test/java/org/togetherjava/tjbot/formatter/tokenizer/LexerTest.java index 45824e946d..2abb020162 100644 --- a/formatter/src/test/java/org/togetherjava/tjbot/formatter/tokenizer/LexerTest.java +++ b/formatter/src/test/java/org/togetherjava/tjbot/formatter/tokenizer/LexerTest.java @@ -67,7 +67,7 @@ void keywordVersusIdentifier() { @DisplayName("Each token must be recognized by the expected content and not hidden by another token that prefixes it.") void typesAreNotHidden(TokenType expectedTokenType) { String text = expectedTokenType.getContentExample(); - TokenType actualTokenType = tokenize(text).get(0); + TokenType actualTokenType = tokenize(text).getFirst(); assertEquals(expectedTokenType, actualTokenType, "Tested on: " + text); }