Extract member list parsing to a separate method
This commit is contained in:
		| @@ -150,20 +150,7 @@ namespace PluralKit.Bot | |||||||
|         { |         { | ||||||
|             ctx.CheckOwnGroup(target); |             ctx.CheckOwnGroup(target); | ||||||
|  |  | ||||||
|             // Parse all arguments |             var members = await ParseMemberList(ctx); | ||||||
|             var members = new List<PKMember>(); |  | ||||||
|             while (ctx.HasNext()) |  | ||||||
|             { |  | ||||||
|                 var member = await ctx.MatchMember(); |  | ||||||
|                 if (member == null) |  | ||||||
|                     throw new PKSyntaxError(ctx.CreateMemberNotFoundError(ctx.PopArgument()));; |  | ||||||
|                 if (member.System != target.System) |  | ||||||
|                     throw new PKError($"Member **{member.Name}** (`{member.Hid}`) is not in your own system, so you can't add it to a group."); |  | ||||||
|                 members.Add(member); |  | ||||||
|             } |  | ||||||
|  |  | ||||||
|             if (members.Count == 0) |  | ||||||
|                 throw new PKSyntaxError("You must pass one or more members."); |  | ||||||
|              |              | ||||||
|             await using var conn = await _db.Obtain(); |             await using var conn = await _db.Obtain(); | ||||||
|             if (op == AddRemoveOperation.Add) |             if (op == AddRemoveOperation.Add) | ||||||
| @@ -204,6 +191,26 @@ namespace PluralKit.Bot | |||||||
|             Remove |             Remove | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  |         private static async Task<List<PKMember>> ParseMemberList(Context ctx) | ||||||
|  |         { | ||||||
|  |             // TODO: move this to a context extension and share with the switch command somewhere, after branch merge? | ||||||
|  |              | ||||||
|  |             var members = new List<PKMember>(); | ||||||
|  |             while (ctx.HasNext()) | ||||||
|  |             { | ||||||
|  |                 var member = await ctx.MatchMember(); | ||||||
|  |                 if (member == null) | ||||||
|  |                     throw new PKSyntaxError(ctx.CreateMemberNotFoundError(ctx.PopArgument()));; | ||||||
|  |                 if (member.System != ctx.System.Id) | ||||||
|  |                     throw new PKError($"Member **{member.Name}** (`{member.Hid}`) is not in your own system, so you can't add it to a group."); | ||||||
|  |                 members.Add(member); | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             if (members.Count == 0) | ||||||
|  |                 throw new PKSyntaxError("You must pass one or more members."); | ||||||
|  |             return members; | ||||||
|  |         } | ||||||
|  |  | ||||||
|         private static async Task<PKSystem> GetGroupSystem(Context ctx, PKGroup target, IPKConnection conn) |         private static async Task<PKSystem> GetGroupSystem(Context ctx, PKGroup target, IPKConnection conn) | ||||||
|         { |         { | ||||||
|             var system = ctx.System; |             var system = ctx.System; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user