2022-07-20 13:18:57 +02:00
|
|
|
|
package fr.pandacube.lib.chat;
|
2020-11-02 23:23:41 +01:00
|
|
|
|
|
|
|
|
|
import java.util.Objects;
|
|
|
|
|
|
2021-07-09 00:27:59 +02:00
|
|
|
|
import net.kyori.adventure.text.Component;
|
2021-09-05 20:06:07 +02:00
|
|
|
|
import net.kyori.adventure.text.format.NamedTextColor;
|
2021-07-20 00:19:17 +02:00
|
|
|
|
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
|
2020-11-02 23:23:41 +01:00
|
|
|
|
import net.md_5.bungee.api.chat.BaseComponent;
|
|
|
|
|
|
2022-07-20 13:18:57 +02:00
|
|
|
|
import fr.pandacube.lib.chat.Chat.FormatableChat;
|
|
|
|
|
import fr.pandacube.lib.util.Log;
|
|
|
|
|
|
2020-11-02 23:23:41 +01:00
|
|
|
|
public abstract class ChatStatic {
|
|
|
|
|
|
|
|
|
|
|
2021-07-09 00:27:59 +02:00
|
|
|
|
|
|
|
|
|
public static FormatableChat chatComponent(Component c) {
|
2021-07-19 01:27:50 +02:00
|
|
|
|
return new FormatableChat(Chat.componentToBuilder(c));
|
2020-11-02 23:23:41 +01:00
|
|
|
|
}
|
2021-07-09 00:27:59 +02:00
|
|
|
|
|
|
|
|
|
public static FormatableChat chatComponent(BaseComponent c) {
|
2021-07-19 01:27:50 +02:00
|
|
|
|
return new FormatableChat(Chat.componentToBuilder(Chat.toAdventure(c)));
|
2021-07-09 00:27:59 +02:00
|
|
|
|
}
|
2021-08-08 12:55:51 +02:00
|
|
|
|
|
|
|
|
|
public static FormatableChat chatComponent(Chat c) {
|
|
|
|
|
return chatComponent(c.getAdv());
|
|
|
|
|
}
|
2020-11-02 23:23:41 +01:00
|
|
|
|
|
|
|
|
|
public static FormatableChat chat() {
|
2021-07-25 20:12:51 +02:00
|
|
|
|
return new FormatableChat(Component.text());
|
2020-11-02 23:23:41 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static FormatableChat chatComponent(BaseComponent[] c) {
|
2021-07-09 00:27:59 +02:00
|
|
|
|
return chatComponent(Chat.toAdventure(c));
|
2020-11-02 23:23:41 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static FormatableChat text(Object plainText) {
|
2021-07-25 20:12:51 +02:00
|
|
|
|
if (plainText instanceof Chat) {
|
|
|
|
|
Log.warning("Using Chat instance as plain text. Please use proper API method. I’ll properly use your Chat instance this time...", new Throwable());
|
|
|
|
|
return (FormatableChat) plainText;
|
|
|
|
|
}
|
|
|
|
|
if (plainText instanceof Component) {
|
|
|
|
|
Log.warning("Using Component instance as plain text. Please use proper API method. I’ll properly use your Component this time...", new Throwable());
|
|
|
|
|
return chatComponent((Component) plainText);
|
|
|
|
|
}
|
|
|
|
|
return new FormatableChat(Component.text().content(Objects.toString(plainText)));
|
2020-11-02 23:23:41 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static FormatableChat legacyText(Object legacyText) {
|
2021-07-25 20:12:51 +02:00
|
|
|
|
if (legacyText instanceof Chat) {
|
|
|
|
|
Log.warning("Using Chat instance as legacy text. Please use proper API method. I’ll properly use your Chat instance this time...", new Throwable());
|
|
|
|
|
return (FormatableChat) legacyText;
|
|
|
|
|
}
|
|
|
|
|
if (legacyText instanceof Component) {
|
|
|
|
|
Log.warning("Using Component instance as legacy text. Please use proper API method. I’ll properly use your Component this time...", new Throwable());
|
|
|
|
|
return chatComponent((Component) legacyText);
|
|
|
|
|
}
|
2021-07-20 00:19:17 +02:00
|
|
|
|
return chatComponent(LegacyComponentSerializer.legacySection().deserialize(Objects.toString(legacyText)));
|
2020-11-02 23:23:41 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static FormatableChat infoText(Object plainText) {
|
|
|
|
|
return text(plainText).infoColor();
|
|
|
|
|
}
|
|
|
|
|
|
2022-05-25 12:56:29 +02:00
|
|
|
|
public static FormatableChat warningText(Object plainText) {
|
|
|
|
|
return text(plainText).warningColor();
|
|
|
|
|
}
|
|
|
|
|
|
2020-11-02 23:23:41 +01:00
|
|
|
|
public static FormatableChat dataText(Object plainText) {
|
|
|
|
|
return text(plainText).dataColor();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static FormatableChat decorationText(Object plainText) {
|
|
|
|
|
return text(plainText).decorationColor();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static FormatableChat successText(Object plainText) {
|
|
|
|
|
return text(plainText).successColor();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static FormatableChat failureText(Object plainText) {
|
|
|
|
|
return text(plainText).failureColor();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static FormatableChat playerNameText(String legacyText) {
|
2021-09-05 20:06:07 +02:00
|
|
|
|
FormatableChat fc = legacyText(legacyText);
|
|
|
|
|
fc.builder.colorIfAbsent(NamedTextColor.WHITE);
|
|
|
|
|
return fc;
|
2020-11-02 23:23:41 +01:00
|
|
|
|
}
|
|
|
|
|
|
2021-07-18 22:56:21 +02:00
|
|
|
|
public static FormatableChat playerNameComponent(Component c) {
|
|
|
|
|
FormatableChat fc = chatComponent(c);
|
2021-09-05 20:06:07 +02:00
|
|
|
|
fc.builder.colorIfAbsent(NamedTextColor.WHITE);
|
2021-07-18 22:56:21 +02:00
|
|
|
|
return fc;
|
|
|
|
|
}
|
|
|
|
|
|
2020-11-02 23:23:41 +01:00
|
|
|
|
public static FormatableChat translation(String key, Object... with) {
|
2021-07-25 20:12:51 +02:00
|
|
|
|
return new FormatableChat(Component.translatable()
|
|
|
|
|
.key(key)
|
|
|
|
|
.args(Chat.filterObjToComponentLike(with))
|
|
|
|
|
);
|
2020-11-02 23:23:41 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static FormatableChat keybind(String key) {
|
2021-07-25 20:12:51 +02:00
|
|
|
|
return new FormatableChat(Component.keybind()
|
|
|
|
|
.keybind(key)
|
|
|
|
|
);
|
2020-11-02 23:23:41 +01:00
|
|
|
|
}
|
|
|
|
|
|
2021-07-09 00:27:59 +02:00
|
|
|
|
public static FormatableChat score(String name, String objective) {
|
2021-07-25 20:12:51 +02:00
|
|
|
|
return new FormatableChat(Component.score()
|
|
|
|
|
.name(name)
|
|
|
|
|
.objective(objective)
|
|
|
|
|
);
|
2020-11-02 23:23:41 +01:00
|
|
|
|
}
|
2021-07-20 00:36:57 +02:00
|
|
|
|
|
|
|
|
|
|
2022-07-10 00:55:56 +02:00
|
|
|
|
|
2020-11-02 23:23:41 +01:00
|
|
|
|
}
|