summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main/java/net/minecraft/server/RecipesFurnace.java21
-rw-r--r--src/main/java/org/bukkit/craftbukkit/CraftServer.java2
-rw-r--r--src/main/java/org/bukkit/craftbukkit/inventory/CraftFurnaceRecipe.java2
3 files changed, 22 insertions, 3 deletions
diff --git a/src/main/java/net/minecraft/server/RecipesFurnace.java b/src/main/java/net/minecraft/server/RecipesFurnace.java
index 85d76095..44a621db 100644
--- a/src/main/java/net/minecraft/server/RecipesFurnace.java
+++ b/src/main/java/net/minecraft/server/RecipesFurnace.java
@@ -10,6 +10,7 @@ public class RecipesFurnace {
private static final RecipesFurnace a = new RecipesFurnace();
public Map recipes = new HashMap(); // CraftBukkit - private -> public
private Map c = new HashMap();
+ public Map customRecipes = new HashMap(); // CraftBukkit
public static RecipesFurnace getInstance() {
return a;
@@ -62,14 +63,30 @@ public class RecipesFurnace {
this.c.put(itemstack1, Float.valueOf(f));
}
+ // CraftBukkit start
+ public void registerRecipe(ItemStack itemstack, ItemStack itemstack1) {
+ this.customRecipes.put(itemstack, itemstack1);
+ }
+ // CraftBukkit end
+
public ItemStack getResult(ItemStack itemstack) {
- Iterator iterator = this.recipes.entrySet().iterator();
+ // CraftBukkit start
+ boolean vanilla = false;
+ Iterator iterator = this.customRecipes.entrySet().iterator();
+ // CraftBukkit end
Entry entry;
do {
if (!iterator.hasNext()) {
- return null;
+ // CraftBukkit start
+ if (!vanilla) {
+ iterator = this.recipes.entrySet().iterator();
+ vanilla = true;
+ } else {
+ return null;
+ }
+ // CraftBukkit end
}
entry = (Entry) iterator.next();
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 362b507b..26537103 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -961,11 +961,13 @@ public final class CraftServer implements Server {
public void clearRecipes() {
CraftingManager.getInstance().recipes.clear();
RecipesFurnace.getInstance().recipes.clear();
+ RecipesFurnace.getInstance().customRecipes.clear();
}
public void resetRecipes() {
CraftingManager.getInstance().recipes = new CraftingManager().recipes;
RecipesFurnace.getInstance().recipes = new RecipesFurnace().recipes;
+ RecipesFurnace.getInstance().customRecipes.clear();
}
public Map<String, String[]> getCommandAliases() {
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftFurnaceRecipe.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftFurnaceRecipe.java
index 49b2cbaf..69f17db8 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftFurnaceRecipe.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftFurnaceRecipe.java
@@ -22,6 +22,6 @@ public class CraftFurnaceRecipe extends FurnaceRecipe implements CraftRecipe {
public void addToCraftingManager() {
ItemStack result = this.getResult();
ItemStack input = this.getInput();
- RecipesFurnace.getInstance().a(CraftMagicNumbers.getItem(input.getTypeId()), CraftItemStack.asNMSCopy(result), 0.1f);
+ RecipesFurnace.getInstance().registerRecipe(CraftItemStack.asNMSCopy(input), CraftItemStack.asNMSCopy(result));
}
}