From 73cdbf114bb4ef14c19f54b7b550db3d91fe94a7 Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Tue, 14 Mar 2017 16:26:17 +0100 Subject: [PATCH] Fixed Inventory Saving --- .../Slimefun/api/inventory/BlockMenu.java | 33 ++++++++++++++++--- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/src/me/mrCookieSlime/Slimefun/api/inventory/BlockMenu.java b/src/me/mrCookieSlime/Slimefun/api/inventory/BlockMenu.java index 3b906f4f5..7bb5168fd 100644 --- a/src/me/mrCookieSlime/Slimefun/api/inventory/BlockMenu.java +++ b/src/me/mrCookieSlime/Slimefun/api/inventory/BlockMenu.java @@ -3,15 +3,16 @@ package me.mrCookieSlime.Slimefun.api.inventory; import java.io.File; import java.util.Iterator; -import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config; -import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu; - import org.bukkit.Location; import org.bukkit.block.Block; import org.bukkit.entity.HumanEntity; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; +import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config; +import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu; +import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ClickAction; + public class BlockMenu extends ChestMenu { BlockMenuPreset preset; @@ -59,7 +60,10 @@ public class BlockMenu extends ChestMenu { } public void save(Location l) { - if (changes == 0) return; + if (changes == 0) { + return; + } + // To force CS-CoreLib to build the Inventory this.getContents(); @@ -101,6 +105,26 @@ public class BlockMenu extends ChestMenu { return this.preset.canOpen(b, p); } + @Override + public ChestMenu addItem(int slot, ItemStack item, MenuClickHandler handler) { + addMenuClickHandler(slot, handler); + return super.addItem(slot, item); + } + + @Override + public ChestMenu addMenuClickHandler(int slot, final MenuClickHandler handler) { + MenuClickHandler ch = new MenuClickHandler() { + + @Override + public boolean onClick(Player p, int slot, ItemStack stack, ClickAction action) { + changes++; + return handler.onClick(p, slot, stack, action); + } + }; + + return super.addMenuClickHandler(slot, ch); + } + @Override public void replaceExistingItem(int slot, ItemStack item) { this.replaceExistingItem(slot, item, true); @@ -124,5 +148,4 @@ public class BlockMenu extends ChestMenu { human.closeInventory(); } } - }