【发布时间】:2016-09-12 02:11:12
【问题描述】:
我正在开发一个插件,当你打破诸如石头之类的块时,取决于你的镐上的幸运等级取决于它将在你的库存中放置多少。
插件详情:
它会自动将块和矿石放入您的库存中
自动熔炼矿石和方块
我不完全确定当玩家打破诸如石头之类的方块时如何制作它,它会在他们的库存中放置超过 1 个方块。而我真正想做的是,如果他们的镐上有 6 个财富,它可能会在他们的库存中放置 5 - 7 个方块,但如果他们有 30 个财富,它会在他们的库存中放置 10 - 15 个方块.我只是试着弄乱选项,看看我是否能弄清楚,但我无法弄清楚。我也没有任何使用 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);
}
}
}
如果您需要任何其他信息,请告诉我。
【问题讨论】:
-
首先:您使用的是哪个版本的 Minecraft Forge?我可以说它不是最新的,因为它现在是
EntityPlayer而不是Player。 -
@SomePerson 我使用的是 Minecraft 1.10 版。我没有使用 forge 我可能应该包含这是一个插件而不是一个 mod。
-
那么在这个 Bukkit 插件中?
-
@4castle 是bukkit插件是的。
-
我猜,你忘了在
getItem调用之后加上getEnchantments()。有关如何操作玩家库存的所有信息都在Javadoc for Bukkit 中。我认为您将需要Inventory的addItem方法以及Map的get方法。