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

项目:HCFCore    文件:EnchantLimitListener.java   
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGH)
public void onEnchantItem(EnchantItemEvent event) {
    Map<Enchantment, Integer> adding = event.getEnchantsToAdd();
    Iterator<Map.Entry<Enchantment, Integer>> iterator = adding.entrySet().iterator();
    while (iterator.hasNext()) {
        Map.Entry<Enchantment, Integer> entry = iterator.next();
        Enchantment enchantment = entry.getKey();
        int maxLevel = getMaxLevel(enchantment);
        if (entry.getValue() > maxLevel) {
            if (maxLevel > 0) {
                adding.put(enchantment, maxLevel);
            } else {
                iterator.remove();
            }
        }
    }
}
项目:uppercore    文件:EnchantedBookCustomItem.java   
public EnchantedBookCustomItem(Material material, Config config, PlaceholderRegistry placeholders) {
    super(material, config, placeholders);
    storedEnchantments = new HashMap<>();

    if (config.has("stored-enchantments")) {
        Map<String, Object> stEnch = config.getMap("stored-enchantments");

        for(Map.Entry<String, Object> e : stEnch.entrySet()) {
            Enchantment ench = Enchantment.getByName(e.getKey().replace(' ', '_').toUpperCase(Locale.ENGLISH));
            if (ench == null)
                Uppercore.logger().severe("Cannot find enchantment: " + e.getKey());
            else
                storedEnchantments.put(ench, PlaceholderValue.intValue(e.getValue().toString()));
        }
    }
}
项目:Warzone    文件:EnchantGlow.java   
public static Enchantment getGlow() {
    if (glow != null)
        return glow;

    try {
        Field f = Enchantment.class.getDeclaredField("acceptingNew");
        f.setAccessible(true);
        f.set(null, true);
    } catch (Exception e) {
        e.printStackTrace();
    }

    glow = new EnchantGlow(255);
    Enchantment.registerEnchantment(glow);
    return glow;
}
项目:AsgardAscension    文件:PlayerListener.java   
@EventHandler
public void onQuit(PlayerQuitEvent event) {
    // Removing Speed Miner effect
    if(speedMiner.get(event.getPlayer().getName()) != null) {
        speedMiner.get(event.getPlayer().getName()).removeEnchantment(Enchantment.DIG_SPEED);
        event.getPlayer().removePotionEffect(PotionEffectType.FAST_DIGGING);
        event.getPlayer().removePotionEffect(PotionEffectType.SPEED);
        speedMiner.remove(event.getPlayer().getName());
    }
    // Removing Rainbow Miner effect
    if(rainbowMiner.get(event.getPlayer().getName()) != null) {
        rainbowMiner.get(event.getPlayer().getName()).removeEnchantment(Enchantment.LOOT_BONUS_BLOCKS);
        event.getPlayer().removePotionEffect(PotionEffectType.FAST_DIGGING);
        rainbowMiner.remove(event.getPlayer().getName());
    }
    // Removing Diamond Miner effect
    if(diamondMiner.get(event.getPlayer().getName()) != null) {
        diamondMiner.remove(event.getPlayer().getName());
    }
    // Quiting challenge in case player is doing it
    if(plugin.getChallenges().getChallenge(event.getPlayer()) > 0){
        plugin.getChallenges().quitChallenge(event.getPlayer());
    }
    plugin.getPlayerManager().saveData(event.getPlayer());
}
项目:AlphaLibary    文件:LeatherItemBuilder.java   
/**
 * Get the final {@link ItemStack} with all the attributes you have been adding
 *
 * @return the {@link ItemStack} of this {@link ItemBuilder}
 */
@Override
public ItemStack build() {
    ItemStack s = new ItemStack(this.getMaterial());
    s.setAmount(this.getAmount());
    s.setDurability(this.getDamage());
    LeatherArmorMeta m = (LeatherArmorMeta) s.getItemMeta();

    for (ItemFlag iflag : this.getAllItemflags()) {
        m.addItemFlags(iflag);
    }
    m.setDisplayName(this.getName());
    m.setLore(this.getLore());
    m.setColor(color);
    s.setItemMeta(m);
    for (Map.Entry<Enchantment, Integer> temp : this.getAllEnchantments().entrySet()) {
        s.addUnsafeEnchantment(temp.getKey(), temp.getValue());
    }
    return s;
}
项目:Uranium    文件:CraftMetaItem.java   
CraftMetaItem(CraftMetaItem meta) {
    if (meta == null) {
        attributes = null;
        return;
    }

    this.displayName = meta.displayName;

    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.attributes = meta.attributes;
}
项目:Kineticraft    文件:Enchants.java   
/**
 * Register all of our custom enchants.
 */
