From 80fbcddb87ef1dce6bea3e06ee85b927be9362e6 Mon Sep 17 00:00:00 2001 From: CrushedPixel Date: Wed, 20 May 2015 16:33:40 +0200 Subject: [PATCH] Added support for Mojang API calls in ApiClient Added Mojang API call to retreive Player profile --- .../replaymod/api/{client => }/ApiClient.java | 57 ++++++++++++------- .../replaymod/api/ApiException.java | 31 ++++++++++ .../api/{client => }/GsonApiClient.java | 2 +- .../api/{client => }/QueryBuilder.java | 5 +- .../api/{client => }/SimpleApiClient.java | 13 +++-- .../replaymod/api/client/ApiException.java | 20 ------- .../replaymod/api/client/ApiMethods.java | 19 ------- .../api/mojang/MojangApiMethods.java | 7 +++ .../replaymod/api/mojang/SkinDownloader.java | 57 +++++++++++++++++++ .../replaymod/api/mojang/holders/Profile.java | 32 +++++++++++ .../api/mojang/holders/Properties.java | 42 ++++++++++++++ .../api/mojang/holders/TextureValue.java | 49 ++++++++++++++++ .../api/mojang/holders/Textures.java | 22 +++++++ .../api/mojang/holders/UrlHolder.java | 13 +++++ .../api/{client => replay}/FileUploader.java | 7 ++- .../api/replay/ReplayModApiMethods.java | 22 +++++++ .../api/{client => replay}/SearchQuery.java | 2 +- .../{client => replay}/holders/ApiError.java | 2 +- .../holders/AuthConfirmation.java | 2 +- .../{client => replay}/holders/AuthKey.java | 2 +- .../{client => replay}/holders/Category.java | 2 +- .../{client => replay}/holders/Donated.java | 2 +- .../{client => replay}/holders/Favorites.java | 2 +- .../{client => replay}/holders/FileInfo.java | 2 +- .../{client => replay}/holders/Rating.java | 2 +- .../holders/SearchResult.java | 2 +- .../{client => replay}/holders/Success.java | 2 +- .../{client => replay}/holders/UserFiles.java | 2 +- .../pagination/DownloadedFilePagination.java | 4 +- .../pagination/FavoritedFilePagination.java | 4 +- .../pagination/Pagination.java | 4 +- .../pagination/SearchPagination.java | 6 +- 32 files changed, 346 insertions(+), 94 deletions(-) rename src/main/java/eu/crushedpixel/replaymod/api/{client => }/ApiClient.java (72%) create mode 100755 src/main/java/eu/crushedpixel/replaymod/api/ApiException.java rename src/main/java/eu/crushedpixel/replaymod/api/{client => }/GsonApiClient.java (93%) rename src/main/java/eu/crushedpixel/replaymod/api/{client => }/QueryBuilder.java (94%) rename src/main/java/eu/crushedpixel/replaymod/api/{client => }/SimpleApiClient.java (86%) delete mode 100755 src/main/java/eu/crushedpixel/replaymod/api/client/ApiException.java delete mode 100755 src/main/java/eu/crushedpixel/replaymod/api/client/ApiMethods.java create mode 100755 src/main/java/eu/crushedpixel/replaymod/api/mojang/MojangApiMethods.java create mode 100644 src/main/java/eu/crushedpixel/replaymod/api/mojang/SkinDownloader.java create mode 100644 src/main/java/eu/crushedpixel/replaymod/api/mojang/holders/Profile.java create mode 100644 src/main/java/eu/crushedpixel/replaymod/api/mojang/holders/Properties.java create mode 100644 src/main/java/eu/crushedpixel/replaymod/api/mojang/holders/TextureValue.java create mode 100644 src/main/java/eu/crushedpixel/replaymod/api/mojang/holders/Textures.java create mode 100644 src/main/java/eu/crushedpixel/replaymod/api/mojang/holders/UrlHolder.java rename src/main/java/eu/crushedpixel/replaymod/api/{client => replay}/FileUploader.java (95%) create mode 100755 src/main/java/eu/crushedpixel/replaymod/api/replay/ReplayModApiMethods.java rename src/main/java/eu/crushedpixel/replaymod/api/{client => replay}/SearchQuery.java (97%) rename src/main/java/eu/crushedpixel/replaymod/api/{client => replay}/holders/ApiError.java (91%) rename src/main/java/eu/crushedpixel/replaymod/api/{client => replay}/holders/AuthConfirmation.java (73%) rename src/main/java/eu/crushedpixel/replaymod/api/{client => replay}/holders/AuthKey.java (77%) rename src/main/java/eu/crushedpixel/replaymod/api/{client => replay}/holders/Category.java (94%) rename src/main/java/eu/crushedpixel/replaymod/api/{client => replay}/holders/Donated.java (70%) rename src/main/java/eu/crushedpixel/replaymod/api/{client => replay}/holders/Favorites.java (67%) rename src/main/java/eu/crushedpixel/replaymod/api/{client => replay}/holders/FileInfo.java (96%) rename src/main/java/eu/crushedpixel/replaymod/api/{client => replay}/holders/Rating.java (77%) rename src/main/java/eu/crushedpixel/replaymod/api/{client => replay}/holders/SearchResult.java (70%) rename src/main/java/eu/crushedpixel/replaymod/api/{client => replay}/holders/Success.java (70%) rename src/main/java/eu/crushedpixel/replaymod/api/{client => replay}/holders/UserFiles.java (84%) rename src/main/java/eu/crushedpixel/replaymod/api/{client => replay}/pagination/DownloadedFilePagination.java (92%) rename src/main/java/eu/crushedpixel/replaymod/api/{client => replay}/pagination/FavoritedFilePagination.java (92%) rename src/main/java/eu/crushedpixel/replaymod/api/{client => replay}/pagination/Pagination.java (66%) rename src/main/java/eu/crushedpixel/replaymod/api/{client => replay}/pagination/SearchPagination.java (86%) diff --git a/src/main/java/eu/crushedpixel/replaymod/api/client/ApiClient.java b/src/main/java/eu/crushedpixel/replaymod/api/ApiClient.java similarity index 72% rename from src/main/java/eu/crushedpixel/replaymod/api/client/ApiClient.java rename to src/main/java/eu/crushedpixel/replaymod/api/ApiClient.java index 12ed8a2a..4896a341 100755 --- a/src/main/java/eu/crushedpixel/replaymod/api/client/ApiClient.java +++ b/src/main/java/eu/crushedpixel/replaymod/api/ApiClient.java @@ -1,9 +1,14 @@ -package eu.crushedpixel.replaymod.api.client; +package eu.crushedpixel.replaymod.api; import com.google.gson.Gson; import com.google.gson.JsonElement; +import com.google.gson.JsonParseException; import com.google.gson.JsonParser; -import eu.crushedpixel.replaymod.api.client.holders.*; +import eu.crushedpixel.replaymod.api.mojang.MojangApiMethods; +import eu.crushedpixel.replaymod.api.mojang.holders.Profile; +import eu.crushedpixel.replaymod.api.replay.ReplayModApiMethods; +import eu.crushedpixel.replaymod.api.replay.SearchQuery; +import eu.crushedpixel.replaymod.api.replay.holders.*; import eu.crushedpixel.replaymod.utils.StreamTools; import org.apache.commons.io.FileUtils; @@ -15,6 +20,7 @@ import java.net.URL; import java.nio.file.Files; import java.nio.file.StandardCopyOption; import java.util.List; +import java.util.UUID; public class ApiClient { @@ -22,7 +28,7 @@ public class ApiClient { private static final JsonParser jsonParser = new JsonParser(); public AuthKey getLogin(String username, String password) throws IOException, ApiException { - QueryBuilder builder = new QueryBuilder(ApiMethods.login); + QueryBuilder builder = new QueryBuilder(ReplayModApiMethods.login); builder.put("user", username); builder.put("pw", password); builder.put("mod", true); @@ -31,7 +37,7 @@ public class ApiClient { } public AuthKey register(String username, String mail, String password) throws IOException, ApiException { - QueryBuilder builder = new QueryBuilder(ApiMethods.register); + QueryBuilder builder = new QueryBuilder(ReplayModApiMethods.register); builder.put("username", username); builder.put("email", mail); builder.put("password", password); @@ -41,7 +47,7 @@ public class ApiClient { public AuthConfirmation checkAuthkey(String auth) { try { - QueryBuilder builder = new QueryBuilder(ApiMethods.check_authkey); + QueryBuilder builder = new QueryBuilder(ReplayModApiMethods.check_authkey); builder.put("auth", auth); AuthConfirmation conf = invokeAndReturn(builder, AuthConfirmation.class); return conf; @@ -51,7 +57,7 @@ public class ApiClient { } public boolean logout(String auth) throws IOException, ApiException { - QueryBuilder builder = new QueryBuilder(ApiMethods.logout); + QueryBuilder builder = new QueryBuilder(ReplayModApiMethods.logout); builder.put("auth", auth); builder.put("mod", true); Success succ = invokeAndReturn(builder, Success.class); @@ -59,7 +65,7 @@ public class ApiClient { } public boolean hasDonated(String uuid) throws IOException, ApiException { - QueryBuilder builder = new QueryBuilder(ApiMethods.check_auth); + QueryBuilder builder = new QueryBuilder(ReplayModApiMethods.check_auth); builder.put("uuid", uuid); Donated succ = invokeAndReturn(builder, Donated.class); return succ.hasDonated(); @@ -72,18 +78,15 @@ public class ApiClient { } public FileInfo[] getFileInfo(List ids) throws IOException, ApiException { - QueryBuilder builder = new QueryBuilder(ApiMethods.file_details); + QueryBuilder builder = new QueryBuilder(ReplayModApiMethods.file_details); builder.put("id", buildListString(ids)); FileInfo[] info = invokeAndReturn(builder, FileInfo[].class); return info; } public FileInfo[] searchFiles(SearchQuery query) throws IOException, ApiException { - StringBuilder sb = new StringBuilder(); - - // build base url - sb.append(QueryBuilder.API_BASE_URL); - sb.append("search"); + QueryBuilder builder = new QueryBuilder(ReplayModApiMethods.search); + StringBuilder sb = new StringBuilder(builder.toString()); sb.append(query.buildQuery()); FileInfo[] info = invokeAndReturn(sb.toString(), SearchResult.class).getResults(); @@ -91,21 +94,21 @@ public class ApiClient { } public String getTranslation(String languageCode) throws IOException, ApiException { - QueryBuilder builder = new QueryBuilder(ApiMethods.get_language); + QueryBuilder builder = new QueryBuilder(ReplayModApiMethods.get_language); builder.put("language", languageCode); String properties = SimpleApiClient.invokeUrl(builder.toString()); return properties; } public void downloadThumbnail(int file, File target) throws IOException { - QueryBuilder builder = new QueryBuilder(ApiMethods.get_thumbnail); + QueryBuilder builder = new QueryBuilder(ReplayModApiMethods.get_thumbnail); builder.put("id", file); URL url = new URL(builder.toString()); FileUtils.copyURLToFile(url, target); } - public void downloadFile(String auth, int file, File target) throws IOException { - QueryBuilder builder = new QueryBuilder(ApiMethods.download_file); + public void downloadFile(String auth, int file, File target) throws IOException, ApiException { + QueryBuilder builder = new QueryBuilder(ReplayModApiMethods.download_file); builder.put("auth", auth); builder.put("id", file); String url = builder.toString(); @@ -122,13 +125,14 @@ public class ApiClient { if(err.getDesc() != null) { throw new ApiException(err); } - } catch(Exception e) { + } catch(JsonParseException e) { + throw new ApiException(StreamTools.readStreamtoString(is)); } } } public void rateFile(String auth, int file, boolean like) throws IOException, ApiException { - QueryBuilder builder = new QueryBuilder(ApiMethods.rate_file); + QueryBuilder builder = new QueryBuilder(ReplayModApiMethods.rate_file); builder.put("auth", auth); builder.put("id", file); builder.put("like", like); @@ -136,7 +140,7 @@ public class ApiClient { } public void favFile(String auth, int file, boolean fav) throws IOException, ApiException { - QueryBuilder builder = new QueryBuilder(ApiMethods.fav_file); + QueryBuilder builder = new QueryBuilder(ReplayModApiMethods.fav_file); builder.put("auth", auth); builder.put("id", file); builder.put("fav", fav); @@ -144,19 +148,28 @@ public class ApiClient { } public int[] getFavorites(String auth) throws IOException, ApiException { - QueryBuilder builder = new QueryBuilder(ApiMethods.get_favorites); + QueryBuilder builder = new QueryBuilder(ReplayModApiMethods.get_favorites); builder.put("auth", auth); return invokeAndReturn(builder, Favorites.class).getFavorited(); } public void removeFile(String auth, int file) throws IOException, ApiException { - QueryBuilder builder = new QueryBuilder(ApiMethods.remove_file); + QueryBuilder builder = new QueryBuilder(ReplayModApiMethods.remove_file); builder.put("auth", auth); builder.put("id", file); invokeAndReturn(builder, Success.class); } + /* + MOJANG API CALLS + */ + + public Profile getProfileFromUUID(UUID uuid) throws IOException, ApiException { + String url = String.format(MojangApiMethods.userprofile+"%s", uuid.toString().replace("-", "")); + return invokeAndReturn(url, Profile.class); + } + private T invokeAndReturn(QueryBuilder builder, Class classOfT) throws IOException, ApiException { return invokeAndReturn(builder.toString(), classOfT); } diff --git a/src/main/java/eu/crushedpixel/replaymod/api/ApiException.java b/src/main/java/eu/crushedpixel/replaymod/api/ApiException.java new file mode 100755 index 00000000..cf08c875 --- /dev/null +++ b/src/main/java/eu/crushedpixel/replaymod/api/ApiException.java @@ -0,0 +1,31 @@ +package eu.crushedpixel.replaymod.api; + +import eu.crushedpixel.replaymod.api.replay.holders.ApiError; + +public class ApiException extends Exception { + + private static final long serialVersionUID = 349073390504232810L; + + private ApiError error; + private String errorMsg; + + public ApiException(ApiError error) { + super(error.getTranslatedDesc()); + this.error = error; + this.errorMsg = error.getTranslatedDesc(); + } + + public ApiException(String error) { + super(error); + this.errorMsg = error; + } + + public ApiError getError() { + return error; + } + + public String getErrorMsg() { + return errorMsg; + } + +} diff --git a/src/main/java/eu/crushedpixel/replaymod/api/client/GsonApiClient.java b/src/main/java/eu/crushedpixel/replaymod/api/GsonApiClient.java similarity index 93% rename from src/main/java/eu/crushedpixel/replaymod/api/client/GsonApiClient.java rename to src/main/java/eu/crushedpixel/replaymod/api/GsonApiClient.java index 4f7d40bd..49952713 100755 --- a/src/main/java/eu/crushedpixel/replaymod/api/client/GsonApiClient.java +++ b/src/main/java/eu/crushedpixel/replaymod/api/GsonApiClient.java @@ -1,4 +1,4 @@ -package eu.crushedpixel.replaymod.api.client; +package eu.crushedpixel.replaymod.api; import com.google.gson.JsonElement; import com.google.gson.JsonParser; diff --git a/src/main/java/eu/crushedpixel/replaymod/api/client/QueryBuilder.java b/src/main/java/eu/crushedpixel/replaymod/api/QueryBuilder.java similarity index 94% rename from src/main/java/eu/crushedpixel/replaymod/api/client/QueryBuilder.java rename to src/main/java/eu/crushedpixel/replaymod/api/QueryBuilder.java index cae87e84..5df1e031 100755 --- a/src/main/java/eu/crushedpixel/replaymod/api/client/QueryBuilder.java +++ b/src/main/java/eu/crushedpixel/replaymod/api/QueryBuilder.java @@ -1,4 +1,4 @@ -package eu.crushedpixel.replaymod.api.client; +package eu.crushedpixel.replaymod.api; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; @@ -7,8 +7,6 @@ import java.util.Map; public class QueryBuilder { - public static final String API_BASE_URL = "http://ReplayMod.com/api/"; - public String apiMethod; public Map paramMap; @@ -71,7 +69,6 @@ public class QueryBuilder { StringBuilder sb = new StringBuilder(); // build base url - sb.append(API_BASE_URL); sb.append(apiMethod); // process parameters diff --git a/src/main/java/eu/crushedpixel/replaymod/api/client/SimpleApiClient.java b/src/main/java/eu/crushedpixel/replaymod/api/SimpleApiClient.java similarity index 86% rename from src/main/java/eu/crushedpixel/replaymod/api/client/SimpleApiClient.java rename to src/main/java/eu/crushedpixel/replaymod/api/SimpleApiClient.java index 44ca063f..5fca2c3b 100755 --- a/src/main/java/eu/crushedpixel/replaymod/api/client/SimpleApiClient.java +++ b/src/main/java/eu/crushedpixel/replaymod/api/SimpleApiClient.java @@ -1,9 +1,10 @@ -package eu.crushedpixel.replaymod.api.client; +package eu.crushedpixel.replaymod.api; import com.google.gson.Gson; import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; import com.google.gson.JsonParser; -import eu.crushedpixel.replaymod.api.client.holders.ApiError; +import eu.crushedpixel.replaymod.api.replay.holders.ApiError; import eu.crushedpixel.replaymod.utils.StreamTools; import java.io.IOException; @@ -92,8 +93,12 @@ public class SimpleApiClient { } else { responseContent = ""; } - JsonObject response = jsonParser.parse(responseContent).getAsJsonObject(); - throw new ApiException(gson.fromJson(response, ApiError.class)); + try { + JsonObject response = jsonParser.parse(responseContent).getAsJsonObject(); + throw new ApiException(gson.fromJson(response, ApiError.class)); + } catch(JsonParseException e) { + throw new ApiException(responseContent); + } } is = httpUrlConnection.getInputStream(); diff --git a/src/main/java/eu/crushedpixel/replaymod/api/client/ApiException.java b/src/main/java/eu/crushedpixel/replaymod/api/client/ApiException.java deleted file mode 100755 index add2086b..00000000 --- a/src/main/java/eu/crushedpixel/replaymod/api/client/ApiException.java +++ /dev/null @@ -1,20 +0,0 @@ -package eu.crushedpixel.replaymod.api.client; - -import eu.crushedpixel.replaymod.api.client.holders.ApiError; - -public class ApiException extends Exception { - - private static final long serialVersionUID = 349073390504232810L; - - private ApiError error; - - public ApiException(ApiError error) { - super(error.getDesc()); - this.error = error; - } - - public ApiError getError() { - return error; - } - -} diff --git a/src/main/java/eu/crushedpixel/replaymod/api/client/ApiMethods.java b/src/main/java/eu/crushedpixel/replaymod/api/client/ApiMethods.java deleted file mode 100755 index 553d4209..00000000 --- a/src/main/java/eu/crushedpixel/replaymod/api/client/ApiMethods.java +++ /dev/null @@ -1,19 +0,0 @@ -package eu.crushedpixel.replaymod.api.client; - -public class ApiMethods { - - public static final String register = "register"; - public static final String check_authkey = "check_authkey"; - public static final String login = "login"; - public static final String logout = "logout"; - public static final String file_details = "file_details"; - public static final String upload_file = "upload_file"; - public static final String download_file = "download_file"; - public static final String get_thumbnail = "get_thumbnail"; - public static final String remove_file = "remove_file"; - public static final String rate_file = "rate_file"; - public static final String fav_file = "fav_file"; - public static final String get_favorites = "get_favorites"; - public static final String check_auth = "check_auth"; - public static final String get_language = "get_language"; -} diff --git a/src/main/java/eu/crushedpixel/replaymod/api/mojang/MojangApiMethods.java b/src/main/java/eu/crushedpixel/replaymod/api/mojang/MojangApiMethods.java new file mode 100755 index 00000000..9ca93db5 --- /dev/null +++ b/src/main/java/eu/crushedpixel/replaymod/api/mojang/MojangApiMethods.java @@ -0,0 +1,7 @@ +package eu.crushedpixel.replaymod.api.mojang; + +public class MojangApiMethods { + + public static final String userprofile = "https://sessionserver.mojang.com/session/minecraft/profile/"; + +} diff --git a/src/main/java/eu/crushedpixel/replaymod/api/mojang/SkinDownloader.java b/src/main/java/eu/crushedpixel/replaymod/api/mojang/SkinDownloader.java new file mode 100644 index 00000000..0e10f1ce --- /dev/null +++ b/src/main/java/eu/crushedpixel/replaymod/api/mojang/SkinDownloader.java @@ -0,0 +1,57 @@ +package eu.crushedpixel.replaymod.api.mojang; + + +import eu.crushedpixel.replaymod.ReplayMod; +import eu.crushedpixel.replaymod.api.ApiException; +import eu.crushedpixel.replaymod.api.mojang.holders.Profile; +import eu.crushedpixel.replaymod.api.mojang.holders.Properties; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.ImageBufferDownload; +import net.minecraft.client.renderer.ThreadDownloadImageData; +import net.minecraft.client.renderer.texture.ITextureObject; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.client.resources.DefaultPlayerSkin; +import net.minecraft.util.ResourceLocation; + +import java.io.File; +import java.io.IOException; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.UUID; + +public class SkinDownloader { + + public static ITextureObject getDownloadImageSkin(ResourceLocation resourceLocationIn, UUID uuid) throws IOException, ApiException { + TextureManager texturemanager = Minecraft.getMinecraft().getTextureManager(); + ITextureObject object = texturemanager.getTexture(resourceLocationIn); + + try { + if(object == null) { + Profile profile = ReplayMod.apiClient.getProfileFromUUID(uuid); + + if(profile.getProperties() != null && profile.getProperties().length > 0) { + List plist = Arrays.asList(profile.getProperties()); + Collections.reverse(plist); + + for(Properties p : plist) { + if(p.getName().equals("textures")) { + object = new ThreadDownloadImageData((File) null, + p.getTextureValue().getTextures().getSKIN().getUrl(), + DefaultPlayerSkin.getDefaultSkin(uuid), new ImageBufferDownload()); + } + } + } + } + } catch(Exception e) { + e.printStackTrace(); + object = new ThreadDownloadImageData((File)null, + null, + DefaultPlayerSkin.getDefaultSkin(uuid), new ImageBufferDownload()); + } + + return object; + } + + +} diff --git a/src/main/java/eu/crushedpixel/replaymod/api/mojang/holders/Profile.java b/src/main/java/eu/crushedpixel/replaymod/api/mojang/holders/Profile.java new file mode 100644 index 00000000..199ccdf9 --- /dev/null +++ b/src/main/java/eu/crushedpixel/replaymod/api/mojang/holders/Profile.java @@ -0,0 +1,32 @@ +package eu.crushedpixel.replaymod.api.mojang.holders; + +public class Profile { + + private String id; + private String name; + private Properties[] properties; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Properties[] getProperties() { + return properties; + } + + public void setProperties(Properties[] properties) { + this.properties = properties; + } +} diff --git a/src/main/java/eu/crushedpixel/replaymod/api/mojang/holders/Properties.java b/src/main/java/eu/crushedpixel/replaymod/api/mojang/holders/Properties.java new file mode 100644 index 00000000..f559b59a --- /dev/null +++ b/src/main/java/eu/crushedpixel/replaymod/api/mojang/holders/Properties.java @@ -0,0 +1,42 @@ +package eu.crushedpixel.replaymod.api.mojang.holders; + + +import com.google.gson.Gson; +import org.apache.commons.codec.binary.Base64; +import org.apache.commons.codec.binary.StringUtils; + +public class Properties { + + private String name; + private String value; + private String signature; + + public String getName() { + return name; + } + + public TextureValue getTextureValue() { + Gson gson = new Gson(); + return gson.fromJson(StringUtils.newStringUtf8(Base64.decodeBase64(value)), TextureValue.class); + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public String getSignature() { + return signature; + } + + public void setSignature(String signature) { + this.signature = signature; + } +} diff --git a/src/main/java/eu/crushedpixel/replaymod/api/mojang/holders/TextureValue.java b/src/main/java/eu/crushedpixel/replaymod/api/mojang/holders/TextureValue.java new file mode 100644 index 00000000..e7baa704 --- /dev/null +++ b/src/main/java/eu/crushedpixel/replaymod/api/mojang/holders/TextureValue.java @@ -0,0 +1,49 @@ +package eu.crushedpixel.replaymod.api.mojang.holders; + +public class TextureValue { + private long timestamp; + private String profileId; + private String profileName; + private boolean isPublic; + private Textures textures; + + public long getTimestamp() { + return timestamp; + } + + public void setTimestamp(long timestamp) { + this.timestamp = timestamp; + } + + public String getProfileId() { + return profileId; + } + + public void setProfileId(String profileId) { + this.profileId = profileId; + } + + public String getProfileName() { + return profileName; + } + + public void setProfileName(String profileName) { + this.profileName = profileName; + } + + public boolean isPublic() { + return isPublic; + } + + public void setIsPublic(boolean isPublic) { + this.isPublic = isPublic; + } + + public Textures getTextures() { + return textures; + } + + public void setTextures(Textures textures) { + this.textures = textures; + } +} diff --git a/src/main/java/eu/crushedpixel/replaymod/api/mojang/holders/Textures.java b/src/main/java/eu/crushedpixel/replaymod/api/mojang/holders/Textures.java new file mode 100644 index 00000000..15b25288 --- /dev/null +++ b/src/main/java/eu/crushedpixel/replaymod/api/mojang/holders/Textures.java @@ -0,0 +1,22 @@ +package eu.crushedpixel.replaymod.api.mojang.holders; + +public class Textures { + private UrlHolder SKIN; + private UrlHolder CAPE; + + public UrlHolder getSKIN() { + return SKIN; + } + + public void setSKIN(UrlHolder SKIN) { + this.SKIN = SKIN; + } + + public UrlHolder getCAPE() { + return CAPE; + } + + public void setCAPE(UrlHolder CAPE) { + this.CAPE = CAPE; + } +} diff --git a/src/main/java/eu/crushedpixel/replaymod/api/mojang/holders/UrlHolder.java b/src/main/java/eu/crushedpixel/replaymod/api/mojang/holders/UrlHolder.java new file mode 100644 index 00000000..5ed43dfc --- /dev/null +++ b/src/main/java/eu/crushedpixel/replaymod/api/mojang/holders/UrlHolder.java @@ -0,0 +1,13 @@ +package eu.crushedpixel.replaymod.api.mojang.holders; + +public class UrlHolder { + private String url; + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } +} diff --git a/src/main/java/eu/crushedpixel/replaymod/api/client/FileUploader.java b/src/main/java/eu/crushedpixel/replaymod/api/replay/FileUploader.java similarity index 95% rename from src/main/java/eu/crushedpixel/replaymod/api/client/FileUploader.java rename to src/main/java/eu/crushedpixel/replaymod/api/replay/FileUploader.java index 2f737948..de1c7d5d 100755 --- a/src/main/java/eu/crushedpixel/replaymod/api/client/FileUploader.java +++ b/src/main/java/eu/crushedpixel/replaymod/api/replay/FileUploader.java @@ -1,9 +1,10 @@ -package eu.crushedpixel.replaymod.api.client; +package eu.crushedpixel.replaymod.api.replay; import com.google.gson.Gson; import eu.crushedpixel.replaymod.ReplayMod; -import eu.crushedpixel.replaymod.api.client.holders.ApiError; -import eu.crushedpixel.replaymod.api.client.holders.Category; +import eu.crushedpixel.replaymod.api.ApiException; +import eu.crushedpixel.replaymod.api.replay.holders.ApiError; +import eu.crushedpixel.replaymod.api.replay.holders.Category; import eu.crushedpixel.replaymod.gui.online.GuiUploadFile; import net.minecraft.client.resources.I18n; diff --git a/src/main/java/eu/crushedpixel/replaymod/api/replay/ReplayModApiMethods.java b/src/main/java/eu/crushedpixel/replaymod/api/replay/ReplayModApiMethods.java new file mode 100755 index 00000000..f491c9c3 --- /dev/null +++ b/src/main/java/eu/crushedpixel/replaymod/api/replay/ReplayModApiMethods.java @@ -0,0 +1,22 @@ +package eu.crushedpixel.replaymod.api.replay; + +public class ReplayModApiMethods { + + public static final String REPLAYMOD_BASE_URL = "http://ReplayMod.com/api/"; + + public static final String register = REPLAYMOD_BASE_URL+"register"; + public static final String check_authkey = REPLAYMOD_BASE_URL+"check_authkey"; + public static final String login = REPLAYMOD_BASE_URL+"login"; + public static final String logout = REPLAYMOD_BASE_URL+"logout"; + public static final String file_details = REPLAYMOD_BASE_URL+"file_details"; + public static final String upload_file = REPLAYMOD_BASE_URL+"upload_file"; + public static final String download_file = REPLAYMOD_BASE_URL+"download_file"; + public static final String get_thumbnail = REPLAYMOD_BASE_URL+"get_thumbnail"; + public static final String remove_file = REPLAYMOD_BASE_URL+"remove_file"; + public static final String rate_file = REPLAYMOD_BASE_URL+"rate_file"; + public static final String fav_file = REPLAYMOD_BASE_URL+"fav_file"; + public static final String get_favorites = REPLAYMOD_BASE_URL+"get_favorites"; + public static final String check_auth = REPLAYMOD_BASE_URL+"check_auth"; + public static final String get_language = REPLAYMOD_BASE_URL+"get_language"; + public static final String search = REPLAYMOD_BASE_URL+"search"; +} diff --git a/src/main/java/eu/crushedpixel/replaymod/api/client/SearchQuery.java b/src/main/java/eu/crushedpixel/replaymod/api/replay/SearchQuery.java similarity index 97% rename from src/main/java/eu/crushedpixel/replaymod/api/client/SearchQuery.java rename to src/main/java/eu/crushedpixel/replaymod/api/replay/SearchQuery.java index 5dc9cdfc..f81f9e5d 100755 --- a/src/main/java/eu/crushedpixel/replaymod/api/client/SearchQuery.java +++ b/src/main/java/eu/crushedpixel/replaymod/api/replay/SearchQuery.java @@ -1,4 +1,4 @@ -package eu.crushedpixel.replaymod.api.client; +package eu.crushedpixel.replaymod.api.replay; import java.lang.reflect.Field; import java.net.URLEncoder; diff --git a/src/main/java/eu/crushedpixel/replaymod/api/client/holders/ApiError.java b/src/main/java/eu/crushedpixel/replaymod/api/replay/holders/ApiError.java similarity index 91% rename from src/main/java/eu/crushedpixel/replaymod/api/client/holders/ApiError.java rename to src/main/java/eu/crushedpixel/replaymod/api/replay/holders/ApiError.java index 464e9dd4..018b2213 100755 --- a/src/main/java/eu/crushedpixel/replaymod/api/client/holders/ApiError.java +++ b/src/main/java/eu/crushedpixel/replaymod/api/replay/holders/ApiError.java @@ -1,4 +1,4 @@ -package eu.crushedpixel.replaymod.api.client.holders; +package eu.crushedpixel.replaymod.api.replay.holders; import net.minecraft.client.resources.I18n; diff --git a/src/main/java/eu/crushedpixel/replaymod/api/client/holders/AuthConfirmation.java b/src/main/java/eu/crushedpixel/replaymod/api/replay/holders/AuthConfirmation.java similarity index 73% rename from src/main/java/eu/crushedpixel/replaymod/api/client/holders/AuthConfirmation.java rename to src/main/java/eu/crushedpixel/replaymod/api/replay/holders/AuthConfirmation.java index 238703c7..97afd8ff 100644 --- a/src/main/java/eu/crushedpixel/replaymod/api/client/holders/AuthConfirmation.java +++ b/src/main/java/eu/crushedpixel/replaymod/api/replay/holders/AuthConfirmation.java @@ -1,4 +1,4 @@ -package eu.crushedpixel.replaymod.api.client.holders; +package eu.crushedpixel.replaymod.api.replay.holders; public class AuthConfirmation { private String username; diff --git a/src/main/java/eu/crushedpixel/replaymod/api/client/holders/AuthKey.java b/src/main/java/eu/crushedpixel/replaymod/api/replay/holders/AuthKey.java similarity index 77% rename from src/main/java/eu/crushedpixel/replaymod/api/client/holders/AuthKey.java rename to src/main/java/eu/crushedpixel/replaymod/api/replay/holders/AuthKey.java index 7146084b..67d928ee 100755 --- a/src/main/java/eu/crushedpixel/replaymod/api/client/holders/AuthKey.java +++ b/src/main/java/eu/crushedpixel/replaymod/api/replay/holders/AuthKey.java @@ -1,4 +1,4 @@ -package eu.crushedpixel.replaymod.api.client.holders; +package eu.crushedpixel.replaymod.api.replay.holders; public class AuthKey { diff --git a/src/main/java/eu/crushedpixel/replaymod/api/client/holders/Category.java b/src/main/java/eu/crushedpixel/replaymod/api/replay/holders/Category.java similarity index 94% rename from src/main/java/eu/crushedpixel/replaymod/api/client/holders/Category.java rename to src/main/java/eu/crushedpixel/replaymod/api/replay/holders/Category.java index 0ee70136..7ea24fd0 100755 --- a/src/main/java/eu/crushedpixel/replaymod/api/client/holders/Category.java +++ b/src/main/java/eu/crushedpixel/replaymod/api/replay/holders/Category.java @@ -1,4 +1,4 @@ -package eu.crushedpixel.replaymod.api.client.holders; +package eu.crushedpixel.replaymod.api.replay.holders; import net.minecraft.client.resources.I18n; diff --git a/src/main/java/eu/crushedpixel/replaymod/api/client/holders/Donated.java b/src/main/java/eu/crushedpixel/replaymod/api/replay/holders/Donated.java similarity index 70% rename from src/main/java/eu/crushedpixel/replaymod/api/client/holders/Donated.java rename to src/main/java/eu/crushedpixel/replaymod/api/replay/holders/Donated.java index 4568eb96..22c0f272 100644 --- a/src/main/java/eu/crushedpixel/replaymod/api/client/holders/Donated.java +++ b/src/main/java/eu/crushedpixel/replaymod/api/replay/holders/Donated.java @@ -1,4 +1,4 @@ -package eu.crushedpixel.replaymod.api.client.holders; +package eu.crushedpixel.replaymod.api.replay.holders; public class Donated { diff --git a/src/main/java/eu/crushedpixel/replaymod/api/client/holders/Favorites.java b/src/main/java/eu/crushedpixel/replaymod/api/replay/holders/Favorites.java similarity index 67% rename from src/main/java/eu/crushedpixel/replaymod/api/client/holders/Favorites.java rename to src/main/java/eu/crushedpixel/replaymod/api/replay/holders/Favorites.java index ce07deb1..05f5b4d4 100644 --- a/src/main/java/eu/crushedpixel/replaymod/api/client/holders/Favorites.java +++ b/src/main/java/eu/crushedpixel/replaymod/api/replay/holders/Favorites.java @@ -1,4 +1,4 @@ -package eu.crushedpixel.replaymod.api.client.holders; +package eu.crushedpixel.replaymod.api.replay.holders; public class Favorites { private int[] favorited; diff --git a/src/main/java/eu/crushedpixel/replaymod/api/client/holders/FileInfo.java b/src/main/java/eu/crushedpixel/replaymod/api/replay/holders/FileInfo.java similarity index 96% rename from src/main/java/eu/crushedpixel/replaymod/api/client/holders/FileInfo.java rename to src/main/java/eu/crushedpixel/replaymod/api/replay/holders/FileInfo.java index cd9e6c36..a712f9dd 100755 --- a/src/main/java/eu/crushedpixel/replaymod/api/client/holders/FileInfo.java +++ b/src/main/java/eu/crushedpixel/replaymod/api/replay/holders/FileInfo.java @@ -1,4 +1,4 @@ -package eu.crushedpixel.replaymod.api.client.holders; +package eu.crushedpixel.replaymod.api.replay.holders; import eu.crushedpixel.replaymod.recording.ReplayMetaData; diff --git a/src/main/java/eu/crushedpixel/replaymod/api/client/holders/Rating.java b/src/main/java/eu/crushedpixel/replaymod/api/replay/holders/Rating.java similarity index 77% rename from src/main/java/eu/crushedpixel/replaymod/api/client/holders/Rating.java rename to src/main/java/eu/crushedpixel/replaymod/api/replay/holders/Rating.java index e3940b9f..8afd2410 100755 --- a/src/main/java/eu/crushedpixel/replaymod/api/client/holders/Rating.java +++ b/src/main/java/eu/crushedpixel/replaymod/api/replay/holders/Rating.java @@ -1,4 +1,4 @@ -package eu.crushedpixel.replaymod.api.client.holders; +package eu.crushedpixel.replaymod.api.replay.holders; public class Rating { diff --git a/src/main/java/eu/crushedpixel/replaymod/api/client/holders/SearchResult.java b/src/main/java/eu/crushedpixel/replaymod/api/replay/holders/SearchResult.java similarity index 70% rename from src/main/java/eu/crushedpixel/replaymod/api/client/holders/SearchResult.java rename to src/main/java/eu/crushedpixel/replaymod/api/replay/holders/SearchResult.java index 689e520b..ec7e18d8 100755 --- a/src/main/java/eu/crushedpixel/replaymod/api/client/holders/SearchResult.java +++ b/src/main/java/eu/crushedpixel/replaymod/api/replay/holders/SearchResult.java @@ -1,4 +1,4 @@ -package eu.crushedpixel.replaymod.api.client.holders; +package eu.crushedpixel.replaymod.api.replay.holders; public class SearchResult { diff --git a/src/main/java/eu/crushedpixel/replaymod/api/client/holders/Success.java b/src/main/java/eu/crushedpixel/replaymod/api/replay/holders/Success.java similarity index 70% rename from src/main/java/eu/crushedpixel/replaymod/api/client/holders/Success.java rename to src/main/java/eu/crushedpixel/replaymod/api/replay/holders/Success.java index 091adafe..6085d2da 100755 --- a/src/main/java/eu/crushedpixel/replaymod/api/client/holders/Success.java +++ b/src/main/java/eu/crushedpixel/replaymod/api/replay/holders/Success.java @@ -1,4 +1,4 @@ -package eu.crushedpixel.replaymod.api.client.holders; +package eu.crushedpixel.replaymod.api.replay.holders; public class Success { diff --git a/src/main/java/eu/crushedpixel/replaymod/api/client/holders/UserFiles.java b/src/main/java/eu/crushedpixel/replaymod/api/replay/holders/UserFiles.java similarity index 84% rename from src/main/java/eu/crushedpixel/replaymod/api/client/holders/UserFiles.java rename to src/main/java/eu/crushedpixel/replaymod/api/replay/holders/UserFiles.java index bee6da80..669c9bdb 100755 --- a/src/main/java/eu/crushedpixel/replaymod/api/client/holders/UserFiles.java +++ b/src/main/java/eu/crushedpixel/replaymod/api/replay/holders/UserFiles.java @@ -1,4 +1,4 @@ -package eu.crushedpixel.replaymod.api.client.holders; +package eu.crushedpixel.replaymod.api.replay.holders; public class UserFiles { diff --git a/src/main/java/eu/crushedpixel/replaymod/api/client/pagination/DownloadedFilePagination.java b/src/main/java/eu/crushedpixel/replaymod/api/replay/pagination/DownloadedFilePagination.java similarity index 92% rename from src/main/java/eu/crushedpixel/replaymod/api/client/pagination/DownloadedFilePagination.java rename to src/main/java/eu/crushedpixel/replaymod/api/replay/pagination/DownloadedFilePagination.java index 21d8b6bd..ff43a607 100755 --- a/src/main/java/eu/crushedpixel/replaymod/api/client/pagination/DownloadedFilePagination.java +++ b/src/main/java/eu/crushedpixel/replaymod/api/replay/pagination/DownloadedFilePagination.java @@ -1,7 +1,7 @@ -package eu.crushedpixel.replaymod.api.client.pagination; +package eu.crushedpixel.replaymod.api.replay.pagination; import eu.crushedpixel.replaymod.ReplayMod; -import eu.crushedpixel.replaymod.api.client.holders.FileInfo; +import eu.crushedpixel.replaymod.api.replay.holders.FileInfo; import java.io.File; import java.util.ArrayList; diff --git a/src/main/java/eu/crushedpixel/replaymod/api/client/pagination/FavoritedFilePagination.java b/src/main/java/eu/crushedpixel/replaymod/api/replay/pagination/FavoritedFilePagination.java similarity index 92% rename from src/main/java/eu/crushedpixel/replaymod/api/client/pagination/FavoritedFilePagination.java rename to src/main/java/eu/crushedpixel/replaymod/api/replay/pagination/FavoritedFilePagination.java index 50c5e716..36a86e1e 100755 --- a/src/main/java/eu/crushedpixel/replaymod/api/client/pagination/FavoritedFilePagination.java +++ b/src/main/java/eu/crushedpixel/replaymod/api/replay/pagination/FavoritedFilePagination.java @@ -1,7 +1,7 @@ -package eu.crushedpixel.replaymod.api.client.pagination; +package eu.crushedpixel.replaymod.api.replay.pagination; import eu.crushedpixel.replaymod.ReplayMod; -import eu.crushedpixel.replaymod.api.client.holders.FileInfo; +import eu.crushedpixel.replaymod.api.replay.holders.FileInfo; import java.util.ArrayList; import java.util.HashMap; diff --git a/src/main/java/eu/crushedpixel/replaymod/api/client/pagination/Pagination.java b/src/main/java/eu/crushedpixel/replaymod/api/replay/pagination/Pagination.java similarity index 66% rename from src/main/java/eu/crushedpixel/replaymod/api/client/pagination/Pagination.java rename to src/main/java/eu/crushedpixel/replaymod/api/replay/pagination/Pagination.java index 32719c31..66adcfff 100644 --- a/src/main/java/eu/crushedpixel/replaymod/api/client/pagination/Pagination.java +++ b/src/main/java/eu/crushedpixel/replaymod/api/replay/pagination/Pagination.java @@ -1,6 +1,6 @@ -package eu.crushedpixel.replaymod.api.client.pagination; +package eu.crushedpixel.replaymod.api.replay.pagination; -import eu.crushedpixel.replaymod.api.client.holders.FileInfo; +import eu.crushedpixel.replaymod.api.replay.holders.FileInfo; import java.util.List; diff --git a/src/main/java/eu/crushedpixel/replaymod/api/client/pagination/SearchPagination.java b/src/main/java/eu/crushedpixel/replaymod/api/replay/pagination/SearchPagination.java similarity index 86% rename from src/main/java/eu/crushedpixel/replaymod/api/client/pagination/SearchPagination.java rename to src/main/java/eu/crushedpixel/replaymod/api/replay/pagination/SearchPagination.java index 63e4059b..90b682c8 100755 --- a/src/main/java/eu/crushedpixel/replaymod/api/client/pagination/SearchPagination.java +++ b/src/main/java/eu/crushedpixel/replaymod/api/replay/pagination/SearchPagination.java @@ -1,8 +1,8 @@ -package eu.crushedpixel.replaymod.api.client.pagination; +package eu.crushedpixel.replaymod.api.replay.pagination; import eu.crushedpixel.replaymod.ReplayMod; -import eu.crushedpixel.replaymod.api.client.SearchQuery; -import eu.crushedpixel.replaymod.api.client.holders.FileInfo; +import eu.crushedpixel.replaymod.api.replay.SearchQuery; +import eu.crushedpixel.replaymod.api.replay.holders.FileInfo; import java.util.ArrayList; import java.util.Arrays;