2016-09-12 15 views
1

私はプラグインで作業しています。石などのブロックを壊すときは、あなたのピックアックスにどれだけの幸運があるかは、在庫にどれくらいの量が入るかによって決まります。Minecraft Fortune Blocks

プラグインの詳細情報:

  • それは自動的にインベントリにブロックし、鉱石を置くそれは自動的に鉱石やブロックを胡瓜魚

私が作る方法を正確にはわかりませんプレイヤーが石のようなブロックを壊すと、インベントリに1ブロック以上置かれます。私が正確にやろうとしていることは、自分のピックアックスに占い6を言うことができるのであれば、インベントリに5〜7ブロックを置くことができますが、もし彼らが幸運30の場合、インベントリに10〜 。私はちょうどオプションを使いこなすことを試み、私がそれを理解できるかどうか見てみましたが、私はそれを理解できません。私はハッシュマップの経験も持っていないので、間違っていると謝っています。

コード:

@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

最初に:どのバージョンのMinecraft Forgeを使用していますか?今は 'Player'ではなく' EntityPlayer'だから、最新ではないと私は言うことができます。 –

+0

@SomePerson私はminecraftバージョン1.10を使用しています。私は偽造を使用していないでしょう。これは、おそらく、これはmodではないプラグインです。 – MrSanfrinsisco

+0

このBukkitプラグインでは? – 4castle

答えて

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

あなたはすべてKEYvalue独自のを持って、テーブルのような地図を想像することができます。したがって、KEYはユニークです。

+0

*遅く返事を申し訳ありません。*あなたがここで何をしているのか正確に分かります。それがどのように動作しているかについて簡単に説明することができれば、それを他の方法でも使う方法を知っています。 The 整数エンチャントレベル=エンチャントメイプ.get(エンチャント.LOOT_BONUS_BLOCKS); エンチャントのレベルを得るにはどうすればいいですか?あなたはエンチャントレベルを探していることをどのようにして知っていますか? – MrSanfrinsisco

+0

@MrSanfrinsisco私が言ったように、Mapは 'Keys'と' Values'を含んでいます。あなたの 'Key'はあなたが望む' Value'の指標です。 'get(Key)'を使うと、この一意の 'Key'に結ばれた' Value'を何とかして尋ねることができます。 ItemStackはEnchantmentを2回持つことはできませんので、固有の 'Keys'(Enchantment Type)と' Value'(Enchentment Level)のリストを得ることができます。最後に、マップは一意のデータペアを格納するための素敵なコンテナです。 – Drayke