Exemple #1
0
 // This registers objects that are going to be sent over the network.
 public static void register(EndPoint endPoint) {
   Kryo kryo = endPoint.getKryo();
   kryo.register(RegisterName.class);
   kryo.register(String[].class);
   kryo.register(UpdateNames.class);
   kryo.register(ChatMessage.class);
 }
 /**
  * register a class
  *
  * @param kryo
  * @param s name of a class - might not exist
  * @param handled Set of classes already handles
  */
 protected void doRegistration(final Kryo kryo, final Class pC) {
   if (kryo != null) {
     kryo.register(pC);
     // also register arrays of that class
     Class arrayType = Array.newInstance(pC, 0).getClass();
     kryo.register(arrayType);
   }
 }
 public static void register(Kryo kryo) {
   kryo.register(TestObject.class);
   kryo.register(MessageWithTestObject.class);
   kryo.register(StackTraceElement.class);
   kryo.register(StackTraceElement[].class);
   kryo.register(UnsupportedOperationException.class);
   ObjectSpace.registerClasses(kryo);
 }
  /**
   * do the real work of registering all classes
   *
   * @param kryo
   */
  @Override
  public void registerClasses(@Nonnull Kryo kryo) {
    kryo.register(Object[].class);
    kryo.register(scala.Tuple2[].class);

    doRegistration(kryo, "scala.collection.mutable.WrappedArray$ofRef");
    doRegistration(kryo, "com.nielsen.perfengg.SparkD");

    // and many more similar nines

  }
  // This registers objects that are going to be sent over the network.
  public static void register(EndPoint endPoint) {
    Kryo kryo = endPoint.getKryo();
    kryo.register(RegisterName.class);
    kryo.register(String[].class);
    kryo.register(UpdateNames.class);
    kryo.register(ChatMessage.class);

    FieldSerializer<Data> dataClassSerializer = new FieldSerializer<Data>(kryo, Data.class);
    dataClassSerializer.getField("bytes").setClass(byte[].class, new ByteArraySerializer());
    dataClassSerializer.getField("string").setClass(String.class, new StringSerializer());
    dataClassSerializer.getField("string").setCanBeNull(true);
    kryo.register(Data.class, dataClassSerializer);
  }
 @Override
 public void registerClasses(@Nonnull Kryo kryo) {
   kryo.register(Object[].class);
   kryo.register(scala.Tuple2[].class);
   kryo.register(String.class);
   kryo.register(SpatialFilter.class);
   kryo.register(PointImpl.class);
   kryo.register(Shape.class);
   kryo.register(SpatialRelation.class);
   kryo.register(SpatialContext.class);
   kryo.register(SpatialContext.GEO.getClass());
   doRegistration(kryo, "scala.collection.mutable.WrappedArray$ofRef");
 }
Exemple #7
0
  /**
   * Registers the classes needed to use ObjectSpaces. This should be called before any connections
   * are opened.
   *
   * @see Kryo#register(Class, Serializer)
   */
  public static void registerClasses(final Kryo kryo) {
    kryo.register(Object[].class);
    kryo.register(InvokeMethod.class);

    FieldSerializer serializer =
        (FieldSerializer) kryo.register(InvokeMethodResult.class).getSerializer();
    serializer
        .getField("objectID")
        .setClass(
            int.class,
            new Serializer<Integer>() {
              @Override
              public void write(Kryo kryo, Output output, Integer object) {
                output.writeInt(object, true);
              }

              @Override
              public Integer read(Kryo kryo, Input input, Class<Integer> type) {
                return input.readInt(true);
              }
            });

    kryo.register(
        InvocationHandler.class,
        new Serializer() {
          @Override
          public void write(Kryo kryo, Output output, Object object) {
            RemoteInvocationHandler handler =
                (RemoteInvocationHandler) Proxy.getInvocationHandler(object);
            output.writeInt(handler.objectID, true);
          }

          @Override
          public Object read(Kryo kryo, Input input, Class type) {
            int objectID = input.readInt(true);
            Connection connection = (Connection) kryo.getContext().get("connection");
            Object object = getRegisteredObject(connection, objectID);
            if (WARN && (object == null)) {
              warn("kryonet", "Unknown object ID " + objectID + " for connection: " + connection);
            }
            return object;
          }
        });
  }
