summaryrefslogtreecommitdiffstats
path: root/EssentialsUpdate/src/f00f/net/irc/martyr/replies/TopicInfoReply.java
diff options
context:
space:
mode:
Diffstat (limited to 'EssentialsUpdate/src/f00f/net/irc/martyr/replies/TopicInfoReply.java')
-rw-r--r--EssentialsUpdate/src/f00f/net/irc/martyr/replies/TopicInfoReply.java80
1 files changed, 80 insertions, 0 deletions
diff --git a/EssentialsUpdate/src/f00f/net/irc/martyr/replies/TopicInfoReply.java b/EssentialsUpdate/src/f00f/net/irc/martyr/replies/TopicInfoReply.java
new file mode 100644
index 000000000..311e17dc8
--- /dev/null
+++ b/EssentialsUpdate/src/f00f/net/irc/martyr/replies/TopicInfoReply.java
@@ -0,0 +1,80 @@
+package f00f.net.irc.martyr.replies;
+
+import java.util.Date;
+import java.util.StringTokenizer;
+
+import f00f.net.irc.martyr.InCommand;
+import f00f.net.irc.martyr.clientstate.Channel;
+import f00f.net.irc.martyr.clientstate.ClientState;
+
+/**
+ * Contains info about the topic, who set it and when.
+ */
+public class TopicInfoReply extends GenericReply
+{
+ private String channelName;
+ private Date date;
+ private String author;
+
+ /** For use as a factory. */
+ public TopicInfoReply()
+ {
+ }
+
+ public TopicInfoReply( String channelName, Date date, String author )
+ {
+ this.channelName = channelName;
+ this.date = date;
+ this.author = author;
+ }
+
+ public String getIrcIdentifier()
+ {
+ return "333";
+ }
+
+ public String getChannel()
+ {
+ return this.channelName;
+ }
+
+ public InCommand parse( String prefix, String identifier, String params )
+ {
+ StringTokenizer tokens = new StringTokenizer( params );
+
+ // Our nick. We don't need that, I think.
+ tokens.nextToken();
+
+ // The channel.
+ String chan = tokens.nextToken();
+
+ // The author
+ String author = tokens.nextToken();
+
+ // The date.
+ Date date;
+ try
+ {
+ date = new Date( Long.parseLong( tokens.nextToken() ) * 1000 );
+ }
+ catch( NumberFormatException nfe )
+ {
+ // riiiight...
+ date = new Date(0);
+ }
+
+ return new TopicInfoReply( chan, date, author );
+ }
+
+ public boolean updateClientState( ClientState state )
+ {
+ Channel channel = state.getChannel( channelName );
+ channel.setTopicDate( date );
+ channel.setTopicAuthor( author );
+ return true;
+ }
+}
+
+
+
+