package server; import clientside.MapleClient; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; import java.util.TreeSet; import java.util.concurrent.locks.ReentrantLock; public class AutobanManager implements Runnable { private Map<Integer, Integer> points = new HashMap(); private Map<Integer, List<String>> reasons = new HashMap(); private Set<ExpirationEntry> expirations = new TreeSet(); private static final int AUTOBAN_POINTS = 5000; private static AutobanManager instance = new AutobanManager(); private final ReentrantLock lock = new ReentrantLock(true); public static final AutobanManager getInstance() { return instance; } public final void autoban(MapleClient c, String reason) { } public final void addPoints(MapleClient c, int points, long expiration, String reason) { } public final void run() { long now = System.currentTimeMillis(); for (ExpirationEntry e : this.expirations) { if (e.time <= now) { this.points.put(Integer.valueOf(e.acc), Integer.valueOf(((Integer) this.points.get(Integer.valueOf(e.acc))).intValue() - e.points)); } else { return; } } } private static class ExpirationEntry implements Comparable<ExpirationEntry> { public long time; public int acc; public int points; public ExpirationEntry(long time, int acc, int points) { this.time = time; this.acc = acc; this.points = points; } public int compareTo(ExpirationEntry o) { return (int) (this.time - o.time); } public boolean equals(Object oth) { if (!(oth instanceof ExpirationEntry)) { return false; } ExpirationEntry ee = (ExpirationEntry) oth; return (this.time == ee.time) && (this.points == ee.points) && (this.acc == ee.acc); } } }