From 5d025abb5e8974cc861c5e8ad54a74f02a96b039 Mon Sep 17 00:00:00 2001 From: nolt Date: Tue, 2 Jun 2026 09:51:26 +0000 Subject: [PATCH 1/3] global message to all servers This allows sending global message (Yellow) to all or specyfic server. --- src/Web/AdminPanel/Pages/Servers.razor | 59 +++++++++++++++++++ .../Properties/Resources.Designer.cs | 54 +++++++++++++++++ src/Web/AdminPanel/Properties/Resources.resx | 18 ++++++ 3 files changed, 131 insertions(+) diff --git a/src/Web/AdminPanel/Pages/Servers.razor b/src/Web/AdminPanel/Pages/Servers.razor index eb548a2b5..3af6b5812 100644 --- a/src/Web/AdminPanel/Pages/Servers.razor +++ b/src/Web/AdminPanel/Pages/Servers.razor @@ -16,6 +16,32 @@ } else { +
+
+
+
+ + +
+
+ + +
+
+ +
+
+
+
+
@@ -78,6 +104,10 @@ else private bool _isRestarting; + private string _message = string.Empty; + + private int _selectedServerId = -1; + /// /// Gets or sets the . /// @@ -90,6 +120,12 @@ else [Inject] public IGameServerInstanceManager? ServerInstanceManager { get; set; } + /// + /// Gets or sets the game servers. + /// + [Inject] + public IDictionary GameServers { get; set; } = null!; + /// public void Dispose() { @@ -125,4 +161,27 @@ else this._isRestarting = false; } } + + private async Task SendMessageAsync() + { + var message = _message; + if (string.IsNullOrWhiteSpace(message)) + { + return; + } + + if (_selectedServerId == -1) + { + foreach (var server in this.GameServers.Values.Where(s => s.ServerState == ServerState.Started)) + { + await server.SendGlobalMessageAsync(message, MessageType.GoldenCenter).ConfigureAwait(false); + } + } + else if (this.GameServers.TryGetValue(_selectedServerId, out var server) && server.ServerState == ServerState.Started) + { + await server.SendGlobalMessageAsync(message, MessageType.GoldenCenter).ConfigureAwait(false); + } + + _message = string.Empty; + } } diff --git a/src/Web/AdminPanel/Properties/Resources.Designer.cs b/src/Web/AdminPanel/Properties/Resources.Designer.cs index 2afb96dc0..c236fbe61 100644 --- a/src/Web/AdminPanel/Properties/Resources.Designer.cs +++ b/src/Web/AdminPanel/Properties/Resources.Designer.cs @@ -1457,5 +1457,59 @@ public static string YesCreateTestAccounts { return ResourceManager.GetString("YesCreateTestAccounts", resourceCulture); } } + + /// + /// Looks up a localized string similar to All Game Servers. + /// + public static string AllGameServers { + get { + return ResourceManager.GetString("AllGameServers", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Global Message. + /// + public static string GlobalMessage { + get { + return ResourceManager.GetString("GlobalMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Enter message.... + /// + public static string MessagePlaceholder { + get { + return ResourceManager.GetString("MessagePlaceholder", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} online. + /// + public static string OnlineCount { + get { + return ResourceManager.GetString("OnlineCount", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Send. + /// + public static string Send { + get { + return ResourceManager.GetString("Send", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Target. + /// + public static string Target { + get { + return ResourceManager.GetString("Target", resourceCulture); + } + } } } diff --git a/src/Web/AdminPanel/Properties/Resources.resx b/src/Web/AdminPanel/Properties/Resources.resx index bbf93538e..183321972 100644 --- a/src/Web/AdminPanel/Properties/Resources.resx +++ b/src/Web/AdminPanel/Properties/Resources.resx @@ -585,4 +585,22 @@ Hide entry form + + All Game Servers + + + Global Message + + + Enter message... + + + {0} online + + + Send + + + Target + \ No newline at end of file From e0aabc9fdfb25d9c7c00bff82af2ecec0387a0e1 Mon Sep 17 00:00:00 2001 From: nolt Date: Tue, 9 Jun 2026 15:29:39 +0200 Subject: [PATCH 2/3] Improve global message send: clear input on sync context - Remove ConfigureAwait(false) from the Blazor component handler so the continuation stays on the renderer's synchronization context. - Clear the input field synchronously after capturing the message, which disables the Send button during sending (prevents double-submission) and avoids wiping text the user types while the message is in flight. --- src/Web/AdminPanel/Pages/Servers.razor | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Web/AdminPanel/Pages/Servers.razor b/src/Web/AdminPanel/Pages/Servers.razor index 3af6b5812..f65f7a28a 100644 --- a/src/Web/AdminPanel/Pages/Servers.razor +++ b/src/Web/AdminPanel/Pages/Servers.razor @@ -170,18 +170,20 @@ else return; } + // Clear the input immediately (on the sync context) so the Send button gets disabled, + // preventing double-submission and preserving any text the user types while sending. + _message = string.Empty; + if (_selectedServerId == -1) { foreach (var server in this.GameServers.Values.Where(s => s.ServerState == ServerState.Started)) { - await server.SendGlobalMessageAsync(message, MessageType.GoldenCenter).ConfigureAwait(false); + await server.SendGlobalMessageAsync(message, MessageType.GoldenCenter); } } else if (this.GameServers.TryGetValue(_selectedServerId, out var server) && server.ServerState == ServerState.Started) { - await server.SendGlobalMessageAsync(message, MessageType.GoldenCenter).ConfigureAwait(false); + await server.SendGlobalMessageAsync(message, MessageType.GoldenCenter); } - - _message = string.Empty; } } From 6dfa5f159736d9485ae373ca831cf2ee35046c93 Mon Sep 17 00:00:00 2001 From: nolt Date: Sat, 13 Jun 2026 14:52:21 +0200 Subject: [PATCH 3/3] Fix global message broadcaster for the distributed host and harden send The page injected IDictionary as a mandatory [Inject] property, but that dictionary is only registered in the single-process host (Startup). On the distributed (Dapr) AdminPanel host it is not registered, so Blazor's required property injection would throw and the /servers page would fail to render. Resolve the dictionary optionally via IServiceProvider.GetService and only render the global message card when it is available, so the feature works in the single-process host and is hidden (instead of crashing) on the Dapr host. Also harden SendMessageAsync: - wrap each server send in its own try/catch so one failing server does not abort the broadcast to the rest; - report success/failure to the admin via IToastService; - restore the typed message when nothing could be sent, so it is not lost silently. Regenerate Resources.Designer.cs in alphabetical order (matching the StronglyTypedResourceBuilder output) so it is stable against future regenerations, and add the new toast strings. --- src/Web/AdminPanel/Pages/Servers.razor | 61 ++- .../Properties/Resources.Designer.cs | 443 ++++++++++-------- src/Web/AdminPanel/Properties/Resources.resx | 9 + 3 files changed, 298 insertions(+), 215 deletions(-) diff --git a/src/Web/AdminPanel/Pages/Servers.razor b/src/Web/AdminPanel/Pages/Servers.razor index f65f7a28a..f7faffa51 100644 --- a/src/Web/AdminPanel/Pages/Servers.razor +++ b/src/Web/AdminPanel/Pages/Servers.razor @@ -1,6 +1,8 @@ @page "/servers" @using System.ComponentModel +@using Microsoft.Extensions.DependencyInjection +@using Blazored.Toast.Services @using MUnique.OpenMU.Interfaces @using MUnique.OpenMU.Web.AdminPanel.Properties @@ -16,6 +18,8 @@ } else { +@if (_gameServers is not null) +{
@@ -41,6 +45,7 @@ else
+}
@@ -121,10 +126,23 @@ else public IGameServerInstanceManager? ServerInstanceManager { get; set; } /// - /// Gets or sets the game servers. + /// Gets or sets the service provider, used to optionally resolve the game server dictionary. + /// + [Inject] + public IServiceProvider ServiceProvider { get; set; } = null!; + + /// + /// Gets or sets the toast service. /// [Inject] - public IDictionary GameServers { get; set; } = null!; + public IToastService ToastService { get; set; } = null!; + + /// + /// The game servers, resolved optionally: the dictionary is only registered in the + /// single-process host, so it is null on the distributed (Dapr) admin panel host. When + /// null, the global message card is not rendered (graceful degradation). + /// + private IDictionary? _gameServers; /// public void Dispose() @@ -137,6 +155,7 @@ else { base.OnInitialized(); this._servers = this.ServerProvider.Servers; + this._gameServers = this.ServiceProvider.GetService>(); this.ServerProvider.PropertyChanged += this.OnServersChanged; } @@ -165,7 +184,7 @@ else private async Task SendMessageAsync() { var message = _message; - if (string.IsNullOrWhiteSpace(message)) + if (string.IsNullOrWhiteSpace(message) || this._gameServers is not { } gameServers) { return; } @@ -174,16 +193,44 @@ else // preventing double-submission and preserving any text the user types while sending. _message = string.Empty; - if (_selectedServerId == -1) + var targets = _selectedServerId == -1 + ? gameServers.Values.Where(s => s.ServerState == ServerState.Started).ToList() + : gameServers.TryGetValue(_selectedServerId, out var selected) && selected.ServerState == ServerState.Started + ? new List { selected } + : new List(); + + if (targets.Count == 0) { - foreach (var server in this.GameServers.Values.Where(s => s.ServerState == ServerState.Started)) + // No running target (e.g. the selected server stopped meanwhile). Restore the text so + // the admin can pick another target and retry without retyping. + _message = message; + this.ToastService.ShowInfo(Resources.GlobalMessageNoTarget); + return; + } + + var sent = 0; + foreach (var server in targets) + { + try { await server.SendGlobalMessageAsync(message, MessageType.GoldenCenter); + sent++; } + catch (Exception ex) + { + // Per-server catch so one failing server does not abort the broadcast to the rest. + this.ToastService.ShowError(string.Format(Resources.GlobalMessageSendFailed, server.Description, ex.Message)); + } + } + + if (sent == targets.Count) + { + this.ToastService.ShowSuccess(Resources.GlobalMessageSent); } - else if (this.GameServers.TryGetValue(_selectedServerId, out var server) && server.ServerState == ServerState.Started) + else if (sent == 0) { - await server.SendGlobalMessageAsync(message, MessageType.GoldenCenter); + // Nothing got through: restore the text so the whole broadcast can be retried. + _message = message; } } } diff --git a/src/Web/AdminPanel/Properties/Resources.Designer.cs b/src/Web/AdminPanel/Properties/Resources.Designer.cs index c236fbe61..0b427aa00 100644 --- a/src/Web/AdminPanel/Properties/Resources.Designer.cs +++ b/src/Web/AdminPanel/Properties/Resources.Designer.cs @@ -68,7 +68,7 @@ public static string About { return ResourceManager.GetString("About", resourceCulture); } } - + /// /// Looks up a localized string similar to Accounts. /// @@ -77,7 +77,7 @@ public static string Accounts { return ResourceManager.GetString("Accounts", resourceCulture); } } - + /// /// Looks up a localized string similar to Action. /// @@ -86,7 +86,7 @@ public static string Action { return ResourceManager.GetString("Action", resourceCulture); } } - + /// /// Looks up a localized string similar to Actions. /// @@ -95,7 +95,7 @@ public static string Actions { return ResourceManager.GetString("Actions", resourceCulture); } } - + /// /// Looks up a localized string similar to Activate. /// @@ -104,7 +104,7 @@ public static string Activate { return ResourceManager.GetString("Activate", resourceCulture); } } - + /// /// Looks up a localized string similar to Active Offline Player. /// @@ -113,7 +113,7 @@ public static string ActiveOfflinePlayer { return ResourceManager.GetString("ActiveOfflinePlayer", resourceCulture); } } - + /// /// Looks up a localized string similar to Add New. /// @@ -122,7 +122,7 @@ public static string AddNew { return ResourceManager.GetString("AddNew", resourceCulture); } } - + /// /// Looks up a localized string similar to Admin Users. /// @@ -131,7 +131,7 @@ public static string AdminUsers { return ResourceManager.GetString("AdminUsers", resourceCulture); } } - + /// /// Looks up a localized string similar to All. /// @@ -140,7 +140,16 @@ public static string All { return ResourceManager.GetString("All", resourceCulture); } } - + + /// + /// Looks up a localized string similar to All Game Servers. + /// + public static string AllGameServers { + get { + return ResourceManager.GetString("AllGameServers", resourceCulture); + } + } + /// /// Looks up a localized string similar to An error occurred while processing your request. /// @@ -149,7 +158,7 @@ public static string AnErrorOccurredWhileProcessingYourRequest { return ResourceManager.GetString("AnErrorOccurredWhileProcessingYourRequest", resourceCulture); } } - + /// /// Looks up a localized string similar to Applying updates .... /// @@ -158,7 +167,7 @@ public static string ApplyingUpdates { return ResourceManager.GetString("ApplyingUpdates", resourceCulture); } } - + /// /// Looks up a localized string similar to Apply selected updates. /// @@ -167,7 +176,7 @@ public static string ApplySelectedUpdates { return ResourceManager.GetString("ApplySelectedUpdates", resourceCulture); } } - + /// /// Looks up a localized string similar to available updates. /// @@ -176,7 +185,7 @@ public static string AvailableUpdates { return ResourceManager.GetString("AvailableUpdates", resourceCulture); } } - + /// /// Looks up a localized string similar to Back. /// @@ -185,7 +194,7 @@ public static string Back { return ResourceManager.GetString("Back", resourceCulture); } } - + /// /// Looks up a localized string similar to Cancel. /// @@ -194,7 +203,7 @@ public static string Cancel { return ResourceManager.GetString("Cancel", resourceCulture); } } - + /// /// Looks up a localized string similar to Can't connect to the database. Probably not created yet.. /// @@ -203,7 +212,7 @@ public static string CantConnectToTheDatabaseProbablyNotCreatedYet { return ResourceManager.GetString("CantConnectToTheDatabaseProbablyNotCreatedYet", resourceCulture); } } - + /// /// Looks up a localized string similar to Change password. /// @@ -212,7 +221,7 @@ public static string ChangePassword { return ResourceManager.GetString("ChangePassword", resourceCulture); } } - + /// /// Looks up a localized string similar to Character. /// @@ -221,7 +230,7 @@ public static string Character { return ResourceManager.GetString("Character", resourceCulture); } } - + /// /// Looks up a localized string similar to Character classes. /// @@ -230,7 +239,7 @@ public static string CharacterClasses { return ResourceManager.GetString("CharacterClasses", resourceCulture); } } - + /// /// Looks up a localized string similar to The connection server configuration has been saved. Initializing connect server .... /// @@ -239,7 +248,7 @@ public static string ConnectionServerConfigurationSaved { return ResourceManager.GetString("ConnectionServerConfigurationSaved", resourceCulture); } } - + /// /// Looks up a localized string similar to Connect Server. /// @@ -248,7 +257,7 @@ public static string ConnectServer { return ResourceManager.GetString("ConnectServer", resourceCulture); } } - + /// /// Looks up a localized string similar to Couldn't find '{0}' to delete.. /// @@ -257,7 +266,7 @@ public static string CouldNotFindToDelete { return ResourceManager.GetString("CouldNotFindToDelete", resourceCulture); } } - + /// /// Looks up a localized string similar to Couldn't find '{0}' to duplicate.. /// @@ -266,7 +275,7 @@ public static string CouldNotFindToDuplicate { return ResourceManager.GetString("CouldNotFindToDuplicate", resourceCulture); } } - + /// /// Looks up a localized string similar to Could not load the map data. Check the logs for details.. /// @@ -275,7 +284,7 @@ public static string CouldNotLoadMapDataCheckTheLogs { return ResourceManager.GetString("CouldNotLoadMapDataCheckTheLogs", resourceCulture); } } - + /// /// Looks up a localized string similar to Create. /// @@ -284,7 +293,7 @@ public static string Create { return ResourceManager.GetString("Create", resourceCulture); } } - + /// /// Looks up a localized string similar to Create Connect Server. /// @@ -293,7 +302,7 @@ public static string CreateConnectServer { return ResourceManager.GetString("CreateConnectServer", resourceCulture); } } - + /// /// Looks up a localized string similar to New object successfully created.. /// @@ -302,7 +311,7 @@ public static string CreatedSuccessfully { return ResourceManager.GetString("CreatedSuccessfully", resourceCulture); } } - + /// /// Looks up a localized string similar to Create Game Server. /// @@ -311,7 +320,7 @@ public static string CreateGameServer { return ResourceManager.GetString("CreateGameServer", resourceCulture); } } - + /// /// Looks up a localized string similar to Create User. /// @@ -320,7 +329,7 @@ public static string CreateUser { return ResourceManager.GetString("CreateUser", resourceCulture); } } - + /// /// Looks up a localized string similar to Creating Configuration .... /// @@ -329,7 +338,7 @@ public static string CreatingConfigurationInfo { return ResourceManager.GetString("CreatingConfigurationInfo", resourceCulture); } } - + /// /// Looks up a localized string similar to Current State. /// @@ -338,7 +347,7 @@ public static string CurrentState { return ResourceManager.GetString("CurrentState", resourceCulture); } } - + /// /// Looks up a localized string similar to Database status. /// @@ -347,7 +356,7 @@ public static string DatabaseStatus { return ResourceManager.GetString("DatabaseStatus", resourceCulture); } } - + /// /// Looks up a localized string similar to Deactivate. /// @@ -356,7 +365,7 @@ public static string Deactivate { return ResourceManager.GetString("Deactivate", resourceCulture); } } - + /// /// Looks up a localized string similar to Delete. /// @@ -365,7 +374,7 @@ public static string Delete { return ResourceManager.GetString("Delete", resourceCulture); } } - + /// /// Looks up a localized string similar to Couldn't delete '{0}', probably because it's referenced by another object. For details, see log. /// @@ -374,7 +383,7 @@ public static string DeleteFailedReferenced { return ResourceManager.GetString("DeleteFailedReferenced", resourceCulture); } } - + /// /// Looks up a localized string similar to <strong>The Development environment shouldn't be enabled for deployed applications.</strong> /// It can result in displaying sensitive information from exceptions to end users. @@ -386,7 +395,7 @@ public static string DevelopmentEnvironmentWarning { return ResourceManager.GetString("DevelopmentEnvironmentWarning", resourceCulture); } } - + /// /// Looks up a localized string similar to Development Mode. /// @@ -395,7 +404,7 @@ public static string DevelopmentMode { return ResourceManager.GetString("DevelopmentMode", resourceCulture); } } - + /// /// Looks up a localized string similar to Discard changes. /// @@ -404,7 +413,7 @@ public static string DiscardChanges { return ResourceManager.GetString("DiscardChanges", resourceCulture); } } - + /// /// Looks up a localized string similar to Disconnect. /// @@ -413,7 +422,7 @@ public static string Disconnect { return ResourceManager.GetString("Disconnect", resourceCulture); } } - + /// /// Looks up a localized string similar to Download as JSON. /// @@ -422,7 +431,7 @@ public static string DownloadAsJson { return ResourceManager.GetString("DownloadAsJson", resourceCulture); } } - + /// /// Looks up a localized string similar to Drop item groups. /// @@ -431,7 +440,7 @@ public static string DropItemGroups { return ResourceManager.GetString("DropItemGroups", resourceCulture); } } - + /// /// Looks up a localized string similar to Duplicate. /// @@ -440,7 +449,7 @@ public static string Duplicate { return ResourceManager.GetString("Duplicate", resourceCulture); } } - + /// /// Looks up a localized string similar to Duplicated '{0}' successfully.. /// @@ -449,7 +458,7 @@ public static string DuplicatedSuccessfully { return ResourceManager.GetString("DuplicatedSuccessfully", resourceCulture); } } - + /// /// Looks up a localized string similar to Edit. /// @@ -458,7 +467,7 @@ public static string Edit { return ResourceManager.GetString("Edit", resourceCulture); } } - + /// /// Looks up a localized string similar to Error. /// @@ -467,7 +476,7 @@ public static string Error { return ResourceManager.GetString("Error", resourceCulture); } } - + /// /// Looks up a localized string similar to Error duplicating '{0}': {1}. /// @@ -476,7 +485,7 @@ public static string ErrorDuplicating { return ResourceManager.GetString("ErrorDuplicating", resourceCulture); } } - + /// /// Looks up a localized string similar to Extension Point. /// @@ -485,7 +494,7 @@ public static string ExtensionPoint { return ResourceManager.GetString("ExtensionPoint", resourceCulture); } } - + /// /// Looks up a localized string similar to Failed, context not initialized. /// @@ -494,7 +503,7 @@ public static string FailedByUninitializedContext { return ResourceManager.GetString("FailedByUninitializedContext", resourceCulture); } } - + /// /// Looks up a localized string similar to Failed to clone '{0}'.. /// @@ -503,7 +512,7 @@ public static string FailedToClone { return ResourceManager.GetString("FailedToClone", resourceCulture); } } - + /// /// Looks up a localized string similar to File name. /// @@ -512,7 +521,7 @@ public static string FileName { return ResourceManager.GetString("FileName", resourceCulture); } } - + /// /// Looks up a localized string similar to Finished! Have fun :). /// @@ -521,7 +530,7 @@ public static string FinishedHaveFun { return ResourceManager.GetString("FinishedHaveFun", resourceCulture); } } - + /// /// Looks up a localized string similar to First, close all connections to the server.. /// @@ -530,7 +539,7 @@ public static string FirstCloseAllConnectionsToTheServer { return ResourceManager.GetString("FirstCloseAllConnectionsToTheServer", resourceCulture); } } - + /// /// Looks up a localized string similar to Full configuration. /// @@ -539,7 +548,7 @@ public static string FullConfiguration { return ResourceManager.GetString("FullConfiguration", resourceCulture); } } - + /// /// Looks up a localized string similar to Game clients. /// @@ -548,7 +557,7 @@ public static string GameClients { return ResourceManager.GetString("GameClients", resourceCulture); } } - + /// /// Looks up a localized string similar to Game configuration. /// @@ -557,7 +566,7 @@ public static string GameConfiguration { return ResourceManager.GetString("GameConfiguration", resourceCulture); } } - + /// /// Looks up a localized string similar to Game maps. /// @@ -566,7 +575,7 @@ public static string GameMaps { return ResourceManager.GetString("GameMaps", resourceCulture); } } - + /// /// Looks up a localized string similar to Game Server. /// @@ -575,7 +584,7 @@ public static string GameServer { return ResourceManager.GetString("GameServer", resourceCulture); } } - + /// /// Looks up a localized string similar to The game server configuration has been saved. Initializing game server .... /// @@ -584,7 +593,7 @@ public static string GameServerConfigurationSavedInfo { return ResourceManager.GetString("GameServerConfigurationSavedInfo", resourceCulture); } } - + /// /// Looks up a localized string similar to Game server count. /// @@ -593,7 +602,7 @@ public static string GameServerCount { return ResourceManager.GetString("GameServerCount", resourceCulture); } } - + /// /// Looks up a localized string similar to General. /// @@ -602,7 +611,43 @@ public static string General { return ResourceManager.GetString("General", resourceCulture); } } - + + /// + /// Looks up a localized string similar to Global Message. + /// + public static string GlobalMessage { + get { + return ResourceManager.GetString("GlobalMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No running game server to send the message to.. + /// + public static string GlobalMessageNoTarget { + get { + return ResourceManager.GetString("GlobalMessageNoTarget", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Failed to send the message to {0}: {1}. + /// + public static string GlobalMessageSendFailed { + get { + return ResourceManager.GetString("GlobalMessageSendFailed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Message sent.. + /// + public static string GlobalMessageSent { + get { + return ResourceManager.GetString("GlobalMessageSent", resourceCulture); + } + } + /// /// Looks up a localized string similar to Hide entry form. /// @@ -611,7 +656,7 @@ public static string HideEntryForm { return ResourceManager.GetString("HideEntryForm", resourceCulture); } } - + /// /// Looks up a localized string similar to Home. /// @@ -620,7 +665,7 @@ public static string Home { return ResourceManager.GetString("Home", resourceCulture); } } - + /// /// Looks up a localized string similar to How many game servers do you want?. /// @@ -629,7 +674,7 @@ public static string HowManyGameServersQuestion { return ResourceManager.GetString("HowManyGameServersQuestion", resourceCulture); } } - + /// /// Looks up a localized string similar to Initialized game version. /// @@ -638,7 +683,7 @@ public static string InitializedGameVersion { return ResourceManager.GetString("InitializedGameVersion", resourceCulture); } } - + /// /// Looks up a localized string similar to Initializing Connect Server .... /// @@ -647,7 +692,7 @@ public static string InitializingConnectServerInfo { return ResourceManager.GetString("InitializingConnectServerInfo", resourceCulture); } } - + /// /// Looks up a localized string similar to Initializing Game Server .... /// @@ -656,7 +701,7 @@ public static string InitializingGameServerInfo { return ResourceManager.GetString("InitializingGameServerInfo", resourceCulture); } } - + /// /// Looks up a localized string similar to Installing, please wait .... /// @@ -665,7 +710,7 @@ public static string InstallingPleaseWait { return ResourceManager.GetString("InstallingPleaseWait", resourceCulture); } } - + /// /// Looks up a localized string similar to Items. /// @@ -674,7 +719,7 @@ public static string Items { return ResourceManager.GetString("Items", resourceCulture); } } - + /// /// Looks up a localized string similar to Jewel mixes. /// @@ -683,7 +728,7 @@ public static string JewelMixes { return ResourceManager.GetString("JewelMixes", resourceCulture); } } - + /// /// Looks up a localized string similar to Last update. /// @@ -692,7 +737,7 @@ public static string LastUpdate { return ResourceManager.GetString("LastUpdate", resourceCulture); } } - + /// /// Looks up a localized string similar to Live Map. /// @@ -701,7 +746,7 @@ public static string LiveMap { return ResourceManager.GetString("LiveMap", resourceCulture); } } - + /// /// Looks up a localized string similar to Loading .... /// @@ -710,7 +755,7 @@ public static string Loading { return ResourceManager.GetString("Loading", resourceCulture); } } - + /// /// Looks up a localized string similar to Could not load the data. Check the logs for details.. /// @@ -719,7 +764,7 @@ public static string LoadingErrorCheckLog { return ResourceManager.GetString("LoadingErrorCheckLog", resourceCulture); } } - + /// /// Looks up a localized string similar to Log Files. /// @@ -728,7 +773,7 @@ public static string LogFiles { return ResourceManager.GetString("LogFiles", resourceCulture); } } - + /// /// Looks up a localized string similar to Logs. /// @@ -737,7 +782,7 @@ public static string Logs { return ResourceManager.GetString("Logs", resourceCulture); } } - + /// /// Looks up a localized string similar to Major. /// @@ -746,7 +791,7 @@ public static string MajorVersion { return ResourceManager.GetString("MajorVersion", resourceCulture); } } - + /// /// Looks up a localized string similar to Mandatory updates are always applied and cannot be deselected.. /// @@ -755,7 +800,7 @@ public static string MandatoryUpdatesAreAlwaysAppliedAndCannotBeDeselected { return ResourceManager.GetString("MandatoryUpdatesAreAlwaysAppliedAndCannotBeDeselected", resourceCulture); } } - + /// /// Looks up a localized string similar to Map Editor. /// @@ -764,7 +809,7 @@ public static string MapEditor { return ResourceManager.GetString("MapEditor", resourceCulture); } } - + /// /// Looks up a localized string similar to Merchants. /// @@ -773,7 +818,7 @@ public static string Merchants { return ResourceManager.GetString("Merchants", resourceCulture); } } - + /// /// Looks up a localized string similar to Merchant stores. /// @@ -782,7 +827,16 @@ public static string MerchantStores { return ResourceManager.GetString("MerchantStores", resourceCulture); } } - + + /// + /// Looks up a localized string similar to Enter message.... + /// + public static string MessagePlaceholder { + get { + return ResourceManager.GetString("MessagePlaceholder", resourceCulture); + } + } + /// /// Looks up a localized string similar to Metrics. /// @@ -791,7 +845,7 @@ public static string Metrics { return ResourceManager.GetString("Metrics", resourceCulture); } } - + /// /// Looks up a localized string similar to Mini games. /// @@ -800,7 +854,7 @@ public static string MiniGames { return ResourceManager.GetString("MiniGames", resourceCulture); } } - + /// /// Looks up a localized string similar to Minor. /// @@ -809,7 +863,7 @@ public static string MinorVersion { return ResourceManager.GetString("MinorVersion", resourceCulture); } } - + /// /// Looks up a localized string similar to Monsters. /// @@ -818,7 +872,7 @@ public static string Monsters { return ResourceManager.GetString("Monsters", resourceCulture); } } - + /// /// Looks up a localized string similar to New updates for the configuration data are available. You can select the ones which should be applied to your configuration.. /// @@ -827,7 +881,7 @@ public static string NewConfigurationUpdatesAvailable { return ResourceManager.GetString("NewConfigurationUpdatesAvailable", resourceCulture); } } - + /// /// Looks up a localized string similar to No. /// @@ -836,7 +890,7 @@ public static string No { return ResourceManager.GetString("No", resourceCulture); } } - + /// /// Looks up a localized string similar to No changes have been saved.. /// @@ -845,7 +899,7 @@ public static string NoChangesSaved { return ResourceManager.GetString("NoChangesSaved", resourceCulture); } } - + /// /// Looks up a localized string similar to There were no changes to save.. /// @@ -854,7 +908,7 @@ public static string NoChangesToSave { return ResourceManager.GetString("NoChangesToSave", resourceCulture); } } - + /// /// Looks up a localized string similar to No configuration data update available.. /// @@ -863,7 +917,7 @@ public static string NoConfigurationDataUpdateAvailable { return ResourceManager.GetString("NoConfigurationDataUpdateAvailable", resourceCulture); } } - + /// /// Looks up a localized string similar to No initialized data found!. /// @@ -872,7 +926,7 @@ public static string NoInitializedDataFound { return ResourceManager.GetString("NoInitializedDataFound", resourceCulture); } } - + /// /// Looks up a localized string similar to Not created. /// @@ -881,7 +935,7 @@ public static string NotCreated { return ResourceManager.GetString("NotCreated", resourceCulture); } } - + /// /// Looks up a localized string similar to OK. /// @@ -890,7 +944,7 @@ public static string OK { return ResourceManager.GetString("OK", resourceCulture); } } - + /// /// Looks up a localized string similar to Online Accounts. /// @@ -899,7 +953,16 @@ public static string OnlineAccounts { return ResourceManager.GetString("OnlineAccounts", resourceCulture); } } - + + /// + /// Looks up a localized string similar to {0} online. + /// + public static string OnlineCount { + get { + return ResourceManager.GetString("OnlineCount", resourceCulture); + } + } + /// /// Looks up a localized string similar to OpenMU AdminPanel. /// @@ -908,7 +971,7 @@ public static string OpenMUAdminPanel { return ResourceManager.GetString("OpenMUAdminPanel", resourceCulture); } } - + /// /// Looks up a localized string similar to Patch. /// @@ -917,7 +980,7 @@ public static string Patch { return ResourceManager.GetString("Patch", resourceCulture); } } - + /// /// Looks up a localized string similar to Patch-Address. /// @@ -926,7 +989,7 @@ public static string PatchAddress { return ResourceManager.GetString("PatchAddress", resourceCulture); } } - + /// /// Looks up a localized string similar to Patch-Version. /// @@ -935,7 +998,7 @@ public static string PatchVersion { return ResourceManager.GetString("PatchVersion", resourceCulture); } } - + /// /// Looks up a localized string similar to Players. /// @@ -944,7 +1007,7 @@ public static string PlayerCount { return ResourceManager.GetString("PlayerCount", resourceCulture); } } - + /// /// Looks up a localized string similar to Please, first install the database updates on the setup page.. /// @@ -953,7 +1016,7 @@ public static string PleaseFirstInstallTheDatabaseUpdatesOnTheSetupPage { return ResourceManager.GetString("PleaseFirstInstallTheDatabaseUpdatesOnTheSetupPage", resourceCulture); } } - + /// /// Looks up a localized string similar to Please restart the connect and game server containers.. /// @@ -962,7 +1025,7 @@ public static string PleaseRestartTheConnectAndGameServerContainers { return ResourceManager.GetString("PleaseRestartTheConnectAndGameServerContainers", resourceCulture); } } - + /// /// Looks up a localized string similar to Plugin Name. /// @@ -971,7 +1034,7 @@ public static string PluginName { return ResourceManager.GetString("PluginName", resourceCulture); } } - + /// /// Looks up a localized string similar to Plugins. /// @@ -980,7 +1043,7 @@ public static string Plugins { return ResourceManager.GetString("Plugins", resourceCulture); } } - + /// /// Looks up a localized string similar to Plugin Type. /// @@ -989,7 +1052,7 @@ public static string PluginType { return ResourceManager.GetString("PluginType", resourceCulture); } } - + /// /// Looks up a localized string similar to Refresh. /// @@ -998,7 +1061,7 @@ public static string Refresh { return ResourceManager.GetString("Refresh", resourceCulture); } } - + /// /// Looks up a localized string similar to Re-install. /// @@ -1007,7 +1070,7 @@ public static string ReInstall { return ResourceManager.GetString("ReInstall", resourceCulture); } } - + /// /// Looks up a localized string similar to Are you sure? All the current data is getting deleted and freshly installed.. /// @@ -1016,7 +1079,7 @@ public static string ReinstallConfirmation { return ResourceManager.GetString("ReinstallConfirmation", resourceCulture); } } - + /// /// Looks up a localized string similar to Reload. /// @@ -1025,7 +1088,7 @@ public static string Reload { return ResourceManager.GetString("Reload", resourceCulture); } } - + /// /// Looks up a localized string similar to Reload configuration and restart all Game Servers. /// @@ -1034,7 +1097,7 @@ public static string ReloadConfigurationAndRestartAllGameServers { return ResourceManager.GetString("ReloadConfigurationAndRestartAllGameServers", resourceCulture); } } - + /// /// Looks up a localized string similar to Remove. /// @@ -1043,7 +1106,7 @@ public static string Remove { return ResourceManager.GetString("Remove", resourceCulture); } } - + /// /// Looks up a localized string similar to Remove Server. /// @@ -1052,7 +1115,7 @@ public static string RemoveServer { return ResourceManager.GetString("RemoveServer", resourceCulture); } } - + /// /// Looks up a localized string similar to Save. /// @@ -1061,7 +1124,7 @@ public static string Save { return ResourceManager.GetString("Save", resourceCulture); } } - + /// /// Looks up a localized string similar to Save changes. /// @@ -1070,7 +1133,7 @@ public static string SaveChanges { return ResourceManager.GetString("SaveChanges", resourceCulture); } } - + /// /// Looks up a localized string similar to The changes have been saved.. /// @@ -1079,7 +1142,7 @@ public static string SavedChanges { return ResourceManager.GetString("SavedChanges", resourceCulture); } } - + /// /// Looks up a localized string similar to Saving Configuration .... /// @@ -1088,7 +1151,7 @@ public static string SavingConfigurationInfo { return ResourceManager.GetString("SavingConfigurationInfo", resourceCulture); } } - + /// /// Looks up a localized string similar to Search. /// @@ -1097,7 +1160,7 @@ public static string Search { return ResourceManager.GetString("Search", resourceCulture); } } - + /// /// Looks up a localized string similar to seconds. /// @@ -1106,7 +1169,7 @@ public static string Seconds { return ResourceManager.GetString("Seconds", resourceCulture); } } - + /// /// Looks up a localized string similar to Select the game version. /// @@ -1115,7 +1178,16 @@ public static string SelectTheGameVersion { return ResourceManager.GetString("SelectTheGameVersion", resourceCulture); } } - + + /// + /// Looks up a localized string similar to Send. + /// + public static string Send { + get { + return ResourceManager.GetString("Send", resourceCulture); + } + } + /// /// Looks up a localized string similar to Server control. /// @@ -1124,7 +1196,7 @@ public static string ServerControl { return ResourceManager.GetString("ServerControl", resourceCulture); } } - + /// /// Looks up a localized string similar to The server will be deleted from the database. Are you sure to proceed?. /// @@ -1133,7 +1205,7 @@ public static string ServerDeleteProceedQuestion { return ResourceManager.GetString("ServerDeleteProceedQuestion", resourceCulture); } } - + /// /// Looks up a localized string similar to Server-ID. /// @@ -1142,7 +1214,7 @@ public static string ServerID { return ResourceManager.GetString("ServerID", resourceCulture); } } - + /// /// Looks up a localized string similar to Server Name. /// @@ -1151,7 +1223,7 @@ public static string ServerName { return ResourceManager.GetString("ServerName", resourceCulture); } } - + /// /// Looks up a localized string similar to Servers. /// @@ -1160,7 +1232,7 @@ public static string Servers { return ResourceManager.GetString("Servers", resourceCulture); } } - + /// /// Looks up a localized string similar to Server with Id {0} already exists. Please use another value.. /// @@ -1169,7 +1241,7 @@ public static string ServerWithIdAlreadyExists { return ResourceManager.GetString("ServerWithIdAlreadyExists", resourceCulture); } } - + /// /// Looks up a localized string similar to A server with tcp port {0} already exists. Please use another tcp port.. /// @@ -1178,7 +1250,7 @@ public static string ServerWithPortAlreadyExists { return ResourceManager.GetString("ServerWithPortAlreadyExists", resourceCulture); } } - + /// /// Looks up a localized string similar to Setup. /// @@ -1187,7 +1259,7 @@ public static string Setup { return ResourceManager.GetString("Setup", resourceCulture); } } - + /// /// Looks up a localized string similar to Show entry form. /// @@ -1196,7 +1268,7 @@ public static string ShowEntryForm { return ResourceManager.GetString("ShowEntryForm", resourceCulture); } } - + /// /// Looks up a localized string similar to Size. /// @@ -1205,7 +1277,7 @@ public static string Size { return ResourceManager.GetString("Size", resourceCulture); } } - + /// /// Looks up a localized string similar to Skills. /// @@ -1214,7 +1286,7 @@ public static string Skills { return ResourceManager.GetString("Skills", resourceCulture); } } - + /// /// Looks up a localized string similar to Socket {0}. /// @@ -1223,7 +1295,7 @@ public static string SocketNumber { return ResourceManager.GetString("SocketNumber", resourceCulture); } } - + /// /// Looks up a localized string similar to Start. /// @@ -1232,7 +1304,7 @@ public static string Start { return ResourceManager.GetString("Start", resourceCulture); } } - + /// /// Looks up a localized string similar to Started At. /// @@ -1241,7 +1313,7 @@ public static string StartedAt { return ResourceManager.GetString("StartedAt", resourceCulture); } } - + /// /// Looks up a localized string similar to Start install. /// @@ -1250,7 +1322,7 @@ public static string StartInstall { return ResourceManager.GetString("StartInstall", resourceCulture); } } - + /// /// Looks up a localized string similar to Stop. /// @@ -1259,7 +1331,7 @@ public static string Stop { return ResourceManager.GetString("Stop", resourceCulture); } } - + /// /// Looks up a localized string similar to Swapping to <strong>Development</strong> environment will display more detailed information about the error that occurred.. /// @@ -1268,7 +1340,7 @@ public static string SwappingToDevForMoreInformation { return ResourceManager.GetString("SwappingToDevForMoreInformation", resourceCulture); } } - + /// /// Looks up a localized string similar to System. /// @@ -1277,7 +1349,16 @@ public static string System { return ResourceManager.GetString("System", resourceCulture); } } - + + /// + /// Looks up a localized string similar to Target. + /// + public static string Target { + get { + return ResourceManager.GetString("Target", resourceCulture); + } + } + /// /// Looks up a localized string similar to Do you want test accounts?. /// @@ -1286,7 +1367,7 @@ public static string TestAccountsQuestion { return ResourceManager.GetString("TestAccountsQuestion", resourceCulture); } } - + /// /// Looks up a localized string similar to The updates require a restart of the server process to take effect.. /// @@ -1295,7 +1376,7 @@ public static string TheUpdatesRequireARestartOfTheServerProcessToTakeEffect { return ResourceManager.GetString("TheUpdatesRequireARestartOfTheServerProcessToTakeEffect", resourceCulture); } } - + /// /// Looks up a localized string similar to Total Players. /// @@ -1304,7 +1385,7 @@ public static string TotalPlayers { return ResourceManager.GetString("TotalPlayers", resourceCulture); } } - + /// /// Looks up a localized string similar to Tracing. /// @@ -1313,7 +1394,7 @@ public static string Tracing { return ResourceManager.GetString("Tracing", resourceCulture); } } - + /// /// Looks up a localized string similar to Type '{0}' does not support cloning.. /// @@ -1322,7 +1403,7 @@ public static string TypeDoesNotSupportCloning { return ResourceManager.GetString("TypeDoesNotSupportCloning", resourceCulture); } } - + /// /// Looks up a localized string similar to An unexpected error occurred: {0}. See logs for more details.. /// @@ -1331,7 +1412,7 @@ public static string UnexpectedErrorCheckLogs { return ResourceManager.GetString("UnexpectedErrorCheckLogs", resourceCulture); } } - + /// /// Looks up a localized string similar to An unexpected error occurred: {0}.. /// @@ -1340,7 +1421,7 @@ public static string UnexpectedErrorOccurred { return ResourceManager.GetString("UnexpectedErrorOccurred", resourceCulture); } } - + /// /// Looks up a localized string similar to An unhandled error has occurred.. /// @@ -1349,7 +1430,7 @@ public static string UnhandledErrorOccurred { return ResourceManager.GetString("UnhandledErrorOccurred", resourceCulture); } } - + /// /// Looks up a localized string similar to There are unsaved changes. Are you sure you want to discard them?. /// @@ -1358,7 +1439,7 @@ public static string UnsavedChangesQuestion { return ResourceManager.GetString("UnsavedChangesQuestion", resourceCulture); } } - + /// /// Looks up a localized string similar to Update. /// @@ -1367,7 +1448,7 @@ public static string Update { return ResourceManager.GetString("Update", resourceCulture); } } - + /// /// Looks up a localized string similar to Update Failed!. /// @@ -1376,7 +1457,7 @@ public static string UpdateFailed { return ResourceManager.GetString("UpdateFailed", resourceCulture); } } - + /// /// Looks up a localized string similar to Update required. /// @@ -1385,7 +1466,7 @@ public static string UpdateRequired { return ResourceManager.GetString("UpdateRequired", resourceCulture); } } - + /// /// Looks up a localized string similar to Updates. /// @@ -1394,7 +1475,7 @@ public static string Updates { return ResourceManager.GetString("Updates", resourceCulture); } } - + /// /// Looks up a localized string similar to Updating.... /// @@ -1403,7 +1484,7 @@ public static string Updating { return ResourceManager.GetString("Updating", resourceCulture); } } - + /// /// Looks up a localized string similar to Up-to-date. /// @@ -1412,7 +1493,7 @@ public static string UpToDate { return ResourceManager.GetString("UpToDate", resourceCulture); } } - + /// /// Looks up a localized string similar to Users. /// @@ -1421,7 +1502,7 @@ public static string Users { return ResourceManager.GetString("Users", resourceCulture); } } - + /// /// Looks up a localized string similar to Warp list. /// @@ -1430,7 +1511,7 @@ public static string WarpList { return ResourceManager.GetString("WarpList", resourceCulture); } } - + /// /// Looks up a localized string similar to Welcome to the admin panel of OpenMU.. /// @@ -1439,7 +1520,7 @@ public static string WelcomeMessage { return ResourceManager.GetString("WelcomeMessage", resourceCulture); } } - + /// /// Looks up a localized string similar to Yes. /// @@ -1448,7 +1529,7 @@ public static string Yes { return ResourceManager.GetString("Yes", resourceCulture); } } - + /// /// Looks up a localized string similar to Yes, create test accounts. /// @@ -1457,59 +1538,5 @@ public static string YesCreateTestAccounts { return ResourceManager.GetString("YesCreateTestAccounts", resourceCulture); } } - - /// - /// Looks up a localized string similar to All Game Servers. - /// - public static string AllGameServers { - get { - return ResourceManager.GetString("AllGameServers", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Global Message. - /// - public static string GlobalMessage { - get { - return ResourceManager.GetString("GlobalMessage", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Enter message.... - /// - public static string MessagePlaceholder { - get { - return ResourceManager.GetString("MessagePlaceholder", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to {0} online. - /// - public static string OnlineCount { - get { - return ResourceManager.GetString("OnlineCount", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Send. - /// - public static string Send { - get { - return ResourceManager.GetString("Send", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Target. - /// - public static string Target { - get { - return ResourceManager.GetString("Target", resourceCulture); - } - } } } diff --git a/src/Web/AdminPanel/Properties/Resources.resx b/src/Web/AdminPanel/Properties/Resources.resx index 183321972..000bb9975 100644 --- a/src/Web/AdminPanel/Properties/Resources.resx +++ b/src/Web/AdminPanel/Properties/Resources.resx @@ -591,6 +591,15 @@ Global Message + + No running game server to send the message to. + + + Failed to send the message to {0}: {1} + + + Message sent. + Enter message...