subparser.addArgument("-d", "--description").help("Specify the new group description.");
subparser.addArgument("-a", "--avatar").help("Specify a new group avatar image file");
subparser.addArgument("-m", "--member").nargs("*").help("Specify one or more members to add to the group");
+ subparser.addArgument("-r", "--remove-member")
+ .nargs("*")
+ .help("Specify one or more members to remove from the group");
}
@Override
List<String> groupMembers = ns.getList("member");
+ List<String> groupRemoveMembers = ns.getList("remove-member");
+
var groupAvatar = ns.getString("avatar");
try {
- var results = m.updateGroup(groupId,
- groupName,
- groupDescription,
- groupMembers,
- groupAvatar == null ? null : new File(groupAvatar));
- ErrorUtils.handleTimestampAndSendMessageResults(writer, 0, results.second());
- final var newGroupId = results.first();
if (groupId == null) {
+ var results = m.createGroup(groupName,
+ groupMembers,
+ groupAvatar == null ? null : new File(groupAvatar));
+ ErrorUtils.handleTimestampAndSendMessageResults(writer, 0, results.second());
+ final var newGroupId = results.first();
writer.println("Created new group: \"{}\"", newGroupId.toBase64());
+ } else {
+ var results = m.updateGroup(groupId,
+ groupName,
+ groupDescription,
+ groupMembers,
+ groupRemoveMembers,
+ groupAvatar == null ? null : new File(groupAvatar));
+ ErrorUtils.handleTimestampAndSendMessageResults(writer, results.first(), results.second());
}
} catch (AttachmentInvalidException e) {
throw new UserErrorException("Failed to add avatar attachment for group\": " + e.getMessage());