类org.bukkit.enchantments.Enchantment源码实例Demo

下面列出了怎么用org.bukkit.enchantments.Enchantment的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: UhcCore   文件: ScenarioManager.java
public Inventory getScenarioEditInventory(){

        Inventory inv = Bukkit.createInventory(null,6*ROW, Lang.SCENARIO_GLOBAL_INVENTORY_EDIT);

        // add edit item
        ItemStack back = new ItemStack(Material.ARROW);
        ItemMeta itemMeta = back.getItemMeta();
        itemMeta.setDisplayName(Lang.SCENARIO_GLOBAL_ITEM_BACK);
        back.setItemMeta(itemMeta);
        inv.setItem(5*ROW+8,back);

        for (Scenario scenario : Scenario.values()){
            if (!scenario.isCompatibleWithVersion()){
                continue;
            }

            ItemStack scenarioItem = scenario.getScenarioItem();
            if (isActivated(scenario)){
                scenarioItem.addUnsafeEnchantment(Enchantment.DURABILITY, 1);
                scenarioItem.setAmount(2);
            }
            inv.addItem(scenarioItem);
        }

        return inv;
    }
 
源代码2 项目: MineTinker   文件: Knockback.java
@Override
public boolean applyMod(Player player, ItemStack tool, boolean isCommand) {
	ItemMeta meta = tool.getItemMeta();

	if (meta != null) {
		if (ToolType.AXE.contains(tool.getType()) || ToolType.SWORD.contains(tool.getType()) || ToolType.TRIDENT.contains(tool.getType())) {
			meta.addEnchant(Enchantment.KNOCKBACK, modManager.getModLevel(tool, this), true);
		} else if (ToolType.BOW.contains(tool.getType()) || ToolType.CROSSBOW.contains(tool.getType())) {
			meta.addEnchant(Enchantment.ARROW_KNOCKBACK, modManager.getModLevel(tool, this), true);
		}
		//Shields do not get the enchant

		tool.setItemMeta(meta);
	}

	return true;
}
 
源代码3 项目: Kettle   文件: CraftMetaItem.java
CraftMetaItem(CraftMetaItem meta) {
    if (meta == null) {
        return;
    }

    this.displayName = meta.displayName;
    this.locName = meta.locName;

    if (meta.hasLore()) {
        this.lore = new ArrayList<String>(meta.lore);
    }

    if (meta.hasEnchants()) {
        this.enchantments = new HashMap<Enchantment, Integer>(meta.enchantments);
    }

    this.repairCost = meta.repairCost;
    this.hideFlag = meta.hideFlag;
    this.unbreakable = meta.unbreakable;
    this.unhandledTags.putAll(meta.unhandledTags);

    this.internalTag = meta.internalTag;
    if (this.internalTag != null) {
        deserializeInternal(internalTag);
    }
}
 
源代码4 项目: MineTinker   文件: Insulating.java
@Override
public boolean applyMod(Player player, ItemStack tool, boolean isCommand) {
	ItemMeta meta = tool.getItemMeta();

	if (meta != null) {
		if (ToolType.HELMET.contains(tool.getType()) || ToolType.CHESTPLATE.contains(tool.getType())
				|| ToolType.LEGGINGS.contains(tool.getType()) || ToolType.BOOTS.contains(tool.getType())) {

			meta.addEnchant(Enchantment.PROTECTION_FIRE, modManager.getModLevel(tool, this), true);
		}

		tool.setItemMeta(meta);
	}

	return true;
}
 
源代码5 项目: UhcCore   文件: VersionUtils_1_13.java
@Nullable
@Override
public Enchantment getEnchantmentFromKey(String key){
    Enchantment enchantment = Enchantment.getByName(key);

    if (enchantment != null){
        Bukkit.getLogger().warning("[UhcCore] Using old deprecated enchantment names, replace: " + key + " with " + enchantment.getKey().getKey());
        return enchantment;
    }

    NamespacedKey namespace;

    try{
        namespace = NamespacedKey.minecraft(key);
    }catch (IllegalArgumentException ex){
        return null;
    }

    return Enchantment.getByKey(namespace);
}
 
源代码6 项目: BedwarsRel   文件: ItemStackParser.java
@SuppressWarnings("deprecation")
private void parseEnchants() {
  if (this.isMetarizable()) {
    Enchantment en = null;
    int level = 0;

    ConfigurationSection newSection = (ConfigurationSection) (this.configSection);
    ConfigurationSection enchantSection = (ConfigurationSection) newSection.get("enchants");

    for (String key : enchantSection.getKeys(false)) {
      if (Utils.isNumber(key)) {
        en = Enchantment.getById(Integer.parseInt(key));
        level = Integer.parseInt(enchantSection.get(key).toString());
      } else {
        en = Enchantment.getByName(key.toUpperCase());
        level = Integer.parseInt(enchantSection.get(key).toString());
      }

      if (en == null) {
        continue;
      }

      this.finalStack.addUnsafeEnchantment(en, level);
    }
  }
}
 
