+package net.pterodactylus.xdcc.core;
+
+import static java.lang.System.currentTimeMillis;
+import static java.util.concurrent.TimeUnit.HOURS;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import net.pterodactylus.xdcc.data.Channel;
+
+/**
+ * Manages banned channels and their re-join times.
+ *
+ * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
+ */
+public class ChannelBanManager {
+
+ private static final long BAN_TIME = HOURS.toMillis(24);
+ private final Map<Channel, Long> channelBanTimes = new HashMap<>();
+
+ public boolean isBanned(Channel channel) {
+ return channelBanTimes.containsKey(channel)
+ && ((currentTimeMillis() - channelBanTimes.get(channel))
+ < BAN_TIME);
+ }
+
+ public void ban(Channel channel) {
+ channelBanTimes.put(channel, currentTimeMillis());
+ }
+
+ public void unban(Channel channel) {
+ channelBanTimes.remove(channel);
+ }
+
+}