package mkremins.fanciful;

import org.bukkit.ChatColor;
import org.bukkit.craftbukkit.libs.com.google.gson.stream.JsonWriter;

final class MessagePart {

	ChatColor color = ChatColor.WHITE;
	ChatColor[] styles = {};
	String clickActionName = null, clickActionData = null,
		   hoverActionName = null, hoverActionData = null;
	final String text;

	MessagePart(final String text) {
		this.text = text;
	}

	JsonWriter writeJson(JsonWriter json) {
		try {
			json.beginObject().name("text").value(text);
			json.name("color").value(color.name().toLowerCase());
			for (final ChatColor style : styles) {
				if (style == ChatColor.MAGIC) {
                    			json.name("obfuscated").value(true);
                		} else {
                    			json.name(style.name().toLowerCase()).value(true);
                		}
			}
			if (clickActionName != null && clickActionData != null) {
				json.name("clickEvent")
					.beginObject()
					.name("action").value(clickActionName)
					.name("value").value(clickActionData)
					.endObject();
			}
			if (hoverActionName != null && hoverActionData != null) {
				json.name("hoverEvent")
					.beginObject()
					.name("action").value(hoverActionName)
					.name("value").value(hoverActionData)
					.endObject();
			}
			return json.endObject();
		} catch(Exception e){
			e.printStackTrace();
			return json;
		}
	}

}

@@ -630,36 +630,18 @@
 AGIC) %7B%0A
-                    
+%09%09
 %09%09%09json.
@@ -676,55 +676,23 @@
 e);%0A
-                %09%09%7D else %7B%0A                    
+%09%09%09%09%7D else %7B%0A%09%09
 %09%09%09j
@@ -745,24 +745,10 @@
 e);%0A
-                
+%09%09
 %09%09%7D%0A

fix minor indentation inconsistencies