package net.rizon.acid.core;
import java.util.ArrayList;
-import java.util.HashMap;
+import java.util.LinkedHashMap;
import java.util.Set;
+import java.util.HashSet;
import java.util.Collection;
import java.util.TreeMap;
import org.slf4j.Logger;
private String key;
private int limit;
+ /*
+ * support for ban-like modes (as the TS6 spec calls them) that include
+ * a mask with them. only handle those for now, stuff like +I can be added
+ * easily if it's needed.
+ */
+ private HashSet<String> modesBans = new HashSet<String>();
+ private HashSet<String> modesExempt = new HashSet<String>();
+
public Channel(String channel, int ts)
{
this.ts = ts;
return modes.indexOf(mode) != -1;
}
+ /* interface for message handlers to change ban-like modes */
+ public void changeMaskMode(char mode, boolean adding, String mask)
+ {
+ Set<String> set;
+
+ if (mode == 'b')
+ set = modesBans;
+ else if (mode == 'e')
+ set = modesExempt;
+ else
+ return;
+
+ if (adding)
+ set.add(mask);
+ else
+ set.remove(mask);
+ }
+
+ public Set<String> getBans()
+ {
+ return modesBans;
+ }
+
+ public Set<String> getExempts()
+ {
+ return modesExempt;
+ }
+
public String getKey()
{
return key;
Acidictive.reply(target, to, c, "Listed " + (owners.size() + admins.size() + ops.size() + hops.size() + voices.size() + regs.size()) + " users that are currently in " + channel);
}
- private static HashMap<String, Channel> channelMap = new HashMap<String, Channel>();
-
public static Set<String> getChannels()
{
return channelMap.keySet();