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/ChannelCreationReply.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/ChannelCreationReply.java')
-rw-r--r-- | EssentialsUpdate/src/f00f/net/irc/martyr/replies/ChannelCreationReply.java | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/EssentialsUpdate/src/f00f/net/irc/martyr/replies/ChannelCreationReply.java b/EssentialsUpdate/src/f00f/net/irc/martyr/replies/ChannelCreationReply.java new file mode 100644 index 000000000..2dd89e1cd --- /dev/null +++ b/EssentialsUpdate/src/f00f/net/irc/martyr/replies/ChannelCreationReply.java @@ -0,0 +1,78 @@ +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; + +/** + * ChannelCreationReply sets the creation time of the channel. It is sent + * automatically on a MODE discovery request. + */ +public class ChannelCreationReply extends GenericReply +{ + private String channelName; + private Date date; + + /** For use as a factory. */ + public ChannelCreationReply() + { + } + + public ChannelCreationReply( String channelName, Date date ) + { + this.channelName = channelName; + this.date = date; + } + + public String getIrcIdentifier() + { + return "329"; + } + + /** + * This is a factory that passes the command off to a + * ChannelModeCommand. + */ + 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 date. + Date date; + try + { + date = new Date( Long.parseLong( tokens.nextToken() ) * 1000 ); + } + catch( NumberFormatException nfe ) + { + // riiiight... + date = new Date(0); + } + + return new ChannelCreationReply( chan, date ); + } + + /** + * This should, theoretically, never be called, because this command is + * only ever used as a factory. + */ + public boolean updateClientState( ClientState state ) + { + Channel channel = state.getChannel( channelName ); + channel.setCreationDate( date ); + return true; + } +} + + + + |