Пример #1
0
        public static void Prefix(NetworkReader reader)
        {
            if (!DevTools.Instance.Config.LoggingNetworkMessages)
            {
                return;
            }

            var newreader = NetworkReaderPool.GetReader(reader.buffer);

            newreader.Position = reader.Position;

            if (!MessagePacking.Unpack(newreader, out var key))
            {
                return;
            }
            if (NetworkServer.handlers.TryGetValue(key, out var networkMessageDelegate) && networkMessageDelegate.Method.DeclaringType.IsGenericType)
            {
                string methodName = networkMessageDelegate.Method.DeclaringType.GetGenericArguments()[0].Name;
                if (methodName == "CommandMessage")
                {
                    return;
                }
                if (DevTools.Instance.Config.DisabledLoggingNetworkMessages.Contains(methodName))
                {
                    return;
                }
                Log.Debug($"[Receiving: {methodName}]");
            }
            NetworkReaderPool.Recycle(newreader);
        }
Пример #2
0
        public void UnpackInvalidMessage()
        {
            // try an invalid message
            NetworkReader reader2 = new NetworkReader(new byte[0]);
            bool          result2 = MessagePacking.Unpack(reader2, out ushort msgType2);

            Assert.That(result2, Is.EqualTo(false));
            Assert.That(msgType2, Is.EqualTo(0));
        }
Пример #3
0
        public void TestUnpackMessageNonGeneric()
        {
            // try a regular message
            TestMessage message = new TestMessage()
            {
                IntValue    = 42,
                StringValue = "Hello world"
            };

            byte[]        data   = PackToByteArray(message);
            NetworkReader reader = new NetworkReader(data);

            bool result = MessagePacking.Unpack(reader, out ushort msgType);

            Assert.That(result, Is.EqualTo(true));
            Assert.That(msgType, Is.EqualTo(BitConverter.ToUInt16(data, 0)));
        }
Пример #4
0
        public void TestUnpackMessageNonGeneric()
        {
            // try a regular message
            SceneMessage message = new SceneMessage()
            {
                sceneName      = "Hello world",
                sceneOperation = SceneOperation.LoadAdditive
            };

            byte[]        data   = PackToByteArray(message);
            NetworkReader reader = new NetworkReader(data);

            bool result = MessagePacking.Unpack(reader, out ushort msgType);

            Assert.That(result, Is.EqualTo(true));
            Assert.That(msgType, Is.EqualTo(BitConverter.ToUInt16(data, 0)));
        }