| @item.LoginName |
- @(item.CharacterName ?? "—") |
+ @(item.CharacterName ?? Resources.EmptyValue) |
@item.ServerId |
+ @(item.GuildName ?? Resources.EmptyValue) |
|
@item.StartedAt.ToString("yyyy-MM-dd HH:mm:ss") UTC |
@@ -104,21 +108,23 @@
}
- else
+ else if (this._activeTab == Tab.Bots)
{
-
+
- | @typeof(Account).GetPropertyCaption(nameof(Account.LoginName)) |
+ @typeof(Account).GetPropertyCaption(nameof(Account.LoginName)) |
@Resources.Character |
@Resources.ServerID |
- @Resources.Party |
+ @Resources.Guild |
+ @Resources.Party |
@Resources.StartedAt |
@item.LoginName |
- @(item.CharacterName ?? "—") |
+ @(item.CharacterName ?? Resources.EmptyValue) |
@item.ServerId |
+ @(item.GuildName ?? Resources.EmptyValue) |
|
@item.StartedAt.ToString("yyyy-MM-dd HH:mm:ss") UTC |
@@ -145,6 +151,8 @@
base.OnInitialized();
// Tabs are only shown when the corresponding feature plugin is active on an in-process game server.
// In a distributed deployment the contexts aren't available, so the tabs stay hidden.
+ // An active plugin with no sessions renders as an empty list, so "disabled" (no tab)
+ // stays distinguishable from "enabled but idle" (empty tab).
this._showOfflevel = this.OfflineService.IsOfflevelFeatureAvailable();
this._showBots = this.BotService.IsBotFeatureAvailable();
}
diff --git a/src/Web/AdminPanel/Properties/Resources.Designer.cs b/src/Web/AdminPanel/Properties/Resources.Designer.cs
index 0fa03e26ee..bc8aae7cd1 100644
--- a/src/Web/AdminPanel/Properties/Resources.Designer.cs
+++ b/src/Web/AdminPanel/Properties/Resources.Designer.cs
@@ -141,15 +141,6 @@ public static string Activate {
}
}
- ///
- /// Looks up a localized string similar to Active Offline Player.
- ///
- public static string ActiveOfflinePlayer {
- get {
- return ResourceManager.GetString("ActiveOfflinePlayer", resourceCulture);
- }
- }
-
///
/// Looks up a localized string similar to Add New.
///
@@ -1747,29 +1738,110 @@ public static string OpenMUAdminPanel {
}
///
- /// Looks up a localized string similar to Off-level Players.
+ /// Looks up a localized string similar to Guilds.
///
- public static string OffLevelPlayers {
+ public static string Guilds {
get {
- return ResourceManager.GetString("OffLevelPlayers", resourceCulture);
+ return ResourceManager.GetString("Guilds", resourceCulture);
}
}
///
- /// Looks up a localized string similar to Bot Players.
+ /// Looks up a localized string similar to Guild.
///
- public static string BotPlayers {
+ public static string Guild {
get {
- return ResourceManager.GetString("BotPlayers", resourceCulture);
+ return ResourceManager.GetString("Guild", resourceCulture);
}
}
///
- /// Looks up a localized string similar to Party.
+ /// Looks up a localized string similar to Alliance.
///
- public static string Party {
+ public static string Alliance {
get {
- return ResourceManager.GetString("Party", resourceCulture);
+ return ResourceManager.GetString("Alliance", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Members.
+ ///
+ public static string Members {
+ get {
+ return ResourceManager.GetString("Members", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Score.
+ ///
+ public static string Score {
+ get {
+ return ResourceManager.GetString("Score", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Notice.
+ ///
+ public static string Notice {
+ get {
+ return ResourceManager.GetString("Notice", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Position.
+ ///
+ public static string Position {
+ get {
+ return ResourceManager.GetString("Position", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Character Class.
+ ///
+ public static string CharacterClass {
+ get {
+ return ResourceManager.GetString("CharacterClass", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Level.
+ ///
+ public static string Level {
+ get {
+ return ResourceManager.GetString("Level", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Master Level.
+ ///
+ public static string MasterLevel {
+ get {
+ return ResourceManager.GetString("MasterLevel", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Account.
+ ///
+ public static string Account {
+ get {
+ return ResourceManager.GetString("Account", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to The guild was not found. It may have been deleted..
+ ///
+ public static string GuildNotFound {
+ get {
+ return ResourceManager.GetString("GuildNotFound", resourceCulture);
}
}
@@ -3464,5 +3536,50 @@ public static string CastleSiegeErrorUnexpected {
return ResourceManager.GetString("CastleSiegeErrorUnexpected", resourceCulture);
}
}
+
+ ///
+ /// Looks up a localized string similar to Off-level Players.
+ ///
+ public static string OffLevelPlayers {
+ get {
+ return ResourceManager.GetString("OffLevelPlayers", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Bot Players.
+ ///
+ public static string BotPlayers {
+ get {
+ return ResourceManager.GetString("BotPlayers", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Party.
+ ///
+ public static string Party {
+ get {
+ return ResourceManager.GetString("Party", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to —.
+ ///
+ public static string EmptyValue {
+ get {
+ return ResourceManager.GetString("EmptyValue", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Party of {0}: {1} members.
+ ///
+ public static string PartyBadgeTitle {
+ get {
+ return ResourceManager.GetString("PartyBadgeTitle", resourceCulture);
+ }
+ }
}
}
diff --git a/src/Web/AdminPanel/Properties/Resources.resx b/src/Web/AdminPanel/Properties/Resources.resx
index 0004734725..4fb181294d 100644
--- a/src/Web/AdminPanel/Properties/Resources.resx
+++ b/src/Web/AdminPanel/Properties/Resources.resx
@@ -1,4 +1,4 @@
-
+
|