Skip to content

Commit

Permalink
parseTags opts in scriptcontainer
Browse files Browse the repository at this point in the history
  • Loading branch information
mcmonkey4eva committed Dec 25, 2023
1 parent cd2ef3a commit 5711381
Showing 1 changed file with 40 additions and 8 deletions.
@@ -1,6 +1,9 @@
package com.denizenscript.denizencore.scripts.containers;

import com.denizenscript.denizencore.objects.ObjectTag;
import com.denizenscript.denizencore.objects.core.ListTag;
import com.denizenscript.denizencore.scripts.*;
import com.denizenscript.denizencore.tags.TagContext;
import com.denizenscript.denizencore.tags.TagManager;
import com.denizenscript.denizencore.utilities.CoreConfiguration;
import com.denizenscript.denizencore.utilities.CoreUtilities;
Expand Down Expand Up @@ -70,6 +73,15 @@ public ScriptContainer(YamlConfiguration configurationSection, String scriptCont
this.name = CoreUtilities.toUpperCase(scriptContainerName);
}

public <T extends ObjectTag> T tagObject(String text, Class<T> type) {
TagContext context = DenizenCore.implementation.getTagContext(this);
return TagManager.tagObject(text, context).asType(type, context);
}

public String tag(String text) {
return TagManager.tag(text, DenizenCore.implementation.getTagContext(this));
}

public Boolean enabledCache = null;

public boolean shouldEnable() {
Expand All @@ -80,7 +92,7 @@ public boolean shouldEnable() {
if (enabledText == null) {
return enabledCache = true;
}
String result = TagManager.tag(enabledText, DenizenCore.implementation.getTagContext(this));
String result = tag(enabledText);
return enabledCache = (result == null || CoreUtilities.equalsIgnoreCase(result, "true"));
}

Expand Down Expand Up @@ -243,16 +255,36 @@ public String getString(String path, String def) {
return contents.getString(path, def);
}

public String getString(String path, String def, boolean parseTags) {
String str = contents.getString(path);
if (str == null) {
return def;
}
return parseTags ? tag(str) : str;
}

public List<String> getStringList(String path) {
List<String> strs = contents.getStringList(path);
if (strs == null) {
return null;
return getStringList(path, false);
}

public List<String> getStringList(String path, boolean parseTags) {
Object obj = contents.get(path);
if (obj instanceof List list) {
List<String> strs = YamlConfiguration.patchListNonsense(list);
ArrayList<String> output = new ArrayList<>(strs.size());
for (String str : strs) {
str = ScriptBuilder.stripLinePrefix(str);
if (parseTags) {
str = tag(str);
}
output.add(str);
}
return output;
}
ArrayList<String> output = new ArrayList<>(strs.size());
for (String str : strs) {
output.add(ScriptBuilder.stripLinePrefix(str));
else if (parseTags) {
return tagObject(obj.toString(), ListTag.class);
}
return output;
return null;
}

public YamlConfiguration getConfigurationSection(String path) {
Expand Down

0 comments on commit 5711381

Please sign in to comment.