mirror of
https://github.com/rockyhawk64/CommandPanels.git
synced 2025-11-18 07:14:17 +01:00
Merge branch 'rockyhawk64:main' into clean
This commit is contained in:
commit
de90b4f94f
@ -48,7 +48,7 @@ public class Context {
|
|||||||
// Register proxy channels
|
// Register proxy channels
|
||||||
Bukkit.getServer().getMessenger().registerOutgoingPluginChannel(plugin, "BungeeCord");
|
Bukkit.getServer().getMessenger().registerOutgoingPluginChannel(plugin, "BungeeCord");
|
||||||
|
|
||||||
// Register PlaceholderAPI
|
// Register PlaceholderAPI (delayed by a tick by being in scheduler)
|
||||||
Bukkit.getGlobalRegionScheduler().run(plugin, task -> {
|
Bukkit.getGlobalRegionScheduler().run(plugin, task -> {
|
||||||
if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) {
|
if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) {
|
||||||
new Placeholders(this).register();
|
new Placeholders(this).register();
|
||||||
|
|||||||
@ -1,10 +1,12 @@
|
|||||||
package me.rockyhawk.commandpanels.session.inventory.listeners;
|
package me.rockyhawk.commandpanels.session.inventory.listeners;
|
||||||
|
|
||||||
import me.rockyhawk.commandpanels.Context;
|
import me.rockyhawk.commandpanels.Context;
|
||||||
|
import me.rockyhawk.commandpanels.formatter.Placeholders;
|
||||||
import me.rockyhawk.commandpanels.interaction.commands.CommandRunner;
|
import me.rockyhawk.commandpanels.interaction.commands.CommandRunner;
|
||||||
import me.rockyhawk.commandpanels.interaction.commands.RequirementRunner;
|
import me.rockyhawk.commandpanels.interaction.commands.RequirementRunner;
|
||||||
import me.rockyhawk.commandpanels.session.CommandActions;
|
import me.rockyhawk.commandpanels.session.CommandActions;
|
||||||
import me.rockyhawk.commandpanels.session.inventory.InventoryPanel;
|
import me.rockyhawk.commandpanels.session.inventory.InventoryPanel;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.NamespacedKey;
|
import org.bukkit.NamespacedKey;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
@ -35,21 +37,34 @@ public class InventoryEvents implements Listener {
|
|||||||
public void onCloseEvent(InventoryCloseEvent event) {
|
public void onCloseEvent(InventoryCloseEvent event) {
|
||||||
if (!(event.getPlayer() instanceof Player player)) return;
|
if (!(event.getPlayer() instanceof Player player)) return;
|
||||||
|
|
||||||
// Only remove the session if the player has one
|
// Run in scheduler which delays by one tick
|
||||||
if (event.getInventory().getHolder() instanceof InventoryPanel panel) {
|
// This ensures inventory was actually closed and not refreshed
|
||||||
itemSanitiser(player.getInventory());
|
Bukkit.getGlobalRegionScheduler().run(ctx.plugin, task -> {
|
||||||
itemDropper(player, event.getInventory());
|
|
||||||
|
|
||||||
// Run close commands
|
// If inventory event was for a panel
|
||||||
RequirementRunner requirements = new RequirementRunner(ctx);
|
if (event.getInventory().getHolder() instanceof InventoryPanel panel) {
|
||||||
CommandRunner commands = new CommandRunner(ctx);
|
|
||||||
CommandActions actions = panel.getCloseCommands();
|
// Panel was just refreshed, not closed
|
||||||
if(!requirements.processRequirements(panel, player, actions.requirements())){
|
if(player.getOpenInventory().getTopInventory().getHolder() instanceof InventoryPanel currentPanel
|
||||||
commands.runCommands(panel, player, actions.fail());
|
&& currentPanel == panel){
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
itemSanitiser(player.getInventory());
|
||||||
|
itemDropper(player, event.getInventory());
|
||||||
|
|
||||||
|
// Run close commands
|
||||||
|
RequirementRunner requirements = new RequirementRunner(ctx);
|
||||||
|
CommandRunner commands = new CommandRunner(ctx);
|
||||||
|
CommandActions actions = panel.getCloseCommands();
|
||||||
|
if (!requirements.processRequirements(panel, player, actions.requirements())) {
|
||||||
|
commands.runCommands(panel, player, actions.fail());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
commands.runCommands(panel, player, actions.commands());
|
||||||
}
|
}
|
||||||
commands.runCommands(panel, player, actions.commands());
|
|
||||||
}
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user