Exemple #8
0
 public static Kryo create() {
   Kryo kryo = new Kryo();
   kryo.register(Status.class);
   kryo.register(User.class);
   kryo.register(RepostCrawlState.class);
   kryo.register(UserCrawlState.class);
   kryo.register(TimeSeriesUpdateState.class);
   kryo.register(Visible.class);
   kryo.register(Source.class);
   kryo.register(Date.class);
   return kryo;
 }
 public DbMessageLogger() {
   kryo =
       new Kryo() {
         public Serializer newSerializer(Class aClass) {
           if (SubListSerializer.canSerialize(aClass)) return new SubListSerializer(this);
           return super.newSerializer(aClass);
         }
       };
   kryo.register(Arrays.asList("").getClass(), new ArraysAsListSerializer(kryo));
   kryo.setRegistrationOptional(true);
 }
 @Before
 public void setUp() throws Exception {
   StoreConfig config = new StoreConfig();
   config.setDataFileName(DATA_FILE_NAME);
   config.setDataMappedMemorySize(DATA_MAPPED_BUFFER_SIZE);
   config.setInitialFileSize(DATA_FILE_SIZE);
   Kryo kryo = new Kryo();
   kryo.register(VertexImpl.class);
   TypeResolver.registerClass(VertexImpl.class, (byte) 0);
   store = new VertexStore(config, kryo);
   store.start();
 }
Exemple #11
0
  public static void register(EndPoint endpoint) {
    Kryo kryo = endpoint.getKryo();

    kryo.register(byte[].class);
    kryo.register(CameraMessage.class);
    kryo.register(CameraMessage.MessageId.class);
    kryo.register(CarDetectedMessage.class);
    kryo.register(ConfigureMapMessage.class);
    kryo.register(UpdateCarMessage.class);
  }
  @Test
  public void test_kryo() {
    Kryo kryo = new Kryo();
    kryo.register(AdapterWfLaunchInfo.class);
    {
      Output output = new Output(1024);
      final AdapterWfLaunchInfo object = new AdapterWfLaunchInfo();
      object.setAdapterName("abc");
      kryo.writeClassAndObject(output, object);
      kryo.writeClassAndObject(output, new LogEvent());
      assertTrue(output.getBuffer().length > 0);

      Input input = new Input(output.getBuffer());
      assertEquals(AdapterWfLaunchInfo.class, kryo.readClassAndObject(input).getClass());
      assertEquals(LogEvent.class, kryo.readClassAndObject(input).getClass());
    }
  }
  @Test
  @Parameters(method = "parameters")
  public void inputAndOutputAreSame(Gender gender, Range range) {
    Seeking inputElement = new Seeking(gender, range);
    Kryo kryo = new Kryo();
    kryo.register(Range.class, new RangeSerializer());

    SeekingSerializer serializer = new SeekingSerializer();

    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    Output output = new Output(outputStream);
    serializer.write(kryo, output, inputElement);
    output.flush();

    Input input = new Input(new ByteArrayInputStream(outputStream.toByteArray()));
    Seeking outputElement = serializer.read(kryo, input, Seeking.class);

    Assert.assertEquals(inputElement.getAgeRange(), outputElement.getAgeRange());
    Assert.assertEquals(inputElement.getGender(), outputElement.getGender());
  }
 public BinaryQueueImpl(
     long waitOnEmptyImMs, String path, String name, final Class<? extends Event>[] clazzes)
     throws IOException {
   this.directory = path;
   this.name = name;
   this.waitOnEmtpyInMs = waitOnEmptyImMs;
   queue = new BigQueueImpl(directory, name);
   backOff = waitOnEmptyImMs;
   final AtomicInteger ids = new AtomicInteger(11);
   KryoFactory factory =
       () -> {
         Kryo kryo = new Kryo();
         kryo.setRegistrationRequired(true);
         for (Class<? extends Event> c : clazzes) {
           kryo.register(c, ids.incrementAndGet());
         }
         return kryo;
       };
   pool = new KryoPool.Builder(factory).softReferences().build();
 }
