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;
/** The channels that are currentlymonitored. */
private final Collection<Channel> joinedChannels = Sets.newHashSet();
+ /** The channels that are joined but not configured. */
+ private final Collection<Channel> extraChannels = Sets.newHashSet();
+
/** The current network connections. */
private final Map<Network, Connection> networkConnections = Collections.synchronizedMap(Maps.<Network, Connection>newHashMap());
}
/**
+ * Returns all currently joined channels that are not configured.
+ *
+ * @return All currently joined but not configured channels
+ */
+ public Collection<Channel> extraChannels() {
+ return ImmutableSet.copyOf(extraChannels);
+ }
+
+ /**
* Returns all currently known bots.
*
* @return All currently known bots
}
/**
+ * 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()) {
+ /* it’s an extra channel. */
+ extraChannels.add(new Channel(network.get(), channelJoined.channel()));
+ logger.info(String.format("Joined extra Channel %s on %s.", channelJoined.channel(), network.get().name()));
+ 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.
*