diff --git a/core/src/main/java/com/seibel/distanthorizons/core/network/NetworkEventSource.java b/core/src/main/java/com/seibel/distanthorizons/core/network/NetworkEventSource.java index 8e98f52f8..93ddc05ad 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/network/NetworkEventSource.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/network/NetworkEventSource.java @@ -119,10 +119,8 @@ public abstract class NetworkEventSource } - protected CompletableFuture createRequest(PluginChannelSession session, TrackableMessage msg, Class responseClass) + protected CompletableFuture createRequest(TrackableMessage msg, Class responseClass) { - msg.setConnection(session); - CompletableFuture responseFuture = new CompletableFuture<>(); responseFuture.whenComplete((response, throwable) -> { diff --git a/core/src/main/java/com/seibel/distanthorizons/core/network/plugin/PluginChannelSession.java b/core/src/main/java/com/seibel/distanthorizons/core/network/plugin/PluginChannelSession.java index 15123e643..9f0685988 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/network/plugin/PluginChannelSession.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/network/plugin/PluginChannelSession.java @@ -76,7 +76,8 @@ public class PluginChannelSession extends NetworkEventSource public CompletableFuture sendRequest(TrackableMessage msg, Class responseClass) { - CompletableFuture responseFuture = this.createRequest(this, msg, responseClass); + msg.setConnection(this); + CompletableFuture responseFuture = this.createRequest(msg, responseClass); this.sendMessage(msg); return responseFuture; } diff --git a/core/src/main/java/com/seibel/distanthorizons/core/network/plugin/TrackableMessage.java b/core/src/main/java/com/seibel/distanthorizons/core/network/plugin/TrackableMessage.java index bbaa3de68..dd899974d 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/network/plugin/TrackableMessage.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/network/plugin/TrackableMessage.java @@ -38,22 +38,12 @@ public abstract class TrackableMessage extends PluginChannelMessage public long futureId = lastId.getAndIncrement() | ((Objects.requireNonNull(SharedApi.getEnvironment()) == EWorldEnvironment.Server_Only ? 1 : 0) << 31); - private static final AtomicInteger lastContextId = new AtomicInteger(); - private static final ConcurrentMap connectionToIdMap = new MapMaker().weakKeys().makeMap(); - public void sendResponse(TrackableMessage responseMessage) { responseMessage.futureId = this.futureId; this.session.sendMessage(responseMessage); } - @Override - public void setConnection(PluginChannelSession connection) - { - super.setConnection(connection); - this.futureId |= (long) connectionToIdMap.computeIfAbsent(connection, k -> lastContextId.getAndIncrement()) << 32; - } - public void sendResponse(Exception e) { this.sendResponse(new ExceptionMessage(e));