From 473569786b064ba41a02342a8d2de5e64cce580e Mon Sep 17 00:00:00 2001 From: Madpeter Date: Fri, 23 Oct 2020 19:38:08 +0100 Subject: [PATCH] new command get group members --- Core/Commands/Group/getGroupMembers.cs | 58 ++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 Core/Commands/Group/getGroupMembers.cs diff --git a/Core/Commands/Group/getGroupMembers.cs b/Core/Commands/Group/getGroupMembers.cs new file mode 100644 index 0000000..f31aae2 --- /dev/null +++ b/Core/Commands/Group/getGroupMembers.cs @@ -0,0 +1,58 @@ +using System; +using System.Collections.Generic; +using System.Text; +using OpenMetaverse; + +namespace BSB.Commands.Group +{ + public class GetGroupMembers : CoreCommand_2arg + { + public override string[] ArgTypes { get { return new[] { "UUID", "Mixed" }; } } + public override string[] ArgHints { get { return new[] { "Group", "Smart reply [Channel|IM uuid|http url]" }; } } + public override string Helpfile { get { return "Gets membership of a group plus online status "; } } + public override bool CallFunction(string[] args) + { + if (base.CallFunction(args) == true) + { + if (UUID.TryParse(args[0], out UUID targetgroup) == true) + { + if (bot.MyGroups.ContainsKey(targetgroup) == true) + { + if (bot.CreateAwaitEventReply("groupmembersreply", this, args) == true) + { + bot.GetClient.Groups.RequestGroupMembers(targetgroup); + InfoBlob = "Requesting group membership"; + return true; + } + else + { + return Failed("Unable to await reply"); + } + + } + else + { + return Failed("Unknown group"); + } + } + else + { + return Failed("Invaild UUID"); + } + } + return false; + } + + public override void Callback(string[] args, EventArgs e) + { + GroupMembersReplyEventArgs members_reply = (GroupMembersReplyEventArgs)e; + Dictionary collection = new Dictionary(); + foreach (KeyValuePair data in members_reply.Members) + { + collection.Add(data.Key.ToString(), data.Value.OnlineStatus); + } + bot.GetCommandsInterface.SmartCommandReply(true, args[1], "group=" + args[0], CommandName, collection); + base.Callback(args, e); + } + } +}