From a60338e316b0dbebb53806b11daebcd4ff4578b8 Mon Sep 17 00:00:00 2001 From: Telesphoreo Date: Sun, 26 May 2024 16:40:29 -0500 Subject: [PATCH] everything works --- .../medina/command/impl/ReportCommand.java | 2 + .../medina/command/impl/ReportsCommand.java | 6 ++- .../dev/plex/medina/storage/SQLReports.java | 44 ++++++------------- .../dev/plex/medina/util/MedinaUtils.java | 8 ++++ src/main/resources/messages.yml | 7 ++- 5 files changed, 34 insertions(+), 33 deletions(-) diff --git a/src/main/java/dev/plex/medina/command/impl/ReportCommand.java b/src/main/java/dev/plex/medina/command/impl/ReportCommand.java index 5ee9352..d639866 100644 --- a/src/main/java/dev/plex/medina/command/impl/ReportCommand.java +++ b/src/main/java/dev/plex/medina/command/impl/ReportCommand.java @@ -4,6 +4,7 @@ import dev.plex.medina.command.MedinaCommand; import dev.plex.medina.command.annotation.CommandParameters; import dev.plex.medina.command.source.RequiredCommandSource; import dev.plex.medina.data.Report; +import dev.plex.medina.util.MedinaLog; import dev.plex.medina.util.MedinaUtils; import net.kyori.adventure.text.Component; import org.apache.commons.lang3.StringUtils; @@ -43,6 +44,7 @@ public class ReportCommand extends MedinaCommand false); plugin.getSqlReports().addReport(report); + MedinaUtils.broadcastToAdmins(messageComponent("notifyReport", sender.getName(), player.getName(), reason), "medina.notify"); return messageComponent("reportSubmitted", player.getName()); } diff --git a/src/main/java/dev/plex/medina/command/impl/ReportsCommand.java b/src/main/java/dev/plex/medina/command/impl/ReportsCommand.java index 42577cb..776942d 100644 --- a/src/main/java/dev/plex/medina/command/impl/ReportsCommand.java +++ b/src/main/java/dev/plex/medina/command/impl/ReportsCommand.java @@ -4,7 +4,6 @@ import dev.plex.medina.command.MedinaCommand; import dev.plex.medina.command.annotation.CommandParameters; import dev.plex.medina.command.source.RequiredCommandSource; import dev.plex.medina.data.Report; -import dev.plex.medina.util.MedinaLog; import dev.plex.medina.util.MedinaUtils; import net.kyori.adventure.text.Component; import org.bukkit.Bukkit; @@ -14,7 +13,6 @@ import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.time.ZoneId; import java.util.Collections; import java.util.List; import java.util.concurrent.atomic.AtomicReference; @@ -86,6 +84,10 @@ public class ReportsCommand extends MedinaCommand AtomicReference reportList = new AtomicReference<>(messageComponent("reportHeader", player.getName())); for (Report report : reports) { + if (report.isDeleted()) + { + continue; + } Component reportLine = messageComponent("reportPrefix", report.getReportId(), player.getName(), MedinaUtils.useTimezone(report.getTimestamp())); reportLine = reportLine.append(messageComponent("reportLine", report.getReason())); reportList.set(reportList.get().append(Component.newline())); diff --git a/src/main/java/dev/plex/medina/storage/SQLReports.java b/src/main/java/dev/plex/medina/storage/SQLReports.java index 2165501..d824523 100644 --- a/src/main/java/dev/plex/medina/storage/SQLReports.java +++ b/src/main/java/dev/plex/medina/storage/SQLReports.java @@ -24,60 +24,49 @@ public class SQLReports implements MedinaBase public CompletableFuture getReports(int reportedId) { - MedinaLog.log("getting reports for: " + reportedId); return CompletableFuture.supplyAsync(() -> { Report report; - MedinaLog.log("initialized List"); try (Connection con = plugin.getSqlConnection().getCon()) { - MedinaLog.log("opened connection"); PreparedStatement statement = con.prepareStatement(SELECT_ID); - MedinaLog.log("prepared select statement"); statement.setInt(1, reportedId); - MedinaLog.log("set reportedUUID to " + reportedId); ResultSet set = statement.executeQuery(); - MedinaLog.log("executing query"); - MedinaLog.log("adding a report..."); - report = new Report( - reportedId, - UUID.fromString(set.getString("reporterUUID")), - set.getString("reporterName"), - UUID.fromString(set.getString("reportedUUID")), - set.getString("reportedName"), - ZonedDateTime.ofInstant(Instant.ofEpochMilli(set.getLong("timestamp")), ZoneId.systemDefault()), - set.getString("reason"), - set.getBoolean("deleted")); - MedinaLog.log("added a report, id is " + report.getReportId()); - return report; + if (set.next()) + { + report = new Report( + reportedId, + UUID.fromString(set.getString("reporterUUID")), + set.getString("reporterName"), + UUID.fromString(set.getString("reportedUUID")), + set.getString("reportedName"), + ZonedDateTime.ofInstant(Instant.ofEpochMilli(set.getLong("timestamp")), ZoneId.systemDefault()), + set.getString("reason"), + set.getBoolean("deleted")); + return report; + } } catch (Throwable e) { e.printStackTrace(); return null; } + return null; }); } public CompletableFuture> getReports(UUID reportedUUID) { - MedinaLog.log("getting reports for: " + reportedUUID); return CompletableFuture.supplyAsync(() -> { List reports = Lists.newArrayList(); - MedinaLog.log("initialized List"); try (Connection con = plugin.getSqlConnection().getCon()) { - MedinaLog.log("opened connection"); PreparedStatement statement = con.prepareStatement(SELECT); - MedinaLog.log("prepared select statement"); statement.setString(1, reportedUUID.toString()); - MedinaLog.log("set reportedUUID to " + reportedUUID); ResultSet set = statement.executeQuery(); - MedinaLog.log("executing query"); while (set.next()) { - MedinaLog.log("adding a report..."); Report report = new Report( set.getInt("reportId"), UUID.fromString(set.getString("reporterUUID")), @@ -88,7 +77,6 @@ public class SQLReports implements MedinaBase set.getString("reason"), set.getBoolean("deleted")); reports.add(report); - MedinaLog.log("added a report, id is " + report.getReportId()); } } catch (Throwable e) @@ -102,18 +90,14 @@ public class SQLReports implements MedinaBase public CompletableFuture deleteReport(int reportId, UUID reportedUUID) { - MedinaLog.log("deleting report"); return CompletableFuture.runAsync(() -> { - MedinaLog.log("running async"); try (Connection con = plugin.getSqlConnection().getCon()) { - MedinaLog.log("established connection"); PreparedStatement statement = con.prepareStatement(DELETE); statement.setInt(1, reportId); statement.setString(2, reportedUUID.toString()); statement.execute(); - MedinaLog.log("deleted report"); } catch (Throwable e) { diff --git a/src/main/java/dev/plex/medina/util/MedinaUtils.java b/src/main/java/dev/plex/medina/util/MedinaUtils.java index 1725e98..68ebba2 100644 --- a/src/main/java/dev/plex/medina/util/MedinaUtils.java +++ b/src/main/java/dev/plex/medina/util/MedinaUtils.java @@ -67,6 +67,14 @@ public class MedinaUtils implements MedinaBase return f; } + public static void broadcastToAdmins(Component component, String permission) + { + Bukkit.getOnlinePlayers().stream().filter(pl -> pl.hasPermission(permission)).forEach(pl -> + { + pl.sendMessage(component); + }); + } + public static List getPlayerNameList() { return Bukkit.getOnlinePlayers().stream().map(Player::getName).collect(Collectors.toList()); diff --git a/src/main/resources/messages.yml b/src/main/resources/messages.yml index a47e4f0..f57328a 100644 --- a/src/main/resources/messages.yml +++ b/src/main/resources/messages.yml @@ -37,4 +37,9 @@ reportLine: "# {0}" # 0 - the Report ID deletedReport: "Report ID: {0} deleted" -reportDoesntExist: "There is no report with this ID belonging to that player." \ No newline at end of file +reportDoesntExist: "There is no report with this ID belonging to that player." + +# 0 - The person who initiated the report +# 1 - The person being reported +# 2 - The reason for the report +notifyReport: "[REPORT] {0} reported {1} for {2}" \ No newline at end of file