diff --git a/clientserver/src/main/java/net/rptools/clientserver/simple/server/AbstractServer.java b/clientserver/src/main/java/net/rptools/clientserver/simple/server/AbstractServer.java index 7186d6c0ef..2f45ec8389 100644 --- a/clientserver/src/main/java/net/rptools/clientserver/simple/server/AbstractServer.java +++ b/clientserver/src/main/java/net/rptools/clientserver/simple/server/AbstractServer.java @@ -20,7 +20,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -public abstract class AbstractServer implements Server { +public abstract class AbstractServer { private static final Logger log = LogManager.getLogger(AbstractServer.class); diff --git a/clientserver/src/main/java/net/rptools/clientserver/simple/server/NilServer.java b/clientserver/src/main/java/net/rptools/clientserver/simple/server/NilServer.java index ad9b76bec3..9aacaaa8b0 100644 --- a/clientserver/src/main/java/net/rptools/clientserver/simple/server/NilServer.java +++ b/clientserver/src/main/java/net/rptools/clientserver/simple/server/NilServer.java @@ -15,7 +15,7 @@ package net.rptools.clientserver.simple.server; /** A server implementation that never receives connections */ -public class NilServer extends AbstractServer { +public final class NilServer extends AbstractServer implements Server { @Override public void start() {} diff --git a/clientserver/src/main/java/net/rptools/clientserver/simple/server/Server.java b/clientserver/src/main/java/net/rptools/clientserver/simple/server/Server.java index 00b379a7d9..9f92b9926e 100644 --- a/clientserver/src/main/java/net/rptools/clientserver/simple/server/Server.java +++ b/clientserver/src/main/java/net/rptools/clientserver/simple/server/Server.java @@ -16,7 +16,7 @@ import java.io.IOException; -public interface Server extends AutoCloseable { +public sealed interface Server extends AutoCloseable permits NilServer, SocketServer, WebRTCServer { void start() throws IOException; void close(); diff --git a/clientserver/src/main/java/net/rptools/clientserver/simple/server/SocketServer.java b/clientserver/src/main/java/net/rptools/clientserver/simple/server/SocketServer.java index 2b4c0ac9c5..4ed70b9dbb 100644 --- a/clientserver/src/main/java/net/rptools/clientserver/simple/server/SocketServer.java +++ b/clientserver/src/main/java/net/rptools/clientserver/simple/server/SocketServer.java @@ -25,7 +25,7 @@ /** * @author drice */ -public class SocketServer extends AbstractServer { +public final class SocketServer extends AbstractServer implements Server { private static final Logger log = LogManager.getLogger(SocketServer.class); private final int port; @@ -39,6 +39,9 @@ public SocketServer(int port) { @Override public void start() throws IOException { var serverSocket = new ServerSocket(port); + if (serverSocket.getLocalPort() == -1) { + throw new AssertionError("Socket not bound yet"); + } // If the above throws, it will be as though we never started. socket = serverSocket; @@ -70,6 +73,16 @@ public String getError() { return null; } + /** Get the port of the socket the server is running on or -1. */ + public int getPort() { + // NOTE: We do not use this.port because the socket's bound port can be different + if (socket == null || socket.isClosed()) { + return -1; + } + + return socket.getLocalPort(); + } + //// // Threads private static class ListeningThread extends Thread { diff --git a/clientserver/src/main/java/net/rptools/clientserver/simple/server/WebRTCServer.java b/clientserver/src/main/java/net/rptools/clientserver/simple/server/WebRTCServer.java index 32ad0b8c7b..880424ef2a 100644 --- a/clientserver/src/main/java/net/rptools/clientserver/simple/server/WebRTCServer.java +++ b/clientserver/src/main/java/net/rptools/clientserver/simple/server/WebRTCServer.java @@ -29,7 +29,7 @@ import org.java_websocket.client.WebSocketClient; import org.java_websocket.handshake.ServerHandshake; -public class WebRTCServer extends AbstractServer { +public final class WebRTCServer extends AbstractServer implements Server { private static final Logger log = LogManager.getLogger(WebRTCServer.class); public interface Listener { diff --git a/src/main/java/net/rptools/maptool/client/AppActions.java b/src/main/java/net/rptools/maptool/client/AppActions.java index cfdd13e3be..55d9478694 100644 --- a/src/main/java/net/rptools/maptool/client/AppActions.java +++ b/src/main/java/net/rptools/maptool/client/AppActions.java @@ -2210,7 +2210,7 @@ protected void executeAction() { StartServerDialogPreferences serverProps = new StartServerDialogPreferences(); // data retrieved from // Preferences.userRoot() - if (serverProps.getPort() == 0 || serverProps.getPort() > 65535) { + if (serverProps.getPort() > 65535) { MapTool.showError("ServerDialog.error.port.outOfRange"); return; } diff --git a/src/main/java/net/rptools/maptool/client/MapTool.java b/src/main/java/net/rptools/maptool/client/MapTool.java index c97f83d9c1..2ac95fc74f 100644 --- a/src/main/java/net/rptools/maptool/client/MapTool.java +++ b/src/main/java/net/rptools/maptool/client/MapTool.java @@ -188,7 +188,7 @@ public class MapTool { var campaign = CampaignFactory.createBasicCampaign(); var policy = new ServerPolicy(); - server = new MapToolServer("", new Campaign(campaign), null, false, policy, playerDB); + server = new MapToolServer(null, new Campaign(campaign), null, false, policy, playerDB); client = new MapToolClient(server, campaign, playerDB.getPlayer(), connections.clientSide()); } catch (NoSuchAlgorithmException | InvalidKeySpecException e) { throw new RuntimeException("Unable to create default personal server", e); diff --git a/src/main/java/net/rptools/maptool/server/MapToolServer.java b/src/main/java/net/rptools/maptool/server/MapToolServer.java index 9aacadd50f..1d193dd006 100644 --- a/src/main/java/net/rptools/maptool/server/MapToolServer.java +++ b/src/main/java/net/rptools/maptool/server/MapToolServer.java @@ -29,9 +29,12 @@ import net.rptools.clientserver.simple.DisconnectHandler; import net.rptools.clientserver.simple.MessageHandler; import net.rptools.clientserver.simple.connection.Connection; +import net.rptools.clientserver.simple.server.NilServer; import net.rptools.clientserver.simple.server.Router; import net.rptools.clientserver.simple.server.Server; import net.rptools.clientserver.simple.server.ServerObserver; +import net.rptools.clientserver.simple.server.SocketServer; +import net.rptools.clientserver.simple.server.WebRTCServer; import net.rptools.maptool.client.AppConstants; import net.rptools.maptool.client.MapTool; import net.rptools.maptool.client.MapToolRegistry; @@ -70,7 +73,7 @@ public enum State { } @Nonnull private final String serviceIdentifier; - private final Server server; + @Nonnull private final Server server; private final MessageHandler messageHandler; private final Router router; private final ServerConfig config; @@ -84,7 +87,7 @@ public enum State { private final AssetProducerThread assetProducerThread; private final boolean useUPnP; - private final ServiceAnnouncer announcer; + @Nullable private ServiceAnnouncer announcer; private Campaign campaign; private ServerPolicy policy; private HeartbeatThread heartbeatThread; @@ -94,7 +97,7 @@ public enum State { private State currentState; public MapToolServer( - String id, + @Nullable String id, Campaign campaign, @Nullable ServerConfig config, boolean useUPnP, @@ -106,11 +109,6 @@ public MapToolServer( this.policy = new ServerPolicy(policy); this.playerDatabase = playerDb; - this.announcer = - config == null - ? null - : new ServiceAnnouncer(id, config.getPort(), AppConstants.SERVICE_GROUP); - server = ConnectionFactory.getInstance().createServer(this.config); messageHandler = new ServerMessageHandler(this); this.router = new Router(); @@ -205,7 +203,11 @@ public String getName() { } public int getPort() { - return config == null ? -1 : config.getPort(); + return switch (server) { + case NilServer s -> -1; + case SocketServer s -> s.getPort(); + case WebRTCServer s -> -1; + }; } /** @@ -354,23 +356,9 @@ public void stop() { return; } - server.close(); - for (var connection : router.removeAll()) { - connection.removeDisconnectHandler(onConnectionDisconnected); - connection.close(); - } - - assetManagerMap.clear(); - - if (heartbeatThread != null) { - heartbeatThread.shutdown(); - } - if (assetProducerThread != null) { - assetProducerThread.shutdown(); - } - if (announcer != null) { announcer.stop(); + announcer = null; } // Unregister ourselves @@ -383,10 +371,25 @@ public void stop() { } // Close UPnP port mapping if used - if (useUPnP && config != null) { - int port = config.getPort(); + int port; + if (useUPnP && (port = getPort()) != -1) { UPnPUtil.closePort(port); } + + server.close(); + for (var connection : router.removeAll()) { + connection.removeDisconnectHandler(onConnectionDisconnected); + connection.close(); + } + + assetManagerMap.clear(); + + if (heartbeatThread != null) { + heartbeatThread.shutdown(); + } + if (assetProducerThread != null) { + assetProducerThread.shutdown(); + } } public void start() throws IOException { @@ -406,12 +409,13 @@ public void start() throws IOException { } // Use UPnP to open port in router - if (useUPnP && config != null) { + int port = getPort(); + if (useUPnP && port != -1) { MapTool.getFrame() .showFilledGlassPane( new StaticMessageDialog(I18N.getText("msg.info.server.upnp.discovering"))); try { - UPnPUtil.openPort(config.getPort()); + UPnPUtil.openPort(port); } finally { MapTool.getFrame().hideGlassPane(); } @@ -422,11 +426,11 @@ public void start() throws IOException { try { MapToolRegistry.RegisterResponse result = MapToolRegistry.getInstance() - .registerInstance(config.getServerName(), config.getPort(), config.getUseWebRTC()); + .registerInstance(config.getServerName(), port, config.getUseWebRTC()); if (result == MapToolRegistry.RegisterResponse.NAME_EXISTS) { MapTool.showError("msg.error.alreadyRegistered"); } else { - heartbeatThread = new HeartbeatThread(config.getPort()); + heartbeatThread = new HeartbeatThread(port); heartbeatThread.start(); } // TODO: I don't like this @@ -435,7 +439,8 @@ public void start() throws IOException { } } - if (announcer != null) { + if (serviceIdentifier != null && port != -1) { + announcer = new ServiceAnnouncer(serviceIdentifier, port, AppConstants.SERVICE_GROUP); announcer.start(); } diff --git a/src/main/resources/net/rptools/maptool/language/i18n.properties b/src/main/resources/net/rptools/maptool/language/i18n.properties index 93e87b6dde..9d25a11103 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n.properties @@ -742,7 +742,7 @@ Preferences.label.loadMRU = Load last campaign on start Preferences.label.loadMRU.tooltip = Start MapTool with the last campaign you were using ServerDialog.error.port = You must enter a numeric port. -ServerDialog.error.port.outOfRange = Port range must be between 1 and 65535. +ServerDialog.error.port.outOfRange = Port range must be between 0 and 65535. ServerDialog.error.portNumberException = Port from RPTools registry is not numeric?! Web server bug? ServerDialog.error.server = You must enter a server name or IP address. ServerDialog.error.serverNotFound = Server "{0}" not found. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_cs.properties b/src/main/resources/net/rptools/maptool/language/i18n_cs.properties index 649beb40ca..dd25c827ac 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_cs.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_cs.properties @@ -714,7 +714,7 @@ Preferences.combo.themes.filter.dark = Dark Preferences.combo.themes.filter.light = Light ServerDialog.error.port = You must enter a numeric port. -ServerDialog.error.port.outOfRange = Port range must be between 1 and 65535. +ServerDialog.error.port.outOfRange = Port range must be between 0 and 65535. ServerDialog.error.portNumberException = Port from RPTools registry is not numeric?\! Web server bug? ServerDialog.error.server = You must enter a server name or IP address. ServerDialog.error.serverNotFound = Server "{0}" not found. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_cs_CZ.properties b/src/main/resources/net/rptools/maptool/language/i18n_cs_CZ.properties index 59bab4cd95..0f309aec0c 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_cs_CZ.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_cs_CZ.properties @@ -742,7 +742,7 @@ Preferences.label.loadMRU = Load last campaign on start Preferences.label.loadMRU.tooltip = Start MapTool with the last campaign you were using ServerDialog.error.port = You must enter a numeric port. -ServerDialog.error.port.outOfRange = Port range must be between 1 and 65535. +ServerDialog.error.port.outOfRange = Port range must be between 0 and 65535. ServerDialog.error.portNumberException = Port from RPTools registry is not numeric?\! Web server bug? ServerDialog.error.server = You must enter a server name or IP address. ServerDialog.error.serverNotFound = Server "{0}" not found. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_da.properties b/src/main/resources/net/rptools/maptool/language/i18n_da.properties index ae876d3184..f63f8c41ed 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_da.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_da.properties @@ -714,7 +714,7 @@ Preferences.combo.themes.filter.dark = Dark Preferences.combo.themes.filter.light = Light ServerDialog.error.port = Du skal angive en numerisk port. -ServerDialog.error.port.outOfRange = Port range must be between 1 and 65535. +ServerDialog.error.port.outOfRange = Port range must be between 0 and 65535. ServerDialog.error.portNumberException = Port from RPTools registry is not numeric?\! Web server bug? ServerDialog.error.server = You must enter a server name or IP address. ServerDialog.error.serverNotFound = Serveren "{0}" blev ikke fundet. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_da_DK.properties b/src/main/resources/net/rptools/maptool/language/i18n_da_DK.properties index 3a244c69fb..2e656f9502 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_da_DK.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_da_DK.properties @@ -742,7 +742,7 @@ Preferences.label.loadMRU = Load last campaign on start Preferences.label.loadMRU.tooltip = Start MapTool with the last campaign you were using ServerDialog.error.port = Du skal angive en numerisk port. -ServerDialog.error.port.outOfRange = Port range must be between 1 and 65535. +ServerDialog.error.port.outOfRange = Port range must be between 0 and 65535. ServerDialog.error.portNumberException = Port from RPTools registry is not numeric?\! Web server bug? ServerDialog.error.server = You must enter a server name or IP address. ServerDialog.error.serverNotFound = Serveren "{0}" blev ikke fundet. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_de.properties b/src/main/resources/net/rptools/maptool/language/i18n_de.properties index ca6af29ab6..e85ecfe6fb 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_de.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_de.properties @@ -714,7 +714,7 @@ Preferences.combo.themes.filter.dark = Dunkel Preferences.combo.themes.filter.light = Hell ServerDialog.error.port = Du musst eine Zahl als Port angeben. -ServerDialog.error.port.outOfRange = Der Port-Bereich muss zwischen 1 und 65535 liegen. +ServerDialog.error.port.outOfRange = Der Port-Bereich muss zwischen 0 und 65535 liegen. ServerDialog.error.portNumberException = Port aus der RPTools Registrierung ist keine Zahl?\! Webserver Fehler? ServerDialog.error.server = Servernamen oder IP-Adresse eingeben. ServerDialog.error.serverNotFound = Server "{0}" nicht gefunden. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_de_DE.properties b/src/main/resources/net/rptools/maptool/language/i18n_de_DE.properties index 3fae5942fe..149dde1540 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_de_DE.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_de_DE.properties @@ -742,7 +742,7 @@ Preferences.label.loadMRU = Letzte Kampagne beim Start l Preferences.label.loadMRU.tooltip = Starte MapTool mit letzter verwendeter Kampagne ServerDialog.error.port = Du musst eine Zahl als Port angeben. -ServerDialog.error.port.outOfRange = Der Port-Bereich muss zwischen 1 und 65535 liegen. +ServerDialog.error.port.outOfRange = Der Port-Bereich muss zwischen 0 und 65535 liegen. ServerDialog.error.portNumberException = Port aus der RPTools Registrierung ist keine Zahl?\! Webserver Fehler? ServerDialog.error.server = Servernamen oder IP-Adresse eingeben. ServerDialog.error.serverNotFound = Server "{0}" nicht gefunden. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_en.properties b/src/main/resources/net/rptools/maptool/language/i18n_en.properties index b33e2aa4a8..305421ed6b 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_en.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_en.properties @@ -718,7 +718,7 @@ Preferences.combo.themes.filter.dark = Dark Preferences.combo.themes.filter.light = Light ServerDialog.error.port = You must enter a numeric port. -ServerDialog.error.port.outOfRange = Port range must be between 1 and 65535. +ServerDialog.error.port.outOfRange = Port range must be between 0 and 65535. ServerDialog.error.portNumberException = Port from RPTools registry is not numeric?\! Web server bug? ServerDialog.error.server = You must enter a server name or IP address. ServerDialog.error.serverNotFound = Server "{0}" not found. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_en_AU.properties b/src/main/resources/net/rptools/maptool/language/i18n_en_AU.properties index e9b85e6cd1..32293e9d03 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_en_AU.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_en_AU.properties @@ -746,7 +746,7 @@ Preferences.label.loadMRU = Load last campaign on start Preferences.label.loadMRU.tooltip = Start MapTool with the last campaign you were using ServerDialog.error.port = You must enter a numeric port. -ServerDialog.error.port.outOfRange = Port range must be between 1 and 65535. +ServerDialog.error.port.outOfRange = Port range must be between 0 and 65535. ServerDialog.error.portNumberException = Port from RPTools registry is not numeric?\! Web server bug? ServerDialog.error.server = You must enter a server name or IP address. ServerDialog.error.serverNotFound = Server "{0}" not found. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_en_GB.properties b/src/main/resources/net/rptools/maptool/language/i18n_en_GB.properties index f724ba5b13..cc0fae492b 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_en_GB.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_en_GB.properties @@ -745,7 +745,7 @@ Preferences.label.loadMRU = Load last campaign on start Preferences.label.loadMRU.tooltip = Start MapTool with the last campaign you were using ServerDialog.error.port = You must enter a numeric port. -ServerDialog.error.port.outOfRange = Port range must be between 1 and 65535. +ServerDialog.error.port.outOfRange = Port range must be between 0 and 65535. ServerDialog.error.portNumberException = Port from RPTools registry is not numeric?\! Web server bug? ServerDialog.error.server = You must enter a server name or IP address. ServerDialog.error.serverNotFound = Server "{0}" not found. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_es.properties b/src/main/resources/net/rptools/maptool/language/i18n_es.properties index 73978e60ee..45e4b340b1 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_es.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_es.properties @@ -714,7 +714,7 @@ Preferences.combo.themes.filter.dark = Dark Preferences.combo.themes.filter.light = Light ServerDialog.error.port = Debes ingresar un puerto numérico. -ServerDialog.error.port.outOfRange = Port range must be between 1 and 65535. +ServerDialog.error.port.outOfRange = Port range must be between 0 and 65535. ServerDialog.error.portNumberException = El puerto desde el registro de RPTools no es numérico?\! Error de servidor web? ServerDialog.error.server = You must enter a server name or IP address. ServerDialog.error.serverNotFound = Servidor "{0}" no se encuentra. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_es_ES.properties b/src/main/resources/net/rptools/maptool/language/i18n_es_ES.properties index 129a1f29d0..8217129241 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_es_ES.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_es_ES.properties @@ -742,7 +742,7 @@ Preferences.label.loadMRU = Load last campaign on start Preferences.label.loadMRU.tooltip = Start MapTool with the last campaign you were using ServerDialog.error.port = Debes ingresar un puerto numérico. -ServerDialog.error.port.outOfRange = Port range must be between 1 and 65535. +ServerDialog.error.port.outOfRange = Port range must be between 0 and 65535. ServerDialog.error.portNumberException = El puerto desde el registro de RPTools no es numérico?\! Error de servidor web? ServerDialog.error.server = You must enter a server name or IP address. ServerDialog.error.serverNotFound = Servidor "{0}" no se encuentra. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_fr.properties b/src/main/resources/net/rptools/maptool/language/i18n_fr.properties index 4c3f041e2b..b41fc9c93e 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_fr.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_fr.properties @@ -714,7 +714,7 @@ Preferences.combo.themes.filter.dark = Dark Preferences.combo.themes.filter.light = Light ServerDialog.error.port = Vous devez entrer un port numérique. -ServerDialog.error.port.outOfRange = Le numéro de port doit être compris entre 1 et 65535. +ServerDialog.error.port.outOfRange = Le numéro de port doit être compris entre 0 et 65535. ServerDialog.error.portNumberException = Le port issu du registre RPTools n'est pas numérique?\! Un bug du serveur Web? ServerDialog.error.server = Vous devez entrer un serveur ou une adresse IP. ServerDialog.error.serverNotFound = Serveur\: {0} introuvable. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_fr_FR.properties b/src/main/resources/net/rptools/maptool/language/i18n_fr_FR.properties index 0d7f68b00b..18d02555a5 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_fr_FR.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_fr_FR.properties @@ -742,7 +742,7 @@ Preferences.label.loadMRU = Load last campaign on start Preferences.label.loadMRU.tooltip = Start MapTool with the last campaign you were using ServerDialog.error.port = Vous devez entrer un port numérique. -ServerDialog.error.port.outOfRange = Le numéro de port doit être compris entre 1 et 65535. +ServerDialog.error.port.outOfRange = Le numéro de port doit être compris entre 0 et 65535. ServerDialog.error.portNumberException = Le port issu du registre RPTools n'est pas numérique?\! Un bug du serveur Web? ServerDialog.error.server = Vous devez entrer un serveur ou une adresse IP. ServerDialog.error.serverNotFound = Serveur\: {0} introuvable. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_it.properties b/src/main/resources/net/rptools/maptool/language/i18n_it.properties index 4414534677..a5432e679c 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_it.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_it.properties @@ -714,7 +714,7 @@ Preferences.combo.themes.filter.dark = Scuro Preferences.combo.themes.filter.light = Chiaro ServerDialog.error.port = Devi inserire il numero di una porta. -ServerDialog.error.port.outOfRange = L'intervallo delle porte deve essere compreso tra 1 e 65535. +ServerDialog.error.port.outOfRange = L'intervallo delle porte deve essere compreso tra 0 e 65535. ServerDialog.error.portNumberException = La porta dal registro di RPTools non è numerica?\! Bug del server web? ServerDialog.error.server = Devi inserire un nome server o un indirizzo IP. ServerDialog.error.serverNotFound = Server "{0}" non trovato. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_it_IT.properties b/src/main/resources/net/rptools/maptool/language/i18n_it_IT.properties index 2d2890e523..0f305b203a 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_it_IT.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_it_IT.properties @@ -742,7 +742,7 @@ Preferences.label.loadMRU = Load last campaign on start Preferences.label.loadMRU.tooltip = Start MapTool with the last campaign you were using ServerDialog.error.port = Devi inserire il numero di una porta. -ServerDialog.error.port.outOfRange = L'intervallo delle porte deve essere compreso tra 1 e 65535. +ServerDialog.error.port.outOfRange = L'intervallo delle porte deve essere compreso tra 0 e 65535. ServerDialog.error.portNumberException = La porta dal registro di RPTools non è numerica?\! Bug del server web? ServerDialog.error.server = Devi inserire un nome server o un indirizzo IP. ServerDialog.error.serverNotFound = Server "{0}" non trovato. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_ja.properties b/src/main/resources/net/rptools/maptool/language/i18n_ja.properties index fa96826cc0..4634c94656 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_ja.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_ja.properties @@ -714,7 +714,7 @@ Preferences.combo.themes.filter.dark = 暗いテーマ Preferences.combo.themes.filter.light = 明るいテーマ ServerDialog.error.port = ポート番号を入力する必要があります。 -ServerDialog.error.port.outOfRange = ポート番号は1から65535の間でなければなりません。 +ServerDialog.error.port.outOfRange = ポート番号は0から65535の間でなければなりません。 ServerDialog.error.portNumberException = RPTools 登録所より取得したポート番号が数字ではない?!WEBサーバーのバグかもしれません。 ServerDialog.error.server = サーバー名またはIPアドレスを入力する必要があります。 ServerDialog.error.serverNotFound = サーバー『{0}』が見つかりません。 diff --git a/src/main/resources/net/rptools/maptool/language/i18n_ja_JP.properties b/src/main/resources/net/rptools/maptool/language/i18n_ja_JP.properties index c3888d0fb2..33826551ae 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_ja_JP.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_ja_JP.properties @@ -742,7 +742,7 @@ Preferences.label.loadMRU = 起動時に最後のキャ Preferences.label.loadMRU.tooltip = 最後に使用したキャンペーンと共に MapTool を起動する ServerDialog.error.port = ポート番号を入力する必要があります。 -ServerDialog.error.port.outOfRange = ポート番号は1から65535の間でなければなりません。 +ServerDialog.error.port.outOfRange = ポート番号は0から65535の間でなければなりません。 ServerDialog.error.portNumberException = RPTools 登録所より取得したポート番号が数字ではない?!WEBサーバーのバグかもしれません。 ServerDialog.error.server = サーバー名またはIPアドレスを入力する必要があります。 ServerDialog.error.serverNotFound = サーバー『{0}』が見つかりません。 diff --git a/src/main/resources/net/rptools/maptool/language/i18n_nl.properties b/src/main/resources/net/rptools/maptool/language/i18n_nl.properties index 887c95b3f3..61b63a0303 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_nl.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_nl.properties @@ -714,7 +714,7 @@ Preferences.combo.themes.filter.dark = Dark Preferences.combo.themes.filter.light = Light ServerDialog.error.port = U moet een getal invullen voor deze poort. -ServerDialog.error.port.outOfRange = Port range must be between 1 and 65535. +ServerDialog.error.port.outOfRange = Port range must be between 0 and 65535. ServerDialog.error.portNumberException = Poort van RPTools register is niet numeriek?\! Webserver bug? ServerDialog.error.server = U moet een servernaam of IP-adres invoeren. ServerDialog.error.serverNotFound = Server "{0}" niet gevonden. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_nl_NL.properties b/src/main/resources/net/rptools/maptool/language/i18n_nl_NL.properties index c320e127a1..1a55537b22 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_nl_NL.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_nl_NL.properties @@ -742,7 +742,7 @@ Preferences.label.loadMRU = Laad vorige campagne bij ops Preferences.label.loadMRU.tooltip = Start MapTool met de campagne die u het laatst gebruikte ServerDialog.error.port = U moet een getal invullen voor deze poort. -ServerDialog.error.port.outOfRange = Poort moet tussen 1 en 65535 liggen. +ServerDialog.error.port.outOfRange = Poort moet tussen 0 en 65535 liggen. ServerDialog.error.portNumberException = Poort van RPTools register is niet numeriek?\! Webserver bug? ServerDialog.error.server = U moet een servernaam of IP-adres invoeren. ServerDialog.error.serverNotFound = Server "{0}" niet gevonden. @@ -2836,4 +2836,4 @@ advanced.roll.propertyNotNumber = Property {0} is not a number. advanced.roll.noTokenInContext = No token in context. advanced.roll.inputNotNumber = Input {0} is not a number. Preferences.label.tokens.stack.hide=Hide Token stack indicator -Preferences.label.tokens.stack.hide.tooltip=Token Layer stack inidicator will be hidden \ No newline at end of file +Preferences.label.tokens.stack.hide.tooltip=Token Layer stack inidicator will be hidden diff --git a/src/main/resources/net/rptools/maptool/language/i18n_pl.properties b/src/main/resources/net/rptools/maptool/language/i18n_pl.properties index 3526e92446..ad00ba14de 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_pl.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_pl.properties @@ -714,7 +714,7 @@ Preferences.combo.themes.filter.dark = Ciemny Preferences.combo.themes.filter.light = Jasny ServerDialog.error.port = Musisz wprowadzić wartość numeryczną portu. -ServerDialog.error.port.outOfRange = Zakres portów musi wynosić od 1 do 65535. +ServerDialog.error.port.outOfRange = Zakres portów musi wynosić od 0 do 65535. ServerDialog.error.portNumberException = Port z rejestru RPTools nie jest liczbą?\! Błąd serwera? ServerDialog.error.server = Musisz wprowadzić nazwę serwera lub adres IP. ServerDialog.error.serverNotFound = Serwer „{0}” nie odnaleziony. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_pl_PL.properties b/src/main/resources/net/rptools/maptool/language/i18n_pl_PL.properties index a291b0b959..17ecf99e6c 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_pl_PL.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_pl_PL.properties @@ -742,7 +742,7 @@ Preferences.label.loadMRU = Load last campaign on start Preferences.label.loadMRU.tooltip = Start MapTool with the last campaign you were using ServerDialog.error.port = Musisz wprowadzić wartość numeryczną portu. -ServerDialog.error.port.outOfRange = Zakres portów musi wynosić od 1 do 65535. +ServerDialog.error.port.outOfRange = Zakres portów musi wynosić od 0 do 65535. ServerDialog.error.portNumberException = Port z rejestru RPTools nie jest liczbą?\! Błąd serwera? ServerDialog.error.server = Musisz wprowadzić nazwę serwera lub adres IP. ServerDialog.error.serverNotFound = Serwer „{0}” nie odnaleziony. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_pt.properties b/src/main/resources/net/rptools/maptool/language/i18n_pt.properties index fd4b60ce42..4f4af1213b 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_pt.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_pt.properties @@ -714,7 +714,7 @@ Preferences.combo.themes.filter.dark = Dark Preferences.combo.themes.filter.light = Light ServerDialog.error.port = Você deve digitar uma porta numérica. -ServerDialog.error.port.outOfRange = O intervalo de portas deve estar entre 1 e 65535. +ServerDialog.error.port.outOfRange = O intervalo de portas deve estar entre 0 e 65535. ServerDialog.error.portNumberException = Porta do registro RPTools não é numérico?\! Erro no servidor web? ServerDialog.error.server = Você deve digitar um nome de servidor ou endereço IP. ServerDialog.error.serverNotFound = Servidor "{0}" não encontrado. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_pt_BR.properties b/src/main/resources/net/rptools/maptool/language/i18n_pt_BR.properties index f7fa41e74f..0c905944ff 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_pt_BR.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_pt_BR.properties @@ -742,7 +742,7 @@ Preferences.label.loadMRU = Load last campaign on start Preferences.label.loadMRU.tooltip = Start MapTool with the last campaign you were using ServerDialog.error.port = Você deve digitar uma porta numérica. -ServerDialog.error.port.outOfRange = O intervalo de portas deve estar entre 1 e 65535. +ServerDialog.error.port.outOfRange = O intervalo de portas deve estar entre 0 e 65535. ServerDialog.error.portNumberException = Porta do registro RPTools não é numérico?\! Erro no servidor web? ServerDialog.error.server = Você deve digitar um nome de servidor ou endereço IP. ServerDialog.error.serverNotFound = Servidor "{0}" não encontrado. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_ru.properties b/src/main/resources/net/rptools/maptool/language/i18n_ru.properties index 55a4c68fdc..5272efff6d 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_ru.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_ru.properties @@ -714,7 +714,7 @@ Preferences.combo.themes.filter.dark = Dark Preferences.combo.themes.filter.light = Light ServerDialog.error.port = Вы должны ввести номер порта. -ServerDialog.error.port.outOfRange = Диапазон портов должен быть от 1 до 65535. +ServerDialog.error.port.outOfRange = Диапазон портов должен быть от 0 до 65535. ServerDialog.error.portNumberException = Порт из реестра RPTools не числовой? Ошибка веб-сервера? ServerDialog.error.server = You must enter a server name or IP address. ServerDialog.error.serverNotFound = Сервер\: {0} не найден. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_ru_RU.properties b/src/main/resources/net/rptools/maptool/language/i18n_ru_RU.properties index 5f566f0951..2f0c9db0ff 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_ru_RU.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_ru_RU.properties @@ -742,7 +742,7 @@ Preferences.label.loadMRU = Load last campaign on start Preferences.label.loadMRU.tooltip = Start MapTool with the last campaign you were using ServerDialog.error.port = Вы должны ввести номер порта. -ServerDialog.error.port.outOfRange = Диапазон портов должен быть от 1 до 65535. +ServerDialog.error.port.outOfRange = Диапазон портов должен быть от 0 до 65535. ServerDialog.error.portNumberException = Порт из реестра RPTools не числовой? Ошибка веб-сервера? ServerDialog.error.server = You must enter a server name or IP address. ServerDialog.error.serverNotFound = Сервер\: {0} не найден. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_si.properties b/src/main/resources/net/rptools/maptool/language/i18n_si.properties index 756327bba4..f6505863cc 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_si.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_si.properties @@ -714,7 +714,7 @@ Preferences.combo.themes.filter.dark = Dark Preferences.combo.themes.filter.light = Light ServerDialog.error.port = You must enter a numeric port. -ServerDialog.error.port.outOfRange = Port range must be between 1 and 65535. +ServerDialog.error.port.outOfRange = Port range must be between 0 and 65535. ServerDialog.error.portNumberException = Port from RPTools registry is not numeric?\! Web server bug? ServerDialog.error.server = You must enter a server name or IP address. ServerDialog.error.serverNotFound = Server "{0}" not found. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_si_LK.properties b/src/main/resources/net/rptools/maptool/language/i18n_si_LK.properties index 04b94040f0..d321fbbacc 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_si_LK.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_si_LK.properties @@ -742,7 +742,7 @@ Preferences.label.loadMRU = Load last campaign on start Preferences.label.loadMRU.tooltip = Start MapTool with the last campaign you were using ServerDialog.error.port = You must enter a numeric port. -ServerDialog.error.port.outOfRange = Port range must be between 1 and 65535. +ServerDialog.error.port.outOfRange = Port range must be between 0 and 65535. ServerDialog.error.portNumberException = Port from RPTools registry is not numeric?\! Web server bug? ServerDialog.error.server = You must enter a server name or IP address. ServerDialog.error.serverNotFound = Server "{0}" not found. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_sv.properties b/src/main/resources/net/rptools/maptool/language/i18n_sv.properties index cfb14cf531..0f6315bb23 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_sv.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_sv.properties @@ -714,7 +714,7 @@ Preferences.combo.themes.filter.dark = Dark Preferences.combo.themes.filter.light = Light ServerDialog.error.port = Du måste ange en numerisk port. -ServerDialog.error.port.outOfRange = Port måste vara mellan 1 och 65535. +ServerDialog.error.port.outOfRange = Port måste vara mellan 0 och 65535. ServerDialog.error.portNumberException = Port från RPTools register är inte numerisk ?\! Webbserver bugg? ServerDialog.error.server = Du måste ange ett servernamn eller en IP-adress. ServerDialog.error.serverNotFound = Server "{0}" hittades inte. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_sv_SE.properties b/src/main/resources/net/rptools/maptool/language/i18n_sv_SE.properties index 640d0c6d96..9a78dc3550 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_sv_SE.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_sv_SE.properties @@ -742,7 +742,7 @@ Preferences.label.loadMRU = Load last campaign on start Preferences.label.loadMRU.tooltip = Start MapTool with the last campaign you were using ServerDialog.error.port = Du måste ange en numerisk port. -ServerDialog.error.port.outOfRange = Port måste vara mellan 1 och 65535. +ServerDialog.error.port.outOfRange = Port måste vara mellan 0 och 65535. ServerDialog.error.portNumberException = Port från RPTools register är inte numerisk ?\! Webbserver bugg? ServerDialog.error.server = Du måste ange ett servernamn eller en IP-adress. ServerDialog.error.serverNotFound = Server "{0}" hittades inte. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_uk.properties b/src/main/resources/net/rptools/maptool/language/i18n_uk.properties index 9ce4d742f2..f18d166ce4 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_uk.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_uk.properties @@ -714,7 +714,7 @@ Preferences.combo.themes.filter.dark = Dark Preferences.combo.themes.filter.light = Light ServerDialog.error.port = Необхідно ввести номер порту. -ServerDialog.error.port.outOfRange = Порт має бути у діапазоні від 1 до 65535. +ServerDialog.error.port.outOfRange = Порт має бути у діапазоні від 0 до 65535. ServerDialog.error.portNumberException = Порт з реєстру RPTools не є цифровим?\! Помилка веб-сервера? ServerDialog.error.server = You must enter a server name or IP address. ServerDialog.error.serverNotFound = Сервер "{0}" не знайдено. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_uk_UA.properties b/src/main/resources/net/rptools/maptool/language/i18n_uk_UA.properties index 02b5b061b1..82af07c480 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_uk_UA.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_uk_UA.properties @@ -742,7 +742,7 @@ Preferences.label.loadMRU = Load last campaign on start Preferences.label.loadMRU.tooltip = Start MapTool with the last campaign you were using ServerDialog.error.port = Необхідно ввести номер порту. -ServerDialog.error.port.outOfRange = Порт має бути у діапазоні від 1 до 65535. +ServerDialog.error.port.outOfRange = Порт має бути у діапазоні від 0 до 65535. ServerDialog.error.portNumberException = Порт з реєстру RPTools не є цифровим?\! Помилка веб-сервера? ServerDialog.error.server = You must enter a server name or IP address. ServerDialog.error.serverNotFound = Сервер "{0}" не знайдено. diff --git a/src/main/resources/net/rptools/maptool/language/i18n_zh.properties b/src/main/resources/net/rptools/maptool/language/i18n_zh.properties index 7ad427eff6..8dbc9852e1 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_zh.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_zh.properties @@ -714,7 +714,7 @@ Preferences.combo.themes.filter.dark = Dark Preferences.combo.themes.filter.light = Light ServerDialog.error.port = 你必须输入端口数值。 -ServerDialog.error.port.outOfRange = 端口范围必须介于 1 到 65535 之间。 +ServerDialog.error.port.outOfRange = 端口范围必须介于 0 到 65535 之间。 ServerDialog.error.portNumberException = RPTools注册端口不是数值?!网络服务器bug? ServerDialog.error.server = 您必须输入服务器名称或IP地址。 ServerDialog.error.serverNotFound = 服务器"{0}"未找到。 diff --git a/src/main/resources/net/rptools/maptool/language/i18n_zh_CN.properties b/src/main/resources/net/rptools/maptool/language/i18n_zh_CN.properties index 9626aa8a08..60f22bdebf 100644 --- a/src/main/resources/net/rptools/maptool/language/i18n_zh_CN.properties +++ b/src/main/resources/net/rptools/maptool/language/i18n_zh_CN.properties @@ -742,7 +742,7 @@ Preferences.label.loadMRU = Load last campaign on start Preferences.label.loadMRU.tooltip = Start MapTool with the last campaign you were using ServerDialog.error.port = 你必须输入端口数值。 -ServerDialog.error.port.outOfRange = 端口范围必须介于 1 到 65535 之间。 +ServerDialog.error.port.outOfRange = 端口范围必须介于 0 到 65535 之间。 ServerDialog.error.portNumberException = RPTools注册端口不是数值?!网络服务器bug? ServerDialog.error.server = 您必须输入服务器名称或IP地址。 ServerDialog.error.serverNotFound = 服务器"{0}"未找到。