private static void registerEnchants() {

    // Tell bukkit it's ok to register new enchants.
    try {
        Field f = Enchantment.class.getDeclaredField("acceptingNew");
        f.setAccessible(true);
        f.set(null, true);
    } catch (Exception e) {
        e.printStackTrace();
    }

    // Register each enchant.
    for (CustomEnchant ce : CustomEnchant.values())
        Enchantment.registerEnchantment(ce.getEnchant());
}
项目:HCFCore    文件:BookDeenchantListener.java   
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGH)
public void onPlayerInteract(PlayerInteractEvent event) {
    if (event.getAction() == Action.LEFT_CLICK_BLOCK && event.hasItem()) {
        // The player didn't click an enchantment table, Creative players will instantly destroy.
        Player player = event.getPlayer();
        if (event.getClickedBlock().getType() == Material.ENCHANTMENT_TABLE && player.getGameMode() != GameMode.CREATIVE) {

            // The player didn't click with an enchanted book.
            ItemStack stack = event.getItem();
            if (stack != null && stack.getType() == Material.ENCHANTED_BOOK) {
                ItemMeta meta = stack.getItemMeta();
                if (meta instanceof EnchantmentStorageMeta) {
                    EnchantmentStorageMeta enchantmentStorageMeta = (EnchantmentStorageMeta) meta;
                    for (Enchantment enchantment : enchantmentStorageMeta.getStoredEnchants().keySet()) {
                        enchantmentStorageMeta.removeStoredEnchant(enchantment);
                    }

                    event.setCancelled(true);
                    player.setItemInHand(EMPTY_BOOK);
                    player.sendMessage(ChatColor.GREEN + "You reverted this item to its original form.");
                }
            }
        }
    }
}
项目:PA    文件:EnchantCMD.java   
public void run(PAUser user, String label, String[] args) {
    if (args.length == 2) {
        ItemStack i = user.getPlayer().getInventory().getItemInHand();

        Enchantment enchantment;
        int level;

        if (!Utils.isInt(args[1])) return;
        enchantment = getEnchantment(args[0]);
        level = Integer.parseInt(args[1]);

        if (enchantment == null) return;

        i.addUnsafeEnchantment(enchantment, level);
    }
}
项目:mczone    文件:ItemUtil.java   
public static String serialize(ItemStack item) {
    String name = item.getType().name().toLowerCase();
    String data = "";
    if (item.getDurability() != (short) 0)
        data = ":" + item.getDurability();

    String amount = "";
    if (item.getAmount() > 1)
        amount = "," + item.getAmount();

    String ench = "";
    if (item.getEnchantments().size() > 0) {
        for (Entry<Enchantment, Integer> e : item.getEnchantments().entrySet()) {
            ench += e.getKey().getName().toLowerCase() + ":" + e.getValue() + ",";
        }
        ench = ench.substring(ench.length() - 1);
    }

    return name + data + amount + ench;     
}
项目:VoxelGamesLibv2    文件:KitHandler.java   
@Override
public void start() {
    if (!kitsDir.exists()) {
        log.info("Kits dir doesn't exist, creating....");
        kitsDir.mkdirs();
    }

    File[] files = kitsDir.listFiles();
    if (files != null) {
        for (File file : files) {
            if (file.getName().endsWith(".json")) {
                availableKits.add(file.getName().replace(".json", ""));
            }
        }
    }
    log.info("There are " + availableKits.size() + " kits available.");

    // test stuff
    Kit kit = new Kit("DefaultKit");
    kit.addItem(0, new ItemBuilder(Material.STONE).name("Test Stone").build());
    kit.addItem(1, new ItemBuilder(Material.DIAMOND_SWORD).enchantment(Enchantment.DAMAGE_ALL, 5).name(ChatColor.RED + "Cool sword").amount(2).build());
    kit.addItem(2, new ItemBuilder(Material.LEATHER_BOOTS).enchantment(Enchantment.PROTECTION_EXPLOSIONS, 2).enchantment(Enchantment.PROTECTION_FALL, 5).name("Cool bots").amount(3).color(Color.RED).durability(10).lore("test").lore("Lore").build());
    createKit(kit);
    kit = loadKit("DefaultKit", new File(kitsDir, kit.getName() + ".json"));
    System.out.println(kit);
}
项目:NetworkCore    文件:ValeUtil.java   
public static void setVale(Player player, int amount) throws SQLException {
    UUID uuid = player.getUniqueId();
    PreparedStatement stmt = plugin.getDb().getConnection().prepareStatement("UPDATE vale_eco SET amount = "+amount+" WHERE uuid = '"+uuid.toString()+"'");
    stmt.executeUpdate();

    ItemStack item = new ItemStack(Material.EMERALD, 1);
    ItemMeta meta = item.getItemMeta();
    meta.setDisplayName(ChatColor.GREEN.toString() + getVale(player) + (getVale(player)==1?" Vale":" Vales"));
    meta.addEnchant(Enchantment.LUCK, 1, true);
    meta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
    item.setItemMeta(meta);
    if(plugin.getConfig().getString("valeitemininv").equals("true")){
        player.getInventory().setItem(8, item);
    }

}
项目:VanillaPlus    文件:MinecraftUtils.java   
public static ItemStack getRandomEnchant(List<Enchantment>enchants, int amount){
    ItemStack result = new ItemStack(Material.ENCHANTED_BOOK);
    List<Enchantment>left = new ArrayList<Enchantment>(enchants);
    EnchantmentStorageMeta meta = (EnchantmentStorageMeta) result.getItemMeta();
    if(amount > left.size())
        amount = left.size();
    for(int i = 0 ; i < amount && !left.isEmpty() ; i++){
        Enchantment e = VanillaPlusCore.getRandom(left);
        left.remove(e);
        int level = VanillaPlusCore.getRandom().nextInt(100);
        level = level % (e.getMaxLevel()+1-e.getStartLevel())+e.getStartLevel();
        meta.addStoredEnchant(e, level, false);
    }
    result.setItemMeta(meta);
    return result;
}
项目:Arcadia-Spigot    文件:GameVotingRunnable.java   
private void updateVoting(int slot) {
    Bukkit.getOnlinePlayers().forEach(player -> {
        ItemStack itemStack = player.getInventory().getItem(slot);
        itemStack.setAmount(getVotes(slot));
        if(votes.containsKey(player)) {
            for(int i=2; i<7; i++) {
                ItemStack temp = player.getInventory().getItem(i);
                if(temp != null) {
                    if(temp.getType() != Material.AIR) {
                        if(slots.get(i) != votes.get(player)) {
                            if(temp.getEnchantments().containsKey(Enchantment.DURABILITY)) {
                                temp.removeEnchantment(Enchantment.DURABILITY);
                            }
                            player.getInventory().setItem(i, temp);
                        } else {
                            temp.addUnsafeEnchantment(Enchantment.DURABILITY, 1);
                            player.getInventory().setItem(i, temp);
                        }
                    }
                }
            }
        }
    });
}
项目:Slimefun4-Chinese-Version    文件:TalismanListener.java   
/**
 *
 * @param e BlockBreakEvent
 * @since 4.2.0
 */
