我正在制作一个插件,当你打破石头上的块时,取决于你的镐头上的财富水平取决于你的库存量。
插件详细信息:
它会自动将块和矿石放入库存
自动冶炼矿石和块
我不确定如何在玩家打破像石头这样的区块时如何制造它会在他们的库存中放置超过1个区块。而我正在努力做的事情就是如果他们在他们的镐上说出了财富6,那么他们的库存中可能会有5到7个街区,但如果他们喜欢财富30,那么他们的库存就会增加10到15个街区。我只是试着搞乱选项,看看我能搞清楚,但我无法弄明白。我也没有任何使用hashmaps的经验,所以如果我做错了也会道歉。
代码:
@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);
}
}
}
如果您需要任何其他信息,请与我们联系。
答案 0 :(得分:1)
//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
是唯一的。