mirror of
https://github.com/CarmJos/MineConfiguration.git
synced 2026-06-04 13:55:03 +08:00
feat(conf): 搭配XSeries实现部分配置类的跨版本支持。
This commit is contained in:
+1
-1
@@ -5,7 +5,7 @@
|
||||
<parent>
|
||||
<artifactId>mineconfiguration-parent</artifactId>
|
||||
<groupId>cc.carm.lib</groupId>
|
||||
<version>2.6.0</version>
|
||||
<version>2.6.1</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<properties>
|
||||
|
||||
@@ -47,11 +47,20 @@ public abstract class ConfigMessage<M, T extends AbstractText<R>, R>
|
||||
sendFunction.accept(receiver, message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable M parse(@Nullable R sender, @NotNull Map<String, Object> placeholders) {
|
||||
protected <N> @Nullable N parseTo(@Nullable R sender, @NotNull Map<String, Object> placeholders,
|
||||
@NotNull BiFunction<@Nullable R, @NotNull String, @Nullable N> parser) {
|
||||
T value = get();
|
||||
if (value == null || value.getMessage().isEmpty()) return null;
|
||||
else return value.parse(this.messageParser, sender, placeholders);
|
||||
else return value.parse(parser, sender, placeholders);
|
||||
}
|
||||
|
||||
public @Nullable String parseString(@Nullable R sender, @NotNull Map<String, Object> placeholders) {
|
||||
return parseTo(sender, placeholders, (r, s) -> s);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable M parse(@Nullable R sender, @NotNull Map<String, Object> placeholders) {
|
||||
return parseTo(sender, placeholders, this.messageParser);
|
||||
}
|
||||
|
||||
public void set(@Nullable String value) {
|
||||
|
||||
+10
-1
@@ -4,6 +4,7 @@ import cc.carm.lib.configuration.core.function.ConfigDataFunction;
|
||||
import cc.carm.lib.configuration.core.value.ValueManifest;
|
||||
import cc.carm.lib.configuration.core.value.type.ConfiguredList;
|
||||
import cc.carm.lib.mineconfiguration.common.data.AbstractText;
|
||||
import cc.carm.lib.mineconfiguration.common.utils.ParamsUtils;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -68,14 +69,22 @@ public abstract class ConfigMessageList<M, T extends AbstractText<R>, R>
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public @Nullable M parseToLine(@Nullable R receiver, @NotNull Object... values) {
|
||||
return parseToLine(receiver, "\n", ParamsUtils.buildParams(this.params, values));
|
||||
}
|
||||
|
||||
public @Nullable M parseToLine(@Nullable R receiver, @NotNull Map<String, Object> placeholders) {
|
||||
return parseToLine(receiver, "\n", placeholders);
|
||||
}
|
||||
|
||||
public @Nullable M parseToLine(@Nullable R receiver, @NotNull String delimiter, @NotNull Map<String, Object> placeholders) {
|
||||
List<T> list = get();
|
||||
if (list.isEmpty()) return null;
|
||||
|
||||
List<String> messages = list.stream().map(T::getMessage).collect(Collectors.toList());
|
||||
if (String.join("", messages).isEmpty()) return null;
|
||||
|
||||
String combined = String.join("\n", messages);
|
||||
String combined = String.join(delimiter, messages);
|
||||
T text = textBuilder.apply(combined);
|
||||
|
||||
return text.parse(this.messageParser, receiver, placeholders);
|
||||
|
||||
Reference in New Issue
Block a user