Exemple #15
0
  public static void main(String[] args) {

    // System.out.println(s1);
    /*
    byte[] bytes = {-41, -96, -41, -103, -41, -95};
    String s = new String(bytes);
    char c0 = (char)bytes[1];
    System.out.println(c0);
    */
    Kryo kryo = new Kryo();
    Dog d = new Dog("snoopy", 1980);
    kryo.register(Dog.class);
    byte[] bytes = new byte[1024];
    Output output = new Output(1024);

    /*
    Input input = new Input(bytes);
    Dog d2 = kryo.readObject(input, Dog.class);
    System.out.println(d2);
    */

  }
Exemple #16
0
 public void start() {
   try {
     this.server =
         new Server(Globals.PACKET_MAX_SIZE * Globals.PACKET_MAX_PER_CON, Globals.PACKET_MAX_SIZE);
     Kryo kyro = this.server.getKryo();
     kyro.register(byte[].class);
     this.receiver = new PacketReceiver();
     this.server.addListener(new Listener.ThreadedListener(this.receiver));
     server.bind(Globals.SERVER_TCP_PORT);
     server.start();
     Globals.log(
         GameServer.class,
         "Server listening on port TCP: " + Globals.SERVER_TCP_PORT,
         Globals.LOG_TYPE_DATA,
         true);
     // Globals.log(GameServer.class, "Server listening on port UDP: " + Globals.SERVER_UDP_PORT,
     // Globals.LOG_TYPE_DATA, true);
   } catch (IOException ex) {
     Globals.logError(ex.getStackTrace()[0].toString(), ex, true);
     System.exit(1);
   }
 }
  @Override
  public void init(GameContainer container, StateBasedGame sbg) throws SlickException {
    if (!isFirstInit) {
      this.client = new Client(250000, 250000);
      this.client.start();

      Kryo kryo = this.client.getKryo();
      kryo.register(newPlayerConnectionRequest.class);
      kryo.register(newPlayerConnectionResponse.class);
      kryo.register(gameStart.class);
      kryo.register(String[].class);
      kryo.register(RenderContainer.class);
      kryo.register(PlayerInfo.class);
      kryo.register(LinkedList.class);
      kryo.register(RenderPackage.class);
      Log.set(Log.LEVEL_DEBUG);
      this.connect();
      MultiplayerGameState.sbg = sbg;
    }
    this.bg = new Background(this.gp.getResourceLoader().getImage("img/bg.jpg"));
    this.isFirstInit = false;
    this.gp.init(false);
    this.player =
        new Player(
            50,
            FakeGameContainer.getInstance().getHeight() / 3,
            250,
            250,
            100,
            100,
            300,
            300,
            "img/Hammerheadblue.png",
            true);
    this.timerDelta = 0;
    MultiplayerGameState.updatePlayer = false;
    MultiplayerGameState.indexp = 0;
  }
  public RemoteMinecraft(String address) {
    client = new Client(65536, 65536);
    Kryo kryo = client.getKryo();
    kryo.register(NetCreateWorldRequest.class);
    kryo.register(NetGetBiomeDataRequest.class);
    kryo.register(NetGetBiomeDataResult.class);
    kryo.register(NetBiome.class);
    kryo.register(NetBiome[].class);
    kryo.register(NetInfoRequest.class);
    kryo.register(int[].class);

    client.addListener(
        new Listener() {
          @Override
          public void received(Connection connection, Object object) {
            if (object instanceof NetGetBiomeDataResult) {
              currentResults = (NetGetBiomeDataResult) object;
              // Log.i("Received NetGetBiomeDataResult: " + currentResults);
            } else if (object instanceof NetBiome[]) {
              NetBiome[] biomes = (NetBiome[]) object;
              for (int i = 0; i < biomes.length; i++) {
                if (biomes[i] != null) {
                  new Biome(biomes[i].name, biomes[i].id, biomes[i].color | 0xFF000000, true);
                }
              }
            }
          }
        });

    client.start();
    try {
      client.connect(5000, address, 54580, 54580);
    } catch (IOException e) {
      e.printStackTrace();
    }

    client.sendTCP(new NetInfoRequest());
  }
