package tc.oc.pgm.debug;
import javax.inject.Inject;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import java.time.Duration;
import tc.oc.commons.core.plugin.PluginFacet;
import tc.oc.debug.LeakDetector;
import tc.oc.pgm.events.MatchUnloadEvent;
import tc.oc.pgm.events.PlayerLeaveMatchEvent;
public class PGMLeakListener implements PluginFacet, Listener {
private static final Duration DEADLINE = Duration.ofSeconds(10);
private final LeakDetector leakDetector;
@Inject PGMLeakListener(LeakDetector leakDetector) {
this.leakDetector = leakDetector;
}
@EventHandler
public void onCycle(MatchUnloadEvent event) {
leakDetector.expectRelease(event.getMatch(), DEADLINE, true);
}
@EventHandler
public void onPlayerLeave(PlayerLeaveMatchEvent event) {
leakDetector.expectRelease(event.getPlayer(), DEADLINE, true);
}
}