代码清理以及微优化 (#2244)
This commit is contained in:
@@ -25,10 +25,8 @@ import java.io.UnsupportedEncodingException;
|
|||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.text.MessageFormat;
|
import java.text.MessageFormat;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.Map;
|
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
|
||||||
import java.util.concurrent.ConcurrentMap;
|
|
||||||
import java.util.logging.*;
|
import java.util.logging.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -41,20 +39,20 @@ public final class Logging {
|
|||||||
public static final Logger LOG = Logger.getLogger("HMCL");
|
public static final Logger LOG = Logger.getLogger("HMCL");
|
||||||
private static final ByteArrayOutputStream storedLogs = new ByteArrayOutputStream(IOUtils.DEFAULT_BUFFER_SIZE);
|
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) {
|
public static synchronized void registerAccessToken(String token) {
|
||||||
forbiddenTokens.put(token, replacement);
|
final String[] oldAccessTokens = accessTokens;
|
||||||
}
|
final String[] newAccessTokens = Arrays.copyOf(oldAccessTokens, oldAccessTokens.length + 1);
|
||||||
|
|
||||||
public static void registerAccessToken(String accessToken) {
|
newAccessTokens[oldAccessTokens.length] = token;
|
||||||
registerForbiddenToken(accessToken, "<access token>");
|
|
||||||
|
accessTokens = newAccessTokens;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String filterForbiddenToken(String message) {
|
public static String filterForbiddenToken(String message) {
|
||||||
for (Map.Entry<String, String> entry : forbiddenTokens.entrySet()) {
|
for (String token : accessTokens)
|
||||||
message = message.replace(entry.getKey(), entry.getValue());
|
message = message.replace(token, "<access token>");
|
||||||
}
|
|
||||||
return message;
|
return message;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,9 +17,6 @@
|
|||||||
*/
|
*/
|
||||||
package org.jackhuang.hmcl.util;
|
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;
|
import java.util.function.Predicate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -30,20 +27,6 @@ public final class ReflectionHelper {
|
|||||||
private 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.
|
* 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.io.IOException;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@@ -51,8 +52,10 @@ public final class UUIDTypeAdapter extends TypeAdapter<UUID> {
|
|||||||
return value.toString().replace("-", "");
|
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) {
|
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;
|
this.bits = bits;
|
||||||
}
|
}
|
||||||
|
|
||||||
Architecture(Bits bits, String displayName, String identifier) {
|
|
||||||
this.checkedName = identifier;
|
|
||||||
this.displayName = displayName;
|
|
||||||
this.bits = bits;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Bits getBits() {
|
public Bits getBits() {
|
||||||
return bits;
|
return bits;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user