Keep track of joined channels.
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Wed, 10 Apr 2013 06:23:46 +0000 (08:23 +0200)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Wed, 10 Apr 2013 06:27:07 +0000 (08:27 +0200)
src/main/java/net/pterodactylus/xdcc/core/Core.java

index 38958f7..96555e3 100644 (file)
@@ -33,6 +33,7 @@ import java.util.logging.Logger;
 import net.pterodactylus.irc.Connection;
 import net.pterodactylus.irc.ConnectionBuilder;
 import net.pterodactylus.irc.DccReceiver;
+import net.pterodactylus.irc.event.ChannelJoined;
 import net.pterodactylus.irc.event.ChannelMessageReceived;
 import net.pterodactylus.irc.event.ConnectionEstablished;
 import net.pterodactylus.irc.event.DccSendReceived;
@@ -235,6 +236,30 @@ public class Core extends AbstractIdleService {
        }
 
        /**
+        * Shows a message when a channel was joined by us.
+        *
+        * @param channelJoined
+        *              The channel joined event
+        */
+       @Subscribe
+       public void channelJoined(ChannelJoined channelJoined) {
+               if (channelJoined.connection().isSource(channelJoined.client())) {
+                       Optional<Network> network = getNetwork(channelJoined.connection());
+                       if (!network.isPresent()) {
+                               return;
+                       }
+
+                       Optional<Channel> channel = getChannel(network.get(), channelJoined.channel());
+                       if (!channel.isPresent()) {
+                               return;
+                       }
+
+                       joinedChannels.add(channel.get());
+                       logger.info(String.format("Joined Channel %s on %s.", channelJoined.channel(), network.get().name()));
+               }
+       }
+
+       /**
         * If a message on a channel is received, it is parsed for pack information
         * with is then added to a bot.
         *