@EventHandler
public void onBlockBreak(BlockBreakEvent e) {
    List<ItemStack> drops = new ArrayList<ItemStack>();
    ItemStack item = e.getPlayer().getInventory().getItemInMainHand();
    int fortune = 1;

    if (item != null) {
        if (item.getEnchantments().containsKey(Enchantment.LOOT_BONUS_BLOCKS) && !item.getEnchantments().containsKey(Enchantment.SILK_TOUCH)) {
            fortune = SlimefunStartup.randomize(item.getEnchantmentLevel(Enchantment.LOOT_BONUS_BLOCKS) + 2) - 1;
            if (fortune <= 0) fortune = 1;
            fortune = (e.getBlock().getType() == Material.LAPIS_ORE ? 4 + SlimefunStartup.randomize(5) : 1) * (fortune + 1);
        }

        if (!item.getEnchantments().containsKey(Enchantment.SILK_TOUCH) && e.getBlock().getType().toString().endsWith("_ORE")) {
            if (Talisman.checkFor(e, SlimefunItem.getByID("MINER_TALISMAN"))) {
                if (drops.isEmpty()) drops = (List<ItemStack>) e.getBlock().getDrops();
                for (ItemStack drop : new ArrayList<ItemStack>(drops)) {
                    if (!drop.getType().isBlock()) drops.add(new CustomItem(drop, fortune * 2));
                }
            }
        }
    }
}
项目:SparseBukkitAPI    文件:ItemBuilder.java   
/**
 * Applies the provided enchantment to the item.
 * @param enchantment
 * @param level
 * @return this
 */
public ItemBuilder enchant(Enchantment enchantment, int level)
{
    if(enchantment == null)
        return this;
    if(level <= 0)
    {
        enchantments.remove(enchantment);
        return this;
    }

    if(enchantments == null)
        enchantments = new HashMap<>();
    enchantments.put(enchantment, level);
    return this;
}
项目:HCFCore    文件:ExpMultiplierListener.java   
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGH)
public void onPlayerFish(PlayerFishEvent event) {
    double amount = event.getExpToDrop();
    if (amount > 0) {
        amount = Math.ceil(amount * SettingsYML.EXP_MULTIPLIER_FISHING);
        ProjectileSource projectileSource = event.getHook().getShooter();
        if (projectileSource instanceof Player) {
            ItemStack stack = ((Player) projectileSource).getItemInHand();
            int enchantmentLevel = stack.getEnchantmentLevel(Enchantment.LUCK);
            if (enchantmentLevel > 0L) {
                amount = Math.ceil(amount * (enchantmentLevel * SettingsYML.EXP_MULTIPLIER_LUCK_PER_LEVEL));
            }
        }

        event.setExpToDrop((int) amount);
    }
}
项目:AlphaLibary    文件:ItemBuilder.java   
/**
 * Get the final {@link ItemStack} with all the attributes you have been adding
 *
 * @return the {@link ItemStack} out of this {@link ItemBuilder}
 */