源代码7 项目: Thermos   文件: CraftMetaItem.java
static Map<Enchantment, Integer> buildEnchantments(Map<String, Object> map, ItemMetaKey key) {
    Map<?, ?> ench = SerializableMeta.getObject(Map.class, map, key.BUKKIT, true);
    if (ench == null) {
        return null;
    }

    Map<Enchantment, Integer> enchantments = new HashMap<Enchantment, Integer>(ench.size());
    for (Map.Entry<?, ?> entry : ench.entrySet()) {
        Enchantment enchantment = Enchantment.getByName(entry.getKey().toString());

        if ((enchantment != null) && (entry.getValue() instanceof Integer)) {
            enchantments.put(enchantment, (Integer) entry.getValue());
        }
    }

    return enchantments;
}
 
源代码8 项目: Carbon   文件: CraftMetaItem.java
@SuppressWarnings("deprecation")
static Map<Enchantment, Integer> buildEnchantments(NBTTagCompound tag, ItemMetaKey key) {
	if (!tag.hasKey(key.NBT)) {
		return null;
	}
	NBTTagList ench = tag.getList(key.NBT, 10);
	Map<Enchantment, Integer> enchantments = new HashMap<Enchantment, Integer>(ench.size());
	for (int i = 0; i < ench.size(); i++) {
		int id = 0xFFFF & ench.get(i).getShort(ENCHANTMENTS_ID.NBT);
		int level = 0xFFFF & ench.get(i).getShort(ENCHANTMENTS_LVL.NBT);

		Enchantment e = Enchantment.getById(id);
		if (e != null) {
			enchantments.put(e, Integer.valueOf(level));
		}
	}
	return enchantments;
}
 
源代码9 项目: ChestCommands   文件: EnchantmentSerializer.java
public static EnchantmentDetails parseEnchantment(String input, String iconName, String menuFileName, ErrorLogger errorLogger) {
	int level = 1;

	if (input.contains(",")) {
		String[] levelSplit = input.split(",");

		try {
			level = Integer.parseInt(levelSplit[1].trim());
		} catch (NumberFormatException ex) {
			errorLogger.addError("The icon \"" + iconName + "\" in the menu \"" + menuFileName + "\" has an invalid enchantment level: " + levelSplit[1]);
		}
		input = levelSplit[0];
	}

	Enchantment ench = matchEnchantment(input);

	if (ench == null) {
		errorLogger.addError("The icon \"" + iconName + "\" in the menu \"" + menuFileName + "\" has an invalid enchantment: " + input);
	} else {
		return new EnchantmentDetails(ench, level);
	}

	return null;
}
 
源代码10 项目: ChestCommands   文件: EnchantmentSerializer.java
public static Enchantment matchEnchantment(String input) {
	if (input == null) {
		return null;
	}

	return enchantmentsMap.get(formatLowercase(input));
}
 
源代码11 项目: ProjectAres   文件: XMLUtils.java
public static Enchantment parseEnchantment(Node node, String text) throws InvalidXMLException {
    Enchantment enchantment = Enchantment.getByName(text.toUpperCase().replace(" ", "_"));
    if(enchantment == null) enchantment = NMSHacks.getEnchantment(text);

    if(enchantment == null) {
        throw new InvalidXMLException("Unknown enchantment '" + text + "'", node);
    }

    return enchantment;
}
 
源代码12 项目: CS-CoreLib   文件: CustomItem.java
@Deprecated
public CustomItem(ItemStack item, String[] enchantments) {
	super(item);
	for (String ench: enchantments) {
		addUnsafeEnchantment(Enchantment.getByName(ench.split("-")[0]), Integer.parseInt(ench.split("-")[1]));
	}
}
 
源代码13 项目: Civs   文件: ItemStackImpl.java
public void addEnchantments(Map<Enchantment, Integer> enchantments) {
    Validate.notNull(enchantments, "Enchantments cannot be null");
    Iterator var3 = enchantments.entrySet().iterator();

    while(var3.hasNext()) {
        Entry<Enchantment, Integer> entry = (Entry)var3.next();
        this.addEnchantment((Enchantment)entry.getKey(), (Integer)entry.getValue());
    }

}
 
