【问题标题】:Minecraft Fortune Blocks我的世界财富积木
【发布时间】: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 中。我认为您将需要InventoryaddItem 方法以及Mapget 方法。

标签: java minecraft bukkit


【解决方案1】:

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);

你可以把 Map 想象成一张桌子,每个KEY 都有自己的value。因此KEY 是独一无二的。

【讨论】:

  • 抱歉回复晚了 好的,我明白你在做什么。如果我能快速解释它是如何工作的,那么我也知道如何以其他方式使用它。整数 enchantmentLevel = enchantmentMap.get(Enchantment.LOOT_BONUS_BLOCKS);这是如何获得结界等级的?比如它是如何知道你在寻找结界等级的。
  • @MrSanfrinsisco 就像我说的,地图包含KeysValues。你的Key 是你想要的Value 的指标。get(Key) 你以某种方式要求Value 连接到这个独特的Key。一个 ItemStack 不能有两次附魔,因此您可以获得一个具有唯一 Keys(附魔类型)的列表和他们的 Value(附魔等级)。最后,地图只是存储唯一数据对的好容器。
猜你喜欢
  • 2016-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多