代码清理以及微优化 (#2244)
This commit is contained in:
@@ -25,10 +25,8 @@ import java.io.UnsupportedEncodingException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.text.MessageFormat;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.ConcurrentMap;
|
||||
import java.util.logging.*;
|
||||
|
||||
/**
|
||||
@@ -41,20 +39,20 @@ public final class Logging {
|
||||
public static final Logger LOG = Logger.getLogger("HMCL");
|
||||
private static final ByteArrayOutputStream storedLogs = new ByteArrayOutputStream(IOUtils.DEFAULT_BUFFER_SIZE);
|
||||
|
||||
private static final ConcurrentMap<String, String> forbiddenTokens = new ConcurrentHashMap<>();
|
||||
private static volatile String[] accessTokens = new String[0];
|
||||
|
||||
public static void registerForbiddenToken(String token, String replacement) {
|
||||
forbiddenTokens.put(token, replacement);
|
||||
}
|
||||
public static synchronized void registerAccessToken(String token) {
|
||||
final String[] oldAccessTokens = accessTokens;
|
||||
final String[] newAccessTokens = Arrays.copyOf(oldAccessTokens, oldAccessTokens.length + 1);
|
||||
|
||||
public static void registerAccessToken(String accessToken) {
|
||||
registerForbiddenToken(accessToken, "<access token>");
|
||||
newAccessTokens[oldAccessTokens.length] = token;
|
||||
|
||||
accessTokens = newAccessTokens;
|
||||
}
|
||||
|
||||
public static String filterForbiddenToken(String message) {
|
||||
for (Map.Entry<String, String> entry : forbiddenTokens.entrySet()) {
|
||||
message = message.replace(entry.getKey(), entry.getValue());
|
||||
}
|
||||
for (String token : accessTokens)
|
||||
message = message.replace(token, "<access token>");
|
||||
return message;
|
||||
}
|
||||
|
||||
|
||||
@@ -17,9 +17,6 @@
|
||||
*/
|
||||
package org.jackhuang.hmcl.util;
|
||||
|
||||
import java.lang.reflect.AccessibleObject;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
/**
|
||||
@@ -30,20 +27,6 @@ public final class ReflectionHelper {
|
||||
private ReflectionHelper() {
|
||||
}
|
||||
|
||||
private static Method accessible0;
|
||||
|
||||
static {
|
||||
try {
|
||||
accessible0 = AccessibleObject.class.getDeclaredMethod("setAccessible0", boolean.class);
|
||||
accessible0.setAccessible(true);
|
||||
} catch (Throwable ignored) {
|
||||
}
|
||||
}
|
||||
|
||||
public static void setAccessible(AccessibleObject obj) throws InvocationTargetException, IllegalAccessException {
|
||||
accessible0.invoke(obj, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get caller, this method is caller sensitive.
|
||||
*
|
||||
|
||||
@@ -1,67 +0,0 @@
|
||||
/*
|
||||
* Hello Minecraft! Launcher
|
||||
* Copyright (C) 2021 huangyuhui <huanghongxun2008@126.com> and contributors
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package org.jackhuang.hmcl.util;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
public abstract class Result<T> {
|
||||
|
||||
public T get() {
|
||||
throw new IllegalStateException("TriState not ok");
|
||||
}
|
||||
|
||||
public boolean isOK() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isError() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static <T> Result<T> ok(T result) {
|
||||
return new OK<>(Objects.requireNonNull(result));
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public static <T> Result<T> error() {
|
||||
return (Result<T>) Error.INSTANCE;
|
||||
}
|
||||
|
||||
private static class OK<T> extends Result<T> {
|
||||
private final T result;
|
||||
|
||||
public OK(T result) {
|
||||
this.result = result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public T get() {
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
private static class Error<T> extends Result<T> {
|
||||
public static final Error<Void> INSTANCE = new Error<>();
|
||||
|
||||
@Override
|
||||
public boolean isError() {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
/*
|
||||
* Hello Minecraft! Launcher
|
||||
* Copyright (C) 2021 huangyuhui <huanghongxun2008@126.com> and contributors
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package org.jackhuang.hmcl.util.gson;
|
||||
|
||||
import com.google.gson.JsonDeserializer;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonSerializer;
|
||||
|
||||
public abstract class GsonSerializerHelper<T> implements JsonSerializer<T>, JsonDeserializer<T> {
|
||||
|
||||
protected static void add(JsonObject object, String property, JsonElement value) {
|
||||
if (value == null) return;
|
||||
object.add(property, value);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -24,6 +24,7 @@ import com.google.gson.stream.JsonWriter;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.UUID;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -51,8 +52,10 @@ public final class UUIDTypeAdapter extends TypeAdapter<UUID> {
|
||||
return value.toString().replace("-", "");
|
||||
}
|
||||
|
||||
private static final Pattern regex = Pattern.compile("(\\w{8})(\\w{4})(\\w{4})(\\w{4})(\\w{12})");
|
||||
|
||||
public static UUID fromString(String input) {
|
||||
return UUID.fromString(input.replaceFirst("(\\w{8})(\\w{4})(\\w{4})(\\w{4})(\\w{12})", "$1-$2-$3-$4-$5"));
|
||||
return UUID.fromString(regex.matcher(input).replaceFirst("$1-$2-$3-$4-$5"));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -69,12 +69,6 @@ public enum Architecture {
|
||||
this.bits = bits;
|
||||
}
|
||||
|
||||
Architecture(Bits bits, String displayName, String identifier) {
|
||||
this.checkedName = identifier;
|
||||
this.displayName = displayName;
|
||||
this.bits = bits;
|
||||
}
|
||||
|
||||
public Bits getBits() {
|
||||
return bits;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user