private static void CollectHandlers() { NetworkMessageHandlerAttribute.clientMessageHandlers.Clear(); NetworkMessageHandlerAttribute.serverMessageHandlers.Clear(); HashSet <short> hashSet = new HashSet <short>(); Type[] types = typeof(NetworkMessageHandlerAttribute).Assembly.GetTypes(); for (int i = 0; i < types.Length; i++) { foreach (MethodInfo methodInfo in types[i].GetMethods(BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic)) { object[] customAttributes = methodInfo.GetCustomAttributes(false); for (int k = 0; k < customAttributes.Length; k++) { NetworkMessageHandlerAttribute networkMessageHandlerAttribute = ((Attribute)customAttributes[k]) as NetworkMessageHandlerAttribute; if (networkMessageHandlerAttribute != null) { networkMessageHandlerAttribute.messageHandler = (NetworkMessageDelegate)Delegate.CreateDelegate(typeof(NetworkMessageDelegate), methodInfo); if (networkMessageHandlerAttribute.messageHandler != null) { if (networkMessageHandlerAttribute.client) { NetworkMessageHandlerAttribute.clientMessageHandlers.Add(networkMessageHandlerAttribute); hashSet.Add(networkMessageHandlerAttribute.msgType); } if (networkMessageHandlerAttribute.server) { NetworkMessageHandlerAttribute.serverMessageHandlers.Add(networkMessageHandlerAttribute); hashSet.Add(networkMessageHandlerAttribute.msgType); } } if (networkMessageHandlerAttribute.messageHandler == null) { Debug.LogWarningFormat("Could not register message handler for {0}. The function signature is likely incorrect.", new object[] { methodInfo.Name }); } if (!networkMessageHandlerAttribute.client && !networkMessageHandlerAttribute.server) { Debug.LogWarningFormat("Could not register message handler for {0}. It is marked as neither server nor client.", new object[] { methodInfo.Name }); } } } } } for (short num = 48; num < 71; num += 1) { if (!hashSet.Contains(num)) { Debug.LogWarningFormat("Network message MsgType.Highest + {0} is unregistered.", new object[] { (int)(num - 47) }); } } }
private static void CollectHandlers() { NetworkMessageHandlerAttribute.clientMessageHandlers.Clear(); NetworkMessageHandlerAttribute.serverMessageHandlers.Clear(); HashSet <short> hashSet = new HashSet <short>(); foreach (SearchableAttribute searchableAttribute in SearchableAttribute.GetInstances <NetworkMessageHandlerAttribute>()) { NetworkMessageHandlerAttribute networkMessageHandlerAttribute = (NetworkMessageHandlerAttribute)searchableAttribute; MethodInfo methodInfo = networkMessageHandlerAttribute.target as MethodInfo; if (!(methodInfo == null) && methodInfo.IsStatic) { networkMessageHandlerAttribute.messageHandler = (NetworkMessageDelegate)Delegate.CreateDelegate(typeof(NetworkMessageDelegate), methodInfo); if (networkMessageHandlerAttribute.messageHandler != null) { if (networkMessageHandlerAttribute.client) { NetworkMessageHandlerAttribute.clientMessageHandlers.Add(networkMessageHandlerAttribute); hashSet.Add(networkMessageHandlerAttribute.msgType); } if (networkMessageHandlerAttribute.server) { NetworkMessageHandlerAttribute.serverMessageHandlers.Add(networkMessageHandlerAttribute); hashSet.Add(networkMessageHandlerAttribute.msgType); } } if (networkMessageHandlerAttribute.messageHandler == null) { Debug.LogWarningFormat("Could not register message handler for {0}. The function signature is likely incorrect.", new object[] { methodInfo.Name }); } if (!networkMessageHandlerAttribute.client && !networkMessageHandlerAttribute.server) { Debug.LogWarningFormat("Could not register message handler for {0}. It is marked as neither server nor client.", new object[] { methodInfo.Name }); } } } for (short num = 48; num < 75; num += 1) { if (!hashSet.Contains(num)) { Debug.LogWarningFormat("Network message MsgType.Highest + {0} is unregistered.", new object[] { (int)(num - 47) }); } } }