no idea
This commit is contained in:
parent
b30f0856c3
commit
4024614f85
8
pom.xml
8
pom.xml
@ -119,7 +119,13 @@
|
||||
<artifactId>adventure-text-minimessage</artifactId>
|
||||
<version>4.16.0</version>
|
||||
</dependency>
|
||||
<!-- Adventure ComponentLogger for colorful logging -->
|
||||
<!-- Needed to actually display colors in ComponentLogger -->
|
||||
<dependency>
|
||||
<groupId>net.kyori</groupId>
|
||||
<artifactId>adventure-text-serializer-ansi</artifactId>
|
||||
<version>4.16.0</version>
|
||||
</dependency>
|
||||
<!-- Adventure ComponentLogger for colorful slf4j logging -->
|
||||
<dependency>
|
||||
<groupId>net.kyori</groupId>
|
||||
<artifactId>adventure-text-logger-slf4j</artifactId>
|
||||
|
@ -0,0 +1,23 @@
|
||||
package me.xginko.villageroptimizer.logging;
|
||||
|
||||
import net.kyori.adventure.text.logger.slf4j.ComponentLogger;
|
||||
import net.kyori.adventure.text.logger.slf4j.ComponentLoggerProvider;
|
||||
import net.kyori.adventure.text.serializer.ansi.ANSIComponentSerializer;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@SuppressWarnings("UnstableApiUsage")
|
||||
public final class ComponentLoggerProviderImpl implements ComponentLoggerProvider {
|
||||
private static final ANSIComponentSerializer SERIALIZER = ANSIComponentSerializer.builder()
|
||||
.flattener(TranslatableMapper.FLATTENER)
|
||||
.build();
|
||||
|
||||
@Override
|
||||
public @NotNull ComponentLogger logger(
|
||||
final @NotNull LoggerHelper helper,
|
||||
final @NotNull String name
|
||||
) {
|
||||
return helper.delegating(LoggerFactory.getLogger(name), SERIALIZER::serialize);
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,44 @@
|
||||
package me.xginko.villageroptimizer.logging;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.TranslatableComponent;
|
||||
import net.kyori.adventure.text.flattener.ComponentFlattener;
|
||||
import net.kyori.adventure.translation.GlobalTranslator;
|
||||
import net.kyori.adventure.translation.TranslationRegistry;
|
||||
import net.kyori.adventure.translation.Translator;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Locale;
|
||||
import java.util.function.BiConsumer;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public enum TranslatableMapper implements BiConsumer<TranslatableComponent, Consumer<Component>> {
|
||||
INSTANCE;
|
||||
|
||||
public static final ComponentFlattener FLATTENER = ComponentFlattener.basic().toBuilder()
|
||||
.complexMapper(TranslatableComponent.class, TranslatableMapper.INSTANCE)
|
||||
.build();
|
||||
|
||||
@Override
|
||||
public void accept(
|
||||
final TranslatableComponent translatableComponent,
|
||||
final Consumer<Component> componentConsumer
|
||||
) {
|
||||
for (final Translator source : GlobalTranslator.translator().sources()) {
|
||||
if (source instanceof TranslationRegistry && ((TranslationRegistry) source).contains(translatableComponent.key())) {
|
||||
componentConsumer.accept(GlobalTranslator.render(translatableComponent, Locale.getDefault()));
|
||||
return;
|
||||
}
|
||||
}
|
||||
final @Nullable String fallback = translatableComponent.fallback();
|
||||
if (fallback == null) {
|
||||
return;
|
||||
}
|
||||
for (final Translator source : GlobalTranslator.translator().sources()) {
|
||||
if (source instanceof TranslationRegistry && ((TranslationRegistry) source).contains(fallback)) {
|
||||
componentConsumer.accept(GlobalTranslator.render(Component.translatable(fallback), Locale.getDefault()));
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1 @@
|
||||
me.xginko.villageroptimizer.logging.ComponentLoggerProviderImpl
|
Loading…
x
Reference in New Issue
Block a user