我想用自定义配方制作自定义项目。我用2个方法item和customRecipe创建了类。
我的课看起来像这样
public class LifeCrystal implements Listener {
private ItemStack item = new ItemStack(Material.DIAMOND);
private ItemMeta meta = item.getItemMeta();
private Plugin plugin = BelieveMe.getPlugin(BelieveMe.class);
public void Item(Player player){
meta.setDisplayName(ChatColor.GOLD + "Life Crystal");
ArrayList<String> lores = new ArrayList<>();
lores.add("Increase your life points");
lores.add("...or revive someone");
meta.setLore(lores);
item.setItemMeta(meta);
}
public void customRecipe(){
ShapedRecipe r = new ShapedRecipe(item);
r.shape(" E ", "LAL", "DGD");
r.setIngredient('E', Material.EMERALD);
r.setIngredient('L', Material.LAPIS_LAZULI);
r.setIngredient('A', Material.GOLDEN_APPLE);
r.setIngredient('D', Material.DIAMOND);
r.setIngredient('G', Material.GOLD_INGOT);
plugin.getServer().addRecipe(r);
}
}
跨过“ new ShapedRecipe(item)”,我的错误消息是“ ShapedRecipe已弃用”。我进行了搜索,找到了有关NamespacedKey的一些信息。我真的不知道该怎么办
最佳答案
似乎您只需要更改ShapedRecipe对象构造函数(根据JavaDocs)。将其更改为:
NamespacedKey nsKey = new NamespacedKey(plugin, "unique_key_here");
ShapedRecipe r = new ShapedRecipe(nsKey, item);
应该适用于最新版本(撰写本文时为1.14.4-R0.1-快照)。在官方的Spigot Wiki上还有链接为here的指南。
快速说明:从研究看来,关键的HAS符合1.11要求是唯一的,因此请确保您所用的东西与任何香草食谱都没有冲突。