/// <summary> /// Unregister a method. /// </summary> /// <param name="code">The code the method was registered to.</param> /// <param name="method">The method to remove.</param> public void UnregisterEvent(int code, delegateNetworkEvent method) { if (_registeredEvents.ContainsKey(code)) { if (_registeredEvents[code].Contains(method)) _registeredEvents[code].Remove(method); } }
/// <summary> /// Run a registered event with the relevant arguments. /// </summary> /// <param name="method">The method to be run.</param> /// <param name="eventArgs">Arguments to pass the the method.</param> private void ExecuteEvent(delegateNetworkEvent method, NetworkEventArgs eventArgs) { try { method(eventArgs.BasePacket, eventArgs); } catch (Exception e) { ThrowOnExceptionOccured(this, e); } }
/// <summary> /// Register a method to run if any packets recieved contain the specified code. /// </summary> /// <param name="code">The code on the packet that will initiate the method.</param> /// <param name="method">The method that will be run.</param> public void RegisterEvent(int code, delegateNetworkEvent method) { if (!_registeredEvents.ContainsKey(code)) _registeredEvents.Add(code, new List<delegateNetworkEvent>()); _registeredEvents[code].Add(method); }