Пример #1
0
        public override void HandlePacket(BinaryReader reader, int whoAmI)
        {
            PacketMessageType message = (PacketMessageType)reader.ReadByte();
            byte          player      = reader.ReadByte();
            MagicalPlayer modPlayer   = Main.player[player].GetModPlayer <MagicalPlayer>();

            switch (message)
            {
            case PacketMessageType.All:
                modPlayer.EquipShoeSlot.Item  = ItemIO.Receive(reader);
                modPlayer.VanityShoeSlot.Item = ItemIO.Receive(reader);
                modPlayer.ShoeDyeSlot.Item    = ItemIO.Receive(reader);
                if (Main.netMode == NetmodeID.Server)
                {
                    ModPacket packet = GetPacket();
                    packet.Write((byte)PacketMessageType.All);
                    packet.Write(player);
                    ItemIO.Send(modPlayer.EquipShoeSlot.Item, packet);
                    ItemIO.Send(modPlayer.VanityShoeSlot.Item, packet);
                    ItemIO.Send(modPlayer.ShoeDyeSlot.Item, packet);
                    packet.Send(-1, whoAmI);
                }
                break;

            case PacketMessageType.EquipShoeSlot:
                modPlayer.EquipShoeSlot.Item = ItemIO.Receive(reader);
                if (Main.netMode == NetmodeID.Server)
                {
                    modPlayer.SendSingleItemPacket(PacketMessageType.EquipShoeSlot, modPlayer.EquipShoeSlot.Item, -1, whoAmI);
                }
                break;

            case PacketMessageType.VanityShoeSlot:
                modPlayer.VanityShoeSlot.Item = ItemIO.Receive(reader);
                if (Main.netMode == NetmodeID.Server)
                {
                    modPlayer.SendSingleItemPacket(PacketMessageType.VanityShoeSlot, modPlayer.VanityShoeSlot.Item, -1, whoAmI);
                }
                break;

            case PacketMessageType.ShoeDyeSlot:
                modPlayer.ShoeDyeSlot.Item = ItemIO.Receive(reader);
                if (Main.netMode == NetmodeID.Server)
                {
                    modPlayer.SendSingleItemPacket(PacketMessageType.ShoeDyeSlot, modPlayer.ShoeDyeSlot.Item, -1, whoAmI);
                }
                break;

            default:
                Logger.InfoFormat("Magical Things: Unknown message type: ", DisplayName);
                //ErrorLogger.Log("Magical Things: Unknown message type: " + message);
                break;
            }
        }