forked from zhdev/griefus
Add VanillaCrafts style page navigation
This commit is contained in:
parent
29d698b38f
commit
8e727c5f3b
1 changed files with 56 additions and 0 deletions
|
|
@ -2,6 +2,11 @@ package net.coreprotect.utility;
|
|||
|
||||
import net.coreprotect.language.Phrase;
|
||||
import net.coreprotect.language.Selector;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.event.ClickEvent;
|
||||
import net.kyori.adventure.text.event.HoverEvent;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
import net.kyori.adventure.text.format.TextDecoration;
|
||||
import net.kyori.adventure.text.minimessage.MiniMessage;
|
||||
import org.bukkit.command.ConsoleCommandSender;
|
||||
|
||||
|
|
@ -143,6 +148,57 @@ public class ChatUtils {
|
|||
return message.append(Color.WHITE + backArrow + Color.DARK_AQUA + Phrase.build(Phrase.LOOKUP_PAGE, Color.WHITE + page + "/" + totalPages) + nextArrow + pagination).toString();
|
||||
}
|
||||
|
||||
public static String getPageNavigationVC(String command, int page, int totalPages) {
|
||||
if (totalPages < 1)
|
||||
return "";
|
||||
Component separator = Component.text(" | ", NamedTextColor.DARK_GRAY, TextDecoration.BOLD);
|
||||
String backButtonText = "[назад]";
|
||||
String nextButtonText = "[далее]";
|
||||
|
||||
HoverEvent<Component> backButtonHover = HoverEvent
|
||||
.showText(Component.text("Нажмите, чтобы перейти на предыдущую страницу", NamedTextColor.RED));
|
||||
HoverEvent<Component> nextButtonHover = HoverEvent
|
||||
.showText(Component.text("Нажмите, чтобы перейти на следующую страницу", NamedTextColor.GREEN));
|
||||
|
||||
ClickEvent backButtonClick = ClickEvent.runCommand("/" + command + " l " + (page - 1));
|
||||
ClickEvent nextButtonClick = ClickEvent.runCommand("/" + command + " l " + (page + 1));
|
||||
|
||||
|
||||
Component backButton;
|
||||
if (page > 1) {
|
||||
backButton = Component.text(backButtonText)
|
||||
.color(NamedTextColor.RED)
|
||||
.hoverEvent(backButtonHover)
|
||||
.clickEvent(backButtonClick);
|
||||
} else {
|
||||
backButton = Component.text(backButtonText)
|
||||
.color(NamedTextColor.GRAY)
|
||||
.decorate(TextDecoration.ITALIC);
|
||||
}
|
||||
|
||||
Component nextButton;
|
||||
if (page < totalPages) {
|
||||
nextButton = Component.text(nextButtonText)
|
||||
.color(NamedTextColor.GREEN)
|
||||
.hoverEvent(nextButtonHover)
|
||||
.clickEvent(nextButtonClick);
|
||||
} else {
|
||||
nextButton = Component.text(nextButtonText)
|
||||
.color(NamedTextColor.GRAY)
|
||||
.decorate(TextDecoration.ITALIC);
|
||||
}
|
||||
|
||||
Component pageCounter = Component.text(page + "/" + totalPages, NamedTextColor.GRAY);
|
||||
|
||||
Component navigation = Component.empty()
|
||||
.append(backButton)
|
||||
.append(separator)
|
||||
.append(pageCounter)
|
||||
.append(separator)
|
||||
.append(nextButton);
|
||||
return MiniMessage.miniMessage().serialize(navigation);
|
||||
}
|
||||
|
||||
public static String getTimeSince(long resultTime, long currentTime, boolean component) {
|
||||
StringBuilder message = new StringBuilder();
|
||||
double timeSince = currentTime - (resultTime + 0.00);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue