Commit a0067b66 authored by KingRainbow44's avatar KingRainbow44
Browse files

Add JSON-related methods to `Utils.java`

parent 39f23a0c
...@@ -6,10 +6,7 @@ import java.nio.file.Files; ...@@ -6,10 +6,7 @@ import java.nio.file.Files;
import java.nio.file.StandardCopyOption; import java.nio.file.StandardCopyOption;
import java.time.*; import java.time.*;
import java.time.temporal.TemporalAdjusters; import java.time.temporal.TemporalAdjusters;
import java.util.HashMap; import java.util.*;
import java.util.Map;
import java.util.Random;
import java.util.Locale;
import emu.grasscutter.Grasscutter; import emu.grasscutter.Grasscutter;
import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBuf;
...@@ -308,10 +305,42 @@ public final class Utils { ...@@ -308,10 +305,42 @@ public final class Utils {
} }
/** /**
* get language code from Locale * Gets the language code from a given locale.
* @param locale A locale.
* @return A string in the format of 'XX-XX'.
*/ */
public static String getLanguageCode(Locale locale) { public static String getLanguageCode(Locale locale) {
return String.format("%s-%s", locale.getLanguage(), locale.getCountry()); return String.format("%s-%s", locale.getLanguage(), locale.getCountry());
} }
/**
* Base64 encodes a given byte array.
* @param toEncode An array of bytes.
* @return A base64 encoded string.
*/
public static String base64Encode(byte[] toEncode) {
return Base64.getEncoder().encodeToString(toEncode);
}
/**
* Base64 decodes a given string.
* @param toDecode A base64 encoded string.
* @return An array of bytes.
*/
public static byte[] base64Decode(String toDecode) {
return Base64.getDecoder().decode(toDecode);
}
/**
* Safely JSON decodes a given string.
* @param jsonData The JSON-encoded data.
* @return JSON decoded data, or null if an exception occurred.
*/
public static <T> T jsonDecode(String jsonData, Class<T> classType) {
try {
return Grasscutter.getGsonFactory().fromJson(jsonData, classType);
} catch (Exception ignored) {
return null;
}
}
} }
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment