TeamBlocker.cs
using Sandbox;
using System;

public sealed class TeamBlocker : Component, Component.ITriggerListener
{
	[Property]
	public ButtonMasherPlayerController.TeamType AllowedTeam { get; set; } = ButtonMasherPlayerController.TeamType.Player2;

	[Property]
	public BoxCollider SolidCollider { get; set; }

	private int _allowedPlayersInside;

	protected override void OnStart()
	{
		if ( SolidCollider != null )
			SolidCollider.Enabled = true;
	}

	public void OnTriggerEnter( Collider other )
	{
		var player = other.GameObject.Components.Get<ButtonMasherPlayerController>( FindMode.EverythingInSelfAndAncestors );
		if ( player == null )
			return;

		if ( player.Team == AllowedTeam )
		{
			_allowedPlayersInside++;

			if ( SolidCollider != null )
				SolidCollider.Enabled = false;
		}
	}

	public void OnTriggerExit( Collider other )
	{
		var player = other.GameObject.Components.Get<ButtonMasherPlayerController>( FindMode.EverythingInSelfAndAncestors );
		if ( player == null )
			return;

		if ( player.Team == AllowedTeam )
		{
			_allowedPlayersInside = Math.Max( 0, _allowedPlayersInside - 1 );

			if ( _allowedPlayersInside == 0 && SolidCollider != null )
				SolidCollider.Enabled = true;
		}
	}
}