public IRCEvent generate(RawMessage raw) {
   final Channel channel = raw.getServer().getChannels().get(raw.getRaw().split(" ")[2]);
   if (channel == null) {
     return null;
   }
   final ChannelUser user = channel.getUser(raw.getRaw().split(" ")[3]);
   if (user == null) {
     return null;
   }
   return new ChannelUserEvent(this, channel, user, ChannelUserEvent.USER_KICKED);
 }
 private void addMessage(RawMessage message) {
   if (!message.getCommand().equals(Numerics.SERVER_SUPPORT))
     throw new IllegalArgumentException("Wrong numeric: " + message.getCommand());
   RawMessage[] msgs = new RawMessage[index + 1];
   msgs[index] = message;
   for (int i = 0; i < index; i++) {
     msgs[i] = messages[i];
   }
   index++;
   messages = msgs;
 }
 public void parse(RawMessage msg) {
   addMessage(msg);
   String message = msg.getRaw();
   if (msg.getRaw().contains(" :are supported by this server")) {
     message = msg.getRaw().replace(" :are supported by this server", "").trim();
   }
   String[] parts = message.split(" ");
   for (String s : parts) {
     String key = null;
     String value = null;
     if (s.contains("=")) {
       String[] t = s.split("=", 2);
       key = t[0];
       value = t[1];
     } else {
       key = s;
       value = s;
     }
     settings.put(key, value);
   }
 }
 public boolean accept(RawMessage raw) {
   return raw.getCommand().equals("KICK");
 }