Code/ChitChat/Components/EventActionListenerComponent.cs
using Sandbox;
using System;
using System.Collections.Generic;
using System.Linq;

namespace ChitChat;

[Title("Event Listener")][Category("ChitChat")][Icon("event")]
public sealed class EventActionListenerComponent : Component, IEventActionListener
{
	[Property][Description("Invokes when an ActionEvent with the same name has been invoked.")] 
	public event Action OnEvent;
	[Property][Description("Event names that will invoke OnEvent.")] 
	public List<string> EventNames { get; set; }

	public void OnEventAction(string eventName)
	{
		if (EventNames.Any(name => name.Contains(eventName)))
		{
			OnEvent?.Invoke();
		}
	}
}