Extract member list parsing to a separate method
This commit is contained in:
		| @@ -150,20 +150,7 @@ namespace PluralKit.Bot | ||||
|         { | ||||
|             ctx.CheckOwnGroup(target); | ||||
|  | ||||
|             // Parse all arguments | ||||
|             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."); | ||||
|             var members = await ParseMemberList(ctx); | ||||
|              | ||||
|             await using var conn = await _db.Obtain(); | ||||
|             if (op == AddRemoveOperation.Add) | ||||
| @@ -204,6 +191,26 @@ namespace PluralKit.Bot | ||||
|             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) | ||||
|         { | ||||
|             var system = ctx.System; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user