package net.pterodactylus.xdcc.core;
+import static net.pterodactylus.xdcc.data.Channel.TO_NETWORK;
import static net.pterodactylus.xdcc.data.Download.FILTER_RUNNING;
import java.io.File;
import net.pterodactylus.xdcc.data.Pack;
import net.pterodactylus.xdcc.data.Server;
+import com.google.common.base.Function;
import com.google.common.base.Optional;
import com.google.common.base.Predicate;
import com.google.common.collect.FluentIterable;
}
/**
+ * Returns all defined networks.
+ *
+ * @return All defined networks
+ */
+ public Collection<Network> networks() {
+ return FluentIterable.from(channels).transform(TO_NETWORK).toSet();
+ }
+
+ /**
+ * Returns all connected networks.
+ *
+ * @return All connected networks
+ */
+ public Collection<Network> connectedNetworks() {
+ return Lists.newArrayList(Optional.presentInstances(FluentIterable.from(networkConnections.values()).transform(new Function<Connection, Optional<Network>>() {
+ @Override
+ public Optional<Network> apply(Connection connection) {
+ return getNetwork(connection);
+ }
+ })));
+ }
+
+ /**
* Returns all configured channels. Due to various circumstances, configured
* channels might not actually be joined.
*
return;
}
- /* remove download. */
- downloads.remove(pack.name(), download.get());
-
/* stop the DCC receiver. */
if (download.get().dccReceiver() != null) {
download.get().dccReceiver().stop();
+ } else {
+ /* remove download if it hasn’t started yet. */
+ downloads.remove(pack.name(), download.get());
}
/* remove the request from the bot, too. */
* @param connectionFailed
* The connection failed event
*/
+ @Subscribe
public void connectionFailed(ConnectionFailed connectionFailed) {
removeConnection(connectionFailed.connection());
}
return;
}
- Bot removedBot = networkBots.remove(network.get(), channelLeft.client().nick().get());
- if (removedBot != null) {
- eventBus.post(new GenericMessage(String.format("Bot %s (%s) was removed, %d packs removed.", removedBot.name(), removedBot.network().name(), removedBot.packs().size())));
- }
+ networkBots.remove(network.get(), channelLeft.client().nick().get());
}
/**
return;
}
- Bot removedBot = networkBots.remove(network.get(), clientQuit.client().nick().get());
- if (removedBot != null) {
- eventBus.post(new GenericMessage(String.format("Bot %s (%s) was removed, %d packs removed.", removedBot.name(), removedBot.network().name(), removedBot.packs().size())));
- }
+ networkBots.remove(network.get(), clientQuit.client().nick().get());
}
/**