From edc79c1185a1ff45720b64c23a7327ecec832da3 Mon Sep 17 00:00:00 2001 From: mcmonkey Date: Wed, 27 Jun 2018 01:20:51 -0700 Subject: [PATCH] patch up text tags --- .../denizen/tags/core/TextTags.java | 91 +++++++------------ 1 file changed, 34 insertions(+), 57 deletions(-) diff --git a/plugin/src/main/java/net/aufdemrand/denizen/tags/core/TextTags.java b/plugin/src/main/java/net/aufdemrand/denizen/tags/core/TextTags.java index 1ac42d7c35..f7818f24f5 100644 --- a/plugin/src/main/java/net/aufdemrand/denizen/tags/core/TextTags.java +++ b/plugin/src/main/java/net/aufdemrand/denizen/tags/core/TextTags.java @@ -2,10 +2,12 @@ import net.aufdemrand.denizen.Denizen; import net.aufdemrand.denizencore.objects.Element; +import net.aufdemrand.denizencore.objects.TagRunnable; import net.aufdemrand.denizencore.tags.Attribute; import net.aufdemrand.denizencore.tags.ReplaceableTagEvent; import net.aufdemrand.denizencore.tags.TagManager; import net.aufdemrand.denizencore.utilities.CoreUtilities; +import org.apache.logging.log4j.core.Core; import org.bukkit.ChatColor; import org.bukkit.event.Listener; @@ -13,47 +15,20 @@ public class TextTags { public TextTags(Denizen denizen) { TagManager.registerTagEvents(this); - // TODO: register handlers - } - - @TagManager.TagEvents - public void foreignCharacterTags(ReplaceableTagEvent event) { - - - if (!event.getName().startsWith("&")) { - return; - } - Attribute attribute = event.getAttributes(); - - // TODO: Handle case-sensitivity stuff better here! - - if (event.getName().equals("ä")) { - event.setReplaced(new Element("ä").getAttribute(attribute.fulfill(1))); - } - else if (event.getName().equals("Ä")) { - event.setReplaced(new Element("Ä").getAttribute(attribute.fulfill(1))); - } - else if (event.getName().equals("ö")) { - event.setReplaced(new Element("ö").getAttribute(attribute.fulfill(1))); - } - else if (event.getName().equals("Ö")) { - event.setReplaced(new Element("Ö").getAttribute(attribute.fulfill(1))); - } - else if (event.getName().equals("ü")) { - event.setReplaced(new Element("ü").getAttribute(attribute.fulfill(1))); - } - else if (event.getName().equals("Ü")) { - event.setReplaced(new Element("Ü").getAttribute(attribute.fulfill(1))); + // TODO: register handlers for other events + for (ChatColor color : ChatColor.values()) { + final String nameVal = CoreUtilities.toLowerCase(color.name()); + final String codeVal = "&" + String.valueOf(color.getChar()); + final String retVal = color.toString(); + TagManager.registerTagHandler(new TagRunnable.RootForm() { + @Override + public void run(ReplaceableTagEvent event) { + event.setReplacedObject(new Element(retVal).getObjectAttribute(event.getAttributes().fulfill(1))); + } + }, nameVal, codeVal); } - } - - final String[] code = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9" - , "a", "b", "c", "d", "e", "f", "k", "l", "m", "n", "o", "r"}; - final String[] code2 = {"&0", "&1", "&2", "&3", "&4", "&5", "&6", "&7", "&8", "&9" - , "&a", "&b", "&c", "&d", "&e", "&f", "&k", "&l", "&m", "&n", "&o", "&r"}; - // <--[tag] // @attribute <&0> // @returns Element @@ -363,25 +338,6 @@ else if (event.getName().equals("Ü")) { // --> - @TagManager.TagEvents - public void colorTags(ReplaceableTagEvent event) { - Attribute attribute = event.getAttributes(); - int i = 0; - for (ChatColor color : ChatColor.values()) { - if (i > 22) { - break; - } - if (event.matches(color.name())) { - event.setReplaced(new Element(color.toString()).getAttribute(attribute.fulfill(1))); - } - else if (event.matches(code2[i])) { - event.setReplaced(new Element(ChatColor.getByChar(code[i]).toString()).getAttribute(attribute.fulfill(1))); - } - i++; - } - } - - @TagManager.TagEvents public void specialCharacterTags(ReplaceableTagEvent event) { if (!event.getName().startsWith("&")) { @@ -390,6 +346,27 @@ public void specialCharacterTags(ReplaceableTagEvent event) { String lower = CoreUtilities.toLowerCase(event.getName()); Attribute attribute = event.getAttributes(); + // TODO: Handle case-sensitivity stuff better here! + + if (event.getName().equals("ä")) { + event.setReplaced(new Element("ä").getAttribute(attribute.fulfill(1))); + } + else if (event.getName().equals("Ä")) { + event.setReplaced(new Element("Ä").getAttribute(attribute.fulfill(1))); + } + else if (event.getName().equals("ö")) { + event.setReplaced(new Element("ö").getAttribute(attribute.fulfill(1))); + } + else if (event.getName().equals("Ö")) { + event.setReplaced(new Element("Ö").getAttribute(attribute.fulfill(1))); + } + else if (event.getName().equals("ü")) { + event.setReplaced(new Element("ü").getAttribute(attribute.fulfill(1))); + } + else if (event.getName().equals("Ü")) { + event.setReplaced(new Element("Ü").getAttribute(attribute.fulfill(1))); + } + // <--[tag] // @attribute <&nl> // @returns Element