X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;ds=inline;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Ffcp%2Fquelaton%2FDefaultFcpClient.java;fp=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Ffcp%2Fquelaton%2FDefaultFcpClient.java;h=53e36408ead3df88007a5c1ba156ff3a710f438c;hb=db815b5a0f70dcc602fc33b27c39e05a4e2fe57c;hp=255549c8fa133bf02ce5b806b3d78a0b5150a229;hpb=7f2aac0c599e683ea50b6b41e85d3ca76e1c1f55;p=jFCPlib.git diff --git a/src/main/java/net/pterodactylus/fcp/quelaton/DefaultFcpClient.java b/src/main/java/net/pterodactylus/fcp/quelaton/DefaultFcpClient.java index 255549c..53e3640 100644 --- a/src/main/java/net/pterodactylus/fcp/quelaton/DefaultFcpClient.java +++ b/src/main/java/net/pterodactylus/fcp/quelaton/DefaultFcpClient.java @@ -23,6 +23,7 @@ public class DefaultFcpClient implements FcpClient { private final int port; private final AtomicReference fcpConnection = new AtomicReference<>(); private final Supplier clientName; + private final ActiveSubscriptions activeSubscriptions = new ActiveSubscriptions(); public DefaultFcpClient(ExecutorService threadPool, String hostname, int port, Supplier clientName) { this.threadPool = MoreExecutors.listeningDecorator(threadPool); @@ -38,6 +39,11 @@ public class DefaultFcpClient implements FcpClient { } fcpConnection = createConnection(); this.fcpConnection.set(fcpConnection); + try { + activeSubscriptions.renew(fcpConnection::addFcpListener, this::subscribeUsk); + } catch (InterruptedException | ExecutionException e) { + throw new IOException(e); + } return fcpConnection; } @@ -136,7 +142,7 @@ public class DefaultFcpClient implements FcpClient { @Override public SubscribeUskCommand subscribeUsk() { - return new SubscribeUskCommandImpl(threadPool, this::connect); + return new SubscribeUskCommandImpl(threadPool, this::connect, activeSubscriptions); } }