源代码14 项目: Thermos   文件: CraftMetaItem.java
static void serializeEnchantments(Map<Enchantment, Integer> enchantments, ImmutableMap.Builder<String, Object> builder, ItemMetaKey key) {
    if (enchantments == null || enchantments.isEmpty()) {
        return;
    }

    ImmutableMap.Builder<String, Integer> enchants = ImmutableMap.builder();
    for (Map.Entry<? extends Enchantment, Integer> enchant : enchantments.entrySet()) {
        enchants.put(enchant.getKey().getName(), enchant.getValue());
    }

    builder.put(key.BUKKIT, enchants.build());
}
 
源代码15 项目: UhcCore   文件: GoneFishingListener.java
@EventHandler
public void onGameStarted(UhcStartedEvent e){
    ItemStack rod = new ItemStack(Material.FISHING_ROD);
    rod.addUnsafeEnchantment(Enchantment.LURE, lureLevel);
    rod.addUnsafeEnchantment(Enchantment.LUCK, luckLevel);

    ItemMeta meta = rod.getItemMeta();
    VersionUtils.getVersionUtils().setItemUnbreakable(meta, true);
    rod.setItemMeta(meta);

    ItemStack anvils = new ItemStack(Material.ANVIL, 64);

    for (UhcPlayer uhcPlayer : e.getPlayersManager().getOnlinePlayingPlayers()){
        try {
            // Give the rod
            uhcPlayer.getPlayer().getInventory().addItem(rod);

            // Give player 10000 xl levels
            uhcPlayer.getPlayer().setLevel(10000);

            // Give player 64 anvils
            uhcPlayer.getPlayer().getInventory().addItem(anvils);
        }catch (UhcPlayerNotOnlineException ex){
            // No rod for offline players
        }
    }
}
 
源代码16 项目: MineTinker   文件: Piercing.java
@Override
public boolean applyMod(Player player, ItemStack tool, boolean isCommand) {
	ItemMeta meta = tool.getItemMeta();

	if (meta != null) {
		if (ToolType.CROSSBOW.contains(tool.getType())) {
			meta.addEnchant(Enchantment.PIERCING, modManager.getModLevel(tool, this), true);
		}

		tool.setItemMeta(meta);
	}

	return true;
}
 
源代码17 项目: Skript   文件: ExprEnchantmentLevel.java
@SuppressWarnings({"unchecked", "null"})
@Override
public boolean init(Expression<?>[] exprs, int matchedPattern, Kleenean isDelayed, ParseResult parseResult) {
	int i = matchedPattern < 2 ? 1 : 0;
	items = (Expression<ItemType>) exprs[i];
	enchants = (Expression<Enchantment>) exprs[i ^ 1];
	return true;
}
 
源代码18 项目: MineTinker   文件: Infinity.java
@Override
public boolean applyMod(Player player, ItemStack tool, boolean isCommand) {
	ItemMeta meta = tool.getItemMeta();

	if (meta != null) {
		if (ToolType.BOW.contains(tool.getType()) || ToolType.CROSSBOW.contains(tool.getType())) {
			meta.addEnchant(Enchantment.ARROW_INFINITE, modManager.getModLevel(tool, this), true);
		} else if (ToolType.TRIDENT.contains(tool.getType())) {
			meta.addEnchant(Enchantment.LOYALTY, modManager.getModLevel(tool, this), true);
		}

		tool.setItemMeta(meta);
	}
	return true;
}
 
源代码19 项目: StackMob-3   文件: StickTools.java
@Override
public void giveStackingStick(Player player){
    ItemStack stack = new ItemStack(material, 1);
    stack.addUnsafeEnchantment(Enchantment.DURABILITY,1);

    ItemMeta stackMeta = stack.getItemMeta();
    stackMeta.setDisplayName(itemName);
    stackMeta.setLore(itemLore);
    stack.setItemMeta(stackMeta);

    player.getInventory().addItem(stack);
}
 
源代码20 项目: TabooLib   文件: Servers.java
public static void setEnchantmentAcceptingNew(boolean value) {
    try {
        Reflection.setValue(null, Enchantment.class, true, "acceptingNew", value);
    } catch (Throwable t) {
        t.printStackTrace();
    }
}
 
源代码21 项目: Kettle   文件: CraftMetaItem.java
static void serializeEnchantments(Map<Enchantment, Integer> enchantments, ImmutableMap.Builder<String, Object> builder, ItemMetaKey key) {
    if (enchantments == null || enchantments.isEmpty()) {
        return;
    }

    ImmutableMap.Builder<String, Integer> enchants = ImmutableMap.builder();
    for (Map.Entry<? extends Enchantment, Integer> enchant : enchantments.entrySet()) {
        enchants.put(enchant.getKey().getName(), enchant.getValue());
    }

    builder.put(key.BUKKIT, enchants.build());
}
 
源代码22 项目: Kettle   文件: CraftMetaEnchantedBook.java
public int getStoredEnchantLevel(Enchantment ench) {
    Integer level = hasStoredEnchants() ? enchantments.get(ench) : null;
    if (level == null) {
        return 0;
    }
    return level;
}
 
