Skip to content

OnGroupParentSet

Called when a group parent has been updated

Usage

  • No return behavior

Example Autogenerated

csharp
private void OnGroupParentSet( string name, string parent )
{
    Puts( "OnGroupParentSet works!" );
}

Location

  • Permission::SetGroupParent(string groupName, string parentGroupName)
csharp
public bool SetGroupParent(string groupName, string parentGroupName)
{
	if (!GroupExists(groupName))
	{
		return false;
	}

	// First, get the group data
	if (!groupsData.TryGetValue(groupName, out GroupData groupData))
	{
		return false;
	}

	if (string.IsNullOrEmpty(parentGroupName))
	{
		groupData.ParentGroup = null;
		return true;
	}

	if (!GroupExists(parentGroupName) || groupName.Equals(parentGroupName))
	{
		return false;
	}

	if (!string.IsNullOrEmpty(groupData.ParentGroup) && groupData.ParentGroup.Equals(parentGroupName))
	{
		return true;
	}

	if (HasCircularParent(groupName, parentGroupName))
	{
		return false;
	}

	// Change the parent group
	groupData.ParentGroup = parentGroupName;

	Interface.CallHook("OnGroupParentSet", groupName, parentGroupName);

	return true;
}

Released under the MIT License.