From 40ded90edfc670c4424ec3e260d8190bfd6dbd9b Mon Sep 17 00:00:00 2001 From: Teriuihi Date: Fri, 3 Jan 2025 23:49:14 +0100 Subject: [PATCH] Refactor folder handling and enhance ban duration reporting Improved Nextcloud folder handling by checking for folder existence before creation, ensuring efficient operations. Updated LiteBansBanListener to include ban durations in Discord messages, adding clarity for temporary bans. Enhanced unit test structure for Evidence with simplified assertions. --- build.gradle.kts | 4 ++++ .../minecraft/listeners/LiteBansBanListener.java | 9 +++++++++ .../java/com/alttd/proxydiscordlink/util/Evidence.java | 9 ++++++--- .../com/alttd/proxydiscordlink/util/EvidenceTest.java | 10 +++++----- 4 files changed, 24 insertions(+), 8 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index f849d49..520aecb 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -29,6 +29,10 @@ allprojects { } } +tasks.test { + useJUnitPlatform() +} + dependencies { // Minimessage // implementation("net.kyori:adventure-text-minimessage:4.1.0-SNAPSHOT") diff --git a/src/main/java/com/alttd/proxydiscordlink/minecraft/listeners/LiteBansBanListener.java b/src/main/java/com/alttd/proxydiscordlink/minecraft/listeners/LiteBansBanListener.java index b23e8be..920ae46 100644 --- a/src/main/java/com/alttd/proxydiscordlink/minecraft/listeners/LiteBansBanListener.java +++ b/src/main/java/com/alttd/proxydiscordlink/minecraft/listeners/LiteBansBanListener.java @@ -13,6 +13,7 @@ import net.dv8tion.jda.api.entities.MessageEmbed; import net.luckperms.api.model.user.User; import java.awt.*; +import java.time.Instant; import java.util.Optional; import java.util.UUID; @@ -65,6 +66,7 @@ public class LiteBansBanListener { .setColor(entry.isPermanent() ? Color.RED : Color.ORANGE) .setAuthor(username, null, "https://crafatar.com/avatars/" + stringUuid + "?overlay") .addField("Banned by", entry.getExecutorName() == null ? "unknown" : entry.getExecutorName(), true) + .addField("Ban duration", getBanDuration(entry), true) .addField("Reason", entry.getReason() == null ? "unknown" : entry.getReason(), true) .setTitle("Auto Discord ban"); @@ -80,6 +82,13 @@ public class LiteBansBanListener { }); } + private String getBanDuration(Entry entry) { + if (entry.isPermanent()) + return "Permanent ban"; + Instant instant = Instant.ofEpochMilli(entry.getDateEnd()); + return String.format("", instant.getEpochSecond()); + } + private Optional banDiscordUserIfExists(Entry entry, UUID uuid) { if (!entry.isPermanent()) return Optional.empty(); diff --git a/src/main/java/com/alttd/proxydiscordlink/util/Evidence.java b/src/main/java/com/alttd/proxydiscordlink/util/Evidence.java index 18ea4b9..2edd052 100644 --- a/src/main/java/com/alttd/proxydiscordlink/util/Evidence.java +++ b/src/main/java/com/alttd/proxydiscordlink/util/Evidence.java @@ -20,14 +20,17 @@ public class Evidence { Config.NEXT_CLOUD.USERNAME, Config.NEXT_CLOUD.PASSWORD ); - String evidenceFilePath = String.format("/Altitude/Altitude Moderation Tools/Evidence/%s", username); + String evidenceFilePath = String.format("/Evidence/%s", username); if (!nextcloudConnector.folderExists(evidenceFilePath)) { nextcloudConnector.createFolder(evidenceFilePath); } - nextcloudConnector.createFolder(evidenceFilePath + "/" + getCurrentDate()); + String newEvidenceFolderPath = evidenceFilePath + "/" + getCurrentDate(); + if (!nextcloudConnector.folderExists(newEvidenceFolderPath)) { + nextcloudConnector.createFolder(newEvidenceFolderPath); + } String id; try { - id = nextcloudConnector.getProperties(evidenceFilePath + "/" + getCurrentDate(), true).getId(); + id = nextcloudConnector.getProperties(newEvidenceFolderPath, true).getId(); } catch (IOException e) { ALogger.error("Failed to get share link for Next Cloud folder", e); return Optional.empty(); diff --git a/src/test/java/com/alttd/proxydiscordlink/util/EvidenceTest.java b/src/test/java/com/alttd/proxydiscordlink/util/EvidenceTest.java index 5ecfd7d..587920f 100644 --- a/src/test/java/com/alttd/proxydiscordlink/util/EvidenceTest.java +++ b/src/test/java/com/alttd/proxydiscordlink/util/EvidenceTest.java @@ -2,6 +2,8 @@ package com.alttd.proxydiscordlink.util; import org.junit.jupiter.api.Test; +import java.util.Optional; + import static org.junit.jupiter.api.Assertions.assertTrue; public class EvidenceTest { @@ -9,11 +11,9 @@ public class EvidenceTest { @Test void shouldReturnEvidenceUrl() { Evidence evidence = new Evidence(); - - evidence.getNewEvidenceFolder("akastijn").thenAccept(evidenceUrl -> { - assertTrue(evidenceUrl.isPresent()); - System.out.println(evidenceUrl.get()); - }); + Optional evidenceUrl = evidence.getNewEvidenceFolder("akastijn").join(); + assertTrue(evidenceUrl.isPresent()); + System.out.println(evidenceUrl.get()); }