using System; using System.Collections.Generic; using System.Linq; using UnityEngine.Events; namespace UnityEngine.Networking.PlayerConnection { // Token: 0x020004CE RID: 1230 [Serializable] internal class PlayerEditorConnectionEvents { // Token: 0x06003BE7 RID: 15335 RVA: 0x000694E4 File Offset: 0x000676E4 public void InvokeMessageIdSubscribers(Guid messageId, byte[] data, int playerId) { IEnumerable enumerable = this.messageTypeSubscribers.Where((PlayerEditorConnectionEvents.MessageTypeSubscribers x) => x.MessageTypeId == messageId); if (!enumerable.Any()) { Debug.LogError("No actions found for messageId: " + messageId); } else { MessageEventArgs messageEventArgs = new MessageEventArgs { playerId = playerId, data = data }; foreach (PlayerEditorConnectionEvents.MessageTypeSubscribers messageTypeSubscribers in enumerable) { messageTypeSubscribers.messageCallback.Invoke(messageEventArgs); } } } // Token: 0x06003BE8 RID: 15336 RVA: 0x000695B0 File Offset: 0x000677B0 public UnityEvent AddAndCreate(Guid messageId) { PlayerEditorConnectionEvents.MessageTypeSubscribers messageTypeSubscribers = this.messageTypeSubscribers.SingleOrDefault((PlayerEditorConnectionEvents.MessageTypeSubscribers x) => x.MessageTypeId == messageId); if (messageTypeSubscribers == null) { messageTypeSubscribers = new PlayerEditorConnectionEvents.MessageTypeSubscribers { MessageTypeId = messageId, messageCallback = new PlayerEditorConnectionEvents.MessageEvent() }; this.messageTypeSubscribers.Add(messageTypeSubscribers); } messageTypeSubscribers.subscriberCount++; return messageTypeSubscribers.messageCallback; } // Token: 0x06003BE9 RID: 15337 RVA: 0x00069634 File Offset: 0x00067834 public void UnregisterManagedCallback(Guid messageId, UnityAction callback) { PlayerEditorConnectionEvents.MessageTypeSubscribers messageTypeSubscribers = this.messageTypeSubscribers.SingleOrDefault((PlayerEditorConnectionEvents.MessageTypeSubscribers x) => x.MessageTypeId == messageId); if (messageTypeSubscribers != null) { messageTypeSubscribers.subscriberCount--; messageTypeSubscribers.messageCallback.RemoveListener(callback); if (messageTypeSubscribers.subscriberCount <= 0) { this.messageTypeSubscribers.Remove(messageTypeSubscribers); } } } // Token: 0x040011FE RID: 4606 [SerializeField] public List messageTypeSubscribers = new List(); // Token: 0x040011FF RID: 4607 [SerializeField] public PlayerEditorConnectionEvents.ConnectionChangeEvent connectionEvent = new PlayerEditorConnectionEvents.ConnectionChangeEvent(); // Token: 0x04001200 RID: 4608 [SerializeField] public PlayerEditorConnectionEvents.ConnectionChangeEvent disconnectionEvent = new PlayerEditorConnectionEvents.ConnectionChangeEvent(); // Token: 0x020004CF RID: 1231 [Serializable] public class MessageEvent : UnityEvent { } // Token: 0x020004D0 RID: 1232 [Serializable] public class ConnectionChangeEvent : UnityEvent { } // Token: 0x020004D1 RID: 1233 [Serializable] public class MessageTypeSubscribers { // Token: 0x17000D8C RID: 3468 // (get) Token: 0x06003BED RID: 15341 RVA: 0x000696D4 File Offset: 0x000678D4 // (set) Token: 0x06003BEE RID: 15342 RVA: 0x000696F4 File Offset: 0x000678F4 public Guid MessageTypeId { get { return new Guid(this.m_messageTypeId); } set { this.m_messageTypeId = value.ToString(); } } // Token: 0x04001201 RID: 4609 [SerializeField] private string m_messageTypeId; // Token: 0x04001202 RID: 4610 public int subscriberCount = 0; // Token: 0x04001203 RID: 4611 public PlayerEditorConnectionEvents.MessageEvent messageCallback = new PlayerEditorConnectionEvents.MessageEvent(); } } }