diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/CraftEngine.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/CraftEngine.java index 8bbfb01c0..58c1ac8cd 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/CraftEngine.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/CraftEngine.java @@ -114,7 +114,7 @@ public abstract class CraftEngine implements Plugin { LegacyRecipeTypes.init(); // 初始化模板管理器 - this.templateManager = new TemplateManagerImpl(); + this.templateManager = TemplateManager.INSTANCE; // 初始化全局变量管理器 this.globalVariableManager = new GlobalVariableManager(); // 初始化物品浏览器 diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/ArgumentString.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/ArgumentString.java new file mode 100644 index 000000000..f3846da86 --- /dev/null +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/ArgumentString.java @@ -0,0 +1,303 @@ +package net.momirealms.craftengine.core.plugin.config.template; + +import net.momirealms.craftengine.core.plugin.config.template.argument.TemplateArgument; +import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; +import net.momirealms.craftengine.core.util.SNBTReader; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public interface ArgumentString { + String rawValue(); + + Object get(Map arguments); + + final class Literal implements ArgumentString { + private final String value; + + public Literal(String value) { + this.value = value; + } + + public static Literal literal(String value) { + return new Literal(value); + } + + @Override + public String rawValue() { + return this.value; + } + + @Override + public Object get(Map arguments) { + return this.value; + } + + @Override + public boolean equals(Object o) { + if (!(o instanceof Literal literal)) return false; + return this.value.equals(literal.value); + } + + @Override + public int hashCode() { + return this.value.hashCode(); + } + + @Override + public String toString() { + return "Literal(" + this.value + ")"; + } + } + + final class Placeholder implements ArgumentString { + private final String placeholder; + private final String rawText; + private final Object defaultValue; + private final boolean hasDefaultValue; + + public Placeholder(String placeholderContent) { + this.rawText = "${" + placeholderContent + "}"; + int separatorIndex = placeholderContent.indexOf(":-"); + if (separatorIndex == -1) { + this.placeholder = placeholderContent; + this.defaultValue = null; + this.hasDefaultValue = false; + } else { + this.placeholder = placeholderContent.substring(0, separatorIndex); + String defaultValueString = placeholderContent.substring(separatorIndex + 2); + try { + this.defaultValue = ((TemplateManagerImpl) TemplateManager.INSTANCE).preprocessUnknownValue(new SNBTReader(defaultValueString).deserializeAsJava()); + } catch (LocalizedResourceConfigException e) { + e.appendTailArgument(this.placeholder); + throw e; + } + this.hasDefaultValue = true; + } + } + + public static Placeholder placeholder(String placeholder) { + return new Placeholder(placeholder); + } + + @Override + public Object get(Map arguments) { + TemplateArgument replacement = arguments.get(this.placeholder); + if (replacement != null) { + return replacement.get(arguments); + } + if (this.hasDefaultValue) { + if (this.defaultValue == null) { + return null; + } + return ((TemplateManagerImpl) TemplateManager.INSTANCE).processUnknownValue(this.defaultValue, arguments); + } + throw new LocalizedResourceConfigException("warning.config.template.argument.missing_value", this.rawText); + } + + @Override + public String rawValue() { + return this.rawText; + } + + @Override + public boolean equals(Object o) { + if (!(o instanceof Placeholder that)) return false; + return this.placeholder.equals(that.placeholder); + } + + @Override + public int hashCode() { + return this.placeholder.hashCode(); + } + + @Override + public String toString() { + return "Placeholder(" + this.placeholder + ")"; + } + } + + final class Complex2 implements ArgumentString { + private final String rawText; + private final ArgumentString arg1; + private final ArgumentString arg2; + + public Complex2(String rawText, ArgumentString arg1, ArgumentString arg2) { + this.arg1 = arg1; + this.arg2 = arg2; + this.rawText = rawText; + } + + @Override + public Object get(Map arguments) { + Object arg1 = this.arg1.get(arguments); + Object arg2 = this.arg2.get(arguments); + if (arg1 == null && arg2 == null) return null; + if (arg1 == null) return String.valueOf(arg2); + if (arg2 == null) return String.valueOf(arg1); + return String.valueOf(arg1) + arg2; + } + + @Override + public String rawValue() { + return this.rawText; + } + + @Override + public boolean equals(Object o) { + if (!(o instanceof Complex that)) return false; + return this.rawText.equals(that.rawText); + } + + @Override + public int hashCode() { + return this.rawText.hashCode(); + } + + @Override + public String toString() { + return "Complex2(" + this.rawText + ")"; + } + } + + final class Complex implements ArgumentString { + private final List parts; + private final String rawText; + + public Complex(String rawText, List parts) { + this.parts = parts; + this.rawText = rawText; + } + + @Override + public Object get(Map arguments) { + StringBuilder result = new StringBuilder(); + boolean hasValue = false; + for (ArgumentString part : this.parts) { + Object arg = part.get(arguments); + if (arg != null) { + result.append(arg); + hasValue = true; + } + } + if (!hasValue) return null; + return result.toString(); + } + + @Override + public String rawValue() { + return this.rawText; + } + + @Override + public boolean equals(Object o) { + if (!(o instanceof Complex that)) return false; + return this.rawText.equals(that.rawText); + } + + @Override + public int hashCode() { + return this.rawText.hashCode(); + } + + @Override + public String toString() { + return "Complex(" + this.rawText + ")"; + } + } + + static ArgumentString preParse(String input) { + if (input == null || input.isEmpty()) { + return Literal.literal(""); + } + + List arguments = new ArrayList<>(); + StringBuilder currentLiteral = new StringBuilder(); + final int n = input.length(); + int i = 0; + + while (i < n) { + char c = input.charAt(i); + + // --- 1. 优先检测占位符触发器 --- + if (c == '$' && i + 1 < n && input.charAt(i + 1) == '{') { + + // a. 提交之前的普通文本 + if (!currentLiteral.isEmpty()) { + arguments.add(Literal.literal(currentLiteral.toString())); + currentLiteral.setLength(0); + } + + // b. 解析占位符内部,此处的逻辑拥有自己的转义规则 + int contentStartIndex = i + 2; + StringBuilder keyBuilder = new StringBuilder(); + int depth = 1; + int j = contentStartIndex; + boolean foundMatch = false; + + while (j < n) { + char innerChar = input.charAt(j); + + // --- 占位符内部的转义逻辑 --- + if (innerChar == '\\') { + if (j + 1 < n && (input.charAt(j + 1) == '{' || input.charAt(j + 1) == '}')) { + keyBuilder.append(input.charAt(j + 1)); + j += 2; + } else { + // 在占位符内部,一个无法识别的转义\依旧被当作普通\处理 + keyBuilder.append(innerChar); + j++; + } + } else if (innerChar == '{') { + depth++; + keyBuilder.append(innerChar); + j++; + } else if (innerChar == '}') { + depth--; + if (depth == 0) { // 找到匹配的闭合括号 + arguments.add(Placeholder.placeholder(keyBuilder.toString())); + i = j + 1; + foundMatch = true; + break; + } + keyBuilder.append(innerChar); + j++; + } else { + keyBuilder.append(innerChar); + j++; + } + } + + if (foundMatch) { + continue; + } else { + // 未找到闭合括号,将 '$' 视为普通字符 + currentLiteral.append(c); + i++; + } + } + // --- 2. 其次,只处理对触发器'$'的转义 --- + else if (c == '\\' && i + 1 < n && input.charAt(i + 1) == '$') { + currentLiteral.append('$'); // 直接添加 '$' + i += 2; // 跳过 '\' 和 '$' + } + // --- 3. 处理所有其他字符(包括独立的'\'和'{')为普通文本 --- + else { + currentLiteral.append(c); + i++; + } + } + + if (!currentLiteral.isEmpty()) { + arguments.add(Literal.literal(currentLiteral.toString())); + } + + return switch (arguments.size()) { + case 0 -> Literal.literal(""); + case 1 -> arguments.getFirst(); + case 2 -> new Complex2(input, arguments.get(0), arguments.get(1)); + default -> new Complex(input, arguments); + }; + } +} diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/TemplateManager.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/TemplateManager.java index 86840c238..79b942023 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/TemplateManager.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/TemplateManager.java @@ -2,6 +2,7 @@ package net.momirealms.craftengine.core.plugin.config.template; import net.momirealms.craftengine.core.plugin.Manageable; import net.momirealms.craftengine.core.plugin.config.ConfigParser; +import net.momirealms.craftengine.core.plugin.config.template.argument.TemplateArgument; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.SNBTReader; @@ -12,299 +13,9 @@ import java.util.Map; public interface TemplateManager extends Manageable { + TemplateManager INSTANCE = new TemplateManagerImpl(); + ConfigParser parser(); Object applyTemplates(Key id, Object input); - - interface ArgumentString { - - String rawValue(); - - Object get(Map arguments); - } - - final class Literal implements ArgumentString { - private final String value; - - public Literal(String value) { - this.value = value; - } - - public static Literal literal(String value) { - return new Literal(value); - } - - @Override - public String rawValue() { - return this.value; - } - - @Override - public Object get(Map arguments) { - return this.value; - } - - @Override - public boolean equals(Object o) { - if (!(o instanceof Literal literal)) return false; - return this.value.equals(literal.value); - } - - @Override - public int hashCode() { - return this.value.hashCode(); - } - - @Override - public String toString() { - return "Literal(" + this.value + ")"; - } - } - - final class Placeholder implements ArgumentString { - private final String placeholder; - private final String rawText; - private final Object defaultValue; - private final boolean hasDefaultValue; - - public Placeholder(String placeholderContent) { - this.rawText = "${" + placeholderContent + "}"; - int separatorIndex = placeholderContent.indexOf(":-"); - if (separatorIndex == -1) { - this.placeholder = placeholderContent; - this.defaultValue = null; - this.hasDefaultValue = false; - } else { - this.placeholder = placeholderContent.substring(0, separatorIndex); - String defaultValueString = placeholderContent.substring(separatorIndex + 2); - try { - this.defaultValue = new SNBTReader(defaultValueString).deserializeAsJava(); - } catch (LocalizedResourceConfigException e) { - e.appendTailArgument(this.placeholder); - throw e; - } - this.hasDefaultValue = true; - } - } - - public static Placeholder placeholder(String placeholder) { - return new Placeholder(placeholder); - } - - @Override - public Object get(Map arguments) { - TemplateArgument replacement = arguments.get(this.placeholder); - if (replacement != null) { - return replacement.get(arguments); - } - if (this.hasDefaultValue) { - return this.defaultValue; - } - throw new LocalizedResourceConfigException("warning.config.template.argument.missing_value", this.rawText); - } - - @Override - public String rawValue() { - return this.rawText; - } - - @Override - public boolean equals(Object o) { - if (!(o instanceof Placeholder that)) return false; - return this.placeholder.equals(that.placeholder); - } - - @Override - public int hashCode() { - return this.placeholder.hashCode(); - } - - @Override - public String toString() { - return "Placeholder(" + this.placeholder + ")"; - } - } - - final class Complex2 implements ArgumentString { - private final String rawText; - private final ArgumentString arg1; - private final ArgumentString arg2; - - public Complex2(String rawText, ArgumentString arg1, ArgumentString arg2) { - this.arg1 = arg1; - this.arg2 = arg2; - this.rawText = rawText; - } - - @Override - public Object get(Map arguments) { - Object arg1 = this.arg1.get(arguments); - Object arg2 = this.arg2.get(arguments); - if (arg1 == null && arg2 == null) return null; - if (arg1 == null) return String.valueOf(arg2); - if (arg2 == null) return String.valueOf(arg1); - return String.valueOf(arg1) + arg2; - } - - @Override - public String rawValue() { - return this.rawText; - } - - @Override - public boolean equals(Object o) { - if (!(o instanceof Complex that)) return false; - return this.rawText.equals(that.rawText); - } - - @Override - public int hashCode() { - return this.rawText.hashCode(); - } - - @Override - public String toString() { - return "Complex2(" + this.rawText + ")"; - } - } - - final class Complex implements ArgumentString { - private final List parts; - private final String rawText; - - public Complex(String rawText, List parts) { - this.parts = parts; - this.rawText = rawText; - } - - @Override - public Object get(Map arguments) { - StringBuilder result = new StringBuilder(); - boolean hasValue = false; - for (ArgumentString part : this.parts) { - Object arg = part.get(arguments); - if (arg != null) { - result.append(arg); - hasValue = true; - } - } - if (!hasValue) return null; - return result.toString(); - } - - @Override - public String rawValue() { - return this.rawText; - } - - @Override - public boolean equals(Object o) { - if (!(o instanceof Complex that)) return false; - return this.rawText.equals(that.rawText); - } - - @Override - public int hashCode() { - return this.rawText.hashCode(); - } - - @Override - public String toString() { - return "Complex(" + this.rawText + ")"; - } - } - - static ArgumentString preParse(String input) { - if (input == null || input.isEmpty()) { - return Literal.literal(""); - } - - List arguments = new ArrayList<>(); - StringBuilder currentLiteral = new StringBuilder(); - final int n = input.length(); - int i = 0; - - while (i < n) { - char c = input.charAt(i); - - // --- 1. 优先检测占位符触发器 --- - if (c == '$' && i + 1 < n && input.charAt(i + 1) == '{') { - - // a. 提交之前的普通文本 - if (!currentLiteral.isEmpty()) { - arguments.add(Literal.literal(currentLiteral.toString())); - currentLiteral.setLength(0); - } - - // b. 解析占位符内部,此处的逻辑拥有自己的转义规则 - int contentStartIndex = i + 2; - StringBuilder keyBuilder = new StringBuilder(); - int depth = 1; - int j = contentStartIndex; - boolean foundMatch = false; - - while (j < n) { - char innerChar = input.charAt(j); - - // --- 占位符内部的转义逻辑 --- - if (innerChar == '\\') { - if (j + 1 < n && (input.charAt(j + 1) == '{' || input.charAt(j + 1) == '}')) { - keyBuilder.append(input.charAt(j + 1)); - j += 2; - } else { - // 在占位符内部,一个无法识别的转义\依旧被当作普通\处理 - keyBuilder.append(innerChar); - j++; - } - } else if (innerChar == '{') { - depth++; - keyBuilder.append(innerChar); - j++; - } else if (innerChar == '}') { - depth--; - if (depth == 0) { // 找到匹配的闭合括号 - arguments.add(Placeholder.placeholder(keyBuilder.toString())); - i = j + 1; - foundMatch = true; - break; - } - keyBuilder.append(innerChar); - j++; - } else { - keyBuilder.append(innerChar); - j++; - } - } - - if (foundMatch) { - continue; - } else { - // 未找到闭合括号,将 '$' 视为普通字符 - currentLiteral.append(c); - i++; - } - } - // --- 2. 其次,只处理对触发器'$'的转义 --- - else if (c == '\\' && i + 1 < n && input.charAt(i + 1) == '$') { - currentLiteral.append('$'); // 直接添加 '$' - i += 2; // 跳过 '\' 和 '$' - } - // --- 3. 处理所有其他字符(包括独立的'\'和'{')为普通文本 --- - else { - currentLiteral.append(c); - i++; - } - } - - if (!currentLiteral.isEmpty()) { - arguments.add(Literal.literal(currentLiteral.toString())); - } - - return switch (arguments.size()) { - case 0 -> Literal.literal(""); - case 1 -> arguments.getFirst(); - case 2 -> new Complex2(input, arguments.get(0), arguments.get(1)); - default -> new Complex(input, arguments); - }; - } } diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/TemplateManagerImpl.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/TemplateManagerImpl.java index 0d411d956..3b0502db5 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/TemplateManagerImpl.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/TemplateManagerImpl.java @@ -4,6 +4,7 @@ import net.momirealms.craftengine.core.pack.LoadingSequence; import net.momirealms.craftengine.core.pack.Pack; import net.momirealms.craftengine.core.plugin.config.ConfigParser; import net.momirealms.craftengine.core.plugin.config.IdObjectConfigParser; +import net.momirealms.craftengine.core.plugin.config.template.argument.*; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.MiscUtils; @@ -14,16 +15,16 @@ import java.util.*; @SuppressWarnings("DuplicatedCode") public class TemplateManagerImpl implements TemplateManager { - private static final ArgumentString TEMPLATE = Literal.literal("template"); - private static final ArgumentString OVERRIDES = Literal.literal("overrides"); - private static final ArgumentString ARGUMENTS = Literal.literal("arguments"); - private static final ArgumentString MERGES = Literal.literal("merges"); + private static final ArgumentString TEMPLATE = ArgumentString.Literal.literal("template"); + private static final ArgumentString OVERRIDES = ArgumentString.Literal.literal("overrides"); + private static final ArgumentString ARGUMENTS = ArgumentString.Literal.literal("arguments"); + private static final ArgumentString MERGES = ArgumentString.Literal.literal("merges"); private final static Set NON_TEMPLATE_ARGUMENTS = new HashSet<>(Set.of(TEMPLATE, ARGUMENTS, OVERRIDES, MERGES)); private final Map templates = new HashMap<>(); private final TemplateParser templateParser; - public TemplateManagerImpl() { + protected TemplateManagerImpl() { this.templateParser = new TemplateParser(); } @@ -69,13 +70,13 @@ public class TemplateManagerImpl implements TemplateManager { )); } - private Object preprocessUnknownValue(Object value) { + public Object preprocessUnknownValue(Object value) { switch (value) { case Map map -> { Map in = MiscUtils.castToMap(map, false); Map out = new LinkedHashMap<>(map.size()); for (Map.Entry entry : in.entrySet()) { - out.put(TemplateManager.preParse(entry.getKey()), preprocessUnknownValue(entry.getValue())); + out.put(ArgumentString.preParse(entry.getKey()), preprocessUnknownValue(entry.getValue())); } return out; } @@ -87,7 +88,7 @@ public class TemplateManagerImpl implements TemplateManager { return objList; } case String string -> { - return TemplateManager.preParse(string); + return ArgumentString.preParse(string); } case null, default -> { return value; @@ -188,8 +189,8 @@ public class TemplateManagerImpl implements TemplateManager { // 处理一个类型未知的值,本方法只管将member处理好后,传递回调用者a @SuppressWarnings("unchecked") - private Object processUnknownValue(Object value, - Map arguments) { + public Object processUnknownValue(Object value, + Map arguments) { switch (value) { case Map innerMap -> // map下面还是个map吗?这并不一定 @@ -237,7 +238,7 @@ public class TemplateManagerImpl implements TemplateManager { // 如果模板id被用了参数,则应先应用参数后再查询模板 Object actualTemplate = templateId.get(parentArguments); if (actualTemplate == null) continue; // 忽略被null掉的模板 - Object template = Optional.ofNullable(this.templates.get(Key.of(actualTemplate.toString()))) + Object template = Optional.ofNullable(((TemplateManagerImpl) INSTANCE).templates.get(Key.of(actualTemplate.toString()))) .orElseThrow(() -> new LocalizedResourceConfigException("warning.config.template.invalid", actualTemplate.toString())); Object processedTemplate = processUnknownValue(template, arguments); if (processedTemplate != null) templateList.add(processedTemplate); @@ -294,7 +295,7 @@ public class TemplateManagerImpl implements TemplateManager { // 合并参数 @SuppressWarnings("unchecked") private Map mergeArguments(@NotNull Map childArguments, - @NotNull Map parentArguments) { + @NotNull Map parentArguments) { Map result = new LinkedHashMap<>(parentArguments); for (Map.Entry argumentEntry : childArguments.entrySet()) { Object placeholderObj = argumentEntry.getKey().get(result); diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/ConditionTemplateArgument.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ConditionTemplateArgument.java similarity index 94% rename from core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/ConditionTemplateArgument.java rename to core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ConditionTemplateArgument.java index ebd5df786..f8f3c72be 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/ConditionTemplateArgument.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ConditionTemplateArgument.java @@ -1,4 +1,4 @@ -package net.momirealms.craftengine.core.plugin.config.template; +package net.momirealms.craftengine.core.plugin.config.template.argument; import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/ExpressionTemplateArgument.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ExpressionTemplateArgument.java similarity index 86% rename from core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/ExpressionTemplateArgument.java rename to core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ExpressionTemplateArgument.java index a92d6fdf2..d25f7d041 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/ExpressionTemplateArgument.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ExpressionTemplateArgument.java @@ -1,7 +1,9 @@ -package net.momirealms.craftengine.core.plugin.config.template; +package net.momirealms.craftengine.core.plugin.config.template.argument; import com.ezylang.evalex.Expression; import com.ezylang.evalex.data.EvaluationValue; +import net.momirealms.craftengine.core.plugin.config.template.ArgumentString; +import net.momirealms.craftengine.core.plugin.config.template.TemplateManager; import net.momirealms.craftengine.core.util.Key; import java.util.Locale; @@ -11,11 +13,11 @@ import java.util.function.Function; public class ExpressionTemplateArgument implements TemplateArgument { public static final Factory FACTORY = new Factory(); - private final TemplateManager.ArgumentString expression; + private final ArgumentString expression; private final ValueType valueType; protected ExpressionTemplateArgument(String expression, ValueType valueType) { - this.expression = TemplateManager.preParse(expression); + this.expression = ArgumentString.preParse(expression); this.valueType = valueType; } diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/ListTemplateArgument.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ListTemplateArgument.java similarity index 95% rename from core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/ListTemplateArgument.java rename to core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ListTemplateArgument.java index eae376ac0..3863b7841 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/ListTemplateArgument.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ListTemplateArgument.java @@ -1,4 +1,4 @@ -package net.momirealms.craftengine.core.plugin.config.template; +package net.momirealms.craftengine.core.plugin.config.template.argument; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; import net.momirealms.craftengine.core.util.Key; diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/MapTemplateArgument.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/MapTemplateArgument.java similarity index 92% rename from core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/MapTemplateArgument.java rename to core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/MapTemplateArgument.java index 9df939320..b77c47bb0 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/MapTemplateArgument.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/MapTemplateArgument.java @@ -1,4 +1,4 @@ -package net.momirealms.craftengine.core.plugin.config.template; +package net.momirealms.craftengine.core.plugin.config.template.argument; import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.MiscUtils; diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/NullTemplateArgument.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/NullTemplateArgument.java similarity index 91% rename from core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/NullTemplateArgument.java rename to core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/NullTemplateArgument.java index 8a568d2af..51a0af576 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/NullTemplateArgument.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/NullTemplateArgument.java @@ -1,4 +1,4 @@ -package net.momirealms.craftengine.core.plugin.config.template; +package net.momirealms.craftengine.core.plugin.config.template.argument; import net.momirealms.craftengine.core.util.Key; diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/ObjectTemplateArgument.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ObjectTemplateArgument.java similarity index 88% rename from core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/ObjectTemplateArgument.java rename to core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ObjectTemplateArgument.java index e78af6b66..980eadef6 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/ObjectTemplateArgument.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ObjectTemplateArgument.java @@ -1,4 +1,4 @@ -package net.momirealms.craftengine.core.plugin.config.template; +package net.momirealms.craftengine.core.plugin.config.template.argument; import net.momirealms.craftengine.core.util.Key; diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/PlainStringTemplateArgument.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/PlainStringTemplateArgument.java similarity index 92% rename from core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/PlainStringTemplateArgument.java rename to core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/PlainStringTemplateArgument.java index a9ef8d6ae..3305ac5c5 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/PlainStringTemplateArgument.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/PlainStringTemplateArgument.java @@ -1,4 +1,4 @@ -package net.momirealms.craftengine.core.plugin.config.template; +package net.momirealms.craftengine.core.plugin.config.template.argument; import net.momirealms.craftengine.core.util.Key; diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/SelfIncreaseIntTemplateArgument.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/SelfIncreaseIntTemplateArgument.java similarity index 97% rename from core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/SelfIncreaseIntTemplateArgument.java rename to core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/SelfIncreaseIntTemplateArgument.java index d607f4358..b117622f4 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/SelfIncreaseIntTemplateArgument.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/SelfIncreaseIntTemplateArgument.java @@ -1,4 +1,4 @@ -package net.momirealms.craftengine.core.plugin.config.template; +package net.momirealms.craftengine.core.plugin.config.template.argument; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; import net.momirealms.craftengine.core.util.Key; diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/TemplateArgument.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/TemplateArgument.java similarity index 71% rename from core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/TemplateArgument.java rename to core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/TemplateArgument.java index 9816cfebc..6e029e88c 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/TemplateArgument.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/TemplateArgument.java @@ -1,4 +1,4 @@ -package net.momirealms.craftengine.core.plugin.config.template; +package net.momirealms.craftengine.core.plugin.config.template.argument; import net.momirealms.craftengine.core.util.Key; diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/TemplateArgumentFactory.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/TemplateArgumentFactory.java similarity index 64% rename from core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/TemplateArgumentFactory.java rename to core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/TemplateArgumentFactory.java index 63812d722..a5976017a 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/TemplateArgumentFactory.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/TemplateArgumentFactory.java @@ -1,4 +1,4 @@ -package net.momirealms.craftengine.core.plugin.config.template; +package net.momirealms.craftengine.core.plugin.config.template.argument; import java.util.Map; diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/TemplateArguments.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/TemplateArguments.java similarity index 97% rename from core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/TemplateArguments.java rename to core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/TemplateArguments.java index 0538d98bf..9b1a8ef91 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/TemplateArguments.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/TemplateArguments.java @@ -1,4 +1,4 @@ -package net.momirealms.craftengine.core.plugin.config.template; +package net.momirealms.craftengine.core.plugin.config.template.argument; import net.momirealms.craftengine.core.registry.BuiltInRegistries; import net.momirealms.craftengine.core.registry.Registries; diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/ToLowerCaseTemplateArgument.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ToLowerCaseTemplateArgument.java similarity index 95% rename from core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/ToLowerCaseTemplateArgument.java rename to core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ToLowerCaseTemplateArgument.java index e00dc0f97..83e2c8dae 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/ToLowerCaseTemplateArgument.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ToLowerCaseTemplateArgument.java @@ -1,4 +1,4 @@ -package net.momirealms.craftengine.core.plugin.config.template; +package net.momirealms.craftengine.core.plugin.config.template.argument; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; import net.momirealms.craftengine.core.plugin.locale.TranslationManager; diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/ToUpperCaseTemplateArgument.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ToUpperCaseTemplateArgument.java similarity index 95% rename from core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/ToUpperCaseTemplateArgument.java rename to core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ToUpperCaseTemplateArgument.java index 33f67f6f3..d3600a5eb 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/ToUpperCaseTemplateArgument.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/ToUpperCaseTemplateArgument.java @@ -1,4 +1,4 @@ -package net.momirealms.craftengine.core.plugin.config.template; +package net.momirealms.craftengine.core.plugin.config.template.argument; import net.momirealms.craftengine.core.plugin.locale.LocalizedResourceConfigException; import net.momirealms.craftengine.core.plugin.locale.TranslationManager; diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/WhenTemplateArgument.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/WhenTemplateArgument.java similarity index 94% rename from core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/WhenTemplateArgument.java rename to core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/WhenTemplateArgument.java index e91f0cc9f..98dfcb7a0 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/WhenTemplateArgument.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/argument/WhenTemplateArgument.java @@ -1,4 +1,4 @@ -package net.momirealms.craftengine.core.plugin.config.template; +package net.momirealms.craftengine.core.plugin.config.template.argument; import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.ResourceConfigUtils; diff --git a/core/src/main/java/net/momirealms/craftengine/core/registry/BuiltInRegistries.java b/core/src/main/java/net/momirealms/craftengine/core/registry/BuiltInRegistries.java index 312550c23..f09e3a159 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/registry/BuiltInRegistries.java +++ b/core/src/main/java/net/momirealms/craftengine/core/registry/BuiltInRegistries.java @@ -37,7 +37,7 @@ import net.momirealms.craftengine.core.pack.model.special.SpecialModelFactory; import net.momirealms.craftengine.core.pack.model.special.SpecialModelReader; import net.momirealms.craftengine.core.pack.model.tint.TintFactory; import net.momirealms.craftengine.core.pack.model.tint.TintReader; -import net.momirealms.craftengine.core.plugin.config.template.TemplateArgumentFactory; +import net.momirealms.craftengine.core.plugin.config.template.argument.TemplateArgumentFactory; import net.momirealms.craftengine.core.plugin.context.Context; import net.momirealms.craftengine.core.plugin.context.condition.ConditionFactory; import net.momirealms.craftengine.core.plugin.context.function.FunctionFactory; diff --git a/core/src/main/java/net/momirealms/craftengine/core/registry/Registries.java b/core/src/main/java/net/momirealms/craftengine/core/registry/Registries.java index 866abd070..33a34a9d9 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/registry/Registries.java +++ b/core/src/main/java/net/momirealms/craftengine/core/registry/Registries.java @@ -37,7 +37,7 @@ import net.momirealms.craftengine.core.pack.model.special.SpecialModelFactory; import net.momirealms.craftengine.core.pack.model.special.SpecialModelReader; import net.momirealms.craftengine.core.pack.model.tint.TintFactory; import net.momirealms.craftengine.core.pack.model.tint.TintReader; -import net.momirealms.craftengine.core.plugin.config.template.TemplateArgumentFactory; +import net.momirealms.craftengine.core.plugin.config.template.argument.TemplateArgumentFactory; import net.momirealms.craftengine.core.plugin.context.Context; import net.momirealms.craftengine.core.plugin.context.condition.ConditionFactory; import net.momirealms.craftengine.core.plugin.context.function.FunctionFactory; diff --git a/gradle.properties b/gradle.properties index a3efe51fd..102014893 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ org.gradle.jvmargs=-Xmx1G # Project settings -project_version=0.0.65.13 +project_version=0.0.65.13.1 config_version=58 lang_version=40 project_group=net.momirealms