From b23fa3654341ee87605ba5662e11d4a395906726 Mon Sep 17 00:00:00 2001 From: GJ Date: Mon, 20 Feb 2012 13:58:22 -0500 Subject: [PATCH] Allow for configuration of custom Excavation drops (WIP) - Addresses MCCORE-1 --- .../gmail/nossr50/config/LoadProperties.java | 39 ++ .../com/gmail/nossr50/skills/Excavation.java | 407 ++++++++++++------ src/main/resources/config.yml | 309 ++++++++++++- 3 files changed, 616 insertions(+), 139 deletions(-) diff --git a/src/main/java/com/gmail/nossr50/config/LoadProperties.java b/src/main/java/com/gmail/nossr50/config/LoadProperties.java index cc7aaf4eb..d74a3e41d 100644 --- a/src/main/java/com/gmail/nossr50/config/LoadProperties.java +++ b/src/main/java/com/gmail/nossr50/config/LoadProperties.java @@ -19,6 +19,9 @@ package com.gmail.nossr50.config; import com.gmail.nossr50.mcMMO; import java.io.File; import java.io.IOException; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; import org.bukkit.configuration.file.FileConfiguration; @@ -86,6 +89,21 @@ public class LoadProperties { sorceryxpmodifier, unarmedxpmodifier, herbalismxpmodifier, excavationxpmodifier, archeryxpmodifier, swordsxpmodifier, axesxpmodifier, acrobaticsxpmodifier; + + public static List excavationTreasures = new ArrayList(); + public static List excavationIDs = new ArrayList(); + public static List excavationDatas = new ArrayList(); + public static List excavationAmounts = new ArrayList(); + public static List excavationXPs = new ArrayList(); + public static List excavationDropChances = new ArrayList(); + public static List excavationDropLevels = new ArrayList(); + public static List excavationFromDirt = new ArrayList(); + public static List excavationFromGrass = new ArrayList(); + public static List excavationFromSand = new ArrayList(); + public static List excavationFromGravel = new ArrayList(); + public static List excavationFromClay = new ArrayList(); + public static List excavationFromMycel = new ArrayList(); + public static List excavationFromSoulSand = new ArrayList(); public static HUDType defaulthud; protected static File configFile; @@ -438,5 +456,26 @@ public class LoadProperties { aDisplayNames = readBoolean("Commands.a.Display_Names", true); pDisplayNames = readBoolean("Commands.p.Display_Names", true); + + //Custom Excavation Drops + excavationTreasures = config.getStringList("Excavation.Treasure"); + Iterator iterator = excavationTreasures.iterator(); + while(iterator.hasNext()) + { + String temp2 = iterator.next(); + excavationIDs.add(config.getInt("Treasures." + temp2 + ".ID")); + excavationDatas.add(config.getInt("Treasures." + temp2 + ".Data")); + excavationXPs.add(config.getInt("Treasures." + temp2 + ".XP")); + excavationAmounts.add(config.getInt("Treasures." + temp2 + ".Amount")); + excavationDropChances.add(config.getDouble("Treasures." + temp2 + ".Drop_Chance")); + excavationDropLevels.add(config.getInt("Treasures." + temp2 + ".Drop_Level")); + excavationFromDirt.add(config.getBoolean("Treasures." + temp2 + ".Drops_From.Dirt")); + excavationFromGrass.add(config.getBoolean("Treasures." + temp2 + ".Drops_From.Grass")); + excavationFromSand.add(config.getBoolean("Treasures." + temp2 + ".Drops_From.Sand")); + excavationFromGravel.add(config.getBoolean("Treasures." + temp2 + ".Drops_From.Gravel")); + excavationFromClay.add(config.getBoolean("Treasures." + temp2 + ".Drops_From.Clay")); + excavationFromMycel.add(config.getBoolean("Treasures." + temp2 + ".Drops_From.Mycelium")); + excavationFromSoulSand.add(config.getBoolean("Treasures." + temp2 + ".Drops_From.Soul_Sand")); + } } } \ No newline at end of file diff --git a/src/main/java/com/gmail/nossr50/skills/Excavation.java b/src/main/java/com/gmail/nossr50/skills/Excavation.java index ea780c1e5..e96d917be 100644 --- a/src/main/java/com/gmail/nossr50/skills/Excavation.java +++ b/src/main/java/com/gmail/nossr50/skills/Excavation.java @@ -17,6 +17,7 @@ package com.gmail.nossr50.skills; import java.util.ArrayList; +import java.util.List; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -89,164 +90,296 @@ public class Excavation int skillLevel = PP.getSkillLevel(SkillType.EXCAVATION); ArrayList is = new ArrayList(); int xp = 0; + + //Custom Excavation Drops + List idValues = LoadProperties.excavationIDs; + List dataValues = LoadProperties.excavationDatas; + List xpValues = LoadProperties.excavationXPs; + List amounts = LoadProperties.excavationAmounts; + List dropChances = LoadProperties.excavationDropChances; + List dropLevels = LoadProperties.excavationDropLevels; + List dirt = LoadProperties.excavationFromDirt; + List grass = LoadProperties.excavationFromGrass; + List sand = LoadProperties.excavationFromSand; + List gravel = LoadProperties.excavationFromGravel; + List clay = LoadProperties.excavationFromClay; + List mycel = LoadProperties.excavationFromMycel; + List soulSand = LoadProperties.excavationFromSoulSand; switch(type) { - case GRASS: - if(skillLevel >= 250) + case DIRT: + for(int i = 0; i < dirt.size(); i++) { - //CHANCE TO GET EGGS - if(LoadProperties.eggs && Math.random() * 100 > 99) - { - xp+= LoadProperties.meggs; - is.add(new ItemStack(Material.EGG, 1, (byte)0, (byte)0)); - } - //CHANCE TO GET APPLES - if(LoadProperties.apples && Math.random() * 100 > 99) - { - xp+= LoadProperties.mapple; - is.add(new ItemStack(Material.APPLE, 1, (byte)0, (byte)0)); - } + if(dirt.get(i)) + { + if(skillLevel >= dropLevels.get(i)) + { + if(Math.random() * 100 > (100.00 - dropChances.get(i))) + { + xp += xpValues.get(i); + is.add(new ItemStack(idValues.get(i), amounts.get(i), (byte)0, dataValues.get(i).byteValue())); + } + } + } + } + break; + case GRASS: + for(int i = 0; i < grass.size(); i++) + { + if(grass.get(i)) + { + if(skillLevel >= dropLevels.get(i)) + { + if(Math.random() * 100 > (100.00 - dropChances.get(i))) + { + xp += xpValues.get(i); + is.add(new ItemStack(idValues.get(i), amounts.get(i), (byte)0, dataValues.get(i).byteValue())); + } + } + } + } + break; + case SAND: + for(int i = 0; i < sand.size(); i++) + { + if(sand.get(i)) + { + if(skillLevel >= dropLevels.get(i)) + { + if(Math.random() * 100 > (100.00 - dropChances.get(i))) + { + xp += xpValues.get(i); + is.add(new ItemStack(idValues.get(i), amounts.get(i), (byte)0, dataValues.get(i).byteValue())); + } + } + } } break; case GRAVEL: - //CHANCE TO GET NETHERRACK - if(LoadProperties.netherrack && skillLevel >= 850 && Math.random() * 200 > 199) + for(int i = 0; i < gravel.size(); i++) { - xp+= LoadProperties.mnetherrack; - is.add(new ItemStack(Material.NETHERRACK, 1, (byte)0, (byte)0)); - - } - //CHANCE TO GET SULPHUR - if(LoadProperties.sulphur && skillLevel >= 75 && Math.random() * 10 > 9) - { - xp+= LoadProperties.msulphur; - is.add(new ItemStack(Material.SULPHUR, 1, (byte)0, (byte)0)); - } - //CHANCE TO GET BONES - if(LoadProperties.bones && skillLevel >= 175 && Math.random() * 10 > 9) - { - xp+= LoadProperties.mbones; - is.add(new ItemStack(Material.BONE, 1, (byte)0, (byte)0)); - } - break; - case SAND: - //CHANCE TO GET GLOWSTONE - if(LoadProperties.glowstone && skillLevel >= 50 && Math.random() * 100 > 95) - { - xp+= LoadProperties.mglowstone2; - is.add(new ItemStack(Material.GLOWSTONE_DUST, 1, (byte)0, (byte)0)); - - } - //CHANCE TO GET SOUL SAND - if(LoadProperties.slowsand && skillLevel >= 650 && Math.random() * 200 > 199) - { - xp+= LoadProperties.mslowsand; - is.add(new ItemStack(Material.SOUL_SAND, 1, (byte)0, (byte)0)); + if(gravel.get(i)) + { + if(skillLevel >= dropLevels.get(i)) + { + if(Math.random() * 100 > (100.00 - dropChances.get(i))) + { + xp += xpValues.get(i); + is.add(new ItemStack(idValues.get(i), amounts.get(i), (byte)0, dataValues.get(i).byteValue())); + } + } + } } break; case CLAY: - //CHANCE TO GET SLIMEBALLS - if(LoadProperties.slimeballs && skillLevel >= 50 && Math.random() * 20 > 19) + for(int i = 0; i < clay.size(); i++) { - xp+= LoadProperties.mslimeballs; - is.add(new ItemStack(Material.SLIME_BALL, 1, (byte)0, (byte)0)); - } - //CHANCE TO GET STRING - if(LoadProperties.string && skillLevel >= 250 && Math.random() * 20 > 19) - { - xp+= LoadProperties.mstring; - is.add(new ItemStack(Material.STRING, 1, (byte)0, (byte)0)); + if(clay.get(i)) + { + if(skillLevel >= dropLevels.get(i)) + { + if(Math.random() * 100 > (100.00 - dropChances.get(i))) + { + xp += xpValues.get(i); + is.add(new ItemStack(idValues.get(i), amounts.get(i), (byte)0, dataValues.get(i).byteValue())); + } + } + } } - if(skillLevel >= 500) + break; + case MYCEL: + for(int i = 0; i < mycel.size(); i++) { - //CHANCE TO GET CLOCK - if(LoadProperties.watch && Math.random() * 100 > 99) - { - xp+= LoadProperties.mwatch; - is.add(new ItemStack(Material.WATCH, 1, (byte)0)); - - } - //CHANCE TO GET BUCKET - if(LoadProperties.bucket && Math.random() * 100 > 99) - { - xp+= LoadProperties.mbucket; - is.add(new ItemStack(Material.BUCKET, 1, (byte)0, (byte)0)); - } + if(mycel.get(i)) + { + if(skillLevel >= dropLevels.get(i)) + { + if(Math.random() * 100 > (100.00 - dropChances.get(i))) + { + xp += xpValues.get(i); + is.add(new ItemStack(idValues.get(i), amounts.get(i), (byte)0, dataValues.get(i).byteValue())); + } + } + } } - //CHANCE TO GET COBWEB - if(LoadProperties.web && skillLevel >= 750 && Math.random() * 20 > 19) + break; + case SOUL_SAND: + for(int i = 0; i < soulSand.size(); i++) { - xp+= LoadProperties.mweb; - is.add(new ItemStack(Material.WEB, 1, (byte)0, (byte)0)); + if(soulSand.get(i)) + { + if(skillLevel >= dropLevels.get(i)) + { + if(Math.random() * 100 > (100.00 - dropChances.get(i))) + { + xp += xpValues.get(i); + is.add(new ItemStack(idValues.get(i), amounts.get(i), (byte)0, dataValues.get(i).byteValue())); + } + } + } } break; } - //ALL MATERIALS - if(type == Material.GRASS || type == Material.DIRT || type == Material.GRAVEL || type == Material.SAND || type == Material.CLAY || type == Material.MYCEL || type == Material.SOUL_SAND) - { - xp+= LoadProperties.mbase; - //CHANCE TO GET CAKE - if(LoadProperties.cake && skillLevel >= 750 && Math.random() * 2000 > 1999) - { - xp+= LoadProperties.mcake; - is.add(new ItemStack(Material.CAKE, 1, (byte)0, (byte)0)); - } - if(skillLevel >= 350) - { - //CHANCE TO GET DIAMOND - if(LoadProperties.diamond && Math.random() * 750 > 749) - { - xp+= LoadProperties.mdiamond2; - is.add(new ItemStack(Material.DIAMOND, 1, (byte)0, (byte)0)); - } - //CHANCE TO GET GREEN MUSIC - if(LoadProperties.music && Math.random() * 2000 > 1999) - { - xp+= LoadProperties.mmusic; - is.add(new ItemStack(Material.GREEN_RECORD, 1, (byte)0, (byte)0)); - } - } - //CHANCE TO GET YELLOW MUSIC - if(LoadProperties.music && skillLevel >= 250 && Math.random() * 2000 > 1999) - { - xp+= LoadProperties.mmusic; - is.add(new ItemStack(Material.GOLD_RECORD, 1, (byte)0, (byte)0)); - } - } - //GRASS OR DIRT OR MYCEL - if(type == Material.DIRT || type == Material.GRASS || type == Material.MYCEL) - { - //CHANCE FOR COCOA BEANS - if(LoadProperties.cocoabeans && skillLevel >= 50 && Math.random() * 75 > 74) - { - xp+= LoadProperties.mcocoa; - is.add(new ItemStack(Material.getMaterial(351), 1, (byte)0, (byte)3)); - } - //CHANCE FOR SHROOMS - if(LoadProperties.mushrooms && skillLevel >= 500 && Math.random() * 200 > 199) - { - xp+= LoadProperties.mmushroom2; - switch((int)(Math.random() * 2)) - { - case 0: - is.add(new ItemStack(Material.BROWN_MUSHROOM, 1, (byte)0, (byte)0)); - break; - case 1: - is.add(new ItemStack(Material.RED_MUSHROOM, 1, (byte)0, (byte)0)); - break; - } - - } - //CHANCE TO GET GLOWSTONE - if(LoadProperties.glowstone && skillLevel >= 25 && Math.random() * 100 > 95) - { - xp+= LoadProperties.mglowstone2; - is.add(new ItemStack(Material.GLOWSTONE_DUST, 1, (byte)0, (byte)0)); - } - } +// switch(type) +// { +// case GRASS: +// if(skillLevel >= 250) +// { +// //CHANCE TO GET EGGS +// if(LoadProperties.eggs && Math.random() * 100 > 99) +// { +// xp+= LoadProperties.meggs; +// is.add(new ItemStack(Material.EGG, 1, (byte)0, (byte)0)); +// } +// //CHANCE TO GET APPLES +// if(LoadProperties.apples && Math.random() * 100 > 99) +// { +// xp+= LoadProperties.mapple; +// is.add(new ItemStack(Material.APPLE, 1, (byte)0, (byte)0)); +// } +// } +// break; +// case GRAVEL: +// //CHANCE TO GET NETHERRACK +// if(LoadProperties.netherrack && skillLevel >= 850 && Math.random() * 200 > 199) +// { +// xp+= LoadProperties.mnetherrack; +// is.add(new ItemStack(Material.NETHERRACK, 1, (byte)0, (byte)0)); +// +// } +// //CHANCE TO GET SULPHUR +// if(LoadProperties.sulphur && skillLevel >= 75 && Math.random() * 10 > 9) +// { +// xp+= LoadProperties.msulphur; +// is.add(new ItemStack(Material.SULPHUR, 1, (byte)0, (byte)0)); +// } +// //CHANCE TO GET BONES +// if(LoadProperties.bones && skillLevel >= 175 && Math.random() * 10 > 9) +// { +// xp+= LoadProperties.mbones; +// is.add(new ItemStack(Material.BONE, 1, (byte)0, (byte)0)); +// } +// break; +// case SAND: +// //CHANCE TO GET GLOWSTONE +// if(LoadProperties.glowstone && skillLevel >= 50 && Math.random() * 100 > 95) +// { +// xp+= LoadProperties.mglowstone2; +// is.add(new ItemStack(Material.GLOWSTONE_DUST, 1, (byte)0, (byte)0)); +// +// } +// //CHANCE TO GET SOUL SAND +// if(LoadProperties.slowsand && skillLevel >= 650 && Math.random() * 200 > 199) +// { +// xp+= LoadProperties.mslowsand; +// is.add(new ItemStack(Material.SOUL_SAND, 1, (byte)0, (byte)0)); +// } +// break; +// case CLAY: +// //CHANCE TO GET SLIMEBALLS +// if(LoadProperties.slimeballs && skillLevel >= 50 && Math.random() * 20 > 19) +// { +// xp+= LoadProperties.mslimeballs; +// is.add(new ItemStack(Material.SLIME_BALL, 1, (byte)0, (byte)0)); +// } +// //CHANCE TO GET STRING +// if(LoadProperties.string && skillLevel >= 250 && Math.random() * 20 > 19) +// { +// xp+= LoadProperties.mstring; +// is.add(new ItemStack(Material.STRING, 1, (byte)0, (byte)0)); +// } +// if(skillLevel >= 500) +// { +// //CHANCE TO GET CLOCK +// if(LoadProperties.watch && Math.random() * 100 > 99) +// { +// xp+= LoadProperties.mwatch; +// is.add(new ItemStack(Material.WATCH, 1, (byte)0)); +// +// } +// //CHANCE TO GET BUCKET +// if(LoadProperties.bucket && Math.random() * 100 > 99) +// { +// xp+= LoadProperties.mbucket; +// is.add(new ItemStack(Material.BUCKET, 1, (byte)0, (byte)0)); +// } +// } +// //CHANCE TO GET COBWEB +// if(LoadProperties.web && skillLevel >= 750 && Math.random() * 20 > 19) +// { +// xp+= LoadProperties.mweb; +// is.add(new ItemStack(Material.WEB, 1, (byte)0, (byte)0)); +// } +// break; +// } +// +// //ALL MATERIALS +// if(type == Material.GRASS || type == Material.DIRT || type == Material.GRAVEL || type == Material.SAND || type == Material.CLAY || type == Material.MYCEL || type == Material.SOUL_SAND) +// { +// xp+= LoadProperties.mbase; +// //CHANCE TO GET CAKE +// if(LoadProperties.cake && skillLevel >= 750 && Math.random() * 2000 > 1999) +// { +// xp+= LoadProperties.mcake; +// is.add(new ItemStack(Material.CAKE, 1, (byte)0, (byte)0)); +// } +// if(skillLevel >= 350) +// { +// //CHANCE TO GET DIAMOND +// if(LoadProperties.diamond && Math.random() * 750 > 749) +// { +// xp+= LoadProperties.mdiamond2; +// is.add(new ItemStack(Material.DIAMOND, 1, (byte)0, (byte)0)); +// } +// //CHANCE TO GET GREEN MUSIC +// if(LoadProperties.music && Math.random() * 2000 > 1999) +// { +// xp+= LoadProperties.mmusic; +// is.add(new ItemStack(Material.GREEN_RECORD, 1, (byte)0, (byte)0)); +// } +// } +// //CHANCE TO GET YELLOW MUSIC +// if(LoadProperties.music && skillLevel >= 250 && Math.random() * 2000 > 1999) +// { +// xp+= LoadProperties.mmusic; +// is.add(new ItemStack(Material.GOLD_RECORD, 1, (byte)0, (byte)0)); +// } +// } +// +// //GRASS OR DIRT OR MYCEL +// if(type == Material.DIRT || type == Material.GRASS || type == Material.MYCEL) +// { +// //CHANCE FOR COCOA BEANS +// if(LoadProperties.cocoabeans && skillLevel >= 50 && Math.random() * 75 > 74) +// { +// xp+= LoadProperties.mcocoa; +// is.add(new ItemStack(Material.getMaterial(351), 1, (byte)0, (byte)3)); +// } +// //CHANCE FOR SHROOMS +// if(LoadProperties.mushrooms && skillLevel >= 500 && Math.random() * 200 > 199) +// { +// xp+= LoadProperties.mmushroom2; +// switch((int)(Math.random() * 2)) +// { +// case 0: +// is.add(new ItemStack(Material.BROWN_MUSHROOM, 1, (byte)0, (byte)0)); +// break; +// case 1: +// is.add(new ItemStack(Material.RED_MUSHROOM, 1, (byte)0, (byte)0)); +// break; +// } +// +// } +// //CHANCE TO GET GLOWSTONE +// if(LoadProperties.glowstone && skillLevel >= 25 && Math.random() * 100 > 95) +// { +// xp+= LoadProperties.mglowstone2; +// is.add(new ItemStack(Material.GLOWSTONE_DUST, 1, (byte)0, (byte)0)); +// } +// } //Drop items for(ItemStack x : is) diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index c978a4d91..1a9241f87 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -264,7 +264,6 @@ Excavation: Sulphur: true Bones: true Apples: true - Map: true Slimeballs: true Bucket: true Netherrack: true @@ -278,7 +277,313 @@ Excavation: Music: true Diamond: true Cocoa_Beans: true - + Treasure: + - Cake + - Gunpowder + - Bone + - Apple + - Slimeball + - Bucket + - Netherrack + - Red_Mushroom + - Brown_Mushroom + - Egg + - Soul_Sand + - Clock + - Cobweb + - String + - Glowstone_Dust + - Gold_Music + - Green_Music + - Diamond + - Cocoa_Beans + +Treasures: + Cake: + ID: 354 + Data: 0 + Amount: 1 + XP: 3000 + Drop_Chance: 0.05 + Drop_Level: 750 + Drops_From: + Dirt: true + Grass: true + Sand: true + Gravel: true + Clay: true + Mycelium: true + Soul_Sand: true + Gunpowder: + ID: 289 + Data: 0 + Amount: 1 + XP: 30 + Drop_Chance: 10.0 + Drop_Level: 75 + Drops_From: + Dirt: false + Grass: false + Sand: false + Gravel: true + Clay: false + Mycelium: false + Soul_Sand: false + Bone: + ID: 352 + Data: 0 + Amount: 1 + XP: 30 + Drop_Chance: 10.0 + Drop_Level: 175 + Drops_From: + Dirt: false + Grass: false + Sand: false + Gravel: true + Clay: false + Mycelium: false + Soul_Sand: false + Apple: + ID: 260 + Data: 0 + Amount: 1 + XP: 100 + Drop_Chance: 0.1 + Drop_Level: 250 + Drops_From: + Dirt: false + Grass: true + Sand: false + Gravel: false + Clay: false + Mycelium: true + Soul_Sand: false + Slimeball: + ID: 341 + Data: 0 + Amount: 1 + XP: 100 + Drop_Chance: 5.0 + Drop_Level: 150 + Drops_From: + Dirt: false + Grass: false + Sand: false + Gravel: false + Clay: true + Mycelium: false + Soul_Sand: false + Bucket: + ID: 325 + Data: 0 + Amount: 1 + XP: 100 + Drop_Chance: 0.1 + Drop_Level: 500 + Drops_From: + Dirt: false + Grass: false + Sand: false + Gravel: false + Clay: true + Mycelium: false + Soul_Sand: false + Netherrack: + ID: 87 + Data: 0 + Amount: 1 + XP: 30 + Drop_Chance: 0.5 + Drop_Level: 850 + Drops_From: + Dirt: false + Grass: false + Sand: false + Gravel: true + Clay: false + Mycelium: false + Soul_Sand: false + Red_Mushroom: + ID: 40 + Data: 0 + Amount: 1 + XP: 80 + Drop_Chance: 0.5 + Drop_Level: 500 + Drops_From: + Dirt: true + Grass: true + Sand: false + Gravel: false + Clay: false + Mycelium: true + Soul_Sand: false + Brown_Mushroom: + ID: 39 + Data: 0 + Amount: 1 + XP: 80 + Drop_Chance: 0.5 + Drop_Level: 500 + Drops_From: + Dirt: true + Grass: true + Sand: false + Gravel: false + Clay: false + Mycelium: true + Soul_Sand: false + Egg: + ID: 344 + Data: 0 + Amount: 1 + XP: 100 + Drop_Chance: 1.0 + Drop_Level: 250 + Drops_From: + Dirt: false + Grass: true + Sand: false + Gravel: false + Clay: false + Mycelium: false + Soul_Sand: false + Soul_Sand: + ID: 88 + Data: 0 + Amount: 1 + XP: 80 + Drop_Chance: 0.5 + Drop_Level: 650 + Drops_From: + Dirt: false + Grass: false + Sand: true + Gravel: false + Clay: false + Mycelium: false + Soul_Sand: false + Clock: + ID: 347 + Data: 0 + Amount: 1 + XP: 100 + Drop_Chance: 0.1 + Drop_Level: 500 + Drops_From: + Dirt: false + Grass: false + Sand: false + Gravel: false + Clay: true + Mycelium: false + Soul_Sand: false + Cobweb: + ID: 30 + Data: 0 + Amount: 1 + XP: 150 + Drop_Chance: 5.0 + Drop_Level: 750 + Drops_From: + Dirt: false + Grass: false + Sand: false + Gravel: false + Clay: true + Mycelium: false + Soul_Sand: false + String: + ID: 287 + Data: 0 + Amount: 1 + XP: 200 + Drop_Chance: 5.0 + Drop_Level: 250 + Drops_From: + Dirt: false + Grass: false + Sand: false + Gravel: false + Clay: true + Mycelium: false + Soul_Sand: false + Glowstone_Dust: + ID: 348 + Data: 0 + Amount: 1 + XP: 80 + Drop_Chance: 5.0 + Drop_Level: 25 + Drops_From: + Dirt: true + Grass: true + Sand: true + Gravel: false + Clay: false + Mycelium: true + Soul_Sand: false + Gold_Music: + ID: 2256 + Data: 0 + Amount: 1 + XP: 3000 + Drop_Chance: 0.05 + Drop_Level: 250 + Drops_From: + Dirt: true + Grass: true + Sand: true + Gravel: true + Clay: true + Mycelium: true + Soul_Sand: true + Green_Music: + ID: 2257 + Data: 0 + Amount: 1 + XP: 3000 + Drop_Chance: 0.05 + Drop_Level: 250 + Drops_From: + Dirt: true + Grass: true + Sand: true + Gravel: true + Clay: true + Mycelium: true + Soul_Sand: true + Diamond: + ID: 264 + Data: 0 + Amount: 1 + XP: 1000 + Drop_Chance: 0.13 + Drop_Level: 350 + Drops_From: + Dirt: true + Grass: true + Sand: true + Gravel: true + Clay: true + Mycelium: true + Soul_Sand: true + Cocoa_Beans: + ID: 351 + Data: 3 + Amount: 1 + XP: 100 + Drop_Chance: 1.33 + Drop_Level: 350 + Drops_From: + Dirt: true + Grass: true + Sand: true + Gravel: true + Clay: true + Mycelium: true + Soul_Sand: true # # Settings for commands ###