Skip to content

Commit

Permalink
Add clickable headers
Browse files Browse the repository at this point in the history
  • Loading branch information
pcluddite committed Jan 3, 2020
1 parent c5060a5 commit 613054b
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 17 deletions.
18 changes: 18 additions & 0 deletions src/main/java/org/tbax/baxshops/Format.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.tbax.baxshops.internal.ShopPlugin;
import org.tbax.baxshops.internal.text.ChatComponent;
import org.tbax.baxshops.internal.text.ClickEvent;
import org.tbax.baxshops.internal.text.HoverEvent;
import org.tbax.baxshops.internal.text.TextColor;

import java.text.DateFormat;
import java.text.ParseException;
Expand Down Expand Up @@ -325,6 +329,20 @@ public static String toFriendlyName(String name)
ChatColor.RESET;
}

public static @NotNull ChatComponent header(String title, int page, int maxPages)
{
return ChatComponent.of("", TextColor.GRAY)
.append(ChatComponent.of("<< ", TextColor.GOLD)
.hoverEvent(HoverEvent.showText(ChatColor.AQUA + "Previous"))
.clickEvent(ClickEvent.runCommand("/shop page " + (page - 1))))
.append("---------")
.append(title, TextColor.WHITE)
.append("---------")
.append(ChatComponent.of(" >>", TextColor.GOLD)
.hoverEvent(HoverEvent.showText(ChatColor.AQUA + "Next"))
.clickEvent(ClickEvent.runCommand("/shop page " + (page + 1))));
}

public static @NotNull String stripColor(@NotNull String str)
{
StringBuilder sb = new StringBuilder(str.length());
Expand Down
21 changes: 11 additions & 10 deletions src/main/java/org/tbax/baxshops/internal/ShopSelection.java
Original file line number Diff line number Diff line change
Expand Up @@ -115,17 +115,18 @@ public void showListing(CommandSender sender)
for (int i = 0; i < stop; ++i) {
sender.sendMessage("");
}
return;
}
sender.sendMessage(Format.header(String.format("Showing page %d of %d", page + 1, pages)));
int i = page * ITEMS_PER_PAGE,
stop = (page + 1) * ITEMS_PER_PAGE,
max = Math.min(stop, shop.size());
for (; i < max; i++) {
sender.sendMessage(shop.getEntry(i).toString(i + 1, shop.hasFlagInfinite()));
}
for (; i < stop; i++) {
sender.sendMessage("");
else {
Format.header(String.format("Showing page %d of %d", page + 1, pages), page + 1, pages).sendTo(sender);
int i = page * ITEMS_PER_PAGE,
stop = (page + 1) * ITEMS_PER_PAGE,
max = Math.min(stop, shop.size());
for (; i < max; i++) {
sender.sendMessage(shop.getEntry(i).toString(i + 1, shop.hasFlagInfinite()));
}
for (; i < stop; i++) {
sender.sendMessage("");
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,11 @@ public boolean requiresItemInHand(@NotNull ShopCmdActor actor)
public void onCommand(@NotNull ShopCmdActor actor) throws PrematureAbortException
{
int page = actor.getArgInt(1);
if (page < 1 || page > actor.getShop().getPages()) {
actor.exitError("That's not a page in this shop");
if (page < 1) {
page = actor.getShop().getPages();
}
else if (page > actor.getShop().getPages()) {
page = 1;
}

OfflinePlayer player;
Expand Down
10 changes: 5 additions & 5 deletions src/main/java/org/tbax/baxshops/internal/text/TextColor.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,17 +25,17 @@ public enum TextColor
BLACK("black", ChatColor.BLACK),
DARK_BLUE("dark_blue", ChatColor.DARK_BLUE),
DARK_GREEN("dark_green", ChatColor.DARK_GREEN),
DARK_CYAN("dark_aqua", ChatColor.DARK_AQUA),
DARK_AQUA("dark_aqua", ChatColor.DARK_AQUA),
DARK_RED("dark_red", ChatColor.DARK_RED),
PURPLE("dark_purple", ChatColor.DARK_PURPLE),
DARK_PURPLE("dark_purple", ChatColor.DARK_PURPLE),
GOLD("gold", ChatColor.GOLD),
GRAY("gray", ChatColor.GRAY),
DARK_GRAY("dark_gray", ChatColor.DARK_GRAY),
BLUE("blue", ChatColor.BLUE),
BRIGHT_GREEN("green", ChatColor.BLUE),
CYAN("aqua", ChatColor.AQUA),
GREEN("green", ChatColor.GREEN),
AQUA("aqua", ChatColor.AQUA),
RED("red", ChatColor.RED),
PINK("light_purple", ChatColor.LIGHT_PURPLE),
LIGHT_PURPLE("light_purple", ChatColor.LIGHT_PURPLE),
YELLOW("yellow", ChatColor.YELLOW),
WHITE("white", ChatColor.WHITE);

Expand Down

0 comments on commit 613054b

Please sign in to comment.