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",
|
||||
"PluginClassLoaderMixin",
|
||||
"PotionEffectTypeMixin",
|
||||
"RecipeIteratorMixin",
|
||||
"WatchdogThreadMixin"
|
||||
]
|
||||
}
|
Loading…
Reference in New Issue
Block a user