mirror of
https://github.com/plexusorg/Medina.git
synced 2024-11-22 05:45:00 +00:00
everything works
This commit is contained in:
parent
0c6de52df8
commit
a60338e316
@ -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());
|
||||
}
|
||||
|
||||
|
@ -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()));
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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());
|
||||
|
@ -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}"
|
Loading…
Reference in New Issue
Block a user