public IChatComponent deserialize( JsonElement p_deserialize_1_, Type p_deserialize_2_, JsonDeserializationContext p_deserialize_3_) { if (p_deserialize_1_.isJsonPrimitive()) { return new ChatComponentText(p_deserialize_1_.getAsString()); } else if (!p_deserialize_1_.isJsonObject()) { if (p_deserialize_1_.isJsonArray()) { JsonArray var11 = p_deserialize_1_.getAsJsonArray(); IChatComponent var12 = null; Iterator var15 = var11.iterator(); while (var15.hasNext()) { JsonElement var17 = (JsonElement) var15.next(); IChatComponent var18 = this.deserialize(var17, var17.getClass(), p_deserialize_3_); if (var12 == null) { var12 = var18; } else { var12.appendSibling(var18); } } return var12; } else { throw new JsonParseException( "Don\'t know how to turn " + p_deserialize_1_.toString() + " into a Component"); } } else { JsonObject var4 = p_deserialize_1_.getAsJsonObject(); Object var5; if (var4.has("text")) { var5 = new ChatComponentText(var4.get("text").getAsString()); } else if (var4.has("translate")) { String var6 = var4.get("translate").getAsString(); if (var4.has("with")) { JsonArray var7 = var4.getAsJsonArray("with"); Object[] var8 = new Object[var7.size()]; for (int var9 = 0; var9 < var8.length; ++var9) { var8[var9] = this.deserialize(var7.get(var9), p_deserialize_2_, p_deserialize_3_); if (var8[var9] instanceof ChatComponentText) { ChatComponentText var10 = (ChatComponentText) var8[var9]; if (var10.getChatStyle().isEmpty() && var10.getSiblings().isEmpty()) { var8[var9] = var10.getChatComponentText_TextValue(); } } } var5 = new ChatComponentTranslation(var6, var8); } else { var5 = new ChatComponentTranslation(var6, new Object[0]); } } else if (var4.has("score")) { JsonObject var13 = var4.getAsJsonObject("score"); if (!var13.has("name") || !var13.has("objective")) { throw new JsonParseException("A score component needs a least a name and an objective"); } var5 = new ChatComponentScore( JsonUtils.getJsonObjectStringFieldValue(var13, "name"), JsonUtils.getJsonObjectStringFieldValue(var13, "objective")); if (var13.has("value")) { ((ChatComponentScore) var5) .func_179997_b(JsonUtils.getJsonObjectStringFieldValue(var13, "value")); } } else { if (!var4.has("selector")) { throw new JsonParseException( "Don\'t know how to turn " + p_deserialize_1_.toString() + " into a Component"); } var5 = new ChatComponentSelector(JsonUtils.getJsonObjectStringFieldValue(var4, "selector")); } if (var4.has("extra")) { JsonArray var14 = var4.getAsJsonArray("extra"); if (var14.size() <= 0) { throw new JsonParseException("Unexpected empty array of components"); } for (int var16 = 0; var16 < var14.size(); ++var16) { ((IChatComponent) var5) .appendSibling( this.deserialize(var14.get(var16), p_deserialize_2_, p_deserialize_3_)); } } ((IChatComponent) var5) .setChatStyle( (ChatStyle) p_deserialize_3_.deserialize(p_deserialize_1_, ChatStyle.class)); return (IChatComponent) var5; } }
@Override public boolean run(Screenshot screen) { try { String title = ConfigHandler.SAVE_DATE_FORMAT.format(new Date()); String description = "A minecraft screenshot "; if (Minecraft.getMinecraft().isSingleplayer()) { description += "in " + Minecraft.getMinecraft().getIntegratedServer().getFolderName(); } else { ServerData data = Minecraft.getMinecraft().func_147104_D(); description += "on " + data.serverIP + (data.field_82821_f != 25565 ? ":" + data.field_82821_f : ""); } ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageIO.write(screen.image, "png", baos); String data = Base64.encodeBase64String(baos.toByteArray()); List<NameValuePair> arguments = new ArrayList<NameValuePair>(3); arguments.add(new BasicNameValuePair("client_id", ImgurAuthHandler.CLIENT_ID)); arguments.add(new BasicNameValuePair("image", data)); arguments.add(new BasicNameValuePair("type", "base64")); arguments.add(new BasicNameValuePair("title", title)); arguments.add(new BasicNameValuePair("description", description)); HttpPost hpost = new HttpPost("https://api.imgur.com/3/upload"); hpost.setEntity(new UrlEncodedFormEntity(arguments)); if (ImgurAuthHandler.getInstance().getAccessToken() != null) { hpost.addHeader( "Authorization", "Bearer " + ImgurAuthHandler.getInstance().getAccessToken()); } else { hpost.addHeader("Authorization", "Client-ID " + ImgurAuthHandler.CLIENT_ID); } HttpClient client = HttpClientBuilder.create().build(); HttpResponse resp = client.execute(hpost); String result = EntityUtils.toString(resp.getEntity()); JsonObject responce = new JsonParser().parse(result).getAsJsonObject(); JsonObject responceData = responce.get("data").getAsJsonObject(); if (responce.has("success") && responce.get("success").getAsBoolean()) { final String uploadUrl = responceData.get("link").getAsString(); HistoryHandler.addUploadedImage( new UploadedImage(title, uploadUrl, screen, new ImgurImageSource(uploadUrl))); IChatComponent message = new ChatComponentTranslation("image.upload.success"); IChatComponent url = new ChatComponentText("Imgur"); IChatComponent tooltip = new ChatComponentText(uploadUrl) .setChatStyle(new ChatStyle().setColor(EnumChatFormatting.AQUA)); url.setChatStyle( new ChatStyle() .setColor(EnumChatFormatting.GOLD) .setBold(true) .setChatHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, tooltip)) .setChatClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, uploadUrl))); message.appendSibling(url); MessageHandler.sendChatMessage(message); if (ConfigHandler.COPY_URL_TO_CLIPBOARD) { GuiScreen.setClipboardString(uploadUrl); MessageHandler.sendChatMessage("image.upload.copy"); } } else { MessageHandler.sendChatMessage( "image.upload.fail", "Imgur", responce.get("status").getAsInt()); MessageHandler.sendChatMessage(responceData.get("error").getAsString()); return false; } return true; } catch (Exception ex) { ex.printStackTrace(); MessageHandler.sendChatMessage("image.upload.fail", "Imgur", ex.getMessage()); return false; } }
public IChatComponent deserialize( JsonElement p_deserialize_1_, Type p_deserialize_2_, JsonDeserializationContext p_deserialize_3_) { if (p_deserialize_1_.isJsonPrimitive()) { return new ChatComponentText(p_deserialize_1_.getAsString()); } else if (!p_deserialize_1_.isJsonObject()) { if (p_deserialize_1_.isJsonArray()) { JsonArray jsonarray1 = p_deserialize_1_.getAsJsonArray(); IChatComponent ichatcomponent = null; Iterator iterator = jsonarray1.iterator(); while (iterator.hasNext()) { JsonElement jsonelement1 = (JsonElement) iterator.next(); IChatComponent ichatcomponent1 = this.deserialize(jsonelement1, jsonelement1.getClass(), p_deserialize_3_); if (ichatcomponent == null) { ichatcomponent = ichatcomponent1; } else { ichatcomponent.appendSibling(ichatcomponent1); } } return ichatcomponent; } else { throw new JsonParseException( "Don\'t know how to turn " + p_deserialize_1_.toString() + " into a Component"); } } else { JsonObject jsonobject = p_deserialize_1_.getAsJsonObject(); Object object; if (jsonobject.has("text")) { object = new ChatComponentText(jsonobject.get("text").getAsString()); } else if (jsonobject.has("translate")) { String s = jsonobject.get("translate").getAsString(); if (jsonobject.has("with")) { JsonArray jsonarray = jsonobject.getAsJsonArray("with"); Object[] aobject = new Object[jsonarray.size()]; for (int i = 0; i < aobject.length; ++i) { aobject[i] = this.deserialize(jsonarray.get(i), p_deserialize_2_, p_deserialize_3_); if (aobject[i] instanceof ChatComponentText) { ChatComponentText chatcomponenttext = (ChatComponentText) aobject[i]; if (chatcomponenttext.getChatStyle().isEmpty() && chatcomponenttext.getSiblings().isEmpty()) { aobject[i] = chatcomponenttext.getChatComponentText_TextValue(); } } } object = new ChatComponentTranslation(s, aobject); } else { object = new ChatComponentTranslation(s, new Object[0]); } } else if (jsonobject.has("score")) { JsonObject jsonobject1 = jsonobject.getAsJsonObject("score"); if (!jsonobject1.has("name") || !jsonobject1.has("objective")) { throw new JsonParseException("A score component needs a least a name and an objective"); } object = new ChatComponentScore( JsonUtils.getJsonObjectStringFieldValue(jsonobject1, "name"), JsonUtils.getJsonObjectStringFieldValue(jsonobject1, "objective")); if (jsonobject1.has("value")) { ((ChatComponentScore) object) .func_179997_b(JsonUtils.getJsonObjectStringFieldValue(jsonobject1, "value")); } } else { if (!jsonobject.has("selector")) { throw new JsonParseException( "Don\'t know how to turn " + p_deserialize_1_.toString() + " into a Component"); } object = new ChatComponentSelector( JsonUtils.getJsonObjectStringFieldValue(jsonobject, "selector")); } if (jsonobject.has("extra")) { JsonArray jsonarray2 = jsonobject.getAsJsonArray("extra"); if (jsonarray2.size() <= 0) { throw new JsonParseException("Unexpected empty array of components"); } for (int j = 0; j < jsonarray2.size(); ++j) { ((IChatComponent) object) .appendSibling( this.deserialize(jsonarray2.get(j), p_deserialize_2_, p_deserialize_3_)); } } ((IChatComponent) object) .setChatStyle( (ChatStyle) p_deserialize_3_.deserialize(p_deserialize_1_, ChatStyle.class)); return (IChatComponent) object; } }
public static List<IChatComponent> func_178908_a( IChatComponent p_178908_0_, int p_178908_1_, FontRenderer p_178908_2_, boolean p_178908_3_, boolean p_178908_4_) { int i = 0; IChatComponent ichatcomponent = new ChatComponentText(""); List<IChatComponent> list = Lists.<IChatComponent>newArrayList(); List<IChatComponent> list1 = Lists.newArrayList(p_178908_0_); for (int j = 0; j < ((List) list1).size(); ++j) { IChatComponent ichatcomponent1 = (IChatComponent) list1.get(j); String s = ichatcomponent1.getUnformattedTextForChat(); boolean flag = false; if (s.contains("\n")) { int k = s.indexOf(10); String s1 = s.substring(k + 1); s = s.substring(0, k + 1); ChatComponentText chatcomponenttext = new ChatComponentText(s1); chatcomponenttext.setChatStyle(ichatcomponent1.getChatStyle().createShallowCopy()); list1.add(j + 1, chatcomponenttext); flag = true; } String s4 = func_178909_a(ichatcomponent1.getChatStyle().getFormattingCode() + s, p_178908_4_); String s5 = s4.endsWith("\n") ? s4.substring(0, s4.length() - 1) : s4; int i1 = p_178908_2_.getStringWidth(s5); ChatComponentText chatcomponenttext1 = new ChatComponentText(s5); chatcomponenttext1.setChatStyle(ichatcomponent1.getChatStyle().createShallowCopy()); if (i + i1 > p_178908_1_) { String s2 = p_178908_2_.trimStringToWidth(s4, p_178908_1_ - i, false); String s3 = s2.length() < s4.length() ? s4.substring(s2.length()) : null; if (s3 != null && s3.length() > 0) { int l = s2.lastIndexOf(" "); if (l >= 0 && p_178908_2_.getStringWidth(s4.substring(0, l)) > 0) { s2 = s4.substring(0, l); if (p_178908_3_) { ++l; } s3 = s4.substring(l); } else if (i > 0 && !s4.contains(" ")) { s2 = ""; s3 = s4; } ChatComponentText chatcomponenttext2 = new ChatComponentText(s3); chatcomponenttext2.setChatStyle(ichatcomponent1.getChatStyle().createShallowCopy()); list1.add(j + 1, chatcomponenttext2); } i1 = p_178908_2_.getStringWidth(s2); chatcomponenttext1 = new ChatComponentText(s2); chatcomponenttext1.setChatStyle(ichatcomponent1.getChatStyle().createShallowCopy()); flag = true; } if (i + i1 <= p_178908_1_) { i += i1; ichatcomponent.appendSibling(chatcomponenttext1); } else { flag = true; } if (flag) { list.add(ichatcomponent); i = 0; ichatcomponent = new ChatComponentText(""); } } list.add(ichatcomponent); return list; }