package pl.shockah.shocky.lines;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;
import org.pircbotx.ShockyBot;
import org.pircbotx.hooks.events.MessageEvent;
import pl.shockah.BinBuffer;
import pl.shockah.shocky.sql.QueryInsert;
import pl.shockah.shocky.sql.Wildcard;
public class LineMessage extends LineWithUsers {
public final String text;
public LineMessage(ResultSet result) throws SQLException {
super(result,new String[]{result.getString("users")});
this.text = result.getString("text");
}
public LineMessage(String channel, String sender, String text) {this(new Date(),channel,sender,text);}
public LineMessage(long ms, String channel, String sender, String text) {this(new Date(ms),channel,sender,text);}
public LineMessage(MessageEvent<ShockyBot> event) {this(new Date(),event.getChannel().getName(),event.getUser().getNick(),event.getMessage());}
public LineMessage(Date time, String channel, String sender, String text) {
super(time,channel,new String[]{sender});
this.text = text;
}
public LineMessage(BinBuffer buffer) {
super(buffer);
this.text = buffer.readUString();
}
public void save(BinBuffer buffer) {
super.save(buffer);
buffer.writeUString(text);
}
public String getMessage() {
return "<"+users[0]+"> "+text;
}
@Override
public void fillQuery(QueryInsert q, boolean prepare) {
super.fillQuery(q, prepare);
q.add("text",prepare?Wildcard.blank:text);
}
public int fillQuery(PreparedStatement p, int arg) throws SQLException {
arg = super.fillQuery(p,arg);
p.setString(arg++, text);
return arg;
}
}