diff --git a/ClaimLink/ClaimLinkChatCommand.cs b/ClaimLink/ClaimLinkChatCommand.cs index 70ea928..0ef64a6 100644 --- a/ClaimLink/ClaimLinkChatCommand.cs +++ b/ClaimLink/ClaimLinkChatCommand.cs @@ -543,7 +543,11 @@ public static class ClaimLinkChatCommand if (err != null) return err; - return TextCommandResult.Success(FormatInfo(groupName, group.Uid)); + IPlayer player = args.Caller.Player; + bool showDetails = + player.HasPrivilege(Privilege.controlserver) || player.GetGroup(group.Uid) != null; + + return TextCommandResult.Success(FormatInfo(groupName, group.Uid, showDetails)); } public static TextCommandResult List(TextCommandCallingArgs args) @@ -585,7 +589,7 @@ public static class ClaimLinkChatCommand return string.IsNullOrEmpty(claim.Description) ? $"claim {claimIndex}" : claim.Description; } - private static string FormatInfo(string groupName, int groupId) + private static string FormatInfo(string groupName, int groupId, bool showDetails) { int memberCount = ClaimLinkModSystem.Registry.MemberCountForGroup(groupId); @@ -597,6 +601,13 @@ public static class ClaimLinkChatCommand foreach (string uid in ClaimLinkModSystem.Registry.MemberUidsForGroup(groupId)) { string name = ClaimLinkModSystem.World.PlayerByUid(uid)?.PlayerName ?? uid; + + if (!showDetails) + { + sb.AppendLine($" {name}"); + continue; + } + IEnumerable claims = ClaimLinkModSystem .Registry.ClaimsForPlayerInGroup(uid, groupId) .Select(i => DescribeClaim(uid, i)); diff --git a/ClaimLink/ClaimLinkRegistry.cs b/ClaimLink/ClaimLinkRegistry.cs index d13a119..4391fb5 100644 --- a/ClaimLink/ClaimLinkRegistry.cs +++ b/ClaimLink/ClaimLinkRegistry.cs @@ -145,7 +145,7 @@ public class ClaimLinkRegistry public IEnumerable MemberUidsForGroup(int groupId) { foreach (var (uid, groups) in entries) - if (groups.TryGetValue(groupId, out var claims) && claims.Count > 0) + if (groups.ContainsKey(groupId)) yield return uid; }