public ItemStack build() {
    ItemStack s = new ItemStack(material);
    s.setAmount(amount);
    s.setDurability(damage);
    ItemMeta m = s.getItemMeta();

    for (ItemFlag iflag : itemflags)
        m.addItemFlags(iflag);
    m.setDisplayName(name);
    m.setLore(lore);
    s.setItemMeta(m);
    for (Map.Entry<Enchantment, Integer> temp : enchantments.entrySet())
        s.addUnsafeEnchantment(temp.getKey(), temp.getValue());

    for (ItemData id : getAllData())
        try {
            id.applyOn(s);
        } catch (WrongDataException e) {
            e.printStackTrace();
        }

    return s;
}
项目:OMGPI    文件:Inventories.java   
/**
 * Copy an inventory and open it for player
 *
 * @param i Inventory to open
 * @param p Player that needs the inventory
 */
public static void openFakeInv(Inventory i, OMGPlayer p) {
    Inventory fake = Bukkit.createInventory(p.bukkit, i.getSize(), i.getTitle());
    for (int slot = 0; slot < i.getContents().length; slot++) {
        ItemStack e = i.getContents()[slot];
        if (e != null) {
            e = e.clone();
            ItemMeta im = e.getItemMeta();
            im.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
            im.addItemFlags(ItemFlag.HIDE_ENCHANTS);
            if ((NBTParser.getTagCompound(e).hasKey("kitid") && NBTParser.getTagCompound(e).getString("kitid").equals(p.kit.name)) || (NBTParser.getTagCompound(e).hasKey("teamid") && NBTParser.getTagCompound(e).getString("teamid").equals(p.requestedTeam.id)))
                im.addEnchant(Enchantment.DURABILITY, 1, true);
            if (NBTParser.getTagCompound(e).hasKey("kitid")) {
                ItemStack finalE = e;
                OMGKit.kits.stream().filter(k -> k.getName().equals(NBTParser.getTagCompound(finalE).getString("kitid"))).forEach(k -> {
                    List<String> ss = im.hasLore() ? im.getLore() : new ArrayList<>();
                    ss.add(ChatColor.GREEN + "Can use: " + (OMGPI.g.player_hasKit(p, k) ? (ChatColor.GREEN + "YES") : (ChatColor.RED + "NO")));
                    im.setLore(ss);
                });
            }
            e.setItemMeta(im);
            fake.setItem(slot, e);
        }
    }
    p.bukkit.openInventory(fake);
}
项目:WC    文件:Balfichas.java   
private void initInv(String name){
    balanceFichas = Bukkit.createInventory(null, 9, ChatColor.AQUA + "Fichas");

    String cf1 = files.getDouble(name + "." + "FICHA_1") + " fichas";
    String cf2 = files.getDouble(name + "." + "FICHA_10") + " fichas";
    String cf3 = files.getDouble(name + "." + "FICHA_50") + " fichas";
    String cf4 = files.getDouble(name + "." + "FICHA_100") + " fichas";
    String cf5 = files.getDouble(name + "." + "FICHA_200") + " fichas";
    String cf6 = files.getDouble(name + "." + "FICHA_500") + " fichas";
    String cf7 = files.getDouble(name + "." + "BASURA_1") + " fichas";
    String cf8 = files.getDouble(name + "." + "BASURA_2") + " fichas";
    String cf9 = files.getDouble(name + "." + "BASURA_3") + " fichas";

    balanceFichas.setItem(0, new ItemMaker(Material.WOOL).setDisplayName(ChatColor.WHITE + "Ficha " + ChatColor.GREEN + "1$").setLores(ChatColor.GREEN + cf1).setDurability(f1).addUnsafeEnchant(Enchantment.ARROW_INFINITE, 1).build());
    balanceFichas.setItem(1, new ItemMaker(Material.WOOL).setDisplayName(ChatColor.WHITE + "Ficha " + ChatColor.AQUA + "10$").setLores(ChatColor.GREEN + cf2).setDurability(f2).addUnsafeEnchant(Enchantment.ARROW_INFINITE, 1).build());
    balanceFichas.setItem(2, new ItemMaker(Material.WOOL).setDisplayName(ChatColor.WHITE + "Ficha " + ChatColor.GOLD + "50$").setLores(ChatColor.GREEN + cf3).setDurability(f3).addUnsafeEnchant(Enchantment.ARROW_INFINITE, 1).build());
    balanceFichas.setItem(3, new ItemMaker(Material.WOOL).setDisplayName(ChatColor.WHITE + "Ficha " + ChatColor.YELLOW + "100$").setLores(ChatColor.GREEN + cf4).setDurability(f4).addUnsafeEnchant(Enchantment.ARROW_INFINITE, 1).build());
    balanceFichas.setItem(4, new ItemMaker(Material.WOOL).setDisplayName(ChatColor.WHITE + "Ficha " + ChatColor.RED + "200$").setLores(ChatColor.GREEN + cf5).setDurability(f5).addUnsafeEnchant(Enchantment.ARROW_INFINITE, 1).build());
    balanceFichas.setItem(5, new ItemMaker(Material.WOOL).setDisplayName(ChatColor.WHITE + "Ficha " + ChatColor.GRAY + "500$").setLores(ChatColor.GREEN + cf6).setDurability(f6).addUnsafeEnchant(Enchantment.ARROW_INFINITE, 1).build());
    balanceFichas.setItem(6, new ItemMaker(Material.ROTTEN_FLESH).setDisplayName(ChatColor.LIGHT_PURPLE + "Carne Podrida").setLores(ChatColor.GREEN + cf7).addUnsafeEnchant(Enchantment.ARROW_INFINITE, 1).build());
    balanceFichas.setItem(7, new ItemMaker(Material.STRING).setDisplayName(ChatColor.LIGHT_PURPLE + "Cuerda").setLores(ChatColor.GREEN + cf8).addUnsafeEnchant(Enchantment.ARROW_INFINITE, 1).build());
    balanceFichas.setItem(8, new ItemMaker(Material.DIRT).setDisplayName(ChatColor.LIGHT_PURPLE + "Tierra").setLores(ChatColor.GREEN + cf9).addUnsafeEnchant(Enchantment.ARROW_INFINITE, 1).build());
}
项目:FactionsXL    文件:DemandMenu.java   
public static ItemStack formButton(Faction faction, Resource resource) {
    ItemStack icon = resource.getIcon();
    ItemMeta meta = icon.getItemMeta();
    SaturationLevel level = faction.isResourceSaturated(resource);
    if (level == SaturationLevel.SURPLUS) {
        meta.addEnchant(Enchantment.LUCK, 1, true);
        meta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
    }
    meta.setDisplayName(level.getColor() + resource.getName());
    ArrayList<String> lore = new ArrayList<>();
    lore.add(ProgressBar.getBar((double) faction.getSaturatedResources().get(resource)));
    lore.add(level.getColor().toString() + faction.getSaturatedResources().get(resource) + "%");
    String population = String.valueOf(faction.getPopulation());
    String units = String.valueOf(faction.getDemand(resource));
    lore.add(FMessage.POPULATION_REQUIRED.getMessage(population, units, resource.getName()));
    lore.add(FMessage.POPULATION_GRANTING1.getMessage());
    lore.add(FMessage.POPULATION_GRANTING2.getMessage(String.valueOf(faction.getConsumableResources().get(resource)), resource.getName()));
    meta.setLore(lore);
    icon.setItemMeta(meta);
    return icon;
}
项目:HCFCore    文件:EnchantLimitListener.java   
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGH)
public void onEnchantItem(EnchantItemEvent event) {
    Map<Enchantment, Integer> adding = event.getEnchantsToAdd();
    Iterator<Map.Entry<Enchantment, Integer>> iterator = adding.entrySet().iterator();
    while (iterator.hasNext()) {
        Map.Entry<Enchantment, Integer> entry = iterator.next();
        Enchantment enchantment = entry.getKey();
        int maxLevel = getMaxLevel(enchantment);
        if (entry.getValue() > maxLevel) {
            if (maxLevel > 0) {
                adding.put(enchantment, maxLevel);
            } else {
                iterator.remove();
            }
        }
    }
}
项目:DynamicAC    文件:Utilities.java   
public static long calcSurvivalFastBreak(ItemStack tool, Material block) {
    if (isInstantBreak(block) || (tool.getType() == Material.SHEARS && block == Material.LEAVES)) {
        return 0;
    }
    double bhardness = BlockHardness.getBlockHardness(block);
    double thardness = ToolHardness.getToolHardness(tool.getType());
    long enchantlvl = (long) tool.getEnchantmentLevel(Enchantment.DIG_SPEED);

    long result = Math.round((bhardness * thardness) * 0.10 * 10000);

    if (enchantlvl > 0) {
        result /= enchantlvl * enchantlvl + 1L;
    }

    result = result > 25000 ? 25000 : result < 0 ? 0 : result;

    if (isQuickCombo(tool, block)) {
        result = result / 2;
    }

    return result;
}
项目:ProjectAres    文件:GlobalItemParser.java   
public Map<Enchantment, Integer> parseEnchantments(Element el, String name) throws InvalidXMLException {
    Map<Enchantment, Integer> enchantments = Maps.newHashMap();

    Node attr = Node.fromAttr(el, name, StringUtils.pluralize(name));
    if(attr != null) {
        Iterable<String> enchantmentTexts = Splitter.on(";").split(attr.getValue());
        for(String enchantmentText : enchantmentTexts) {
            int level = 1;
            List<String> parts = Lists.newArrayList(Splitter.on(":").limit(2).split(enchantmentText));
            Enchantment enchant = XMLUtils.parseEnchantment(attr, parts.get(0));
            if(parts.size() > 1) {
                level = XMLUtils.parseNumber(attr, parts.get(1), Integer.class);
            }
            enchantments.put(enchant, level);
        }
    }

    for(Element elEnchantment : el.getChildren(name)) {
        Pair<Enchantment, Integer> entry = parseEnchantment(elEnchantment);
        enchantments.put(entry.first, entry.second);
    }

    return enchantments;
}
项目:prisonPicks    文件:EventTest.java   
@Before
public void setUp() {
    MockitoAnnotations.initMocks(this);

    //Tool Stubbs
    doReturn(0).when(tool).getEnchantmentLevel(Enchantment.LOOT_BONUS_BLOCKS);
    doReturn(Material.DIAMOND_PICKAXE).when(tool).getType();
    doReturn((short) 0).when(tool).getDurability(); 
    doReturn(true).when(tool).hasItemMeta();
    doReturn(itemMeta).when(tool).getItemMeta();

    doReturn(tool).when(inventory).getItemInMainHand(); 
    doReturn(inventory).when(player).getInventory(); 

    doReturn(true).when(tool).hasItemMeta();
    doReturn(itemMeta).when(tool).getItemMeta();
    when(tool.getDurability()).thenReturn((short) 5);

    lore = new ArrayList<String>();
    lore.add(ChatColor.GOLD + "Explosive I");
    doReturn(lore).when(itemMeta).getLore();
    doReturn(true).when(itemMeta).hasLore();
}
项目:DoubleRunner    文件:DoubleRunnerGameLoop.java   
@EventHandler
public void onCraftItem(CraftItemEvent event)
{
    if (event.getRecipe().getResult().getType() == Material.DIAMOND_PICKAXE)
    {
        ItemStack pickaxe = new ItemStack(Material.DIAMOND_PICKAXE, 1);
        pickaxe.addEnchantment(Enchantment.DIG_SPEED, 3);

        event.getInventory().setResult(pickaxe);

        this.plugin.getServer().getScheduler().runTaskLater(this.plugin, () ->
        {
            for (ItemStack stack : event.getWhoClicked().getInventory().getContents())
                if (stack != null && stack.getType() == Material.DIAMOND_PICKAXE && !stack.containsEnchantment(Enchantment.DIG_SPEED))
                    stack.addEnchantment(Enchantment.DIG_SPEED, 3);
        }, 5L);
    }
}
项目:BedwarsXP    文件:XPItemShop.java   
private void addCategoriesToInventory(Inventory inventory, Player player) {
    for (MerchantCategory category : this.categories) {
        if (category.getMaterial() == null) {
            Main.getInstance()
                    .getServer()
                    .getConsoleSender()
                    .sendMessage(
                            ChatWriter
                                    .pluginMessage(ChatColor.RED
                                            + "Careful: Not supported material in shop category '"
                                            + category.getName() + "'"));
        } else if ((player == null)
                || (player.hasPermission(category.getPermission()))) {
            ItemStack is = new ItemStack(category.getMaterial(), 1);
            ItemMeta im = is.getItemMeta();

            if ((this.currentCategory != null)
                    && (this.currentCategory.equals(category))) {
                im.addEnchant(Enchantment.DAMAGE_ALL, 1, true);
            }

            im.setDisplayName(category.getName());
            im.setLore(category.getLores());
            is.setItemMeta(im);

            inventory.addItem(new ItemStack[] { is });
        }
    }
}
项目:FlexMC    文件:FlexItemMeta.java   
@Override
public Map<Enchantment, Integer> getEnchants() {
    Map<Enchantment, Integer> map = new HashMap<>();
    this.enchantments.forEachEntry( new TObjectIntProcedure<Enchantment>() {
        @Override
        public boolean execute( Enchantment enchantment, int i ) {
            map.put( enchantment, i );
            return true;
        }
    } );
    return map;
}
项目:InventoryAPI    文件:ItemBuilder.java   
/**
 * Adds an unsafe enchantment
 * @param e the {@link Enchantment} to be added
 * @param val the Enchantment's level
 * @return this ItemBuilder
 */