Exemple #19
0
  public EventsTester(GraphData graphData) {
    this.graphData = graphData;
    kryo.register(MoveEvent.class);
    //        kryo.register(TurnEvent.class);
    kryo.register(TickEvent.class);
    kryo.register(SimulatorEvent.class);
    kryo.register(ParkingEvent.class);
    kryo.register(InOut.class);
    kryo.register(CarType.class);

    //        eventWriter = new EventWriter(kryo);
    eventReader = new EventReader(kryo);
    try {
      output = new Output(new FileOutputStream("file.bin"));
      //            MyEventWriter myEV = new MyEventWriter(graphData, eventWriter);
      //            myEV.writeTicksAndEvents(output);
      input = new Input(new FileInputStream("file_1a_2000t.bin"));
    } catch (FileNotFoundException ex) {
      Logger.getLogger(EventsTester.class.getName()).log(Level.SEVERE, null, ex);
    }
  }
Exemple #20
0
 @Override
 protected void registerForKryo(final Kryo kryo) {
   kryo.register(Google2Profile.class);
   kryo.register(Google2Email.class);
 }
Exemple #21
0
 @Override
 protected void registerForKryo(final Kryo kryo) {
   kryo.register(WindowsLiveProfile.class);
 }
 @Override
 protected void registerForKryo(final Kryo kryo) {
   kryo.register(MyOpenIdProfile.class);
 }
Exemple #23
0
 private void registerKryo() {
   Kryo kryo = client.getKryo();
   kryo.register(java.util.ArrayList.class);
   kryo.register(java.util.Date.class);
   kryo.register(LogIn.class);
   kryo.register(Register.class);
   kryo.register(LogInSuccess.class);
   kryo.register(RegisterSuccess.class);
   kryo.register(LogInFailed.class);
   kryo.register(RegisterFailed.class);
   kryo.register(AddPlayer.class);
   kryo.register(RemovePlayer.class);
   kryo.register(CharacterClass.class);
   kryo.register(UserCharacter.class);
   kryo.register(CharacterCreateSuccess.class);
   kryo.register(CharacterCreateFailed.class);
   kryo.register(EnterWorld.class);
   kryo.register(PlayerPositionUpdate.class);
   kryo.register(MobType.class);
   kryo.register(MobUpdate.class);
   kryo.register(SnapShot.class);
   kryo.register(Attack.class);
   kryo.register(AttackStarted.class);
   kryo.register(MobAttack.class);
   kryo.register(ServerMessage.class);
   kryo.register(LogOut.class);
   kryo.register(SwitchCharacter.class);
 }
Exemple #24
0
 @Override
 protected void registerForKryo(final Kryo kryo) {
   kryo.register(DropBoxProfile.class);
 }
 {
   kryo.register(byte[][].class, new NetworkCommunicationSerializer());
 }
