From 24a72b82dd384271523d43d3b9e134bf56e1bda4 Mon Sep 17 00:00:00 2001 From: rockyhawk64 Date: Sat, 6 Apr 2024 16:14:57 +1100 Subject: [PATCH] 3.20.0.3 --- pom.xml | 2 +- resource/plugin.yml | 2 +- .../commandpanels/CommandPanels.java | 2 + .../classresources/ItemCreation.java | 1 + .../interactives/OutsideClickEvent.java | 38 +++++++++++++++++++ 5 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 src/me/rockyhawk/commandpanels/interactives/OutsideClickEvent.java diff --git a/pom.xml b/pom.xml index 5920b65..9174bb4 100644 --- a/pom.xml +++ b/pom.xml @@ -187,7 +187,7 @@ io.lumine MythicLib-dist - 1.5.2-SNAPSHOT + LATEST provided diff --git a/resource/plugin.yml b/resource/plugin.yml index a17d99e..26497e6 100644 --- a/resource/plugin.yml +++ b/resource/plugin.yml @@ -1,4 +1,4 @@ -version: 3.20.0.2 +version: 3.20.0.3 main: me.rockyhawk.commandpanels.CommandPanels name: CommandPanels author: RockyHawk diff --git a/src/me/rockyhawk/commandpanels/CommandPanels.java b/src/me/rockyhawk/commandpanels/CommandPanels.java index 5980f0b..f2145f9 100644 --- a/src/me/rockyhawk/commandpanels/CommandPanels.java +++ b/src/me/rockyhawk/commandpanels/CommandPanels.java @@ -26,6 +26,7 @@ import me.rockyhawk.commandpanels.editor.*; import me.rockyhawk.commandpanels.generatepanels.Commandpanelsgenerate; import me.rockyhawk.commandpanels.generatepanels.GenUtils; import me.rockyhawk.commandpanels.generatepanels.TabCompleteGenerate; +import me.rockyhawk.commandpanels.interactives.OutsideClickEvent; import me.rockyhawk.commandpanels.interactives.input.UserInputUtils; import me.rockyhawk.commandpanels.interactives.Commandpanelrefresher; import me.rockyhawk.commandpanels.interactives.OpenOnJoin; @@ -180,6 +181,7 @@ public class CommandPanels extends JavaPlugin{ this.getServer().getPluginManager().registerEvents(new GenUtils(this), this); this.getServer().getPluginManager().registerEvents(new ItemFallManager(this), this); this.getServer().getPluginManager().registerEvents(new OpenOnJoin(this), this); + this.getServer().getPluginManager().registerEvents(new OutsideClickEvent(this), this); //load in the updater if requested if (Objects.requireNonNull(config.getString("updater.update-checks")).equalsIgnoreCase("true")) { diff --git a/src/me/rockyhawk/commandpanels/classresources/ItemCreation.java b/src/me/rockyhawk/commandpanels/classresources/ItemCreation.java index 8fad8f5..35aa359 100644 --- a/src/me/rockyhawk/commandpanels/classresources/ItemCreation.java +++ b/src/me/rockyhawk/commandpanels/classresources/ItemCreation.java @@ -9,6 +9,7 @@ import me.rockyhawk.commandpanels.api.Panel; import me.rockyhawk.commandpanels.ioclasses.legacy.MinecraftVersions; import me.rockyhawk.commandpanels.openpanelsmanager.PanelPosition; import net.Indyuce.mmoitems.MMOItems; +import net.Indyuce.mmoitems.api.MMOItemsAPI; import net.Indyuce.mmoitems.api.item.mmoitem.MMOItem; import net.Indyuce.mmoitems.manager.ItemManager; import org.bukkit.*; diff --git a/src/me/rockyhawk/commandpanels/interactives/OutsideClickEvent.java b/src/me/rockyhawk/commandpanels/interactives/OutsideClickEvent.java new file mode 100644 index 0000000..4c3327e --- /dev/null +++ b/src/me/rockyhawk/commandpanels/interactives/OutsideClickEvent.java @@ -0,0 +1,38 @@ +package me.rockyhawk.commandpanels.interactives; + +import me.rockyhawk.commandpanels.CommandPanels; +import me.rockyhawk.commandpanels.openpanelsmanager.PanelPosition; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.inventory.ClickType; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.event.inventory.InventoryType; + +public class OutsideClickEvent implements Listener { + CommandPanels plugin; + public OutsideClickEvent(CommandPanels pl) { + this.plugin = pl; + } + @EventHandler + public void onOutsideClick(InventoryClickEvent e){ + Player p = (Player)e.getWhoClicked(); + + //cancel while a panel is open + if(plugin.openPanels.hasPanelOpen(p.getName(), PanelPosition.Top) || e.getClick() == ClickType.DOUBLE_CLICK){ + return; + } + + //if there is no panel open, use outside-commands from config.yml + if(e.getSlotType() == InventoryType.SlotType.OUTSIDE){ + //if the panel is clicked on the outside area of the GUI + if (plugin.config.contains("outside-commands")) { + try { + plugin.commandTags.runCommands(null,PanelPosition.Top,p, plugin.config.getStringList("outside-commands"),e.getClick()); + }catch(Exception s){ + plugin.debug(s,p); + } + } + } + } +}