🚧 Parse token from DCC SEND
[xudocci.git] / src / main / java / net / pterodactylus / xdcc / core / ChannelBanManager.java
1 package net.pterodactylus.xdcc.core;
2
3 import static java.lang.System.currentTimeMillis;
4 import static java.util.concurrent.TimeUnit.HOURS;
5
6 import java.util.HashMap;
7 import java.util.Map;
8
9 import net.pterodactylus.xdcc.data.Channel;
10
11 /**
12  * Manages banned channels and their re-join times.
13  *
14  * @author <a href="mailto:bombe@pterodactylus.net">David â€˜Bombe’ Roden</a>
15  */
16 public class ChannelBanManager {
17
18         private static final long BAN_TIME = HOURS.toMillis(24);
19         private final Map<Channel, Long> channelBanTimes = new HashMap<>();
20
21         public boolean isBanned(Channel channel) {
22                 return channelBanTimes.containsKey(channel)
23                                 && ((currentTimeMillis() - channelBanTimes.get(channel))
24                                 < BAN_TIME);
25         }
26
27         public void ban(Channel channel) {
28                 channelBanTimes.put(channel, currentTimeMillis());
29         }
30
31         public void unban(Channel channel) {
32                 channelBanTimes.remove(channel);
33         }
34
35 }