From 273dcce4d4d75c9b86c619948cc7d60f92edb5c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Sun, 26 Jun 2016 16:32:28 +0200 Subject: [PATCH 1/3] UPnP NAT discovery requires a restart as well. --- OpenRA.Mods.Common/Widgets/Logic/SettingsLogic.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/OpenRA.Mods.Common/Widgets/Logic/SettingsLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/SettingsLogic.cs index ce2fc4ca65..d04dc76dda 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/SettingsLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/SettingsLogic.cs @@ -26,6 +26,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic static readonly WindowMode OriginalGraphicsMode; static readonly int2 OriginalGraphicsWindowedSize; static readonly int2 OriginalGraphicsFullscreenSize; + static readonly bool OriginalServerDiscoverNatDevices; readonly Dictionary leavePanelActions = new Dictionary(); readonly Dictionary resetPanelActions = new Dictionary(); @@ -44,6 +45,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic OriginalGraphicsMode = original.Graphics.Mode; OriginalGraphicsWindowedSize = original.Graphics.WindowedSize; OriginalGraphicsFullscreenSize = original.Graphics.FullscreenSize; + OriginalServerDiscoverNatDevices = original.Server.DiscoverNatDevices; } [ObjectCreator.UseCtor] @@ -70,7 +72,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic if (OriginalSoundDevice != current.Sound.Device || OriginalGraphicsMode != current.Graphics.Mode || OriginalGraphicsWindowedSize != current.Graphics.WindowedSize || - OriginalGraphicsFullscreenSize != current.Graphics.FullscreenSize) + OriginalGraphicsFullscreenSize != current.Graphics.FullscreenSize || + OriginalServerDiscoverNatDevices != current.Server.DiscoverNatDevices) ConfirmationDialogs.ButtonPrompt( title: "Restart Now?", text: "Some changes will not be applied until\nthe game is restarted. Restart now?", From a79cc6a606e2f79249fa45eea997da9c850e2215 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Sun, 26 Jun 2016 16:44:20 +0200 Subject: [PATCH 2/3] Add a notice why automatic port forwarding is disabled. --- OpenRA.Mods.Common/Widgets/Logic/ServerCreationLogic.cs | 4 ++++ mods/cnc/chrome/multiplayer-createserver.yaml | 9 +++++++++ mods/ra/chrome/multiplayer-createserver.yaml | 9 +++++++++ 3 files changed, 22 insertions(+) diff --git a/OpenRA.Mods.Common/Widgets/Logic/ServerCreationLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/ServerCreationLogic.cs index eb17bedb15..b87acdc2d6 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/ServerCreationLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/ServerCreationLogic.cs @@ -90,6 +90,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic checkboxUPnP.OnClick = () => allowPortForward ^= true; checkboxUPnP.IsDisabled = () => !Game.Settings.Server.AllowPortForward; + var labelUPnP = panel.GetOrNull("UPNP_NOTICE"); + if (labelUPnP != null) + labelUPnP.IsVisible = () => !Game.Settings.Server.DiscoverNatDevices; + var passwordField = panel.GetOrNull("PASSWORD"); if (passwordField != null) passwordField.Text = Game.Settings.Server.Password; diff --git a/mods/cnc/chrome/multiplayer-createserver.yaml b/mods/cnc/chrome/multiplayer-createserver.yaml index a247ec7155..c67bbf7d47 100644 --- a/mods/cnc/chrome/multiplayer-createserver.yaml +++ b/mods/cnc/chrome/multiplayer-createserver.yaml @@ -92,6 +92,15 @@ Container@MULTIPLAYER_CREATESERVER_PANEL: Height: 20 Font: Regular Text: Automatic port forwarding + Label@UPNP_NOTICE: + X: 130 + Y: 180 + Width: 200 + Height: 25 + Font: Tiny + Align: Left + WordWrap: True + Text: Requires Network Discovery (UPnP). Enable in Settings - Advanced. Container@SIDEBAR: X: PARENT_RIGHT-WIDTH Y: 30 diff --git a/mods/ra/chrome/multiplayer-createserver.yaml b/mods/ra/chrome/multiplayer-createserver.yaml index 838e762ec1..5e72929059 100644 --- a/mods/ra/chrome/multiplayer-createserver.yaml +++ b/mods/ra/chrome/multiplayer-createserver.yaml @@ -92,6 +92,15 @@ Container@MULTIPLAYER_CREATESERVER_PANEL: Height: 20 Font: Regular Text: Automatic port forwarding + Label@UPNP_NOTICE: + X: 130 + Y: 180 + Width: 200 + Height: 25 + Font: Tiny + Align: Left + WordWrap: True + Text: Requires Network Discovery (UPnP). Enable in Settings - Advanced. Container@SIDEBAR: X: PARENT_RIGHT-WIDTH Y: 30 From c9c542cb37362d4579a81c8b0fe68c4f9b9dbe89 Mon Sep 17 00:00:00 2001 From: Oliver Brakmann Date: Sun, 28 Aug 2016 13:40:12 +0200 Subject: [PATCH 3/3] Show advisory notice when UPNP isn't supported by the router --- OpenRA.Mods.Common/Widgets/Logic/ServerCreationLogic.cs | 4 ++++ mods/cnc/chrome/multiplayer-createserver.yaml | 9 +++++++++ mods/ra/chrome/multiplayer-createserver.yaml | 9 +++++++++ 3 files changed, 22 insertions(+) diff --git a/OpenRA.Mods.Common/Widgets/Logic/ServerCreationLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/ServerCreationLogic.cs index b87acdc2d6..235d6013f6 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/ServerCreationLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/ServerCreationLogic.cs @@ -94,6 +94,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic if (labelUPnP != null) labelUPnP.IsVisible = () => !Game.Settings.Server.DiscoverNatDevices; + var labelUPnPUnsupported = panel.GetOrNull("UPNP_UNSUPPORTED_NOTICE"); + if (labelUPnPUnsupported != null) + labelUPnPUnsupported.IsVisible = () => Game.Settings.Server.DiscoverNatDevices && !Game.Settings.Server.AllowPortForward; + var passwordField = panel.GetOrNull("PASSWORD"); if (passwordField != null) passwordField.Text = Game.Settings.Server.Password; diff --git a/mods/cnc/chrome/multiplayer-createserver.yaml b/mods/cnc/chrome/multiplayer-createserver.yaml index c67bbf7d47..053c080102 100644 --- a/mods/cnc/chrome/multiplayer-createserver.yaml +++ b/mods/cnc/chrome/multiplayer-createserver.yaml @@ -101,6 +101,15 @@ Container@MULTIPLAYER_CREATESERVER_PANEL: Align: Left WordWrap: True Text: Requires Network Discovery (UPnP). Enable in Settings - Advanced. + Label@UPNP_UNSUPPORTED_NOTICE: + X: 130 + Y: 180 + Width: 220 + Height: 25 + Font: Tiny + Align: Left + WordWrap: True + Text: Your router does not seem to support UPnP. Please consult your router's manual. Container@SIDEBAR: X: PARENT_RIGHT-WIDTH Y: 30 diff --git a/mods/ra/chrome/multiplayer-createserver.yaml b/mods/ra/chrome/multiplayer-createserver.yaml index 5e72929059..d73c31f6ea 100644 --- a/mods/ra/chrome/multiplayer-createserver.yaml +++ b/mods/ra/chrome/multiplayer-createserver.yaml @@ -101,6 +101,15 @@ Container@MULTIPLAYER_CREATESERVER_PANEL: Align: Left WordWrap: True Text: Requires Network Discovery (UPnP). Enable in Settings - Advanced. + Label@UPNP_UNSUPPORTED_NOTICE: + X: 130 + Y: 180 + Width: 220 + Height: 25 + Font: Tiny + Align: Left + WordWrap: True + Text: Your router does not seem to support UPnP. Please consult your router's manual. Container@SIDEBAR: X: PARENT_RIGHT-WIDTH Y: 30