EaglerForge/patches/minecraft/net/minecraft/util/IChatComponent.edit.java

227 lines
5.9 KiB
Java

# Eagler Context Redacted Diff
# Copyright (c) 2024 lax1dude. All rights reserved.
# Version: 1.0
# Author: lax1dude
> DELETE 2 @ 2 : 14
> DELETE 1 @ 1 : 9
> INSERT 1 : 8 @ 1
+ import org.json.JSONArray;
+ import org.json.JSONException;
+ import org.json.JSONObject;
+
+ import net.lax1dude.eaglercraft.v1_8.json.JSONTypeCodec;
+ import net.lax1dude.eaglercraft.v1_8.json.JSONTypeProvider;
+
> CHANGE 19 : 20 @ 19 : 21
~ public static class Serializer implements JSONTypeCodec<IChatComponent, Object> {
> CHANGE 1 : 7 @ 1 : 8
~ public IChatComponent deserialize(Object parJsonElement) throws JSONException {
~ if (parJsonElement instanceof String) {
~ return new ChatComponentText((String) parJsonElement);
~ } else if (!(parJsonElement instanceof JSONObject)) {
~ if (parJsonElement instanceof JSONArray) {
~ JSONArray jsonarray1 = (JSONArray) parJsonElement;
> CHANGE 2 : 4 @ 2 : 5
~ for (Object jsonelement : jsonarray1) {
~ IChatComponent ichatcomponent1 = this.deserialize(jsonelement);
> CHANGE 9 : 11 @ 9 : 11
~ throw new JSONException("Don\'t know how to turn " + parJsonElement.getClass().getSimpleName()
~ + " into a Component");
> CHANGE 2 : 3 @ 2 : 3
~ JSONObject jsonobject = (JSONObject) parJsonElement;
> CHANGE 2 : 3 @ 2 : 3
~ object = new ChatComponentText(jsonobject.getString("text"));
> CHANGE 1 : 2 @ 1 : 2
~ String s = jsonobject.getString("translate");
> CHANGE 1 : 3 @ 1 : 3
~ JSONArray jsonarray = jsonobject.getJSONArray("with");
~ Object[] aobject = new Object[jsonarray.length()];
> CHANGE 2 : 3 @ 2 : 3
~ aobject[i] = this.deserialize(jsonarray.get(i));
> CHANGE 14 : 15 @ 14 : 15
~ JSONObject jsonobject1 = jsonobject.getJSONObject("score");
> CHANGE 1 : 2 @ 1 : 2
~ throw new JSONException("A score component needs a least a name and an objective");
> CHANGE 2 : 3 @ 2 : 4
~ object = new ChatComponentScore(jsonobject1.getString("name"), jsonobject1.getString("objective"));
> CHANGE 1 : 2 @ 1 : 2
~ ((ChatComponentScore) object).setValue(jsonobject1.getString("value"));
> CHANGE 3 : 4 @ 3 : 4
~ throw new JSONException(
> CHANGE 3 : 4 @ 3 : 4
~ object = new ChatComponentSelector(jsonobject.getString("selector"));
> CHANGE 3 : 6 @ 3 : 6
~ JSONArray jsonarray2 = jsonobject.getJSONArray("extra");
~ if (jsonarray2.length() <= 0) {
~ throw new JSONException("Unexpected empty array of components");
> CHANGE 2 : 4 @ 2 : 5
~ for (int j = 0; j < jsonarray2.length(); ++j) {
~ ((IChatComponent) object).appendSibling(this.deserialize(jsonarray2.get(j)));
> CHANGE 3 : 4 @ 3 : 5
~ ((IChatComponent) object).setChatStyle(JSONTypeProvider.deserialize(parJsonElement, ChatStyle.class));
> CHANGE 4 : 8 @ 4 : 12
~ private void serializeChatStyle(ChatStyle style, JSONObject object) {
~ JSONObject jsonelement = JSONTypeProvider.serialize(style);
~ for (String entry : jsonelement.keySet()) {
~ object.put(entry, jsonelement.get(entry));
> DELETE 1 @ 1 : 2
> CHANGE 2 : 3 @ 2 : 4
~ public Object serialize(IChatComponent ichatcomponent) {
> CHANGE 2 : 3 @ 2 : 3
~ return ((ChatComponentText) ichatcomponent).getChatComponentText_TextValue();
> CHANGE 1 : 2 @ 1 : 2
~ JSONObject jsonobject = new JSONObject();
> CHANGE 1 : 2 @ 1 : 2
~ this.serializeChatStyle(ichatcomponent.getChatStyle(), jsonobject);
> CHANGE 3 : 4 @ 3 : 4
~ JSONArray jsonarray = new JSONArray();
> CHANGE 2 : 3 @ 2 : 4
~ jsonarray.put(this.serialize(ichatcomponent1));
> CHANGE 2 : 3 @ 2 : 3
~ jsonobject.put("extra", jsonarray);
> CHANGE 3 : 4 @ 3 : 5
~ jsonobject.put("text", ((ChatComponentText) ichatcomponent).getChatComponentText_TextValue());
> CHANGE 2 : 3 @ 2 : 3
~ jsonobject.put("translate", chatcomponenttranslation.getKey());
> CHANGE 2 : 3 @ 2 : 3
~ JSONArray jsonarray1 = new JSONArray();
> CHANGE 3 : 4 @ 3 : 5
~ jsonarray1.put(this.serialize((IChatComponent) object));
> CHANGE 1 : 2 @ 1 : 2
~ jsonarray1.put(String.valueOf(object));
> CHANGE 3 : 4 @ 3 : 4
~ jsonobject.put("with", jsonarray1);
> CHANGE 3 : 8 @ 3 : 8
~ JSONObject jsonobject1 = new JSONObject();
~ jsonobject1.put("name", chatcomponentscore.getName());
~ jsonobject1.put("objective", chatcomponentscore.getObjective());
~ jsonobject1.put("value", chatcomponentscore.getUnformattedTextForChat());
~ jsonobject.put("score", jsonobject1);
> CHANGE 7 : 8 @ 7 : 8
~ jsonobject.put("selector", chatcomponentselector.getSelector());
> INSERT 6 : 9 @ 6
+ /**
+ * So sorry for this implementation
+ */
> CHANGE 1 : 8 @ 1 : 2
~ if ((component instanceof ChatComponentText) && component.getChatStyle().isEmpty()
~ && component.getSiblings().isEmpty()) {
~ String escaped = new JSONObject().put("E", component.getUnformattedTextForChat()).toString();
~ return escaped.substring(5, escaped.length() - 1);
~ } else {
~ return JSONTypeProvider.serialize(component).toString();
~ }
> CHANGE 3 : 7 @ 3 : 4
~ if (json.equals("null")) {
~ return new ChatComponentText("");
~ }
~ return (IChatComponent) JSONTypeProvider.deserialize(json, IChatComponent.class);
> INSERT 1 : 2 @ 1
+ }
> CHANGE 1 : 14 @ 1 : 7
~ public static IChatComponent join(List<IChatComponent> components) {
~ ChatComponentText chatcomponenttext = new ChatComponentText("");
~
~ for (int i = 0; i < components.size(); ++i) {
~ if (i > 0) {
~ if (i == components.size() - 1) {
~ chatcomponenttext.appendText(" and ");
~ } else if (i > 0) {
~ chatcomponenttext.appendText(", ");
~ }
~ }
~
~ chatcomponenttext.appendSibling((IChatComponent) components.get(i));
> INSERT 1 : 3 @ 1
+
+ return chatcomponenttext;
> EOF