From f4e5bd828bfaa242ac986040ab9ce29fb7323fd8 Mon Sep 17 00:00:00 2001 From: onefang Date: Sat, 24 Jul 2021 00:44:57 +1000 Subject: Auto add groups for all hypergridders. --- OpenSim/Region/Framework/Scenes/Scene.cs | 43 ++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'OpenSim/Region') diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 5819695..05b0f62 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs @@ -1177,6 +1177,18 @@ namespace OpenSim.Region.Framework.Scenes m_log.Warn("[SCENE]: Duplicated AddDefaultGroup option."); } } + groups = groupsConfig.GetString("AddHGDefaultGroup", string.Empty); + if (groups.Length > 0) + { + try + { + m_AutoGroups.Add("HYPERGRIDDER", groups.Split('|')); + } + catch (ArgumentException) + { + m_log.Warn("[SCENE]: Duplicated AddDefaultGroup option."); + } + } string[] keys = groupsConfig.GetKeys(); if (0 < keys.Length) { @@ -4494,6 +4506,37 @@ namespace OpenSim.Region.Framework.Scenes m_log.ErrorFormat("[CONNECTION BEGIN]: Bogus group {0}, not adding {1}.", name, agent.AgentID); } } + if (!isLocal) + { + groupIDs = null; + try + { + groupIDs = m_AutoGroups["HYPERGRIDDER"]; + } + catch (KeyNotFoundException) + { + // Do nothing. + } + if (null != groupIDs) + { + foreach(string name in groupIDs) + { + GroupRecord g = m_groupsModule.GetGroupRecord(name); + if (null != g) + { + UUID group = g.GroupID; + if(!agentGroups.Contains(group)) + { + m_groupsModule.JoinGroup(agent.AgentID.ToString(), group); + agentGroups.Add(group); + m_log.InfoFormat("[CONNECTION BEGIN]: Automatically added {0} to group {1}.", agent.AgentID, name); + } + } + else + m_log.ErrorFormat("[CONNECTION BEGIN]: Bogus group {0}, not adding {1}.", name, agent.AgentID); + } + } + } } } -- cgit v1.1