package crazypants.enderio.machine.invpanel.client; import java.util.HashMap; import cpw.mods.fml.common.FMLCommonHandler; import crazypants.enderio.Log; import cpw.mods.fml.common.network.FMLNetworkEvent.ClientDisconnectionFromServerEvent; import cpw.mods.fml.common.eventhandler.SubscribeEvent; public class ClientDatabaseManager { public static final ClientDatabaseManager INSTANCE = new ClientDatabaseManager(); public ClientDatabaseManager() { FMLCommonHandler.instance().bus().register(this); } private final HashMap<Integer, InventoryDatabaseClient> dbRegistry = new HashMap<Integer, InventoryDatabaseClient>(); public InventoryDatabaseClient getOrCreateDatabase(int generation) { InventoryDatabaseClient db = dbRegistry.get(generation); if(db == null) { db = new InventoryDatabaseClient(generation); dbRegistry.put(generation, db); } return db; } public void destroyDatabase(int generation) { dbRegistry.remove(generation); } @SubscribeEvent public void on(ClientDisconnectionFromServerEvent event) { Log.info("Clearing Inventory Panel Client Database"); dbRegistry.clear(); } }