code: public static <T> void registerBlockData(String identifier, Function<ByteBuf, T> fromBytes, Function<T, ByteBuf> toBytes)
  	{
  		instance.handlerInfos.put(identifier, new HandlerInfo<>(identifier, fromBytes, toBytes));
  	}
docs: Registers a custom block data with the specified identifier.
  
  @param <T> the generic type
  @param identifier the identifier
  @param fromBytes the from bytes
  @param toBytes the to bytes