net.minecraft.item.ItemStack.getEnchantmentTagList()方法的使用及代码示例

x33g5p2x  于2022-01-21 转载在 其他  
字(4.3k)|赞(0)|评价(0)|浏览(104)

本文整理了Java中net.minecraft.item.ItemStack.getEnchantmentTagList()方法的一些代码示例,展示了ItemStack.getEnchantmentTagList()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ItemStack.getEnchantmentTagList()方法的具体详情如下:
包路径:net.minecraft.item.ItemStack
类名称:ItemStack
方法名:getEnchantmentTagList

ItemStack.getEnchantmentTagList介绍

暂无

代码示例

代码示例来源:origin: vadis365/TheErebus

public static final LinkedHashMap<Short, Short> getEnchantments(ItemStack stack) {
    LinkedHashMap<Short, Short> map = new LinkedHashMap<Short, Short>();
    NBTTagList list = stack.getItem() == Items.ENCHANTED_BOOK ? stack.getEnchantmentTagList() : stack.getEnchantmentTagList(); //will come back to this

    if (list != null)
      for (int i = 0; i < list.tagCount(); i++) {
        NBTTagCompound tag = list.getCompoundTagAt(i);
        map.put(tag.getShort("id"), tag.getShort("lvl"));
      }
    return map;
  }
}

代码示例来源:origin: SleepyTrousers/EnderIO

@Override
@Nonnull
protected ICapacitorData getDataFromStack(@Nonnull ItemStack stack) {
 NBTTagList enchantments = stack.getEnchantmentTagList();
 for (int i = 0; i < enchantments.tagCount(); i++) {
  NBTTagCompound ench = enchantments.getCompoundTagAt(i);
  if (ench.hasKey("id") && ench.getInteger("id") == ENCHANT_ID_EFFICIENCY) {
   return CapacitorHelper.increaseCapacitorLevel(EndergyCapacitorData.TOTEMIC_CAPACITOR, ench.getInteger("lvl") / 2);
  }
 }
 return getData();
}

代码示例来源:origin: Ellpeck/ActuallyAdditions

public static boolean hasEnchantment(ItemStack stack, Enchantment e){
  NBTTagList ench = stack.getEnchantmentTagList();
  if(ench != null){
    for(int i = 0; i < ench.tagCount(); i++){
      short id = ench.getCompoundTagAt(i).getShort("id");
      if(id == Enchantment.getEnchantmentID(e)){
        return true;
      }
    }
  }
  return false;
}

代码示例来源:origin: SquidDev-CC/plethora

@Override
public boolean apply(@Nullable ItemStack target) {
  if (target == null || target.isEmpty()) return false;
  NBTTagList enchantments = target.getItem() == Items.ENCHANTED_BOOK ? ItemEnchantedBook.getEnchantments(target) : target.getEnchantmentTagList();
  for (int i = 0; i < enchantments.tagCount(); ++i) {
    NBTTagCompound tag = enchantments.getCompoundTagAt(i);
    Enchantment itemEnchant = Enchantment.getEnchantmentByID(tag.getShort("id"));
    if (itemEnchant == enchantment) return (int) tag.getShort("lvl") >= minLevel;
  }
  return false;
}

代码示例来源:origin: CoFH/CoFHCore

@Override
  public ITextComponent[] getData(ItemStack stack) {
    NBTTagList nbttaglist = stack.getEnchantmentTagList();
    LinkedList<ITextComponent> ret = new LinkedList<>();
    ret.add(null);
    if (nbttaglist != null && nbttaglist.tagCount() > 0) {
      int i = 0;
      for (; i < nbttaglist.tagCount(); ++i) {
        short short1 = nbttaglist.getCompoundTagAt(i).getShort("id");
        short short2 = nbttaglist.getCompoundTagAt(i).getShort("lvl");
        if (Enchantment.getEnchantmentByID(short1) != null) {
          ret.add(new TextComponentString(StringHelper.TEAL + "     " + I18n.translateToLocal(Enchantment.getEnchantmentByID(short1).getName()) + " " + StringHelper.toNumerals(short2)));
        } else {
          ret.add(new TextComponentString(StringHelper.RED + "     " + String.format("Invalid{id=%s,lvl=%s}", short1, short2)));
        }
      }
    } else {
      ret.set(0, new TextComponentString("none"));
    }
    return ret.toArray(new ITextComponent[ret.size()]);
  }
}, NBT("tag", "stackTag", "compoundTag") {

代码示例来源:origin: Ellpeck/ActuallyAdditions

public static void removeEnchantment(ItemStack stack, Enchantment e){
  NBTTagList ench = stack.getEnchantmentTagList();
  if(ench != null){
    for(int i = 0; i < ench.tagCount(); i++){
      short id = ench.getCompoundTagAt(i).getShort("id");
      if(id == Enchantment.getEnchantmentID(e)){
        ench.removeTag(i);
      }
    }
    if(ench.isEmpty() && stack.hasTagCompound()){
      stack.getTagCompound().removeTag("ench");
    }
  }
}

代码示例来源:origin: jabelar/ExampleMod-1.12

/**
 * On event.
 *
 * @param event the event
 */
@SubscribeEvent(priority = EventPriority.NORMAL, receiveCanceled = true)
  public static void onEvent(LivingFallEvent event)
  {
    if (event.getEntityLiving() instanceof EntityPlayer)
    {
      for (ItemStack stack : event.getEntityLiving().getArmorInventoryList())
      {
        NBTTagList tagList = stack.getEnchantmentTagList();
        
        for (int i = 0; i < tagList.tagCount(); i++)
        {
          NBTTagCompound idTag = tagList.getCompoundTagAt(i);
          
          if (idTag.getShort("id") == Enchantment.getEnchantmentID(ModEnchantments.safe_falling))
          {
//                        // DEBUG
//                        System.out.println("Boots of safe falling cushioned fall");
            event.setDistance(0);
            event.setDamageMultiplier(0);
          }
        }
      }
    }
  }

相关文章

微信公众号

最新文章

更多

ItemStack类方法