diff --git a/src/main/java/net/aufdemrand/denizencore/objects/Element.java b/src/main/java/net/aufdemrand/denizencore/objects/Element.java index 13b541a3..daa251cb 100644 --- a/src/main/java/net/aufdemrand/denizencore/objects/Element.java +++ b/src/main/java/net/aufdemrand/denizencore/objects/Element.java @@ -15,6 +15,7 @@ import java.math.BigDecimal; import java.text.DecimalFormat; import java.util.Arrays; +import java.util.Base64; import java.util.HashMap; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -2243,6 +2244,38 @@ public dObject run(Attribute attribute, dObject object) { } }); + // <--[tag] + // @attribute + // @returns Element + // @group math + // @description + // Encodes the element using Base64 encoding. + // --> + registerTag("base64_encode", new TagRunnable.ObjectForm() { + @Override + public dObject run(Attribute attribute, dObject object) { + String encoded = Base64.getEncoder().encodeToString(((Element) object).element.getBytes()); + return new Element(encoded) + .getObjectAttribute(attribute.fulfill(1)); + } + }); + + // <--[tag] + // @attribute + // @returns Element + // @group math + // @description + // Decodes the element using Base64 encoding. Must be valid Base64 input. + // --> + registerTag("base64_decode", new TagRunnable.ObjectForm() { + @Override + public dObject run(Attribute attribute, dObject object) { + String decoded = new String(Base64.getDecoder().decode(((Element) object).element)); + return new Element(decoded) + .getObjectAttribute(attribute.fulfill(1)); + } + }); + // <--[tag] // @attribute // @returns Element