Integrate killjoy's weird changes

This commit is contained in:
Sollace 2018-07-14 22:09:46 +02:00
parent fa0a46003d
commit ab741b5e3a
3 changed files with 24 additions and 31 deletions

View file

@ -11,19 +11,18 @@ import java.util.Map;
import java.util.Optional; import java.util.Optional;
import java.util.UUID; import java.util.UUID;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import com.google.common.base.MoreObjects;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.GsonBuilder; import com.google.gson.GsonBuilder;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.google.gson.annotations.Expose;
import com.mojang.authlib.GameProfile; import com.mojang.authlib.GameProfile;
import com.mojang.authlib.exceptions.AuthenticationException; import com.mojang.authlib.exceptions.AuthenticationException;
import com.mojang.authlib.minecraft.MinecraftProfileTexture; import com.mojang.authlib.minecraft.MinecraftProfileTexture;
@ -37,16 +36,18 @@ import com.voxelmodpack.hdskins.upload.ThreadMultipartPostUpload;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.util.Session; import net.minecraft.util.Session;
@ServerType("bethlehem")
public class BethlehemSkinServer implements SkinServer { public class BethlehemSkinServer implements SkinServer {
private static final String SERVER_ID = "7853dfddc358333843ad55a2c7485c4aa0380a51"; private static final String SERVER_ID = "7853dfddc358333843ad55a2c7485c4aa0380a51";
private static final Logger logger = LogManager.getLogger(); private static final Logger logger = LogManager.getLogger();
private final String gateway; @Expose
private final String address;
private BethlehemSkinServer(String address) { private BethlehemSkinServer(String address) {
gateway = address; this.address = address;
} }
private static final Gson gson = new GsonBuilder().registerTypeAdapter(UUID.class, new UUIDTypeAdapter()).create(); private static final Gson gson = new GsonBuilder().registerTypeAdapter(UUID.class, new UUIDTypeAdapter()).create();
@ -69,8 +70,6 @@ public class BethlehemSkinServer implements SkinServer {
throw new IOException("Bad response code: " + urlConnection.getResponseCode()); throw new IOException("Bad response code: " + urlConnection.getResponseCode());
} }
reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream())); reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
@ -105,7 +104,7 @@ public class BethlehemSkinServer implements SkinServer {
@Override @Override
public CompletableFuture<SkinUploadResponse> uploadSkin(Session session, URI image, Type type, Map<String, String> metadata) { public CompletableFuture<SkinUploadResponse> uploadSkin(Session session, URI image, Type type, Map<String, String> metadata) {
if (Strings.isNullOrEmpty(gateway)) { if (Strings.isNullOrEmpty(address)) {
return CallableFutures.failedFuture(new NullPointerException("gateway url is blank")); return CallableFutures.failedFuture(new NullPointerException("gateway url is blank"));
} }
@ -114,7 +113,7 @@ public class BethlehemSkinServer implements SkinServer {
Map<String, ?> data = image == null ? getClearData(session, type) : getUploadData(session, type, metadata.getOrDefault("mode", "default"), image); Map<String, ?> data = image == null ? getClearData(session, type) : getUploadData(session, type, metadata.getOrDefault("mode", "default"), image);
ThreadMultipartPostUpload upload = new ThreadMultipartPostUpload(gateway, data); ThreadMultipartPostUpload upload = new ThreadMultipartPostUpload(address, data);
String response = upload.uploadMultipart(); String response = upload.uploadMultipart();
@ -147,7 +146,7 @@ public class BethlehemSkinServer implements SkinServer {
String uuid = UUIDTypeAdapter.fromUUID(profile.getId()); String uuid = UUIDTypeAdapter.fromUUID(profile.getId());
return String.format("%s/profile/%s", gateway, uuid); return String.format("%s/profile/%s", address, uuid);
} }
protected static void verifyServerConnection(Session session, String serverId) throws AuthenticationException { protected static void verifyServerConnection(Session session, String serverId) throws AuthenticationException {
@ -157,18 +156,8 @@ public class BethlehemSkinServer implements SkinServer {
@Override @Override
public String toString() { public String toString() {
return MoreObjects.toStringHelper(this) return new ToStringBuilder(this, IndentedToStringStyle.INSTANCE)
.add("gateway", gateway) .append("address", address)
.toString(); .build();
}
public static BethlehemSkinServer from(String parsed) {
Matcher matcher = Pattern.compile("^bethlehem:(.+?)$").matcher(parsed);
if (matcher.find()) {
String addr = matcher.group(1);
return new BethlehemSkinServer(addr);
}
throw new IllegalArgumentException("server format string was not correct");
} }
} }

View file

@ -1,9 +1,14 @@
package com.voxelmodpack.hdskins.skins; package com.voxelmodpack.hdskins.skins;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.mojang.authlib.GameProfile; import com.mojang.authlib.GameProfile;
import com.mojang.authlib.minecraft.MinecraftProfileTexture; import com.mojang.authlib.minecraft.MinecraftProfileTexture;
import com.mojang.authlib.yggdrasil.response.MinecraftTexturesPayload; import com.mojang.authlib.yggdrasil.response.MinecraftTexturesPayload;
import com.mojang.util.UUIDTypeAdapter;
import com.mumfrey.liteloader.modconfig.Exposable;
import net.minecraft.util.Session; import net.minecraft.util.Session;
import java.net.URI; import java.net.URI;
@ -11,11 +16,16 @@ import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Optional; import java.util.Optional;
import java.util.UUID;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import javax.annotation.Nullable; import javax.annotation.Nullable;
public interface SkinServer { public interface SkinServer extends Exposable {
static final Gson gson = new GsonBuilder()
.registerTypeAdapter(UUID.class, new UUIDTypeAdapter())
.create();
List<SkinServer> defaultServers = Lists.newArrayList(new LegacySkinServer( List<SkinServer> defaultServers = Lists.newArrayList(new LegacySkinServer(
"http://skins.voxelmodpack.com", "http://skins.voxelmodpack.com",

View file

@ -1,8 +1,6 @@
package com.voxelmodpack.hdskins.skins; package com.voxelmodpack.hdskins.skins;
import com.google.common.base.Preconditions; import com.google.common.base.Preconditions;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.google.gson.annotations.Expose; import com.google.gson.annotations.Expose;
import com.mojang.authlib.GameProfile; import com.mojang.authlib.GameProfile;
@ -47,11 +45,7 @@ public class ValhallaSkinServer implements SkinServer {
@Expose @Expose
private final String address; private final String address;
private final Gson gson = new GsonBuilder() private String accessToken;
.registerTypeAdapter(UUID.class, new UUIDTypeAdapter())
.create();
private transient String accessToken;
public ValhallaSkinServer(String address) { public ValhallaSkinServer(String address) {
this.address = address; this.address = address;