Game api additions, Refactoring, Translation api edits

This commit is contained in:
2022-09-18 22:57:19 +02:00
parent 59a6e1c423
commit 8409d1cc7d
324 changed files with 20354 additions and 1661 deletions

View File

@ -23,7 +23,6 @@ public class Countdown {
CountdownModifier countdownModifier = new CountdownModifier(count.getAndDecrement());
modifier.accept(countdownModifier);
countdownModifier.message.send(targets);
System.out.println("SEND TITLE" + System.currentTimeMillis());
} catch (Exception e) {
throw new RuntimeException(e);
}

View File

@ -30,7 +30,7 @@ public abstract class TranslatableMessage implements Sendable {
}
public TranslatableMessage appendTranslated(String mapId) {
chain.add(new TranslatedComponent(mapId));
chain.add(TranslatedComponent.raw(mapId));
return this;
}
@ -67,7 +67,7 @@ public abstract class TranslatableMessage implements Sendable {
public Component build(Player p) {
ComponentBuilder out = Component.text();
chain.forEach(componentLike -> {
if(componentLike instanceof Translatable t) t.compute(p);
if(componentLike instanceof Translatable t) t.assemble(p);
out.append(componentLike);
});

View File

@ -0,0 +1,14 @@
package eu.mhsl.minenet.minigames.message.component;
public class NamespacedTranslatable {
private String namespace;
public NamespacedTranslatable(String namespace) {
this.namespace = namespace;
}
public TranslatedComponent get(String mapId) {
return TranslatedComponent.raw(namespace + mapId);
}
}

View File

@ -3,5 +3,5 @@ package eu.mhsl.minenet.minigames.message.component;
import net.minestom.server.entity.Player;
public interface Translatable {
void compute(Player p);
void assemble(Player p);
}

View File

@ -10,16 +10,30 @@ public class TranslatedComponent implements ComponentLike, Translatable {
private String mapId;
private String result;
public TranslatedComponent(String mapId) {
public static TranslatedComponent raw(String mapId) {
return new TranslatedComponent(mapId);
}
private TranslatedComponent(String mapId) {
this.mapId = mapId;
}
public void compute(Player p) {
public void assemble(Player p) {
result = Languages.getInstance().getLanguage(p).getEntry(mapId);
}
public void assemble(String language) {
result = Languages.getInstance().getLanguage(language).getEntry(mapId);
}
public Component getAssembled(Player p) {
this.assemble(p);
return asComponent();
}
@Override
public @NotNull Component asComponent() {
assemble(Languages.getInstance().getLanguage(Languages.defaultLanguage).getEntry(mapId));
return Component.text(result);
}
}