From 13353094e3e53f7b41e8ff6b66b020d77f5cf24f Mon Sep 17 00:00:00 2001 From: 0xSeb Date: Thu, 29 Oct 2015 01:26:08 +0100 Subject: [PATCH] Fixed stupid memory lag. Managers are now using Singleton-pattern! --- .../skate702/craftingkeys/CraftingKeys.java | 2 +- .../manager/ContainerManager.java | 2 +- .../craftingkeys/manager/CraftingManager.java | 19 ++++++++++++++++++- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/main/java/de/skate702/craftingkeys/CraftingKeys.java b/src/main/java/de/skate702/craftingkeys/CraftingKeys.java index 3a842f2..7c9bb23 100644 --- a/src/main/java/de/skate702/craftingkeys/CraftingKeys.java +++ b/src/main/java/de/skate702/craftingkeys/CraftingKeys.java @@ -107,7 +107,7 @@ public class CraftingKeys { if (currentScreen instanceof GuiCrafting) { - ContainerManager con = new CraftingManager( + ContainerManager con = CraftingManager.getInstance( ((GuiCrafting) currentScreen).inventorySlots); con.acceptKey(); diff --git a/src/main/java/de/skate702/craftingkeys/manager/ContainerManager.java b/src/main/java/de/skate702/craftingkeys/manager/ContainerManager.java index 021b429..eddd4da 100644 --- a/src/main/java/de/skate702/craftingkeys/manager/ContainerManager.java +++ b/src/main/java/de/skate702/craftingkeys/manager/ContainerManager.java @@ -21,7 +21,7 @@ public abstract class ContainerManager { * * @param container The container to work with */ - public ContainerManager(Container container) { + protected ContainerManager(Container container) { this.container = container; } diff --git a/src/main/java/de/skate702/craftingkeys/manager/CraftingManager.java b/src/main/java/de/skate702/craftingkeys/manager/CraftingManager.java index cbd493b..6445741 100644 --- a/src/main/java/de/skate702/craftingkeys/manager/CraftingManager.java +++ b/src/main/java/de/skate702/craftingkeys/manager/CraftingManager.java @@ -12,15 +12,32 @@ import org.lwjgl.input.Keyboard; public class CraftingManager extends ContainerManager { + private static CraftingManager instance = null; + /** * Creates a new Crafting Manager with the given container. * * @param container The container from a crafting GUI */ - public CraftingManager(Container container) { + private CraftingManager(Container container) { super(container); } + /** + * Returns a Crafting Manager Instance operating on the given container + * + * @param container A container from a GUI + * @return manager-singleton + */ + public static CraftingManager getInstance(Container container) { + if (instance == null) { + instance = new CraftingManager(container); + } else { + instance.container = container; + } + return instance; + } + @Override public void acceptKey() {