Exemple #26
0
  /** Initialize and register classes with kryo. */
  public void initialize() {
    // Register types we know about and do not require external configuration
    kryo.register(ArrayList.class);
    kryo.register(BasicCredentialMetaData.class);
    kryo.register(Class.class, new DefaultSerializers.ClassSerializer());
    kryo.register(ZonedDateTime.class, new ZonedDateTimeTranscoder());
    kryo.register(HardTimeoutExpirationPolicy.class);
    kryo.register(HashMap.class);
    kryo.register(LinkedHashMap.class);
    kryo.register(HashSet.class);
    kryo.register(DefaultHandlerResult.class);
    kryo.register(ImmutableAuthentication.class);
    kryo.register(MultiTimeUseOrTimeoutExpirationPolicy.class);
    kryo.register(NeverExpiresExpirationPolicy.class);
    kryo.register(RememberMeDelegatingExpirationPolicy.class);
    kryo.register(ServiceTicketImpl.class);
    kryo.register(
        SimpleWebApplicationServiceImpl.class, new SimpleWebApplicationServiceSerializer());
    kryo.register(ThrottledUseAndTimeoutExpirationPolicy.class);
    kryo.register(TicketGrantingTicketExpirationPolicy.class);
    kryo.register(TicketGrantingTicketImpl.class);
    kryo.register(TimeoutExpirationPolicy.class);
    kryo.register(UsernamePasswordCredential.class);
    kryo.register(SimplePrincipal.class);
    kryo.register(URL.class, new URLSerializer());
    kryo.register(URI.class, new URISerializer());
    kryo.register(Pattern.class, new RegexSerializer());
    kryo.register(UUID.class, new UUIDSerializer());
    kryo.register(EnumMap.class, new EnumMapSerializer());
    kryo.register(EnumSet.class, new EnumSetSerializer());

    // we add these ones for tests only
    kryo.register(RegisteredServiceImpl.class, new RegisteredServiceSerializer());
    kryo.register(RegexRegisteredService.class, new RegisteredServiceSerializer());

    kryo.register(CasDelegatingLogger.class, new DefaultSerializers.VoidSerializer());

    // from the kryo-serializers library (https://github.com/magro/kryo-serializers)
    UnmodifiableCollectionsSerializer.registerSerializers(kryo);
    ImmutableListSerializer.registerSerializers(kryo);
    ImmutableSetSerializer.registerSerializers(kryo);
    ImmutableMapSerializer.registerSerializers(kryo);
    ImmutableMultimapSerializer.registerSerializers(kryo);

    kryo.register(Collections.EMPTY_LIST.getClass(), new CollectionsEmptyListSerializer());
    kryo.register(Collections.EMPTY_MAP.getClass(), new CollectionsEmptyMapSerializer());
    kryo.register(Collections.EMPTY_SET.getClass(), new CollectionsEmptySetSerializer());

    // Register other types
    if (serializerMap != null) {
      serializerMap.forEach(kryo::register);
    }

    // don't reinit the registered classes after every write or read
    kryo.setAutoReset(false);
    // don't replace objects by references
    kryo.setReferences(false);
    // Catchall for any classes not explicitly registered
    kryo.setRegistrationRequired(false);
  }
 public static void registerClasses(Kryo kryo) {
   kryo.register(LoginRequest.class);
   kryo.register(LoginAccepted.class);
   kryo.register(SendResourceHashes.class);
   kryo.register(FullAtomUpdate.class);
   kryo.register(AtomDelta.class);
   kryo.register(ArrayList.class);
   kryo.register(InputData.class);
   kryo.register(SendMovementEvent.class);
   kryo.register(DialogSync.class);
   kryo.register(CreateDialog.class);
   kryo.register(VerbParameter.class);
   kryo.register(VerbParameter.Type.class);
   kryo.register(VerbSignature.class);
   kryo.register(VerbResponse.class);
   kryo.register(AtomVerbs.class);
 }
 public Kryo create() {
   Kryo kryo = new Kryo();
   kryo.register(java.sql.Date.class, new SqlDateSerializer());
   kryo.register(java.sql.Timestamp.class, new TimestampSerializer());
   kryo.register(Path.class, new PathSerializer());
   kryo.register(Arrays.asList("").getClass(), new ArraysAsListSerializer());
   ((Kryo.DefaultInstantiatorStrategy) kryo.getInstantiatorStrategy())
       .setFallbackInstantiatorStrategy(new StdInstantiatorStrategy());
   removeField(kryo, Operator.class, "colExprMap");
   removeField(kryo, AbstractOperatorDesc.class, "statistics");
   kryo.register(MapWork.class);
   kryo.register(ReduceWork.class);
   kryo.register(TableDesc.class);
   kryo.register(UnionOperator.class);
   kryo.register(FileSinkOperator.class);
   kryo.register(HiveIgnoreKeyTextOutputFormat.class);
   kryo.register(StandardConstantListObjectInspector.class);
   kryo.register(StandardConstantMapObjectInspector.class);
   kryo.register(StandardConstantStructObjectInspector.class);
   kryo.register(SequenceFileInputFormat.class);
   kryo.register(RCFileInputFormat.class);
   kryo.register(HiveSequenceFileOutputFormat.class);
   kryo.register(SparkEdgeProperty.class);
   kryo.register(SparkWork.class);
   kryo.register(Pair.class);
   return kryo;
 }
  /**
   * Register in the kryonet.
   *
   * @param endPoint The end point
   */
  public static void register(EndPoint endPoint) {

    Kryo kryo = endPoint.getKryo();

    /*
     * Registering all the command class here!
     */
    kryo.register(java.net.InetSocketAddress.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondConnectionManager.Command.Command.class);
    kryo.register(
        edu.jhu.cs.pl.group18.CurseOfMalphamondConnectionManager.Command.CommandTest.class);
    kryo.register(
        edu.jhu.cs.pl.group18.CurseOfMalphamondConnectionManager.Command.CommandTest2.class);
    kryo.register(
        edu.jhu.cs.pl.group18.CurseOfMalphamondConnectionManager.Command.RegisterConnectionCommand
            .class);
    kryo.register(
        edu.jhu.cs.pl.group18.CurseOfMalphamondConnectionManager.Command.UpdatePlayersCommand
            .class);
    kryo.register(
        edu.jhu.cs.pl.group18.CurseOfMalphamondConnectionManager.Command.AddPlayerCommand.class);
    kryo.register(
        edu.jhu.cs.pl.group18.CurseOfMalphamondConnectionManager.Command.RemovePlayerCommand.class);
    kryo.register(
        edu.jhu.cs.pl.group18.CurseOfMalphamondConnectionManager.Command.RollDiceCommand.class);
    kryo.register(
        edu.jhu.cs.pl.group18.CurseOfMalphamondConnectionManager.Command.UpdateDiceCommand.class);
    kryo.register(
        edu.jhu.cs.pl.group18.CurseOfMalphamondConnectionManager.Command.MoveNumTilesCommand.class);
    kryo.register(
        edu.jhu.cs.pl.group18.CurseOfMalphamondConnectionManager.Command.UpdateCharacterCommand
            .class);
    kryo.register(
        edu.jhu.cs.pl.group18.CurseOfMalphamondConnectionManager.Command.UpdateHandCommand.class);
    kryo.register(
        edu.jhu.cs.pl.group18.CurseOfMalphamondConnectionManager.Command.UpdateCurrentTileCommand
            .class);
    kryo.register(
        edu.jhu.cs.pl.group18.CurseOfMalphamondConnectionManager.Command.FightCommand.class);
    kryo.register(
        edu.jhu.cs.pl.group18.CurseOfMalphamondConnectionManager.Command.UpdateFightCommand.class);
    kryo.register(
        edu.jhu.cs.pl.group18.CurseOfMalphamondConnectionManager.Command.EndTurnCommand.class);
    kryo.register(
        edu.jhu.cs.pl.group18.CurseOfMalphamondConnectionManager.Command.CanChallengeBossCommand
            .class);
    kryo.register(
        edu.jhu.cs.pl.group18.CurseOfMalphamondConnectionManager.Command.ThrowExceptionCommand
            .class);
    kryo.register(
        edu.jhu.cs.pl.group18.CurseOfMalphamondConnectionManager.Command
            .UpdateCurrentActivePlayerCommand.class);
    kryo.register(
        edu.jhu.cs.pl.group18.CurseOfMalphamondConnectionManager.Command.ActionTileActCommand
            .class);
    kryo.register(
        edu.jhu.cs.pl.group18.CurseOfMalphamondConnectionManager.Command.ResourceTileActCommand
            .class);
    kryo.register(
        edu.jhu.cs.pl.group18.CurseOfMalphamondConnectionManager.Command.PlayCardCommand.class);

    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Position.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Player.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.CardContainer.CardContainer.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.CardContainer.Hand.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.CardContainer.Deck.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.CardContainer.UsedCards.class);

    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Actor.Actor.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Actor.Character.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Actor.Boss.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Actor.Monster.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Actor.Monsters.MonsterDragon.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Actor.Monsters.MonsterPhoenix.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Actor.Monsters.MonsterBeast.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Actor.Monsters.MonsterDevil.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Actor.Monsters.MonsterOctopus.class);

    kryo.register(
        edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Actor.Characters.CharacterBerserker.class);
    kryo.register(
        edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Actor.Characters.CharacterDemon.class);
    kryo.register(
        edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Actor.Characters.CharacterMage.class);
    kryo.register(
        edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Actor.Characters.CharacterPhilosopher.class);
    kryo.register(
        edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Actor.Characters.CharacterPriest.class);
    kryo.register(
        edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Actor.Characters.CharacterRoyalGuard.class);
    kryo.register(
        edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Actor.Characters.CharacterScout.class);
    kryo.register(java.util.ArrayList.class);
    kryo.register(java.util.List.class);
    kryo.register(String.class);

    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Dice.class);

    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Tile.MonsterTile.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Tile.ActionTile.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Tile.Tile.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Tile.TileType.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Tile.ResourceTile.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Tile.EmptyTile.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Tile.MovementTile.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Tile.OptionTile.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Tile.HealingFountainTile.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Tile.DrawingTile.class);

    // kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.AfterBattleCard.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.AfterRollDiceCard.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.BeforeBattleCard.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.BeforeRollDiceCard.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.DuringTurnCard.class);
    // kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.EnemyTurnCard.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.Card.class);

    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.CardType.BasicCard.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.CardType.CardType.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.CardType.CharacterCard.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.CardType.ExtraCard.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.CardType.MonsterCard.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.CardType.ResourceCard.class);

    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.BasicCards.Courage.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.BasicCards.Dart.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.BasicCards.Fortitude.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.BasicCards.GrandMarch.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.BasicCards.GrandRetreat.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.BasicCards.GreatCourage.class);
    kryo.register(
        edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.BasicCards.GreatFortitude.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.BasicCards.HealthPotion.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.BasicCards.Longevity.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.BasicCards.March.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.BasicCards.Panacea.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.BasicCards.Reroll.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.BasicCards.Retreat.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.BasicCards.Slash.class);

    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.CharacterCards.Duplicate.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.CharacterCards.Meditate.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.CharacterCards.Nightmare.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.CharacterCards.Prayer.class);
    kryo.register(
        edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.CharacterCards.SeismicSlam.class);
    kryo.register(
        edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.CharacterCards.ShieldToss.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.CharacterCards.Sprint.class);

    kryo.register(
        edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.ExtraCards.DuplicatedCard.class);

    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.MonsterCards.Marathon.class);

    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.ResourceCards.Deceive.class);
    kryo.register(edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.ResourceCards.Hustle.class);
    kryo.register(
        edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.ResourceCards.LightningBolt.class);
    kryo.register(
        edu.jhu.cs.pl.group18.CurseOfMalphamondModel.Card.ResourceCards.PhysicalTraining.class);
  }
 private static void removeField(Kryo kryo, Class type, String fieldName) {
   FieldSerializer fld = new FieldSerializer(kryo, type);
   fld.removeField(fieldName);
   kryo.register(type, fld);
 }