X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fxdcc%2Fcore%2FCore.java;h=24727d9c390c9814c672bb263ef61fca64e6f3b5;hb=d5e7222794392ab7c75a27afea6b6a6ce0bcdba5;hp=bfad867f9ecc129b437471b013f098967efcee7a;hpb=f96ea38946952e2a06ccc0d64a92e346b8761f85;p=xudocci.git diff --git a/src/main/java/net/pterodactylus/xdcc/core/Core.java b/src/main/java/net/pterodactylus/xdcc/core/Core.java index bfad867..24727d9 100644 --- a/src/main/java/net/pterodactylus/xdcc/core/Core.java +++ b/src/main/java/net/pterodactylus/xdcc/core/Core.java @@ -30,6 +30,8 @@ import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; +import java.time.Duration; +import java.time.Instant; import java.util.Collection; import java.util.Collections; import java.util.HashSet; @@ -110,6 +112,7 @@ public class Core extends AbstractExecutionThreadService { /** The logger. */ private static final Logger logger = Logger.getLogger(Core.class.getName()); + private final Instant startup = Instant.now(); private final Object syncObject = new Object(); /** The event bus. */ private final EventBus eventBus; @@ -196,8 +199,11 @@ public class Core extends AbstractExecutionThreadService { Network network = entry.getKey(); Collection bots = networkBots.row(network).values(); int packCount = bots.stream().mapToInt((bot) -> bot.packs().size()).reduce((a, b) -> a + b).orElse(0); - return new ConnectedNetwork(network, entry.getValue().hostname(), - entry.getValue().port(), entry.getValue().nickname(), + Connection connection = entry.getValue(); + return new ConnectedNetwork(network, connection.hostname(), + connection.port(), + connection.getUptime().orElse(Duration.ofSeconds(0)), + connection.nickname(), channels.stream() .filter((channel) -> channel.network() .equals(network)) @@ -258,6 +264,10 @@ public class Core extends AbstractExecutionThreadService { return downloads.values(); } + public Duration getUptime() { + return Duration.between(startup, Instant.now()); + } + // // ACTIONS // @@ -329,13 +339,6 @@ public class Core extends AbstractExecutionThreadService { return; } - /* get connection. */ - Connection connection = networkConnections.get(bot.network()); - if (connection == null) { - /* request for unknown network? */ - return; - } - /* stop the DCC receiver. */ if (download.get().dccReceiver() != null) { download.get().dccReceiver().stop(); @@ -344,6 +347,13 @@ public class Core extends AbstractExecutionThreadService { downloads.remove(pack.name(), download.get()); } + /* get connection. */ + Connection connection = networkConnections.get(bot.network()); + if (connection == null) { + /* request for unknown network? */ + return; + } + /* remove the request from the bot, too. */ try { connection.sendMessage(bot.name(), String.format("XDCC %s", (download.get().dccReceiver() != null) ? "CANCEL" : "REMOVE"));