diff options
author | snowleo <schneeleo@gmail.com> | 2011-10-12 03:14:07 +0200 |
---|---|---|
committer | snowleo <schneeleo@gmail.com> | 2011-10-12 03:14:26 +0200 |
commit | 860d446d28776ec842fa53e8e08538d4e093d6e9 (patch) | |
tree | 0c4598eae4eb8c59fd36e8312eab1b27a8018794 /EssentialsUpdate/src/f00f/net/irc/martyr/replies/TopicInfoReply.java | |
parent | 9ec398b39b0f48392a9d635041b392c7dba2ca0c (diff) | |
download | Essentials-860d446d28776ec842fa53e8e08538d4e093d6e9.tar Essentials-860d446d28776ec842fa53e8e08538d4e093d6e9.tar.gz Essentials-860d446d28776ec842fa53e8e08538d4e093d6e9.tar.lz Essentials-860d446d28776ec842fa53e8e08538d4e093d6e9.tar.xz Essentials-860d446d28776ec842fa53e8e08538d4e093d6e9.zip |
EssentialsUpdate WIP
Diffstat (limited to 'EssentialsUpdate/src/f00f/net/irc/martyr/replies/TopicInfoReply.java')
-rw-r--r-- | EssentialsUpdate/src/f00f/net/irc/martyr/replies/TopicInfoReply.java | 80 |
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; + } +} + + + + |