Notify the handler of a report (if any) when the report they are handling is purged.
This commit is contained in:
parent
80c87fa1fc
commit
fc6e1fe003
@ -401,14 +401,14 @@ public class ReportManager {
|
||||
return _activeReports.values();
|
||||
}
|
||||
|
||||
/* PRIVATE STATIC HELPERS */
|
||||
/* STATIC HELPERS */
|
||||
|
||||
private static String getReportPrefix(Report report)
|
||||
public static String getReportPrefix(Report report)
|
||||
{
|
||||
return getReportPrefix(report.getReportId());
|
||||
}
|
||||
|
||||
private static String getReportPrefix(int reportId)
|
||||
public static String getReportPrefix(int reportId)
|
||||
{
|
||||
return NAME + " #" + reportId;
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ package mineplex.core.report.task;
|
||||
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
import mineplex.core.common.util.C;
|
||||
import mineplex.core.report.Report;
|
||||
import mineplex.core.report.ReportManager;
|
||||
|
||||
@ -27,7 +28,10 @@ public class ReportPurgeTask extends BukkitRunnable
|
||||
|
||||
if (report != null)
|
||||
{
|
||||
checkReportActive(report);
|
||||
if (checkForPurge(report))
|
||||
{
|
||||
notifyHandler(report);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -37,21 +41,46 @@ public class ReportPurgeTask extends BukkitRunnable
|
||||
}
|
||||
}
|
||||
|
||||
public boolean checkReportActive(Report report)
|
||||
/**
|
||||
* Checks if a report should be purged and carries it out if so.
|
||||
*
|
||||
* @param report the report to check for purging (and act accordingly)
|
||||
* @return true if the report was purged, false otherwise
|
||||
*/
|
||||
public boolean checkForPurge(Report report)
|
||||
{
|
||||
if (!report.isActive())
|
||||
{
|
||||
int reportId = report.getReportId();
|
||||
purgeReport(reportId);
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Purges a report.
|
||||
*
|
||||
* @param reportId the report id to purge
|
||||
*/
|
||||
public void purgeReport(int reportId)
|
||||
{
|
||||
_reportManager.removeReport(reportId);
|
||||
_reportManager.removeActiveReport(reportId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Notifies the handler of a report (if any) that the report was purged.
|
||||
*
|
||||
* @param report the report which was purged
|
||||
*/
|
||||
public void notifyHandler(Report report)
|
||||
{
|
||||
// would result in spam if many reports with no handlers are purged (causing each member of staff to receive a message for every purged report)
|
||||
if (report.getHandler() != null)
|
||||
{
|
||||
_reportManager.sendHandlerNotification(report, ReportManager.getReportPrefix(report) + C.cRed + "Purging report due to inactivity.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user