diff --git a/src/main/java/org/ultramine/server/RecipeCache.java b/src/main/java/org/ultramine/server/RecipeCache.java index 1042fc8..bbf6e63 100644 --- a/src/main/java/org/ultramine/server/RecipeCache.java +++ b/src/main/java/org/ultramine/server/RecipeCache.java @@ -1,8 +1,6 @@ package org.ultramine.server; -import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -19,7 +17,6 @@ public class RecipeCache { private final List originList; - private final CachedRecipe cachedRecipe = new CachedRecipe(); private final Map cache = new HashMap(); private final Set noRecipeSet = new HashSet(); @@ -29,11 +26,6 @@ originList = CraftingManager.getInstance().getRecipeList(); } - public void installHardOverride() - { - CraftingManager.getInstance().recipes = newRecipeList; - } - public IRecipe findRecipe(InventoryCrafting inv, World world) { RecipeKey key = new RecipeKeyBuilder(inv).build(); @@ -80,101 +72,6 @@ noRecipeSet.clear(); } - private List newRecipeList = new ArrayList() - { - private static final long serialVersionUID = 1L; - - { - super.add(cachedRecipe); - } - - @Override - public boolean addAll(Collection add) - { - for(IRecipe recipe : add) - originList.add(recipe); - noRecipeSet.clear(); - return true; - } - - @Override - public boolean removeAll(Collection rem) - { - throw new UnsupportedOperationException(); - } - - @Override - public IRecipe remove(int ind) - { - return cachedRecipe.removeLastFound(); - } - - @Override - public boolean remove(Object recipe) - { - if(recipe == this) - { - return cachedRecipe.removeLastFound() != null; - } - else - { - boolean rem = originList.remove(recipe); - if(rem) - cache.clear(); - return rem; - } - } - - @Override - public boolean add(IRecipe recipe) - { - originList.add(recipe); - noRecipeSet.clear(); - return true; - } - }; - - private class CachedRecipe implements IRecipe - { - private IRecipe lastFound; - - @Override - public boolean matches(InventoryCrafting inv, World world) - { - lastFound = findRecipe(inv, world); - return lastFound != null; - } - - @Override - public ItemStack getCraftingResult(InventoryCrafting inv) - { - return lastFound != null ? lastFound.getCraftingResult(inv) : null; - } - - @Override - public int getRecipeSize() - { - return 9; - } - - @Override - public ItemStack getRecipeOutput() - { - return null; - } - - public IRecipe removeLastFound() - { - if(lastFound != null) - { - originList.remove(lastFound); - cache.clear(); - } - - return lastFound; - } - }; - private static class RecipeKey implements Comparable { private final int[] contents; diff --git a/src/main/java/org/ultramine/server/UMEventHandler.java b/src/main/java/org/ultramine/server/UMEventHandler.java index ca391ad..a47ac11 100644 --- a/src/main/java/org/ultramine/server/UMEventHandler.java +++ b/src/main/java/org/ultramine/server/UMEventHandler.java @@ -13,6 +13,7 @@ import cpw.mods.fml.common.functions.GenericIterableFactory; import cpw.mods.fml.common.gameevent.PlayerEvent.PlayerChangedDimensionEvent; import cpw.mods.fml.common.gameevent.TickEvent; +import cpw.mods.fml.common.network.FMLNetworkEvent; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.Entity; @@ -257,4 +258,16 @@ { e.holdings.setBalance(ConfigurationHandler.getServerConfig().tools.economy.startBalance); } + + private boolean firstPlayer = true; + @SideOnly(Side.SERVER) + @SubscribeEvent(priority=EventPriority.LOWEST) + public void onPlayerLoggedIn(FMLNetworkEvent.ServerConnectionFromClientEvent e) + { + if(firstPlayer) + { + firstPlayer = false; + UltramineServerModContainer.getInstance().getRecipeCache().clearCache(); + } + } } diff --git a/src/main/java/org/ultramine/server/UltramineServerModContainer.java b/src/main/java/org/ultramine/server/UltramineServerModContainer.java index a8202df..bfda039 100644 --- a/src/main/java/org/ultramine/server/UltramineServerModContainer.java +++ b/src/main/java/org/ultramine/server/UltramineServerModContainer.java @@ -172,7 +172,7 @@ loader.addDefaultWarps(); for(String name : loader.getFastWarps()) reg.registerCommand(new FastWarpCommand(name)); -// recipeCache.installHardOverride(); + getRecipeCache().clearCache(); } @Subscribe