diff --git a/src/Web/AdminPanel/Pages/Servers.razor b/src/Web/AdminPanel/Pages/Servers.razor index eb548a2b5..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,35 @@ } else { +@if (_gameServers is not null) +{ +
+
+
+
+ + +
+
+ + +
+
+ +
+
+
+
+} +
@@ -78,6 +109,10 @@ else private bool _isRestarting; + private string _message = string.Empty; + + private int _selectedServerId = -1; + /// /// Gets or sets the . /// @@ -90,6 +125,25 @@ else [Inject] public IGameServerInstanceManager? ServerInstanceManager { get; set; } + /// + /// 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 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() { @@ -101,6 +155,7 @@ else { base.OnInitialized(); this._servers = this.ServerProvider.Servers; + this._gameServers = this.ServiceProvider.GetService>(); this.ServerProvider.PropertyChanged += this.OnServersChanged; } @@ -125,4 +180,57 @@ else this._isRestarting = false; } } + + private async Task SendMessageAsync() + { + var message = _message; + if (string.IsNullOrWhiteSpace(message) || this._gameServers is not { } gameServers) + { + 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; + + 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) + { + // 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 (sent == 0) + { + // 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 2afb96dc0..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. /// diff --git a/src/Web/AdminPanel/Properties/Resources.resx b/src/Web/AdminPanel/Properties/Resources.resx index bbf93538e..000bb9975 100644 --- a/src/Web/AdminPanel/Properties/Resources.resx +++ b/src/Web/AdminPanel/Properties/Resources.resx @@ -585,4 +585,31 @@ Hide entry form + + All Game Servers + + + Global Message + + + No running game server to send the message to. + + + Failed to send the message to {0}: {1} + + + Message sent. + + + Enter message... + + + {0} online + + + Send + + + Target + \ No newline at end of file