Clean up package structure
This commit is contained in:
@@ -24,7 +24,7 @@ import com.seibel.distanthorizons.api.enums.rendering.EDhApiRenderPass;
|
||||
import com.seibel.distanthorizons.api.methods.events.abstractEvents.*;
|
||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiRenderParam;
|
||||
import com.seibel.distanthorizons.core.config.Config;
|
||||
import com.seibel.distanthorizons.core.network.plugin.PluginChannelMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.NetworkMessage;
|
||||
import com.seibel.distanthorizons.coreapi.ModInfo;
|
||||
import com.seibel.distanthorizons.api.enums.rendering.EDhApiDebugRendering;
|
||||
import com.seibel.distanthorizons.api.enums.rendering.EDhApiRendererMode;
|
||||
@@ -330,7 +330,7 @@ public class ClientApi
|
||||
// networking //
|
||||
//============//
|
||||
|
||||
public void pluginMessageReceived(@NotNull PluginChannelMessage message)
|
||||
public void pluginMessageReceived(@NotNull NetworkMessage message)
|
||||
{
|
||||
this.pluginChannelApi.session.tryHandleMessage(message);
|
||||
}
|
||||
|
||||
+5
-5
@@ -5,9 +5,9 @@ import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector;
|
||||
import com.seibel.distanthorizons.core.level.IKeyedClientLevelManager;
|
||||
import com.seibel.distanthorizons.core.level.IServerKeyedClientLevel;
|
||||
import com.seibel.distanthorizons.core.logging.ConfigBasedLogger;
|
||||
import com.seibel.distanthorizons.core.network.messages.plugin.PluginCloseEvent;
|
||||
import com.seibel.distanthorizons.core.network.messages.plugin.CurrentLevelKeyMessage;
|
||||
import com.seibel.distanthorizons.core.network.plugin.PluginChannelSession;
|
||||
import com.seibel.distanthorizons.core.network.event.PluginCloseEvent;
|
||||
import com.seibel.distanthorizons.core.network.messages.base.CurrentLevelKeyMessage;
|
||||
import com.seibel.distanthorizons.core.network.session.Session;
|
||||
import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftClientWrapper;
|
||||
import com.seibel.distanthorizons.core.wrapperInterfaces.world.IClientLevelWrapper;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
@@ -29,7 +29,7 @@ public class ClientPluginChannelApi
|
||||
private final Consumer<IClientLevelWrapper> levelUnloadHandler;
|
||||
private final Consumer<IServerKeyedClientLevel> multiverseLevelLoadHandler;
|
||||
|
||||
public PluginChannelSession session;
|
||||
public Session session;
|
||||
|
||||
|
||||
public boolean allowLevelAutoload()
|
||||
@@ -45,7 +45,7 @@ public class ClientPluginChannelApi
|
||||
this.multiverseLevelLoadHandler = levelLoadHandler;
|
||||
}
|
||||
|
||||
public void onJoin(@NonNull PluginChannelSession session)
|
||||
public void onJoin(@NonNull Session session)
|
||||
{
|
||||
Objects.requireNonNull(session);
|
||||
this.session = session;
|
||||
|
||||
@@ -21,7 +21,7 @@ package com.seibel.distanthorizons.core.api.internal;
|
||||
|
||||
import com.seibel.distanthorizons.api.methods.events.abstractEvents.DhApiLevelLoadEvent;
|
||||
import com.seibel.distanthorizons.api.methods.events.abstractEvents.DhApiLevelUnloadEvent;
|
||||
import com.seibel.distanthorizons.core.network.plugin.PluginChannelMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.NetworkMessage;
|
||||
import com.seibel.distanthorizons.core.wrapperInterfaces.misc.IServerPlayerWrapper;
|
||||
import com.seibel.distanthorizons.coreapi.DependencyInjection.ApiEventInjector;
|
||||
import com.seibel.distanthorizons.core.world.AbstractDhWorld;
|
||||
@@ -174,7 +174,7 @@ public class ServerApi
|
||||
}
|
||||
}
|
||||
|
||||
public void pluginMessageReceived(IServerPlayerWrapper player, @NotNull PluginChannelMessage message)
|
||||
public void pluginMessageReceived(IServerPlayerWrapper player, @NotNull NetworkMessage message)
|
||||
{
|
||||
IDhServerWorld serverWorld = SharedApi.getIDhServerWorld();
|
||||
if (serverWorld instanceof DhServerWorld) // TODO add support for DhClientServerWorld's (lan worlds) as well
|
||||
|
||||
@@ -31,11 +31,10 @@ import com.seibel.distanthorizons.core.generation.WorldRemoteGenerationQueue;
|
||||
import com.seibel.distanthorizons.core.logging.DhLoggerBuilder;
|
||||
import com.seibel.distanthorizons.core.multiplayer.client.ClientNetworkState;
|
||||
import com.seibel.distanthorizons.core.multiplayer.client.FullDataRefreshQueue;
|
||||
import com.seibel.distanthorizons.core.network.ScopedNetworkEventSource;
|
||||
import com.seibel.distanthorizons.core.network.messages.plugin.fullData.FullDataPartialUpdateMessage;
|
||||
import com.seibel.distanthorizons.core.network.event.ScopedNetworkEventSource;
|
||||
import com.seibel.distanthorizons.core.network.messages.fullData.FullDataPartialUpdateMessage;
|
||||
import com.seibel.distanthorizons.core.pos.DhBlockPos;
|
||||
import com.seibel.distanthorizons.core.pos.DhBlockPos2D;
|
||||
import com.seibel.distanthorizons.core.pos.DhSectionPos;
|
||||
import com.seibel.distanthorizons.core.render.renderer.DebugRenderer;
|
||||
import com.seibel.distanthorizons.core.wrapperInterfaces.block.IBlockStateWrapper;
|
||||
import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftClientWrapper;
|
||||
|
||||
@@ -27,14 +27,13 @@ import com.seibel.distanthorizons.core.multiplayer.server.ServerPlayerState;
|
||||
import com.seibel.distanthorizons.core.multiplayer.server.RemotePlayerConnectionHandler;
|
||||
import com.seibel.distanthorizons.core.network.exceptions.InvalidLevelException;
|
||||
import com.seibel.distanthorizons.core.network.exceptions.RequestRejectedException;
|
||||
import com.seibel.distanthorizons.core.network.messages.plugin.ILevelRelatedMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.plugin.base.CancelMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.plugin.fullData.FullDataSourceRequestMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.plugin.fullData.FullDataSourceResponseMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.plugin.fullData.FullDataPartialUpdateMessage;
|
||||
import com.seibel.distanthorizons.core.network.plugin.PluginChannelMessage;
|
||||
import com.seibel.distanthorizons.core.network.plugin.PluginChannelSession;
|
||||
import com.seibel.distanthorizons.core.network.plugin.TrackableMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.ILevelRelatedMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.requests.CancelMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.fullData.FullDataSourceRequestMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.fullData.FullDataSourceResponseMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.fullData.FullDataPartialUpdateMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.NetworkMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.TrackableMessage;
|
||||
import com.seibel.distanthorizons.core.pos.DhBlockPos2D;
|
||||
import com.seibel.distanthorizons.core.logging.DhLoggerBuilder;
|
||||
import com.seibel.distanthorizons.core.pos.DhSectionPos;
|
||||
@@ -178,7 +177,7 @@ public class DhServerLevel extends AbstractDhLevel implements IDhServerLevel
|
||||
|
||||
|
||||
|
||||
public <T extends PluginChannelMessage> Consumer<T> currentLevelOnly(Consumer<T> next)
|
||||
public <T extends NetworkMessage> Consumer<T> currentLevelOnly(Consumer<T> next)
|
||||
{
|
||||
return msg ->
|
||||
{
|
||||
|
||||
+3
-3
@@ -10,9 +10,9 @@ import com.seibel.distanthorizons.core.logging.ConfigBasedSpamLogger;
|
||||
import com.seibel.distanthorizons.core.network.exceptions.InvalidLevelException;
|
||||
import com.seibel.distanthorizons.core.network.exceptions.RateLimitedException;
|
||||
import com.seibel.distanthorizons.core.network.exceptions.RequestRejectedException;
|
||||
import com.seibel.distanthorizons.core.network.exceptions.SessionClosedException;
|
||||
import com.seibel.distanthorizons.core.network.messages.plugin.fullData.FullDataSourceRequestMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.plugin.fullData.FullDataSourceResponseMessage;
|
||||
import com.seibel.distanthorizons.core.network.session.SessionClosedException;
|
||||
import com.seibel.distanthorizons.core.network.messages.fullData.FullDataSourceRequestMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.fullData.FullDataSourceResponseMessage;
|
||||
import com.seibel.distanthorizons.core.pos.DhBlockPos2D;
|
||||
import com.seibel.distanthorizons.core.pos.DhSectionPos;
|
||||
import com.seibel.distanthorizons.core.render.renderer.DebugRenderer;
|
||||
|
||||
+6
-7
@@ -2,13 +2,12 @@ package com.seibel.distanthorizons.core.multiplayer.client;
|
||||
|
||||
import com.seibel.distanthorizons.core.config.Config;
|
||||
import com.seibel.distanthorizons.core.logging.ConfigBasedLogger;
|
||||
import com.seibel.distanthorizons.core.logging.f3.F3Screen;
|
||||
import com.seibel.distanthorizons.core.multiplayer.config.MultiplayerConfig;
|
||||
import com.seibel.distanthorizons.core.multiplayer.config.MultiplayerConfigChangeListener;
|
||||
import com.seibel.distanthorizons.core.network.ScopedNetworkEventSource;
|
||||
import com.seibel.distanthorizons.core.network.messages.plugin.PluginCloseEvent;
|
||||
import com.seibel.distanthorizons.core.network.messages.plugin.session.RemotePlayerConfigMessage;
|
||||
import com.seibel.distanthorizons.core.network.plugin.PluginChannelSession;
|
||||
import com.seibel.distanthorizons.core.network.event.ScopedNetworkEventSource;
|
||||
import com.seibel.distanthorizons.core.network.event.PluginCloseEvent;
|
||||
import com.seibel.distanthorizons.core.network.messages.base.RemotePlayerConfigMessage;
|
||||
import com.seibel.distanthorizons.core.network.session.Session;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
|
||||
import java.io.Closeable;
|
||||
@@ -19,7 +18,7 @@ public class ClientNetworkState implements Closeable
|
||||
protected static final ConfigBasedLogger LOGGER = new ConfigBasedLogger(LogManager.getLogger(),
|
||||
() -> Config.Client.Advanced.Logging.logNetworkEvent.get());
|
||||
|
||||
private final PluginChannelSession session = new PluginChannelSession(null);
|
||||
private final Session session = new Session(null);
|
||||
private EServerSupportStatus serverSupportStatus = EServerSupportStatus.NONE;
|
||||
|
||||
|
||||
@@ -32,7 +31,7 @@ public class ClientNetworkState implements Closeable
|
||||
* Returns the client used by this instance. <p>
|
||||
* If you need to subscribe to any packet events, create an instance of {@link ScopedNetworkEventSource} using the returned instance.
|
||||
*/
|
||||
public PluginChannelSession getSession() { return this.session; }
|
||||
public Session getSession() { return this.session; }
|
||||
|
||||
/**
|
||||
* Constructs a new instance.
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
package com.seibel.distanthorizons.core.multiplayer.config;
|
||||
|
||||
import com.google.common.base.MoreObjects;
|
||||
import com.seibel.distanthorizons.core.network.protocol.INetworkObject;
|
||||
import com.seibel.distanthorizons.core.network.INetworkObject;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public abstract class AbstractMultiplayerConfig implements INetworkObject
|
||||
|
||||
+8
-8
@@ -1,7 +1,7 @@
|
||||
package com.seibel.distanthorizons.core.multiplayer.server;
|
||||
|
||||
import com.seibel.distanthorizons.core.network.plugin.PluginChannelMessage;
|
||||
import com.seibel.distanthorizons.core.network.plugin.PluginChannelSession;
|
||||
import com.seibel.distanthorizons.core.network.messages.NetworkMessage;
|
||||
import com.seibel.distanthorizons.core.network.session.Session;
|
||||
import com.seibel.distanthorizons.core.wrapperInterfaces.misc.IServerPlayerWrapper;
|
||||
|
||||
import java.util.Queue;
|
||||
@@ -12,15 +12,15 @@ import java.util.concurrent.ConcurrentMap;
|
||||
public class RemotePlayerConnectionHandler
|
||||
{
|
||||
private final ConcurrentMap<IServerPlayerWrapper, ServerPlayerState> connectedPlayers = new ConcurrentHashMap<>();
|
||||
private final ConcurrentMap<IServerPlayerWrapper, Queue<PluginChannelMessage>> messageQueue = new ConcurrentHashMap<>();
|
||||
private final ConcurrentMap<IServerPlayerWrapper, Queue<NetworkMessage>> messageQueue = new ConcurrentHashMap<>();
|
||||
|
||||
|
||||
public void handlePluginMessage(IServerPlayerWrapper player, PluginChannelMessage message)
|
||||
public void handlePluginMessage(IServerPlayerWrapper player, NetworkMessage message)
|
||||
{
|
||||
ServerPlayerState playerState = this.connectedPlayers.get(player);
|
||||
if (playerState != null)
|
||||
{
|
||||
PluginChannelSession session = playerState.session;
|
||||
Session session = playerState.session;
|
||||
message.setSession(session);
|
||||
session.tryHandleMessage(message);
|
||||
}
|
||||
@@ -45,11 +45,11 @@ public class RemotePlayerConnectionHandler
|
||||
ServerPlayerState state = new ServerPlayerState(serverPlayer);
|
||||
this.connectedPlayers.put(serverPlayer, state);
|
||||
|
||||
Queue<PluginChannelMessage> queuedMessages = this.messageQueue.get(serverPlayer);
|
||||
Queue<NetworkMessage> queuedMessages = this.messageQueue.get(serverPlayer);
|
||||
if (queuedMessages != null)
|
||||
{
|
||||
PluginChannelSession session = state.session;
|
||||
for (PluginChannelMessage message : queuedMessages)
|
||||
Session session = state.session;
|
||||
for (NetworkMessage message : queuedMessages)
|
||||
{
|
||||
message.setSession(session);
|
||||
session.tryHandleMessage(message);
|
||||
|
||||
+7
-7
@@ -3,12 +3,12 @@ package com.seibel.distanthorizons.core.multiplayer.server;
|
||||
import com.seibel.distanthorizons.core.level.DhServerLevel;
|
||||
import com.seibel.distanthorizons.core.multiplayer.config.MultiplayerConfig;
|
||||
import com.seibel.distanthorizons.core.multiplayer.config.MultiplayerConfigChangeListener;
|
||||
import com.seibel.distanthorizons.core.network.messages.plugin.CurrentLevelKeyMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.plugin.session.RemotePlayerConfigMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.plugin.PluginCloseEvent;
|
||||
import com.seibel.distanthorizons.core.network.messages.base.CurrentLevelKeyMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.base.RemotePlayerConfigMessage;
|
||||
import com.seibel.distanthorizons.core.network.event.PluginCloseEvent;
|
||||
import com.seibel.distanthorizons.core.network.exceptions.RateLimitedException;
|
||||
import com.seibel.distanthorizons.core.network.messages.plugin.fullData.FullDataSourceRequestMessage;
|
||||
import com.seibel.distanthorizons.core.network.plugin.PluginChannelSession;
|
||||
import com.seibel.distanthorizons.core.network.messages.fullData.FullDataSourceRequestMessage;
|
||||
import com.seibel.distanthorizons.core.network.session.Session;
|
||||
import com.seibel.distanthorizons.core.util.ratelimiting.SupplierBasedRateAndConcurrencyLimiter;
|
||||
import com.seibel.distanthorizons.core.wrapperInterfaces.misc.IServerPlayerWrapper;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -19,7 +19,7 @@ import static com.seibel.distanthorizons.core.config.Config.Client.Advanced.Mult
|
||||
|
||||
public class ServerPlayerState
|
||||
{
|
||||
public final PluginChannelSession session;
|
||||
public final Session session;
|
||||
public IServerPlayerWrapper serverPlayer() { return this.session.serverPlayer; }
|
||||
|
||||
@NotNull
|
||||
@@ -41,7 +41,7 @@ public class ServerPlayerState
|
||||
|
||||
public ServerPlayerState(IServerPlayerWrapper serverPlayer)
|
||||
{
|
||||
this.session = new PluginChannelSession(serverPlayer);
|
||||
this.session = new Session(serverPlayer);
|
||||
|
||||
this.session.registerHandler(RemotePlayerConfigMessage.class, remotePlayerConfigMessage ->
|
||||
{
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.core.network.protocol;
|
||||
package com.seibel.distanthorizons.core.network;
|
||||
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import org.jetbrains.annotations.Contract;
|
||||
+16
-17
@@ -17,17 +17,16 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.core.network;
|
||||
package com.seibel.distanthorizons.core.network.event;
|
||||
|
||||
import com.seibel.distanthorizons.core.config.Config;
|
||||
import com.seibel.distanthorizons.core.logging.ConfigBasedLogger;
|
||||
import com.seibel.distanthorizons.core.network.exceptions.SessionClosedException;
|
||||
import com.seibel.distanthorizons.core.network.messages.PluginMessageRegistry;
|
||||
import com.seibel.distanthorizons.core.network.messages.plugin.base.CancelMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.plugin.base.ExceptionMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.plugin.PluginCloseEvent;
|
||||
import com.seibel.distanthorizons.core.network.plugin.PluginChannelMessage;
|
||||
import com.seibel.distanthorizons.core.network.plugin.TrackableMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.NetworkMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.TrackableMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.MessageRegistry;
|
||||
import com.seibel.distanthorizons.core.network.session.SessionClosedException;
|
||||
import com.seibel.distanthorizons.core.network.messages.requests.CancelMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.requests.ExceptionMessage;
|
||||
import com.seibel.distanthorizons.coreapi.ModInfo;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
|
||||
@@ -44,23 +43,23 @@ public abstract class NetworkEventSource
|
||||
{
|
||||
private static final ConfigBasedLogger LOGGER = new ConfigBasedLogger(LogManager.getLogger(),
|
||||
() -> Config.Client.Advanced.Logging.logNetworkEvent.get());
|
||||
protected final ConcurrentMap<Class<? extends PluginChannelMessage>, Set<Consumer<PluginChannelMessage>>> handlers = new ConcurrentHashMap<>();
|
||||
protected final ConcurrentMap<Class<? extends NetworkMessage>, Set<Consumer<NetworkMessage>>> handlers = new ConcurrentHashMap<>();
|
||||
private final ConcurrentMap<Long, FutureResponseData> pendingFutures = new ConcurrentHashMap<>();
|
||||
|
||||
protected boolean hasHandler(Class<? extends PluginChannelMessage> handlerClass)
|
||||
protected boolean hasHandler(Class<? extends NetworkMessage> handlerClass)
|
||||
{
|
||||
return this.handlers.containsKey(handlerClass);
|
||||
}
|
||||
|
||||
|
||||
protected void handleMessage(PluginChannelMessage message)
|
||||
protected void handleMessage(NetworkMessage message)
|
||||
{
|
||||
boolean handled = false;
|
||||
|
||||
Set<Consumer<PluginChannelMessage>> handlerList = this.handlers.get(message.getClass());
|
||||
Set<Consumer<NetworkMessage>> handlerList = this.handlers.get(message.getClass());
|
||||
if (handlerList != null)
|
||||
{
|
||||
for (Consumer<PluginChannelMessage> handler : handlerList)
|
||||
for (Consumer<NetworkMessage> handler : handlerList)
|
||||
{
|
||||
handled = true;
|
||||
handler.accept(message);
|
||||
@@ -96,7 +95,7 @@ public abstract class NetworkEventSource
|
||||
}
|
||||
}
|
||||
|
||||
public <T extends PluginChannelMessage> void registerHandler(Class<T> handlerClass, Consumer<T> handlerImplementation)
|
||||
public <T extends NetworkMessage> void registerHandler(Class<T> handlerClass, Consumer<T> handlerImplementation)
|
||||
{
|
||||
//noinspection unchecked
|
||||
this.handlers.computeIfAbsent(handlerClass, missingHandlerClass ->
|
||||
@@ -104,14 +103,14 @@ public abstract class NetworkEventSource
|
||||
// Will throw if the handler class is not found
|
||||
if (handlerClass != PluginCloseEvent.class)
|
||||
{
|
||||
PluginMessageRegistry.INSTANCE.getMessageId(handlerClass);
|
||||
MessageRegistry.INSTANCE.getMessageId(handlerClass);
|
||||
}
|
||||
return new HashSet<>();
|
||||
})
|
||||
.add((Consumer<PluginChannelMessage>) handlerImplementation);
|
||||
.add((Consumer<NetworkMessage>) handlerImplementation);
|
||||
}
|
||||
|
||||
protected <T extends PluginChannelMessage> void removeHandler(Class<T> handlerClass, Consumer<T> handlerImplementation)
|
||||
protected <T extends NetworkMessage> void removeHandler(Class<T> handlerClass, Consumer<T> handlerImplementation)
|
||||
{
|
||||
this.handlers.computeIfAbsent(handlerClass, missingHandlerClass -> new HashSet<>())
|
||||
.remove(handlerImplementation);
|
||||
+3
-4
@@ -1,13 +1,12 @@
|
||||
package com.seibel.distanthorizons.core.network.messages.plugin;
|
||||
package com.seibel.distanthorizons.core.network.event;
|
||||
|
||||
import com.seibel.distanthorizons.core.network.plugin.PluginChannelMessage;
|
||||
import com.seibel.distanthorizons.core.network.protocol.INetworkObject;
|
||||
import com.seibel.distanthorizons.core.network.messages.NetworkMessage;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
/**
|
||||
* This is not a "real" message, and only used to indicate a disconnection.
|
||||
*/
|
||||
public class PluginCloseEvent extends PluginChannelMessage
|
||||
public class PluginCloseEvent extends NetworkMessage
|
||||
{
|
||||
@Override
|
||||
public void encode(ByteBuf out) { throw new UnsupportedOperationException(this.getClass().getSimpleName() + " is not a real message, and cannot be sent."); }
|
||||
+4
-5
@@ -17,10 +17,9 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.core.network;
|
||||
package com.seibel.distanthorizons.core.network.event;
|
||||
|
||||
import com.seibel.distanthorizons.core.network.plugin.PluginChannelMessage;
|
||||
import com.seibel.distanthorizons.core.network.protocol.INetworkObject;
|
||||
import com.seibel.distanthorizons.core.network.messages.NetworkMessage;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
@@ -36,7 +35,7 @@ public final class ScopedNetworkEventSource extends NetworkEventSource
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends PluginChannelMessage> void registerHandler(Class<T> handlerClass, Consumer<T> handlerImplementation)
|
||||
public <T extends NetworkMessage> void registerHandler(Class<T> handlerClass, Consumer<T> handlerImplementation)
|
||||
{
|
||||
if (this.isClosed)
|
||||
{
|
||||
@@ -55,7 +54,7 @@ public final class ScopedNetworkEventSource extends NetworkEventSource
|
||||
public void close()
|
||||
{
|
||||
this.isClosed = true;
|
||||
for (Class<? extends PluginChannelMessage> handlerClass : this.handlers.keySet())
|
||||
for (Class<? extends NetworkMessage> handlerClass : this.handlers.keySet())
|
||||
{
|
||||
this.parent.removeHandler(handlerClass, this::handleMessage);
|
||||
}
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.seibel.distanthorizons.core.network.messages.plugin;
|
||||
package com.seibel.distanthorizons.core.network.messages;
|
||||
|
||||
import com.seibel.distanthorizons.core.wrapperInterfaces.world.ILevelWrapper;
|
||||
|
||||
+17
-18
@@ -21,30 +21,29 @@ package com.seibel.distanthorizons.core.network.messages;
|
||||
|
||||
import com.google.common.collect.BiMap;
|
||||
import com.google.common.collect.HashBiMap;
|
||||
import com.seibel.distanthorizons.core.network.messages.plugin.CurrentLevelKeyMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.plugin.base.CancelMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.plugin.base.CloseReasonMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.plugin.base.ExceptionMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.plugin.fullData.FullDataPartialUpdateMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.plugin.fullData.FullDataSourceRequestMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.plugin.fullData.FullDataSourceResponseMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.plugin.session.RemotePlayerConfigMessage;
|
||||
import com.seibel.distanthorizons.core.network.plugin.PluginChannelMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.base.CurrentLevelKeyMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.base.RemotePlayerConfigMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.requests.CancelMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.base.CloseReasonMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.requests.ExceptionMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.fullData.FullDataPartialUpdateMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.fullData.FullDataSourceRequestMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.fullData.FullDataSourceResponseMessage;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public class PluginMessageRegistry
|
||||
public class MessageRegistry
|
||||
{
|
||||
public static final PluginMessageRegistry INSTANCE = new PluginMessageRegistry();
|
||||
public static final MessageRegistry INSTANCE = new MessageRegistry();
|
||||
|
||||
private final Map<Integer, Supplier<? extends PluginChannelMessage>> idToSupplier = new HashMap<>();
|
||||
private final BiMap<Class<? extends PluginChannelMessage>, Integer> classToId = HashBiMap.create();
|
||||
private final Map<Integer, Supplier<? extends NetworkMessage>> idToSupplier = new HashMap<>();
|
||||
private final BiMap<Class<? extends NetworkMessage>, Integer> classToId = HashBiMap.create();
|
||||
|
||||
|
||||
|
||||
private PluginMessageRegistry()
|
||||
private MessageRegistry()
|
||||
{
|
||||
// Note: Messages must have parameterless constructors
|
||||
|
||||
@@ -69,14 +68,14 @@ public class PluginMessageRegistry
|
||||
|
||||
|
||||
|
||||
protected <T extends PluginChannelMessage> void registerMessage(Class<T> clazz, Supplier<T> supplier)
|
||||
protected <T extends NetworkMessage> void registerMessage(Class<T> clazz, Supplier<T> supplier)
|
||||
{
|
||||
int id = this.idToSupplier.size() + 1;
|
||||
this.idToSupplier.put(id, supplier);
|
||||
this.classToId.put(clazz, id);
|
||||
}
|
||||
|
||||
public PluginChannelMessage createMessage(int messageId) throws IllegalArgumentException
|
||||
public NetworkMessage createMessage(int messageId) throws IllegalArgumentException
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -88,12 +87,12 @@ public class PluginMessageRegistry
|
||||
}
|
||||
}
|
||||
|
||||
public int getMessageId(PluginChannelMessage message)
|
||||
public int getMessageId(NetworkMessage message)
|
||||
{
|
||||
return this.getMessageId(message.getClass());
|
||||
}
|
||||
|
||||
public int getMessageId(Class<? extends PluginChannelMessage> messageClass)
|
||||
public int getMessageId(Class<? extends NetworkMessage> messageClass)
|
||||
{
|
||||
try
|
||||
{
|
||||
+7
-6
@@ -1,22 +1,23 @@
|
||||
package com.seibel.distanthorizons.core.network.plugin;
|
||||
package com.seibel.distanthorizons.core.network.messages;
|
||||
|
||||
import com.google.common.base.MoreObjects;
|
||||
import com.seibel.distanthorizons.core.network.protocol.INetworkObject;
|
||||
import com.seibel.distanthorizons.core.network.INetworkObject;
|
||||
import com.seibel.distanthorizons.core.network.session.Session;
|
||||
import com.seibel.distanthorizons.core.wrapperInterfaces.misc.IServerPlayerWrapper;
|
||||
|
||||
public abstract class PluginChannelMessage implements INetworkObject
|
||||
public abstract class NetworkMessage implements INetworkObject
|
||||
{
|
||||
public PluginChannelSession session = null;
|
||||
public Session session = null;
|
||||
public IServerPlayerWrapper serverPlayer() { return this.session.serverPlayer; }
|
||||
|
||||
public boolean warnWhenUnhandled() { return true; }
|
||||
|
||||
public PluginChannelSession getConnection()
|
||||
public Session getConnection()
|
||||
{
|
||||
return this.session;
|
||||
}
|
||||
|
||||
public void setSession(PluginChannelSession connection)
|
||||
public void setSession(Session connection)
|
||||
{
|
||||
if (this.session != null)
|
||||
{
|
||||
+3
-5
@@ -17,20 +17,18 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.core.network.plugin;
|
||||
package com.seibel.distanthorizons.core.network.messages;
|
||||
|
||||
import com.google.common.base.MoreObjects;
|
||||
import com.google.common.collect.MapMaker;
|
||||
import com.seibel.distanthorizons.core.api.internal.SharedApi;
|
||||
import com.seibel.distanthorizons.core.network.messages.plugin.base.ExceptionMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.requests.ExceptionMessage;
|
||||
import com.seibel.distanthorizons.core.world.EWorldEnvironment;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.ConcurrentMap;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
public abstract class TrackableMessage extends PluginChannelMessage
|
||||
public abstract class TrackableMessage extends NetworkMessage
|
||||
{
|
||||
private static final AtomicInteger lastId = new AtomicInteger();
|
||||
// 32 bits - Context ID (not transmitted)
|
||||
+3
-3
@@ -17,13 +17,13 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.core.network.messages.plugin.base;
|
||||
package com.seibel.distanthorizons.core.network.messages.base;
|
||||
|
||||
import com.google.common.base.MoreObjects;
|
||||
import com.seibel.distanthorizons.core.network.plugin.PluginChannelMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.NetworkMessage;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class CloseReasonMessage extends PluginChannelMessage
|
||||
public class CloseReasonMessage extends NetworkMessage
|
||||
{
|
||||
public String reason;
|
||||
|
||||
+3
-3
@@ -1,10 +1,10 @@
|
||||
package com.seibel.distanthorizons.core.network.messages.plugin;
|
||||
package com.seibel.distanthorizons.core.network.messages.base;
|
||||
|
||||
import com.google.common.base.MoreObjects;
|
||||
import com.seibel.distanthorizons.core.network.plugin.PluginChannelMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.NetworkMessage;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class CurrentLevelKeyMessage extends PluginChannelMessage
|
||||
public class CurrentLevelKeyMessage extends NetworkMessage
|
||||
{
|
||||
public String levelKey;
|
||||
|
||||
+4
-4
@@ -17,16 +17,16 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.core.network.messages.plugin.session;
|
||||
package com.seibel.distanthorizons.core.network.messages.base;
|
||||
|
||||
import com.google.common.base.MoreObjects;
|
||||
import com.seibel.distanthorizons.core.multiplayer.config.AbstractMultiplayerConfig;
|
||||
import com.seibel.distanthorizons.core.multiplayer.config.MultiplayerConfig;
|
||||
import com.seibel.distanthorizons.core.network.plugin.PluginChannelMessage;
|
||||
import com.seibel.distanthorizons.core.network.protocol.INetworkObject;
|
||||
import com.seibel.distanthorizons.core.network.INetworkObject;
|
||||
import com.seibel.distanthorizons.core.network.messages.NetworkMessage;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class RemotePlayerConfigMessage extends PluginChannelMessage
|
||||
public class RemotePlayerConfigMessage extends NetworkMessage
|
||||
{
|
||||
public AbstractMultiplayerConfig payload;
|
||||
|
||||
+5
-5
@@ -17,22 +17,22 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.core.network.messages.plugin.fullData;
|
||||
package com.seibel.distanthorizons.core.network.messages.fullData;
|
||||
|
||||
import com.google.common.base.MoreObjects;
|
||||
import com.seibel.distanthorizons.api.enums.config.EDhApiDataCompressionMode;
|
||||
import com.seibel.distanthorizons.core.config.Config;
|
||||
import com.seibel.distanthorizons.core.dataObjects.fullData.sources.FullDataSourceV2;
|
||||
import com.seibel.distanthorizons.core.network.messages.plugin.ILevelRelatedMessage;
|
||||
import com.seibel.distanthorizons.core.network.plugin.PluginChannelMessage;
|
||||
import com.seibel.distanthorizons.core.network.protocol.INetworkObject;
|
||||
import com.seibel.distanthorizons.core.network.messages.ILevelRelatedMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.NetworkMessage;
|
||||
import com.seibel.distanthorizons.core.network.INetworkObject;
|
||||
import com.seibel.distanthorizons.core.sql.dto.FullDataSourceV2DTO;
|
||||
import com.seibel.distanthorizons.core.wrapperInterfaces.world.ILevelWrapper;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public class FullDataPartialUpdateMessage extends PluginChannelMessage implements ILevelRelatedMessage
|
||||
public class FullDataPartialUpdateMessage extends NetworkMessage implements ILevelRelatedMessage
|
||||
{
|
||||
private String levelName;
|
||||
@Override
|
||||
+3
-5
@@ -17,13 +17,11 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.core.network.messages.plugin.fullData;
|
||||
package com.seibel.distanthorizons.core.network.messages.fullData;
|
||||
|
||||
import com.google.common.base.MoreObjects;
|
||||
import com.seibel.distanthorizons.core.network.messages.plugin.ILevelRelatedMessage;
|
||||
import com.seibel.distanthorizons.core.network.plugin.TrackableMessage;
|
||||
import com.seibel.distanthorizons.core.network.protocol.INetworkObject;
|
||||
import com.seibel.distanthorizons.core.pos.DhSectionPos;
|
||||
import com.seibel.distanthorizons.core.network.messages.ILevelRelatedMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.TrackableMessage;
|
||||
import com.seibel.distanthorizons.core.wrapperInterfaces.world.ILevelWrapper;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
+3
-3
@@ -17,14 +17,14 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.core.network.messages.plugin.fullData;
|
||||
package com.seibel.distanthorizons.core.network.messages.fullData;
|
||||
|
||||
import com.google.common.base.MoreObjects;
|
||||
import com.seibel.distanthorizons.api.enums.config.EDhApiDataCompressionMode;
|
||||
import com.seibel.distanthorizons.core.config.Config;
|
||||
import com.seibel.distanthorizons.core.dataObjects.fullData.sources.FullDataSourceV2;
|
||||
import com.seibel.distanthorizons.core.network.plugin.TrackableMessage;
|
||||
import com.seibel.distanthorizons.core.network.protocol.INetworkObject;
|
||||
import com.seibel.distanthorizons.core.network.messages.TrackableMessage;
|
||||
import com.seibel.distanthorizons.core.network.INetworkObject;
|
||||
import com.seibel.distanthorizons.core.sql.dto.FullDataSourceV2DTO;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
+2
-2
@@ -17,9 +17,9 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.core.network.messages.plugin.base;
|
||||
package com.seibel.distanthorizons.core.network.messages.requests;
|
||||
|
||||
import com.seibel.distanthorizons.core.network.plugin.TrackableMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.TrackableMessage;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class CancelMessage extends TrackableMessage
|
||||
+2
-2
@@ -17,14 +17,14 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.core.network.messages.plugin.base;
|
||||
package com.seibel.distanthorizons.core.network.messages.requests;
|
||||
|
||||
import com.google.common.base.MoreObjects;
|
||||
import com.seibel.distanthorizons.core.network.exceptions.InvalidLevelException;
|
||||
import com.seibel.distanthorizons.core.network.exceptions.InvalidSectionPosException;
|
||||
import com.seibel.distanthorizons.core.network.exceptions.RateLimitedException;
|
||||
import com.seibel.distanthorizons.core.network.exceptions.RequestRejectedException;
|
||||
import com.seibel.distanthorizons.core.network.plugin.TrackableMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.TrackableMessage;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
import java.util.ArrayList;
|
||||
+9
-11
@@ -1,23 +1,21 @@
|
||||
package com.seibel.distanthorizons.core.network.plugin;
|
||||
package com.seibel.distanthorizons.core.network.session;
|
||||
|
||||
import com.seibel.distanthorizons.core.config.Config;
|
||||
import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector;
|
||||
import com.seibel.distanthorizons.core.logging.ConfigBasedLogger;
|
||||
import com.seibel.distanthorizons.core.network.NetworkEventSource;
|
||||
import com.seibel.distanthorizons.core.network.messages.PluginMessageRegistry;
|
||||
import com.seibel.distanthorizons.core.network.messages.plugin.PluginCloseEvent;
|
||||
import com.seibel.distanthorizons.core.network.event.NetworkEventSource;
|
||||
import com.seibel.distanthorizons.core.network.event.PluginCloseEvent;
|
||||
import com.seibel.distanthorizons.core.network.messages.NetworkMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.TrackableMessage;
|
||||
import com.seibel.distanthorizons.core.wrapperInterfaces.misc.IPluginPacketSender;
|
||||
import com.seibel.distanthorizons.core.wrapperInterfaces.misc.IServerPlayerWrapper;
|
||||
import com.seibel.distanthorizons.coreapi.ModInfo;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class PluginChannelSession extends NetworkEventSource
|
||||
public class Session extends NetworkEventSource
|
||||
{
|
||||
private static final ConfigBasedLogger LOGGER = new ConfigBasedLogger(LogManager.getLogger(),
|
||||
() -> Config.Client.Advanced.Logging.logNetworkEvent.get());
|
||||
@@ -36,13 +34,13 @@ public class PluginChannelSession extends NetworkEventSource
|
||||
@Nullable
|
||||
public final IServerPlayerWrapper serverPlayer;
|
||||
|
||||
public PluginChannelSession(@Nullable IServerPlayerWrapper serverPlayer)
|
||||
public Session(@Nullable IServerPlayerWrapper serverPlayer)
|
||||
{
|
||||
this.serverPlayer = serverPlayer;
|
||||
}
|
||||
|
||||
|
||||
public void tryHandleMessage(PluginChannelMessage message)
|
||||
public void tryHandleMessage(NetworkMessage message)
|
||||
{
|
||||
if (this.closeReason.get() != null)
|
||||
{
|
||||
@@ -70,7 +68,7 @@ public class PluginChannelSession extends NetworkEventSource
|
||||
return responseFuture;
|
||||
}
|
||||
|
||||
public void sendMessage(PluginChannelMessage message)
|
||||
public void sendMessage(NetworkMessage message)
|
||||
{
|
||||
LOGGER.debug("Sending message: {}", message);
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.seibel.distanthorizons.core.network.exceptions;
|
||||
package com.seibel.distanthorizons.core.network.session;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
@@ -26,7 +26,7 @@ import com.seibel.distanthorizons.api.enums.worldGeneration.EDhApiWorldGeneratio
|
||||
import com.seibel.distanthorizons.core.dataObjects.fullData.FullDataPointIdMap;
|
||||
import com.seibel.distanthorizons.core.dataObjects.fullData.sources.FullDataSourceV2;
|
||||
import com.seibel.distanthorizons.core.pos.DhSectionPos;
|
||||
import com.seibel.distanthorizons.core.network.protocol.INetworkObject;
|
||||
import com.seibel.distanthorizons.core.network.INetworkObject;
|
||||
import com.seibel.distanthorizons.core.util.FullDataPointUtil;
|
||||
import com.seibel.distanthorizons.core.util.LodUtil;
|
||||
import com.seibel.distanthorizons.core.util.objects.DataCorruptedException;
|
||||
|
||||
+3
-6
@@ -1,14 +1,11 @@
|
||||
package com.seibel.distanthorizons.core.wrapperInterfaces.misc;
|
||||
|
||||
import com.seibel.distanthorizons.core.network.plugin.PluginChannelMessage;
|
||||
import com.seibel.distanthorizons.core.network.messages.NetworkMessage;
|
||||
import com.seibel.distanthorizons.coreapi.interfaces.dependencyInjection.IBindable;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public interface IPluginPacketSender extends IBindable
|
||||
{
|
||||
void sendPluginPacketClient(PluginChannelMessage message);
|
||||
void sendPluginPacketServer(IServerPlayerWrapper serverPlayer, PluginChannelMessage message);
|
||||
void sendPluginPacketClient(NetworkMessage message);
|
||||
void sendPluginPacketServer(IServerPlayerWrapper serverPlayer, NetworkMessage message);
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user