From c0be75434ce4d47ebf46e644fa88eb9185fae4a1 Mon Sep 17 00:00:00 2001 From: Madpeter <57852827+Madpeterz@users.noreply.github.com> Date: Sat, 27 Sep 2025 19:31:20 +0100 Subject: [PATCH] fix bork'd RequestBanAction --- LibreMetaverse/GroupManager.cs | 16 ++++++++-------- SecondBotEvents/Commands/Group.cs | 9 +++------ 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/LibreMetaverse/GroupManager.cs b/LibreMetaverse/GroupManager.cs index b933268..7bff582 100644 --- a/LibreMetaverse/GroupManager.cs +++ b/LibreMetaverse/GroupManager.cs @@ -1709,21 +1709,21 @@ namespace OpenMetaverse /// Callback public void RequestBanAction(UUID groupID, GroupBanAction action, UUID[] agents, EventHandler callback) { - Uri uri = GetGroupAPIUri(groupID); - if (uri == null) { return; } - - Uri cap = Client.Network.CurrentSim.Caps.CapabilityURI("GroupBanAction"); - if (cap == null) { return; } - + Uri baseCap = GetGroupAPIUri(groupID); + if (baseCap == null) + { + Logger.Log("Unable to get Cap url for GroupAPIv1", Helpers.LogLevel.Warning, Client); + } OSDMap payload = new OSDMap { ["ban_action"] = (int)action }; OSDArray banIDs = new OSDArray(agents.Length); - foreach (var agent in agents) + for (int i = 0; i < agents.Length; i++) { + UUID agent = agents[i]; banIDs.Add(agent); } payload["ban_ids"] = banIDs; - Task req = Client.HttpCapsClient.PostRequestAsync(cap, OSDFormat.Xml, payload, CancellationToken.None, + Task req = Client.HttpCapsClient.PostRequestAsync(baseCap, OSDFormat.Xml, payload, CancellationToken.None, (response, data, error) => { if (error != null) { return; } diff --git a/SecondBotEvents/Commands/Group.cs b/SecondBotEvents/Commands/Group.cs index d6895c3..0fec74b 100644 --- a/SecondBotEvents/Commands/Group.cs +++ b/SecondBotEvents/Commands/Group.cs @@ -75,12 +75,9 @@ namespace SecondBotEvents.Commands { Action = GroupBanAction.Unban; } - List avatarstoaction = - [ - avataruuid - ]; - GetClient().Groups.RequestBanAction(groupuuid, Action, [.. avatarstoaction]); - return BasicReply("Accepted"); + GetClient().Groups.EjectUser(groupuuid, avataruuid); //Eject first + GetClient().Groups.RequestBanAction(groupuuid, Action, [avataruuid]); + return BasicReply("Accepted "+ Action.ToString()+" for "+avataruuid); }