Adjust server port change behavior

This commit is contained in:
s809
2024-04-01 00:07:32 +05:00
parent 6829709123
commit ff7720a8d6
3 changed files with 13 additions and 6 deletions
@@ -878,6 +878,12 @@ public class Config
+ "Note: This requires DH to be installed on the server in order to function. \n"
+ "")
.build();
/**
* Server port. <br>
* Do not use this to retrieve the current server's port;
* Instead, use {@link com.seibel.distanthorizons.core.network.netty.NettyServer#port NettyServer#port}.
*/
public static ConfigEntry<Integer> serverPort = new ConfigEntry.Builder<Integer>()
.setServersideShortName("serverPort")
.setAppearance(EConfigEntryAppearance.ONLY_IN_FILE)
@@ -8,6 +8,7 @@ import com.seibel.distanthorizons.core.config.listeners.ConfigChangeListener;
import com.seibel.distanthorizons.core.config.types.ConfigEntry;
import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector;
import com.seibel.distanthorizons.core.level.DhServerLevel;
import com.seibel.distanthorizons.core.logging.ConfigBasedLogger;
import com.seibel.distanthorizons.core.multiplayer.config.MultiplayerConfig;
import com.seibel.distanthorizons.core.multiplayer.config.MultiplayerConfigChangeListener;
import com.seibel.distanthorizons.core.network.exceptions.InvalidLevelException;
@@ -27,6 +28,7 @@ import com.seibel.distanthorizons.core.util.LodUtil;
import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftSharedWrapper;
import com.seibel.distanthorizons.core.wrapperInterfaces.misc.IServerPlayerWrapper;
import io.netty.buffer.ByteBuf;
import org.apache.logging.log4j.LogManager;
import org.jetbrains.annotations.Nullable;
import java.io.Closeable;
@@ -44,6 +46,8 @@ public class RemotePlayerConnectionHandler implements Closeable
{
private static final boolean DEBUG_ENABLE_OVERRIDES_IN_LAN = false;
private static final ConfigBasedLogger LOGGER = new ConfigBasedLogger(LogManager.getLogger(),
() -> Config.Client.Advanced.Logging.logNetworkEvent.get());
private static final IMinecraftSharedWrapper MC_SERVER = SingletonInjector.INSTANCE.get(IMinecraftSharedWrapper.class);
private static final ConfigEntry<Boolean> GENERATE_MULTIPLE_DIMENSIONS_CONFIG = Config.Client.Advanced.Multiplayer.ServerNetworking.generateMultipleDimensions;
@@ -123,9 +127,7 @@ public class RemotePlayerConnectionHandler implements Closeable
private void onServerPortChanged(int ignored)
{
// stop server
// restart server on new port
this.broadcastConnectInfo(null);
LOGGER.warn("Server port change requires a server restart to take effect.");
}
private void broadcastConnectInfo(@Nullable Object ignored)
{
@@ -137,7 +139,6 @@ public class RemotePlayerConnectionHandler implements Closeable
private void sendConnectInfo(IServerPlayerWrapper serverPlayer)
{
String ipOverride = ServerNetworking.connectIpOverride.get();
int listenPort = ServerNetworking.serverPort.get();
int portOverride = ServerNetworking.connectPortOverride.get();
// IP/port overrides are intended for using with port forwarding services,
@@ -150,7 +151,7 @@ public class RemotePlayerConnectionHandler implements Closeable
this.pluginChannelHandler.sendMessageServer(serverPlayer, new ServerConnectInfoMessage(
!isLanPlayer && !ipOverride.isEmpty() ? ipOverride : null,
!isLanPlayer && portOverride != 0 ? portOverride : listenPort
!isLanPlayer && portOverride != 0 ? portOverride : this.server.port
));
}
@@ -48,7 +48,7 @@ public class NettyServer extends NettyEventSource implements AutoCloseable
private static final ConfigBasedLogger LOGGER = new ConfigBasedLogger(LogManager.getLogger(),
() -> Config.Client.Advanced.Logging.logNetworkEvent.get());
private final int port;
public final int port;
private final EventLoopGroup bossGroup = new NioEventLoopGroup(1, new DefaultThreadFactory("DH-Network - Server Boss Thread"));
private final EventLoopGroup workerGroup = new NioEventLoopGroup(0, new DefaultThreadFactory("DH-Network - Server Worker Thread"));