我正在开发一个插件,当您打破石头之类的障碍时,取决于镐上的运气水平取决于它在存货中的投入量。

插件详细信息:


它会自动将块和矿石放入您的库存中
它会自动冶炼矿石和块


我不确定如何在玩家突破石头之类的障碍物时将其放置多于1块的方法。我要尝试做的是,如果他们在镐上说财富6,它将在库存中放置5-7块,但是如果财富30,则将在库存中放置10-15块。 。我只是试着弄乱选项,看看是否可以解决,但无法解决。我也没有任何关于哈希图的经验,所以如果我也做错了,我深表歉意。

码:

@EventHandler
public void fortuneBlock(BlockBreakEvent e) {
    Player p = (Player) e.getPlayer();
    Block b = (Block) e.getBlock();

    ItemStack DP = new ItemStack(Material.DIAMOND_PICKAXE);

    if (p.getInventory().contains(DP)) {
        if (DP.containsEnchantment(Enchantment.LOOT_BONUS_BLOCKS)) {
            HashMap<Enchantment, Integer> pickaxe = p.getInventory().getItem(Material.DIAMOND_PICKAXE);
        }
    }
}


如果您需要其他任何信息,请告诉我。

最佳答案

getEnchantments()

//Map containing all enchantments of the ItemStack
//The Map looks like: [KEY,VALUE]
//  [Enchantment.DURABILITY,2],
//  [Enchantment.LOOT_BONUS_BLOCKS,4]
HashMap<Enchantment, Integer> enchantmentMap = YourItemStack.getEnchantments();
//Check if this map contains the wanted Enchantment
if(enchantmentMap.containsKey(Enchantment.LOOT_BONUS_BLOCKS))
//Get VALUE of KEY which is the enchantLevel "4"
Integer enchantmentLevel = enchantmentMap.get(Enchantment.LOOT_BONUS_BLOCKS);


您可以想象地图像表格一样,每个KEY都有自己的value。因此KEY是唯一的。

09-08 05:21