From 3b8f6ee494fa64b5f598d793e969071c3f4df55c Mon Sep 17 00:00:00 2001 From: Sebastian Kaspari Date: Tue, 9 Mar 2010 23:35:40 +0100 Subject: [PATCH] Remember channel's topic and print on /topic --- src/org/yaaic/command/TopicCommand.java | 2 +- src/org/yaaic/irc/IRCConnection.java | 6 ++++-- src/org/yaaic/model/Channel.java | 22 ++++++++++++++++++++++ 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/src/org/yaaic/command/TopicCommand.java b/src/org/yaaic/command/TopicCommand.java index ca3dc31..40a508b 100644 --- a/src/org/yaaic/command/TopicCommand.java +++ b/src/org/yaaic/command/TopicCommand.java @@ -41,7 +41,7 @@ public class TopicCommand extends BaseCommand { if (params.length == 1) { // Show topic - // XXX: PircBot doesn't save the channel's topic - we have to keep track of the topic in the channel class + service.getConnection(server.getId()).onTopic(channel.getName(), channel.getTopic(), "", 0, false); } else if (params.length > 1) { // Change topic service.getConnection(server.getId()).setTopic(channel.getName(), BaseCommand.mergeParams(params)); diff --git a/src/org/yaaic/irc/IRCConnection.java b/src/org/yaaic/irc/IRCConnection.java index ffbdc80..bf13512 100644 --- a/src/org/yaaic/irc/IRCConnection.java +++ b/src/org/yaaic/irc/IRCConnection.java @@ -384,7 +384,7 @@ public class IRCConnection extends PircBot * On Topic */ @Override - protected void onTopic(String target, String topic, String setBy, long date, boolean changed) + public void onTopic(String target, String topic, String setBy, long date, boolean changed) { debug("Topic", target + " " + setBy + " " + topic); @@ -398,8 +398,10 @@ public class IRCConnection extends PircBot server.getChannel(target).addMessage(message); } + // remember channel's topic + server.getChannel(target).setTopic(topic); + Intent intent = new Intent(Broadcast.CHANNEL_MESSAGE); - intent.putExtra(Broadcast.EXTRA_SERVER, server.getId()); intent.putExtra(Broadcast.EXTRA_CHANNEL, target); service.sendBroadcast(intent); diff --git a/src/org/yaaic/model/Channel.java b/src/org/yaaic/model/Channel.java index c8748cd..c968941 100644 --- a/src/org/yaaic/model/Channel.java +++ b/src/org/yaaic/model/Channel.java @@ -32,6 +32,7 @@ public class Channel private static final int BUFFER_SIZE = 30; private String name; + private String topic; private LinkedList buffer = new LinkedList(); private LinkedList history = new LinkedList(); @@ -43,6 +44,7 @@ public class Channel public Channel(String name) { this.name = name; + this.topic = ""; } /** @@ -103,4 +105,24 @@ public class Channel { buffer.clear(); } + + /** + * Set the channel's topic + * + * @param topic The topic of the channel + */ + public void setTopic(String topic) + { + this.topic = topic; + } + + /** + * Get the topic of the channel + * + * @return The channel's topic + */ + public String getTopic() + { + return topic; + } }