Fix ClassCastException in recipe (#168)
This commit is contained in:
parent
830a9a404f
commit
5dc8432243
|
@ -0,0 +1,37 @@
|
||||||
|
package io.izzel.arclight.common.mixin.bukkit;
|
||||||
|
|
||||||
|
import io.izzel.arclight.common.bridge.item.crafting.IRecipeBridge;
|
||||||
|
import net.minecraft.item.crafting.IRecipe;
|
||||||
|
import net.minecraft.item.crafting.IRecipeType;
|
||||||
|
import net.minecraft.util.ResourceLocation;
|
||||||
|
import org.bukkit.craftbukkit.v.inventory.RecipeIterator;
|
||||||
|
import org.bukkit.inventory.Recipe;
|
||||||
|
import org.spongepowered.asm.mixin.Final;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.Overwrite;
|
||||||
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
|
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@Mixin(value = RecipeIterator.class, remap = false)
|
||||||
|
public class RecipeIteratorMixin {
|
||||||
|
|
||||||
|
// @formatter:off
|
||||||
|
@Shadow private Iterator<IRecipe<?>> current;
|
||||||
|
@Shadow @Final private Iterator<Map.Entry<IRecipeType<?>, Map<ResourceLocation, IRecipe<?>>>> recipes;
|
||||||
|
// @formatter:on
|
||||||
|
|
||||||
|
@Overwrite
|
||||||
|
public boolean hasNext() {
|
||||||
|
return (current != null && current.hasNext()) || recipes.hasNext();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Overwrite
|
||||||
|
public Recipe next() {
|
||||||
|
if (current == null || !current.hasNext()) {
|
||||||
|
current = recipes.next().getValue().values().iterator();
|
||||||
|
}
|
||||||
|
return ((IRecipeBridge) current.next()).bridge$toBukkitRecipe();
|
||||||
|
}
|
||||||
|
}
|
|
@ -36,6 +36,7 @@
|
||||||
"MaterialMixin",
|
"MaterialMixin",
|
||||||
"PluginClassLoaderMixin",
|
"PluginClassLoaderMixin",
|
||||||
"PotionEffectTypeMixin",
|
"PotionEffectTypeMixin",
|
||||||
|
"RecipeIteratorMixin",
|
||||||
"WatchdogThreadMixin"
|
"WatchdogThreadMixin"
|
||||||
]
|
]
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user