From 93fb771ad0adf9e7b9eabdd2e1ad6b3e3fe480e2 Mon Sep 17 00:00:00 2001 From: Daniel Norris <33832062+danorris709@users.noreply.github.com> Date: Sat, 2 Oct 2021 14:12:49 +0100 Subject: [PATCH] feat(forge): add back button --- .../forge/config/BetterDexRewardsConfig.java | 11 +++++++++++ .../rewards/forge/ui/DexRewardsMissingUI.java | 19 +++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/forge/src/main/java/com/envyful/better/dex/rewards/forge/config/BetterDexRewardsConfig.java b/forge/src/main/java/com/envyful/better/dex/rewards/forge/config/BetterDexRewardsConfig.java index e6014a9..0db6aba 100644 --- a/forge/src/main/java/com/envyful/better/dex/rewards/forge/config/BetterDexRewardsConfig.java +++ b/forge/src/main/java/com/envyful/better/dex/rewards/forge/config/BetterDexRewardsConfig.java @@ -64,6 +64,13 @@ public class BetterDexRewardsConfig extends AbstractYamlConfig { ImmutableMap.of("tooltip", new ConfigItem.NBTValue("string", "")) ); + private PositionableConfigItem backButton = new PositionableConfigItem( + Item.getIdFromItem(PixelmonItems.LtradeHolderLeft) + "", + 1, (byte) 0, "&eBack", + Lists.newArrayList(), + 0, 5, Collections.emptyMap() + ); + private int messageDelaySeconds = 60; private Map rewardStages = Maps.newHashMap(ImmutableMap.of( @@ -84,6 +91,10 @@ public class BetterDexRewardsConfig extends AbstractYamlConfig { public BetterDexRewardsConfig() { } + public PositionableConfigItem getBackButton() { + return this.backButton; + } + public PositionableConfigItem getInfoItem() { return this.infoItem; } diff --git a/forge/src/main/java/com/envyful/better/dex/rewards/forge/ui/DexRewardsMissingUI.java b/forge/src/main/java/com/envyful/better/dex/rewards/forge/ui/DexRewardsMissingUI.java index c5f7fdf..9067284 100644 --- a/forge/src/main/java/com/envyful/better/dex/rewards/forge/ui/DexRewardsMissingUI.java +++ b/forge/src/main/java/com/envyful/better/dex/rewards/forge/ui/DexRewardsMissingUI.java @@ -3,6 +3,8 @@ import com.envyful.api.config.type.ConfigInterface; import com.envyful.api.config.type.ConfigItem; import com.envyful.api.forge.chat.UtilChatColour; +import com.envyful.api.forge.concurrency.UtilForgeConcurrency; +import com.envyful.api.forge.config.UtilConfigItem; import com.envyful.api.forge.items.ItemBuilder; import com.envyful.api.gui.factory.GuiFactory; import com.envyful.api.gui.pane.Pane; @@ -53,6 +55,23 @@ public static void open(EnvyPlayer player, int page) { .build()); } + if (BetterDexRewards.getInstance().getConfig().getBackButton().isEnabled()) { + pane.set( + BetterDexRewards.getInstance().getConfig().getBackButton().getXPos(), + BetterDexRewards.getInstance().getConfig().getBackButton().getYPos(), + GuiFactory.displayableBuilder(ItemStack.class) + .itemStack( + UtilConfigItem.fromConfigItem(BetterDexRewards.getInstance().getConfig().getBackButton())) + .clickHandler((envyPlayer, clickType) -> { + ((EntityPlayerMP) envyPlayer.getParent()).closeScreen(); + + UtilForgeConcurrency.runSync(() -> { + DexRewardsMainUI.open(player); + }); + }).build() + ); + } + DexRewardsAttribute attribute = player.getAttribute(BetterDexRewards.class); attribute.setPage(page);