48 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package com.mojang.realmsclient;
 | |
| 
 | |
| import java.util.Locale;
 | |
| import net.fabricmc.api.EnvType;
 | |
| import net.fabricmc.api.Environment;
 | |
| 
 | |
| @Environment(EnvType.CLIENT)
 | |
| public enum Unit {
 | |
| 	B,
 | |
| 	KB,
 | |
| 	MB,
 | |
| 	GB;
 | |
| 
 | |
| 	private static final int BASE_UNIT = 1024;
 | |
| 
 | |
| 	public static Unit getLargest(long bytes) {
 | |
| 		if (bytes < 1024L) {
 | |
| 			return B;
 | |
| 		} else {
 | |
| 			try {
 | |
| 				int i = (int)(Math.log(bytes) / Math.log(1024.0));
 | |
| 				String string = String.valueOf("KMGTPE".charAt(i - 1));
 | |
| 				return valueOf(string + "B");
 | |
| 			} catch (Exception var4) {
 | |
| 				return GB;
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	public static double convertTo(long bytes, Unit unit) {
 | |
| 		return unit == B ? bytes : bytes / Math.pow(1024.0, unit.ordinal());
 | |
| 	}
 | |
| 
 | |
| 	public static String humanReadable(long bytes) {
 | |
| 		int i = 1024;
 | |
| 		if (bytes < 1024L) {
 | |
| 			return bytes + " B";
 | |
| 		} else {
 | |
| 			int j = (int)(Math.log(bytes) / Math.log(1024.0));
 | |
| 			String string = "KMGTPE".charAt(j - 1) + "";
 | |
| 			return String.format(Locale.ROOT, "%.1f %sB", bytes / Math.pow(1024.0, j), string);
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	public static String humanReadable(long bytes, Unit unit) {
 | |
| 		return String.format(Locale.ROOT, "%." + (unit == GB ? "1" : "0") + "f %s", convertTo(bytes, unit), unit.name());
 | |
| 	}
 | |
| }
 |