everything works

This commit is contained in:
Telesphoreo 2024-05-26 16:40:29 -05:00
parent 0c6de52df8
commit a60338e316
5 changed files with 34 additions and 33 deletions

View File

@ -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());
}

View File

@ -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<Component> 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()));

View File

@ -24,60 +24,49 @@ public class SQLReports implements MedinaBase
public CompletableFuture<Report> getReports(int reportedId)
{
MedinaLog.log("getting reports for: " + reportedId);
return CompletableFuture.supplyAsync(() ->
{
Report report;
MedinaLog.log("initialized List<Report>");
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<List<Report>> getReports(UUID reportedUUID)
{
MedinaLog.log("getting reports for: " + reportedUUID);
return CompletableFuture.supplyAsync(() ->
{
List<Report> reports = Lists.newArrayList();
MedinaLog.log("initialized List<Report>");
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<Void> 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)
{

View File

@ -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<String> getPlayerNameList()
{
return Bukkit.getOnlinePlayers().stream().map(Player::getName).collect(Collectors.toList());

View File

@ -38,3 +38,8 @@ reportLine: "<newline><yellow># {0}"
deletedReport: "<green>Report ID: {0} deleted"
reportDoesntExist: "<red>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: "<dark_gray>[<yellow>REPORT<dark_gray>] <gold>{0} reported {1} for {2}"