by noriokun4649 » 2019年9月21日(土) 05:31
コード: 全て選択
@Mod.EventHandler
public void postInit(FMLPostInitializationEvent event) {
ItemStack result;
ItemStack iron = new ItemStack(Items.IRON_INGOT, 1, 0);
ItemStack iron_ore = new ItemStack(Blocks.IRON_ORE, 1, 32767);
Map<ItemStack, ItemStack> recipes = FurnaceRecipes.instance().getSmeltingList();
Iterator<ItemStack> interator = recipes.keySet().iterator();
while (interator.hasNext())
{
ItemStack recipe = interator.next();
result = recipes.get(recipe);
if (ItemStack.areItemStacksEqual(iron, result) && ItemStack.areItemStacksEqual(iron_ore,recipe))
{
interator.remove();
}
}
}
こんな感じでどうでしょう。
FurnaceRecipesからかまどレシピのインスタンス取得して、レシピのリストを取得。
ItemStackの比較は難しいので、イテレータを使ってItemStackのStaticメソッドのareItemStacksEqualを使って、
かまどレシピの素材が鉄鉱石で、結果が鉄インゴットなものだけレシピ削除みたいな感じです。
[code=java]
@Mod.EventHandler
public void postInit(FMLPostInitializationEvent event) {
ItemStack result;
ItemStack iron = new ItemStack(Items.IRON_INGOT, 1, 0);
ItemStack iron_ore = new ItemStack(Blocks.IRON_ORE, 1, 32767);
Map<ItemStack, ItemStack> recipes = FurnaceRecipes.instance().getSmeltingList();
Iterator<ItemStack> interator = recipes.keySet().iterator();
while (interator.hasNext())
{
ItemStack recipe = interator.next();
result = recipes.get(recipe);
if (ItemStack.areItemStacksEqual(iron, result) && ItemStack.areItemStacksEqual(iron_ore,recipe))
{
interator.remove();
}
}
}
[/code]
こんな感じでどうでしょう。
FurnaceRecipesからかまどレシピのインスタンス取得して、レシピのリストを取得。
ItemStackの比較は難しいので、イテレータを使ってItemStackのStaticメソッドのareItemStacksEqualを使って、
かまどレシピの素材が鉄鉱石で、結果が鉄インゴットなものだけレシピ削除みたいな感じです。