From f3e9e023e6bdac51d897c0ba490f4d89f9913ea0 Mon Sep 17 00:00:00 2001 From: rockyhawk64 Date: Tue, 7 May 2024 21:25:28 +1000 Subject: [PATCH] bug fixes --- .../commandtags/paywalls/TokenPaywall.java | 57 +++++++++++++++++++ .../openpanelsmanager/OpenGUI.java | 4 +- 2 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 src/me/rockyhawk/commandpanels/commandtags/paywalls/TokenPaywall.java diff --git a/src/me/rockyhawk/commandpanels/commandtags/paywalls/TokenPaywall.java b/src/me/rockyhawk/commandpanels/commandtags/paywalls/TokenPaywall.java new file mode 100644 index 0000000..003accf --- /dev/null +++ b/src/me/rockyhawk/commandpanels/commandtags/paywalls/TokenPaywall.java @@ -0,0 +1,57 @@ +package me.rockyhawk.commandpanels.commandtags.paywalls; + +import me.realized.tokenmanager.api.TokenManager; +import me.rockyhawk.commandpanels.CommandPanels; +import me.rockyhawk.commandpanels.commandtags.PaywallEvent; +import me.rockyhawk.commandpanels.commandtags.PaywallOutput; +import me.rockyhawk.commandpanels.openpanelsmanager.PanelPosition; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; + +import java.util.Objects; + +public class TokenPaywall implements Listener { + CommandPanels plugin; + public TokenPaywall(CommandPanels pl) { + this.plugin = pl; + } + + @EventHandler + public void commandTag(PaywallEvent e){ + if(e.name.equalsIgnoreCase("tokenpaywall=")){ + //if player uses tokenpaywall= [price] + try { + if (plugin.getServer().getPluginManager().isPluginEnabled("TokenManager")) { + final TokenManager api = (TokenManager) Bukkit.getPluginManager().getPlugin("TokenManager"); + assert api != null; + int balance = Integer.parseInt(Long.toString(api.getTokens(e.p).orElse(0))); + if (balance >= Double.parseDouble(e.args[0])) { + if (e.doDelete) { + api.removeTokens(e.p, Long.parseLong(e.args[0])); + } + //if the message is empty don't send + if (plugin.config.getBoolean("purchase.tokens.enable") && e.doDelete) { + plugin.tex.sendString(e.panel, PanelPosition.Top, e.p, Objects.requireNonNull(plugin.config.getString("purchase.tokens.success")).replaceAll("%cp-args%", e.args[0])); + } + + e.PAYWALL_OUTPUT = PaywallOutput.Passed; + } else { + if (plugin.config.getBoolean("purchase.tokens.enable")) { + plugin.tex.sendString(e.panel, PanelPosition.Top, e.p, Objects.requireNonNull(plugin.config.getString("purchase.tokens.failure"))); + } + e.PAYWALL_OUTPUT = PaywallOutput.Blocked; + } + } else { + plugin.tex.sendString(e.p, plugin.tag + ChatColor.RED + "Needs TokenManager to work!"); + e.PAYWALL_OUTPUT = PaywallOutput.Blocked; + } + } catch (Exception buyc) { + plugin.debug(buyc, e.p); + plugin.tex.sendString(e.p, plugin.tag + plugin.config.getString("config.format.error") + " " + "commands: " + e.name); + e.PAYWALL_OUTPUT = PaywallOutput.Blocked; + } + } + } +} diff --git a/src/me/rockyhawk/commandpanels/openpanelsmanager/OpenGUI.java b/src/me/rockyhawk/commandpanels/openpanelsmanager/OpenGUI.java index 2b10821..f5fbcc9 100644 --- a/src/me/rockyhawk/commandpanels/openpanelsmanager/OpenGUI.java +++ b/src/me/rockyhawk/commandpanels/openpanelsmanager/OpenGUI.java @@ -171,7 +171,9 @@ public class OpenGUI { if(plugin.legacy.MAJOR_VERSION.greaterThanOrEqualTo(MinecraftVersions.v1_21) || (plugin.legacy.MAJOR_VERSION.greaterThanOrEqualTo(MinecraftVersions.v1_20) && plugin.legacy.MINOR_VERSION >= 5)){ //Title refresh ability added in 1.20.5 api - p.getOpenInventory().setTitle(getTitle(p, pconfig, panel, position)); + if(position == PanelPosition.Top) { + p.getOpenInventory().setTitle(getTitle(p, pconfig, panel, position)); + } } if(position == PanelPosition.Top) { plugin.legacy.setStorageContents(p, plugin.legacy.getStorageContents(i));