源代码23 项目: ProjectAres   文件: ItemUtils.java
public static void addEnchantments(ItemMeta meta, Map<Enchantment, Integer> enchantments) {
    for(Map.Entry<Enchantment, Integer> enchantment : enchantments.entrySet()) {
        if(meta.getEnchantLevel(enchantment.getKey()) < enchantment.getValue()) {
            meta.addEnchant(enchantment.getKey(), enchantment.getValue(), true);
        }
    }
}
 
源代码24 项目: MineTinker   文件: Sweeping.java
@Override
public boolean applyMod(Player player, ItemStack tool, boolean isCommand) {
	ItemMeta meta = tool.getItemMeta();

	if (meta != null) {
		meta.addEnchant(Enchantment.SWEEPING_EDGE, modManager.getModLevel(tool, this), true);

		tool.setItemMeta(meta);
	}

	return true;
}
 
源代码25 项目: Carbon   文件: CraftMetaItem.java
public int getEnchantLevel(Enchantment ench) {
	Integer level = hasEnchants() ? (Integer) this.enchantments.get(ench) : null;
	if (level == null) {
		return 0;
	}
	return level.intValue();
}
 
源代码26 项目: Transport-Pipes   文件: ItemService.java
public ItemStack createGlowingItem(Material material) {
    ItemStack is = new ItemStack(material);
    ItemMeta im = is.getItemMeta();
    im.addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 1, true);
    im.addItemFlags(ItemFlag.HIDE_ENCHANTS);
    is.setItemMeta(im);
    return is;
}
 
源代码27 项目: MineTinker   文件: Channeling.java
@Override
public boolean applyMod(Player player, ItemStack tool, boolean isCommand) {
	ItemMeta meta = tool.getItemMeta();

	if (meta != null) {
		if (ToolType.TRIDENT.contains(tool.getType())) {
			meta.addEnchant(Enchantment.CHANNELING, modManager.getModLevel(tool, this), true);
		}

		tool.setItemMeta(meta);
	}

	return true;
}
 
源代码28 项目: Sentinel   文件: SentinelTrait.java
/**
 * Gets the NPC's current damage value (based on held weapon if calculation is required).
 */
public double getDamage(boolean forRangedAttacks) {
    ItemStack weapon = itemHelper.getHeldItem();
    if (weapon == null) {
        if (damage >= 0) {
            return damage;
        }
        return 1;
    }
    Double customDamage = weaponDamage.get(weapon.getType().name().toLowerCase());
    if (customDamage != null) {
        damage = customDamage;
    }
    if (damage >= 0) {
        return damage;
    }
    // TODO: Less arbitrary values, more game-like calculations.
    double multiplier = 1;
    multiplier += weapon.getItemMeta() == null || !weapon.getItemMeta().hasEnchant(Enchantment.DAMAGE_ALL)
            ? 0 : weapon.getItemMeta().getEnchantLevel(Enchantment.DAMAGE_ALL) * 0.2;
    Material weaponType = weapon.getType();
    if (SentinelVersionCompat.BOW_MATERIALS.contains(weaponType)) {
        if (!forRangedAttacks) {
            return 1;
        }
        return 6 * (1 + (weapon.getItemMeta() == null || !weapon.getItemMeta().hasEnchant(Enchantment.ARROW_DAMAGE)
                ? 0 : weapon.getItemMeta().getEnchantLevel(Enchantment.ARROW_DAMAGE) * 0.3));
    }
    Double damageMult = SentinelVersionCompat.WEAPON_DAMAGE_MULTIPLIERS.get(weaponType);
    if (damageMult == null) {
        return multiplier;
    }
    return multiplier * damageMult;
}
 
源代码29 项目: Crazy-Crates   文件: ItemBuilder.java
/**
 * Set a list of enchantments that will go onto the item in the builder. These can have unsafe levels.
 * It will also override any enchantments used in the "ItemBuilder#addEnchantment()" method.
 * @param enchantments A list of enchantments that will go onto the item in the builder.
 * @return The ItemBuilder with updated info.
 */
public ItemBuilder setEnchantments(HashMap<Enchantment, Integer> enchantments) {
    if (enchantments != null) {
        this.enchantments = enchantments;
    }
    return this;
}
 
源代码30 项目: MineTinker   文件: Thorned.java
@Override
public boolean applyMod(Player player, ItemStack tool, boolean isCommand) {
	ItemMeta meta = tool.getItemMeta();

	if (meta != null) {
		meta.addEnchant(Enchantment.THORNS, modManager.getModLevel(tool, this), true);

		tool.setItemMeta(meta);
	}

	return true;
}
 
 类所在包
 同包方法