我正在开发一个插件,当你打破石头等方 block 时,取决于你的镐的财富等级取决于它会放入你的库存中的数量。
插件详细信息:
它会自动将方 block 和矿石放入您的库存中
它自动熔炼矿石和方 block
我不太确定当玩家打破石头等方 block 时如何做到这一点,它会在他们的库存中放置超过 1 个方 block 。我想做的是,如果他们的镐上有财富 6,那么他们的库存中可能会放置 5 - 7 个方 block ,但如果他们有财富 30,它会在他们的库存中放置 10 - 15 个方 block 。我只是尝试摆弄选项,看看是否能弄清楚,但我无法弄清楚。我也没有任何使用 HashMap 的经验,所以如果我也做错了,我很抱歉。
代码:
@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);
}
}
}
如果您需要任何其他信息,请告诉我。
最佳答案
//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);
你可以把Map想象成一张 table ,每个KEY
都有自己的value
。因此 KEY
是唯一的。
关于java - 我的世界财富 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39442529/