package org.freecode.irc; /** * User: Shivam * Date: 17/06/13 * Time: 00:48 */ public class Privmsg extends Transmittable { private final String target; private final String message; private final String senderMask; private final String user; private final String nick; private final String host; private final IrcConnection connection; public Privmsg(final String rawLine, final IrcConnection connection) { this.connection = connection; final String[] parts = rawLine.split(" ", 4); senderMask = parts[0]; if(senderMask.contains("!")) { nick = senderMask.substring(0, senderMask.indexOf('!')); user = senderMask.substring(senderMask.indexOf('!') + 1, senderMask.indexOf('@')); host = senderMask.substring(senderMask.indexOf('@') + 1); } else { nick = senderMask; user = null; host = null; } message = parts[3].substring(1); target = parts[2]; } public Privmsg(final String target, final String message, final IrcConnection connection) { this.connection = connection; this.message = message; this.target = target; this.senderMask = null; this.user = null; this.nick = null; this.host = null; } public String getTarget() { return target; } public String getMessage() { return message; } public String getSenderMask() { return senderMask; } public String getUser() { return user; } public String getNick() { return nick; } public String getHost() { return host; } public IrcConnection getIrcConnection() { return connection; } public String getRaw() { return String.format("PRIVMSG %s :%s", target, message); } public String getCommand() { return "PRIVMSG"; } public void send(String msg) { String target1 = getTarget(); if(Character.isLetter(target1.charAt(0))) { target1 = getNick(); } getIrcConnection().send(new Privmsg(target1, msg, connection)); } }