Polished TrafficLightRace

This commit is contained in:
2023-10-03 16:50:59 +02:00
parent 16cf29a590
commit b9b683dcde
11 changed files with 216 additions and 50 deletions

View File

@ -5,13 +5,18 @@ import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.ComponentLike;
import net.kyori.adventure.text.format.NamedTextColor;
import net.minestom.server.entity.Player;
import org.apache.commons.text.WordUtils;
import org.jetbrains.annotations.NotNull;
import java.util.Arrays;
import java.util.List;
public class TranslatedComponent implements ComponentLike, Translatable {
private final String mapId;
private String result;
private NamedTextColor color;
private int wrap = 0;
public static TranslatedComponent byId(String mapId) {
return new TranslatedComponent(mapId);
@ -27,10 +32,17 @@ public class TranslatedComponent implements ComponentLike, Translatable {
public void assemble(Player p) {
result = Languages.getInstance().getLanguage(p).getEntry(mapId);
if(wrap > 0) {
result = WordUtils.wrap(result, wrap, "\n", false);
}
}
public void assemble(String language) {
result = Languages.getInstance().getLanguage(language).getEntry(mapId);
public TranslatedComponent addWrap() {
return this.addWrap(30);
}
public TranslatedComponent addWrap(int wrap) {
this.wrap = wrap;
return this;
}
public Component getAssembled(Player p) {
@ -38,6 +50,11 @@ public class TranslatedComponent implements ComponentLike, Translatable {
return asComponent();
}
public List<Component> getWrappedAssembled(Player p) {
this.assemble(p);
return asWrappedComponent();
}
public TranslatedComponent setColor(NamedTextColor color) {
this.color = color;
return this;
@ -45,10 +62,17 @@ public class TranslatedComponent implements ComponentLike, Translatable {
@Override
public @NotNull Component asComponent() {
//assemble(Languages.getInstance().getLanguage(Languages.defaultLanguage).getEntry(mapId));
return this.componentFromString(result);
}
public List<Component> asWrappedComponent() {
return Arrays.stream(result.split("\n")).map(this::componentFromString).toList();
}
private Component componentFromString(String data) {
if(color != null)
return Component.text(result, color);
return Component.text(data, color);
else
return Component.text(result);
return Component.text(data);
}
}