public void TriggerEventData(MapPlayer mapPlayer, MapEvent mapEvent) { if (mapEvent == null || mapEvent.GetEventData() == null) { return; } if (mapEvent.Locked) // add player lock id list so others can interact //we did this because sometimes a player could double trigger an event as it started / finished (event touch for example spamming the trigger) { return; } TriggeringEvent parent = new TriggeringEvent(null, mapEvent); _triggeringEvents.Add(parent); if (mapPlayer == null) { List <MapPlayer> players = _serverMap.GetMapInstance().GetMapPlayers(); for (int i = 0; i < players.Count; i++) { _triggeringEvents.Add(new TriggeringEvent(players[i], mapEvent, parent)); } } else { _triggeringEvents.Add(new TriggeringEvent(mapPlayer, mapEvent, parent)); } mapEvent.Locked = true; }