public ItemBuilder enchant( Enchantment e, int val){
    Validate.notNull( e , "Enchantment is null");
    Validate.notNull( val , "Enchantment Level is null");
    item.addUnsafeEnchantment( e, val );
    return this;
}
项目:uppercore    文件:CustomItem.java   
public void processMeta(Player player, ItemMeta meta) {
    if (displayName != null)
        meta.setDisplayName(displayName.resolve(player, placeholders));
    meta.setLore(lore.stream().map(m -> m.resolve(player, placeholders)).collect(Collectors.toList()));
    meta.addItemFlags(flags.toArray(new ItemFlag[0]));
    for (Map.Entry<Enchantment, PlaceholderValue<Integer>> ench : enchantments.entrySet())
        meta.addEnchant(ench.getKey(), ench.getValue().resolve(player), true);
}
项目:KingdomFactions    文件:Item.java   
public ItemStack getItem(Material m, String name, int amount, HashMap<Enchantment, Integer> enchantments, boolean showEnchantments) {
    ItemStack i = new ItemStack(m, amount);
    ItemMeta im = i.getItemMeta();
    for(Enchantment e : enchantments.keySet()) {
        im.addEnchant(e, enchantments.get(e), true);
    }
    if (!showEnchantments) {
        im.addItemFlags(ItemFlag.HIDE_ENCHANTS);
    }
    im.setDisplayName(name);
    i.setItemMeta(im);
    return i;
}
项目:PA    文件:Archer.java   
public void setItems(Player p) {
    p.getInventory().setItem(0, new ItemMaker(Material.BOW).addEnchant(Enchantment.ARROW_INFINITE, 1).setUnbreakable().build());

    p.getInventory().setItem(4, new ItemMaker(Material.POTION).setDisplayName("Guerrillero").build());
    p.getInventory().setItem(5, new ItemMaker(Material.SOUL_SAND).setDisplayName("Cadenas").build());

    p.getInventory().setItem(8, new ItemMaker(Material.BLAZE_POWDER).setDisplayName("Fenix").build());

    p.getInventory().setItem(9, new ItemMaker(Material.ARROW).build());

    p.getInventory().setHelmet(new ItemMaker(Material.CHAINMAIL_HELMET).build());
    p.getInventory().setChestplate(new ItemMaker(Material.CHAINMAIL_CHESTPLATE).build());
    p.getInventory().setLeggings(new ItemMaker(Material.CHAINMAIL_LEGGINGS).build());
    p.getInventory().setBoots(new ItemMaker(Material.CHAINMAIL_BOOTS).build());
}
项目:Warzone    文件:ItemFactory.java   
public static ItemStack createItem(Material material, String name, List<String> lore, List<Enchantment> enchantments) {
    ItemStack itemStack = createItem(material, name, lore);
    for (Enchantment enchantment : enchantments) {
        if (itemStack.getEnchantments().containsKey(enchantment)) {
            itemStack.getEnchantments().put(enchantment, itemStack.getEnchantmentLevel(enchantment));
        } else {
            itemStack.getEnchantments().put(enchantment, 1);
        }
    }
    return itemStack;
}
项目:Warzone    文件:ItemFactory.java   
public static ItemStack createItem(Material material, List<Enchantment> enchantments) {
    ItemStack itemStack = createItem(material);
    for (Enchantment enchantment : enchantments) {
        if (itemStack.getEnchantments().containsKey(enchantment)) {
            itemStack.getEnchantments().put(enchantment, itemStack.getEnchantmentLevel(enchantment));
        } else {
            itemStack.addEnchantment(enchantment, 1);
        }
    }
    return itemStack;
}
项目:Uranium    文件:CraftItemStack.java   
@Override
public int getEnchantmentLevel(Enchantment ench) {
    Validate.notNull(ench, "Cannot find null enchantment");
    if (handle == null) {
        return 0;
    }
    return net.minecraft.enchantment.EnchantmentHelper.getEnchantmentLevel(ench.getId(), handle);
}
项目:HCFCore    文件:FoundDiamondsListener.java   
@EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR)
public void onBlockBreak(final BlockBreakEvent event) {
    final Player player = event.getPlayer();
    if(player.getGameMode() == GameMode.CREATIVE) {
        return;
    }
    if(player.getItemInHand().getEnchantments().containsKey(Enchantment.SILK_TOUCH)) return;;
    final Block block = event.getBlock();
    final Location blockLocation = block.getLocation();
    if(block.getType() == FoundDiamondsListener.SEARCH_TYPE && this.foundLocations.add(blockLocation.toString())) {
        int count = 1;
        for(int x = -5; x < 5; ++x) {
            for(int y = -5; y < 5; ++y) {
                for(int z = -5; z < 5; ++z) {
                    final Block otherBlock = blockLocation.clone().add((double) x, (double) y, (double) z).getBlock();
                    if(!otherBlock.equals(block) && otherBlock.getType() == FoundDiamondsListener.SEARCH_TYPE && this.foundLocations.add(otherBlock.getLocation().toString())) {
                        ++count;
                    }
                }
            }
        }

        String message;
        for(Player on : Bukkit.getOnlinePlayers()) {
            if(plugin.getFactionManager().getPlayerFaction(player.getUniqueId()) != null) {
                 message = plugin.getFactionManager().getPlayerFaction(player.getUniqueId()).getRelation(on).toChatColour() + player.getName() + ChatColor.GRAY + " has found " + ChatColor.AQUA + count + ChatColor.GRAY + " diamond(s).";
                on.sendMessage(message);
            }else{
                message = ChatColor.AQUA + "[" + ChatColor.GRAY + "♠" + ChatColor.AQUA + "]" + ChatColor.GRAY + " " + ChatColor.AQUA + player.getName() + ChatColor.GRAY + " has just spotted " + ChatColor.BLUE + count + ChatColor.GRAY +" diamonds!";
                on.sendMessage(message);
            }
        }
    }
}
项目:MCLibrary    文件:ItemBuilder.java   
public ItemBuilder enchant(Object... args) {
    metaProcessors.add(meta ->
            new VarargsParser(args).parse(section ->
                    meta.addEnchant(
                            section.<Enchantment>get(0),
                            section.<Integer>get(1),
                            false
                    )));
    return this;
}
项目:KingdomFactions    文件:ShopItem.java   
private void addEnchantments(String enchantments, String level, ItemStack is) {
    try {
    if (enchantments == null || level == null)
        return;

    ArrayList<String> enchants = new ArrayList<String>(Arrays.asList(enchantments.split("!")));
    ArrayList<String> levels = new ArrayList<String>(Arrays.asList(level.split("!")));

    if (enchantments.isEmpty())
        return;

    for (int i = 0; i < enchants.size(); i++) {
        if (!enchants.get(i).equalsIgnoreCase(" ") && !enchants.get(i).equalsIgnoreCase("")) {
            if (is.getType() == Material.ENCHANTED_BOOK) {
                EnchantmentStorageMeta meta = (EnchantmentStorageMeta) is.getItemMeta();
                meta.addStoredEnchant(Enchantment.getByName(enchants.get(i)), Integer.parseInt(levels.get(i)), true);

                is.setItemMeta(meta);
            } else
                is.addEnchantment(Enchantment.getByName(enchants.get(i)), Integer.parseInt(levels.get(i)));
        }
    }

    enchants.clear();
    levels.clear();
    } catch(Exception e) {
        if(e instanceof java.lang.IllegalArgumentException) {
        Logger.ERROR.log("couldn't add enchantment " + enchantments + " level " + level + " to " + is.getType().toString());
        Logger.ERROR.log("Cause: java.lang.IllegalArgumentException");
        } else {
        e.printStackTrace();
        }
    }
}
项目:PA    文件:PlayerEvents.java   
@EventHandler(priority = EventPriority.HIGHEST)
public void onConsume(PlayerInteractEvent e) {
    SurvivalUser u = PASurvival.getPlayer(e.getPlayer());

    if (e.getItem() == null) return;

    if (e.getItem().getType() == Material.BREAD && e.getItem().hasItemMeta()) {
        if (e.getItem().getEnchantments().keySet().contains(Enchantment.ARROW_DAMAGE)) {
            String name = ChatColor.stripColor(e.getItem().getItemMeta().getDisplayName());
            ItemStack i = u.getPlayer().getInventory().getItemInMainHand();

            if (u.getPlayer().getFoodLevel() >= 20) return;

            if (name.equalsIgnoreCase("Bocadillo de Jamón")) {
                if (u.getPlayer().getFoodLevel() + 5 > 20) {
                    u.getPlayer().setFoodLevel(20);
                } else {
                    u.getPlayer().setFoodLevel(u.getPlayer().getFoodLevel() + 5);
                }
                u.getPlayer().setSaturation(3F);
                i.setAmount(i.getAmount() - 1);
                u.getPlayer().getInventory().setItemInMainHand(i);
            }

            if (name.equalsIgnoreCase("Hamburguesa Artesana")) {
                if (u.getPlayer().getFoodLevel() + 6 > 20) {
                    u.getPlayer().setFoodLevel(20);
                } else {
                    u.getPlayer().setFoodLevel(u.getPlayer().getFoodLevel() + 6);
                }
                u.getPlayer().setSaturation(4F);
                i.setAmount(i.getAmount() - 1);
                u.getPlayer().getInventory().setItemInMainHand(i);
            }
        }
    }
}
项目:HCFCore    文件:AutoSmeltOreListener.java   
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST)
public void onBlockBreak(final BlockBreakEvent event) {
    Player player = event.getPlayer();
    if (player.getGameMode() != GameMode.CREATIVE) {
        if (player.hasPermission("hcf.listener.autosmeltore")) {
            ItemStack stack = player.getItemInHand();
            if (stack != null && stack.getType() != Material.AIR
                    && !stack.containsEnchantment(Enchantment.SILK_TOUCH)) {
                Block block = event.getBlock();
                Material dropType = null;
                switch (block.getType()) {
                    case IRON_ORE: {
                        dropType = Material.IRON_INGOT;
                        break;
                    }
                    case GOLD_ORE: {
                        dropType = Material.GOLD_INGOT;
                        break;
                    }
                    default: {
                        return;
                    }
                }
                 Location location = block.getLocation();
                 World world = location.getWorld();
                 ItemStack drop = new ItemStack(dropType, 1);
                world.dropItemNaturally(location, drop);
                block.setType(Material.AIR);
                block.getState().update();
            }
        }
    }
}