Paper/nms-patches/CraftingManager.patch

51 lines
1.8 KiB
Diff
Raw Normal View History

2015-05-25 12:37:24 +02:00
--- a/net/minecraft/server/CraftingManager.java
+++ b/net/minecraft/server/CraftingManager.java
@@ -20,7 +20,7 @@
private static final Logger c = LogManager.getLogger();
public static final int a = "recipes/".length();
public static final int b = ".json".length();
- public Map<MinecraftKey, IRecipe> recipes = Maps.newHashMap();
+ public it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenHashMap<MinecraftKey, IRecipe> recipes = new it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenHashMap<>(); // CraftBukkit
private boolean e;
public CraftingManager() {}
@@ -84,7 +84,7 @@
if (this.recipes.containsKey(irecipe.getKey())) {
throw new IllegalStateException("Duplicate recipe ignored with ID " + irecipe.getKey());
} else {
- this.recipes.put(irecipe.getKey(), irecipe);
+ this.recipes.putAndMoveToFirst(irecipe.getKey(), irecipe); // CraftBukkit - SPIGOT-4638: last recipe gets priority
}
}
2018-12-25 22:00:00 +01:00
@@ -95,12 +95,14 @@
do {
if (!iterator.hasNext()) {
2018-07-15 02:00:00 +02:00
+ iinventory.setCurrentRecipe(null); // CraftBukkit - Clear recipe when no recipe is found
2016-11-17 02:41:03 +01:00
return ItemStack.a;
}
irecipe = (IRecipe) iterator.next();
2018-07-15 02:00:00 +02:00
} while (!irecipe.a(iinventory, world));
2015-02-26 23:41:06 +01:00
2018-07-15 02:00:00 +02:00
+ iinventory.setCurrentRecipe(irecipe); // CraftBukkit
return irecipe.craftItem(iinventory);
2017-05-14 04:00:00 +02:00
}
2018-12-25 22:00:00 +01:00
@@ -112,12 +114,14 @@
2017-05-14 04:00:00 +02:00
do {
if (!iterator.hasNext()) {
2018-07-15 02:00:00 +02:00
+ iinventory.setCurrentRecipe(null); // CraftBukkit - Clear recipe when no recipe is found
2017-05-14 04:00:00 +02:00
return null;
}
irecipe = (IRecipe) iterator.next();
2018-07-15 02:00:00 +02:00
} while (!irecipe.a(iinventory, world));
2017-05-14 04:00:00 +02:00
2018-07-15 02:00:00 +02:00
+ iinventory.setCurrentRecipe(irecipe); // CraftBukkit
2017-05-14 04:00:00 +02:00
return irecipe;
}