From 6d133e809d817e24f87d43b8a61757339183d99b Mon Sep 17 00:00:00 2001 From: xmsss <9090102+xmssss@users.noreply.github.com> Date: Wed, 17 Feb 2021 00:00:36 +0300 Subject: [PATCH] Compatiblity with GoldenCrates MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://www.spigotmc.org/resources/goldencrates-•-advanced-custom-crates-1-14-1-16.48732/ --- .../ChestSort/ChestSortListener.java | 10 ++++++++ .../ChestSort/hooks/GoldenCratesHook.java | 23 +++++++++++++++++++ src/main/resources/config.yml | 4 ++++ 3 files changed, 37 insertions(+) create mode 100644 src/main/java/de/jeff_media/ChestSort/hooks/GoldenCratesHook.java diff --git a/src/main/java/de/jeff_media/ChestSort/ChestSortListener.java b/src/main/java/de/jeff_media/ChestSort/ChestSortListener.java index e6b372a..2ddc688 100644 --- a/src/main/java/de/jeff_media/ChestSort/ChestSortListener.java +++ b/src/main/java/de/jeff_media/ChestSort/ChestSortListener.java @@ -1,6 +1,7 @@ package de.jeff_media.ChestSort; import de.jeff_media.ChestSort.hooks.CrateReloadedHook; +import de.jeff_media.ChestSort.hooks.GoldenCratesHook; import de.jeff_media.ChestSort.hooks.HeadDatabaseHook; import de.jeff_media.ChestSort.hooks.MinepacksHook; import de.jeff_media.ChestSort.utils.LlamaUtils; @@ -36,12 +37,14 @@ public class ChestSortListener implements Listener { final MinepacksHook minepacksHook; final HeadDatabaseHook headDatabaseHook; final CrateReloadedHook crateReloadedHook; + final GoldenCratesHook goldenCratesHook; ChestSortListener(ChestSortPlugin plugin) { this.plugin = plugin; this.minepacksHook = new MinepacksHook(plugin); this.headDatabaseHook = new HeadDatabaseHook(plugin); this.crateReloadedHook = new CrateReloadedHook(plugin); + this.goldenCratesHook = new GoldenCratesHook(plugin); } @EventHandler @@ -545,6 +548,13 @@ public class ChestSortListener implements Listener { return; } + // GoldenCrates hook + if(goldenCratesHook.isCrate(e.getClickedInventory()) + || goldenCratesHook.isCrate(e.getInventory())) { + //if(plugin.debug) plugin.getLogger().info("Aborting hotkey because this is a CrateReloaded crate"); + return; + } + // Detect generic GUIs if(!isAPICall(e.getInventory()) && !isAPICall(e.getClickedInventory()) && (plugin.genericHook.isPluginGUI(e.getInventory()) diff --git a/src/main/java/de/jeff_media/ChestSort/hooks/GoldenCratesHook.java b/src/main/java/de/jeff_media/ChestSort/hooks/GoldenCratesHook.java new file mode 100644 index 0000000..4514004 --- /dev/null +++ b/src/main/java/de/jeff_media/ChestSort/hooks/GoldenCratesHook.java @@ -0,0 +1,23 @@ +package de.jeff_media.ChestSort.hooks; + +import de.jeff_media.ChestSort.ChestSortPlugin; +import org.bukkit.inventory.Inventory; +import sun.awt.Win32GraphicsConfig; + +public class GoldenCratesHook { + + ChestSortPlugin main; + + public GoldenCratesHook(ChestSortPlugin main) { + this.main=main; + } + + + public boolean isCrate(Inventory inv) { + if(inv==null) return false; + if(inv.getHolder()==null) return false; + if(!main.getConfig().getBoolean("hook-goldencrates",true)) return false; + return inv.getHolder().getClass().getName().contains("crate") || inv.getHolder().getClass().getName().contains("crates") || inv.getHolder().getClass().getName().contains("preview") || inv.getHolder().getClass().getName().contains("golden"); + } + +} diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 21dc956..8d05bc4 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -229,6 +229,10 @@ hook-minepacks: true # Prevents the player from using hotkeys on a crate hook-cratereloaded: true +##### GoldenCrates ##### +# Prevents the player from using hotkeys on a crate +hook-goldencrates: true + ##### HeadDatabase ##### # Prevents the player from using hotkeys on the HeadDatabase GUI hook-headdatabase: true