【问题标题】:1.8.9 minecraft craft enchanted books modding1.8.9 我的世界工艺魔法书改装
【发布时间】:2019-08-17 21:49:58
【问题描述】:

我正在尝试制作一本魔法书的制作配方,你可以将它应用到锋利的剑上。我做了 .addEnchantment ,但它就像一把剑一样附魔。

package com.mcrm.uhccm.handlers;

import com.mcrm.uhccm.init.UHCCItems;
import com.mcrm.uhccm.items.EnchantmentBooks;

import net.minecraft.enchantment.Enchantment;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.common.registry.GameRegistry;

public class RecipeHandler {

    static ItemStack vorpal_sword = new ItemStack(UHCCItems.vorpal_sword);

    public static void registerCraftingRecipes() {

        ItemStack sharp1 = new ItemStack(Items.enchanted_book);

        sharp1.addEnchantment(Enchantment.sharpness, 1);

        vorpal_sword.addEnchantment(Enchantment.smite, 2);
        vorpal_sword.addEnchantment(Enchantment.baneOfArthropods, 2);

        GameRegistry.addRecipe(sharp1, new Object[] {"F  ", " PP", " PI", 'F',Items.flint,'P',Items.paper,'I',Items.iron_sword});
        GameRegistry.addRecipe(vorpal_sword, new Object[] { " B ", " I ", " R ", 'B',Items.bone,'I',Items.iron_sword,'R',Items.rotten_flesh});
        GameRegistry.addRecipe(new ItemStack(UHCCItems.golden_head), new Object[] { "GGG", "GHG", "GGG", 'G',Items.gold_ingot,'H',Items.skull});
    }

    public static void registerFurnaceRecipes() {

    }
}

这是我正在使用的代码。

【问题讨论】:

  • 请将代码行格式化为代码。它可以帮助我们回答您的问题。只有极少数人会费心阅读没有格式的文字墙。
  • EliteRaceElephant,我已经介绍了整个课程,包括尝试制作锐度书的配方。当我这样做时,它将附魔应用于 ench:[{id: enchantment, lvl: x}] 的 nbt 点,对于附魔书,它应该在 StoredEnchantments 的 nbt 点中:[{id: enchantment, lvl :x}]。

标签: java minecraft


【解决方案1】:

EnchantedBook.addEnchantment(ItemStack, EnchantmentData)

您必须为 1.8 (ItemEnchantedBook?) 找到正确的类名,并检查方法签名,但该方法在该类上是静态的,并接受项目堆栈(您的 vorpal_sword 变量)以及要添加的附魔的详细信息(我从 1.14.4 中提取了该签名,因为我没有为 1.8.9 设置开发环境,因为它太旧了)。

应该不会太难,课程很小,版本之间应该不会有太大变化。

【讨论】:

  • 我找到了 EnchantmentData 类,但不知道如何使用它。你能帮我解决这个问题吗?
  • 我不确定你的问题是什么。它有一个公共构造函数,它接受两个参数,一个 Enchantment 和一个 Int(所述魔法的级别)。
【解决方案2】:

哟,我找到了这个代码,它可以工作。这是为以后出现的任何人准备的。

ItemStack book = Items.enchanted_book.getEnchantedItemStack(new EnchantmentData(enchant, level));

【讨论】:

  • 如果我的回答帮助你找到了这个解决方案,那么接受这个答案是合适的(如果你的代表足够高,可以 +1)。
猜你喜欢
  • 1970-01-01
  • 2014-01-27
  • 1970-01-01
  • 2015-12-16
  • 1970-01-01
  • 1970-01-01
  • 2019-08-19
  • 2017-06-29
  • 1970-01-01
相关资源
最近更新 更多