2
Minecraft 1.7.10에 대해 ID 목록을 배치하고 게임에서 자신의 요리법을 제거하는 소형 유틸리티 모듈을 만들고자합니다. 나는 설정 파일을 가지고 있는데 레시피를 지울 수없는 것 같습니다.Minecraft Forge 1.7.10 - ID에서 요리법 제거
조리법을 제거하기위한 나의 방법은 다른 곳에서 몇 개의 포럼 스레드에서 보았고 내 구성 파일에서 작동하도록 약간 수정되었습니다 (또는 제 경우에는 작동하지 않음). 여기
은 방법 :private void removeRecipes(String toDelete)
{
ArrayList<?> recipes = (ArrayList<?>) CraftingManager.getInstance().getRecipeList();
ItemStack recipeResult = null;
ItemStack resultItem = new ItemStack((Item)Item.itemRegistry.getObject(toDelete));
resultItem.stackSize = 1;
resultItem.setItemDamage(0);
for (int scan = 0; scan < recipes.size(); scan++)
{
IRecipe tmpRecipe = (IRecipe) recipes.get(scan);
if (tmpRecipe instanceof ShapedRecipes)
{
ShapedRecipes recipe = (ShapedRecipes)tmpRecipe;
recipeResult = recipe.getRecipeOutput();
recipeResult.stackSize = 1;
recipeResult.setItemDamage(0);
}
if (tmpRecipe instanceof ShapelessRecipes)
{
ShapelessRecipes recipe = (ShapelessRecipes)tmpRecipe;
recipeResult = recipe.getRecipeOutput();
recipeResult.stackSize = 1;
recipeResult.setItemDamage(0);
}
if (ItemStack.areItemStacksEqual(resultItem, recipeResult))
{
System.out.println("[RecipeRemover] Removed Recipe: " + recipes.get(scan) + " -> " + recipeResult);
recipes.remove(scan);
}
}
}
I 더 이상 mc의 소스를 가지고 있지는 않지만'CraftingManager.getInstance(). getRecipeList()'는 실제 목록이 아닌 arraylist의 복제본을 반환한다고 가정합니다. 당신이하고있는 것을 성취하기 위해 리플렉션을 사용해야한다고 생각하는 Im : P – engineercoding