1 package rero.ircfw; 2 3 import java.util.Iterator ; 4 import java.util.LinkedHashSet ; 5 import java.util.Set ; 6 7 12 public class UserMode { 13 private String modes; private String chars; 16 public UserMode(String m, String c) { 17 modes = m; 18 chars = c; 19 } 20 21 public Set getUsersWithMode(Channel channel, char mode) { 22 Set copy = new LinkedHashSet (); 23 Iterator i = channel.getAllUsers().iterator(); 24 while (i.hasNext()) { 25 User temp = (User) i.next(); 26 int m = temp.getModeFor(channel); 27 28 if (isMode(m, mode)) { 29 copy.add(temp); 30 } 31 } 32 33 return copy; 34 } 35 36 public boolean isPrefixMode(char m) { 37 return modes.indexOf(m) > -1; 38 } 39 40 public boolean isPrefixChar(char m) { 41 return chars.indexOf(m) > -1; 42 } 43 44 public char getDisplayForMode(char mode) { 45 return chars.charAt(modes.indexOf(mode)); 46 } 47 48 public char getModeForDisplay(char display) { 49 return modes.charAt(chars.indexOf(display)); 50 } 51 52 public int getValueFor(char mchar) { 53 return 1 << (modes.length() - modes.indexOf(mchar)); 54 } 55 56 public int setMode(int original, char mchar) { 57 int value = getValueFor(mchar); 58 return original | value; 59 } 60 61 public int unsetMode(int original, char mchar) { 62 int value = getValueFor(mchar); 63 return original & ~(value); 64 } 65 66 public boolean isMode(int original, char mchar) { 67 if (mchar == ' ' && original == 0) 68 return true; 69 70 int value = getValueFor(mchar); 71 return ((original & value) == value); 72 } 73 74 75 public String getModes() { 76 return modes; 77 } 78 79 public String getChars() { 80 return chars; 81 } 82 83 public String toString(int original) { 84 for (int x = 0; x < modes.length(); x++) { 85 if (isMode(original, modes.charAt(x))) { 86 return String.valueOf(chars.charAt(x)); 87 } 88 } 89 return ""; 90 } 91 92 public String toString() { 93 return "[UCM:(" + modes + ")" + chars + "]"; 94 } 95 96 } 97 | Popular Tags |