diff --git a/src/main/java/com/gmail/nossr50/config/LoadProperties.java b/src/main/java/com/gmail/nossr50/config/LoadProperties.java index d74a3e41d..3d2dbfca8 100644 --- a/src/main/java/com/gmail/nossr50/config/LoadProperties.java +++ b/src/main/java/com/gmail/nossr50/config/LoadProperties.java @@ -20,28 +20,33 @@ import com.gmail.nossr50.mcMMO; import java.io.File; import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; import java.util.Iterator; import java.util.List; +import java.util.Map; +import java.util.Set; +import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.inventory.ItemStack; import com.gmail.nossr50.datatypes.HUDType; +import com.gmail.nossr50.datatypes.treasure.ExcavationTreasure; +import com.gmail.nossr50.datatypes.treasure.FishingTreasure; +import com.gmail.nossr50.datatypes.treasure.Treasure; public class LoadProperties { public static Boolean enableOnlyActivateWhenSneaking, enableAbilityMessages, enableAbilities, showDisplayName, showFaces, - watch, xplockEnable, xpbar, xpicon, partybar, string, bucket, web, - xprateEnable, slimeballs, spoutEnabled, donateMessage, - chimaeraWingEnable, xpGainsMobSpawners, myspawnEnable, mccEnable, - mcmmoEnable, partyEnable, inviteEnable, acceptEnable, whoisEnable, - statsEnable, addxpEnable, ptpEnable, mmoeditEnable, + xplockEnable, xpbar, xpicon, partybar, xprateEnable, spoutEnabled, + donateMessage, chimaeraWingEnable, xpGainsMobSpawners, myspawnEnable, + mccEnable, mcmmoEnable, partyEnable, inviteEnable, acceptEnable, + whoisEnable, statsEnable, addxpEnable, ptpEnable, mmoeditEnable, clearmyspawnEnable, mcgodEnable, mcabilityEnable, mctopEnable, mcrefreshEnable, aEnable, pEnable, enableMotd, enableMySpawn, - enableCobbleToMossy, useMySQL, cocoabeans, mushrooms, - toolsLoseDurabilityFromAbilities, pvpxp, miningrequirespickaxe, - excavationRequiresShovel, woodcuttingrequiresaxe, eggs, apples, - cake, music, diamond, glowstone, slowsand, sulphur, netherrack, - bones, coal, clay, anvilmessages, mayDowngradeEnchants, + enableCobbleToMossy, useMySQL, toolsLoseDurabilityFromAbilities, + pvpxp, miningrequirespickaxe, excavationRequiresShovel, + woodcuttingrequiresaxe, anvilmessages, mayDowngradeEnchants, mayLoseEnchants, fishingDrops, leatherArmor, ironArmor, goldArmor, diamondArmor, woodenTools, stoneTools, ironTools, goldTools, diamondTools, enderPearl, blazeRod, records, glowstoneDust, @@ -89,21 +94,14 @@ 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 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; @@ -394,24 +392,6 @@ public class LoadProperties { keepEnchantsRank3 = readInteger("Arcane_Forging.Keep_Enchants.Chance.Rank_3", 30); keepEnchantsRank4 = readInteger("Arcane_Forging.Keep_Enchants.Chance.Rank_4", 40); - cocoabeans = readBoolean("Excavation.Drops.Cocoa_Beans", true); - mushrooms = readBoolean("Excavation.Drops.Mushrooms", true); - glowstone = readBoolean("Excavation.Drops.Glowstone", true); - eggs = readBoolean("Excavation.Drops.Eggs", true); - apples = readBoolean("Excavation.Drops.Apples", true); - cake = readBoolean("Excavation.Drops.Cake", true); - music = readBoolean("Excavation.Drops.Music", true); - diamond = readBoolean("Excavation.Drops.Diamond", true); - slowsand = readBoolean("Excavation.Drops.Slowsand", true); - sulphur = readBoolean("Excavation.Drops.Sulphur", true); - netherrack = readBoolean("Excavation.Drops.Netherrack", true); - bones = readBoolean("Excavation.Drops.Bones", true); - slimeballs = readBoolean("Excavation.Drops.Slimeballs", true); - watch = readBoolean("Excavation.Drops.Watch", true); - string = readBoolean("Excavation.Drops.String", true); - bucket = readBoolean("Excavation.Drops.Bucket", true); - web = readBoolean("Excavation.Drops.Web", true); - fishingDrops = readBoolean("Fishing.Drops.Item_Drops_Enabled", true); fishingDropChanceTier1 = readInteger("Fishing.Drops.Drop_Chance.Tier_1", 20); fishingDropChanceTier2 = readInteger("Fishing.Drops.Drop_Chance.Tier_2", 25); @@ -457,25 +437,77 @@ 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(); + // Load treasures + Map treasures = new HashMap(); + + ConfigurationSection treasureSection = config.getConfigurationSection("Treasures"); + Set treasureConfigSet = treasureSection.getKeys(false); + Iterator iterator = treasureConfigSet.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")); + String treasureName = iterator.next(); + + int id = config.getInt("Treasures." + treasureName + ".ID"); + int amount = config.getInt("Treasures." + treasureName + ".Amount"); + int data = config.getInt("Treasures." + treasureName + ".Data"); + + int xp = config.getInt("Treasures." + treasureName + ".XP"); + Double dropChance = config.getDouble("Treasures." + treasureName + ".Drop_Chance"); + int dropLevel = config.getInt("Treasures." + treasureName + ".Drop_Level"); + + ItemStack item = new ItemStack(id, amount, (byte) 0, (byte) data); + + if(readBoolean("Treasures." + treasureName + ".Drops_From.Fishing", false)) { + // TODO: Fishing + } else { + ExcavationTreasure eTreasure = new ExcavationTreasure(item, xp, dropChance, dropLevel); + if(readBoolean("Treasures." + treasureName + ".Drops_From.Dirt", false)) + eTreasure.setDropsFromDirt(); + if(readBoolean("Treasures." + treasureName + ".Drops_From.Grass", false)) + eTreasure.setDropsFromGrass(); + if(readBoolean("Treasures." + treasureName + ".Drops_From.Sand", false)) + eTreasure.setDropsFromSand(); + if(readBoolean("Treasures." + treasureName + ".Drops_From.Gravel", false)) + eTreasure.setDropsFromGravel(); + if(readBoolean("Treasures." + treasureName + ".Drops_From.Clay", false)) + eTreasure.setDropsFromClay(); + if(readBoolean("Treasures." + treasureName + ".Drops_From.Mycelium", false)) + eTreasure.setDropsFromMycel(); + if(readBoolean("Treasures." + treasureName + ".Drops_From.Soul_Sand", false)) + eTreasure.setDropsFromSoulSand(); + + treasures.put(treasureName, eTreasure); + } + } + + List excavationTreasures = config.getStringList("Excavation.Treasure"); + + Iterator treasureIterator = treasures.keySet().iterator(); + while(treasureIterator.hasNext()) { + String treasureKey = treasureIterator.next(); + Treasure treasure = treasures.get(treasureKey); + + if(treasure instanceof FishingTreasure) { + // TODO: Fishing + } else if(treasure instanceof ExcavationTreasure) { + if(!excavationTreasures.contains(treasureKey)) continue; + + ExcavationTreasure eTreasure = (ExcavationTreasure) treasure; + if(eTreasure.getDropsFromDirt()) + excavationFromDirt.add(eTreasure); + if(eTreasure.getDropsFromGrass()) + excavationFromGrass.add(eTreasure); + if(eTreasure.getDropsFromSand()) + excavationFromSand.add(eTreasure); + if(eTreasure.getDropsFromGravel()) + excavationFromGravel.add(eTreasure); + if(eTreasure.getDropsFromClay()) + excavationFromClay.add(eTreasure); + if(eTreasure.getDropsFromMycel()) + excavationFromMycel.add(eTreasure); + if(eTreasure.getDropsFromSoulSand()) + excavationFromSoulSand.add(eTreasure); + } } } } \ No newline at end of file diff --git a/src/main/java/com/gmail/nossr50/datatypes/treasure/ExcavationTreasure.java b/src/main/java/com/gmail/nossr50/datatypes/treasure/ExcavationTreasure.java new file mode 100644 index 000000000..06b3f5dd5 --- /dev/null +++ b/src/main/java/com/gmail/nossr50/datatypes/treasure/ExcavationTreasure.java @@ -0,0 +1,127 @@ +package com.gmail.nossr50.datatypes.treasure; + +import org.bukkit.inventory.ItemStack; + +public class ExcavationTreasure extends Treasure { + // dirt grass sand gravel clay mycel soulsand + // 00000001 - dirt 1 + // 00000010 - grass 2 + // 00000100 - sand 4 + // 00001000 - gravel 8 + // 00010000 - clay 16 + // 00100000 - mycel 32 + // 01000000 - soulsand 64 + private byte dropsFrom = 0x0; + + public ExcavationTreasure(ItemStack drop, int xp, Double dropChance, int dropLevel) { + super(drop, xp, dropChance, dropLevel); + } + + // Raw getters and setters + public byte getDropsFrom() { + return dropsFrom; + } + + public void setDropsFrom(byte dropsFrom) { + this.dropsFrom = dropsFrom; + } + + // Getters + public boolean getDropsFromDirt() { + return getDropFromMask(1); + } + + public boolean getDropsFromGrass() { + return getDropFromMask(2); + } + + public boolean getDropsFromSand() { + return getDropFromMask(4); + } + + public boolean getDropsFromGravel() { + return getDropFromMask(8); + } + + public boolean getDropsFromClay() { + return getDropFromMask(16); + } + + public boolean getDropsFromMycel() { + return getDropFromMask(32); + } + + public boolean getDropsFromSoulSand() { + return getDropFromMask(64); + } + + private boolean getDropFromMask(int mask) { + return ((dropsFrom & mask) > 0) ? true : false; + } + + // Setters + public void setDropsFromDirt() { + setDropFromMask(1); + } + + public void setDropsFromGrass() { + setDropFromMask(2); + } + + public void setDropsFromSand() { + setDropFromMask(4); + } + + public void setDropsFromGravel() { + setDropFromMask(8); + } + + public void setDropsFromClay() { + setDropFromMask(16); + } + + public void setDropsFromMycel() { + setDropFromMask(32); + } + + public void setDropsFromSoulSand() { + setDropFromMask(64); + } + + private void setDropFromMask(int mask) { + dropsFrom |= mask; + } + + // Un-setters + public void unsetDropsFromDirt() { + unsetDropFromMask(1); + } + + public void unsetDropsFromGrass() { + unsetDropFromMask(2); + } + + public void unsetDropsFromSand() { + unsetDropFromMask(4); + } + + public void unsetDropsFromGravel() { + unsetDropFromMask(8); + } + + public void unsetDropsFromClay() { + unsetDropFromMask(16); + } + + public void unsetDropsFromMycel() { + unsetDropFromMask(32); + } + + public void unsetDropsFromSoulSand() { + unsetDropFromMask(64); + } + + private void unsetDropFromMask(int mask) { + dropsFrom &= ~mask; + } +} diff --git a/src/main/java/com/gmail/nossr50/datatypes/treasure/FishingTreasure.java b/src/main/java/com/gmail/nossr50/datatypes/treasure/FishingTreasure.java new file mode 100644 index 000000000..1a158804c --- /dev/null +++ b/src/main/java/com/gmail/nossr50/datatypes/treasure/FishingTreasure.java @@ -0,0 +1,12 @@ +package com.gmail.nossr50.datatypes.treasure; + +import org.bukkit.inventory.ItemStack; + +public class FishingTreasure extends Treasure { + + public FishingTreasure(ItemStack drop, int xp, Double dropChance, int dropLevel) { + super(drop, xp, dropChance, dropLevel); + // TODO Auto-generated constructor stub + } + +} diff --git a/src/main/java/com/gmail/nossr50/datatypes/treasure/Treasure.java b/src/main/java/com/gmail/nossr50/datatypes/treasure/Treasure.java new file mode 100644 index 000000000..1ef6337eb --- /dev/null +++ b/src/main/java/com/gmail/nossr50/datatypes/treasure/Treasure.java @@ -0,0 +1,50 @@ +package com.gmail.nossr50.datatypes.treasure; + +import org.bukkit.inventory.ItemStack; + +public abstract class Treasure { + private int xp; + private Double dropChance; + private int dropLevel; + + private ItemStack drop; + + public Treasure(ItemStack drop, int xp, Double dropChance, int dropLevel) { + this.drop = drop; + this.xp = xp; + this.dropChance = dropChance; + this.dropLevel = dropLevel; + } + + public ItemStack getDrop() { + return drop; + } + + public void setDrop(ItemStack drop) { + this.drop = drop; + } + + public int getXp() { + return xp; + } + + public void setXp(int xp) { + this.xp = xp; + } + + public Double getDropChance() { + return dropChance; + } + + public void setDropChance(Double dropChance) { + this.dropChance = dropChance; + } + + public int getDropLevel() { + return dropLevel; + } + + public void setDropLevel(int dropLevel) { + this.dropLevel = dropLevel; + } +} diff --git a/src/main/java/com/gmail/nossr50/skills/Excavation.java b/src/main/java/com/gmail/nossr50/skills/Excavation.java index e96d917be..9cd2461de 100644 --- a/src/main/java/com/gmail/nossr50/skills/Excavation.java +++ b/src/main/java/com/gmail/nossr50/skills/Excavation.java @@ -17,7 +17,6 @@ package com.gmail.nossr50.skills; import java.util.ArrayList; -import java.util.List; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -36,6 +35,8 @@ import com.gmail.nossr50.config.LoadProperties; import com.gmail.nossr50.datatypes.AbilityType; import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.SkillType; +import com.gmail.nossr50.datatypes.treasure.ExcavationTreasure; + import org.getspout.spoutapi.sound.SoundEffect; public class Excavation @@ -90,132 +91,96 @@ 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 DIRT: - for(int i = 0; i < dirt.size(); i++) + for(ExcavationTreasure treasure : LoadProperties.excavationFromDirt) { - if(dirt.get(i)) + if(skillLevel >= treasure.getDropLevel()) { - if(skillLevel >= dropLevels.get(i)) + if(Math.random() * 100 > (100.00 - treasure.getDropChance())) { - 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())); - } + xp += treasure.getXp(); + is.add(treasure.getDrop()); } } } break; case GRASS: - for(int i = 0; i < grass.size(); i++) + for(ExcavationTreasure treasure : LoadProperties.excavationFromGrass) { - if(grass.get(i)) + if(skillLevel >= treasure.getDropLevel()) { - if(skillLevel >= dropLevels.get(i)) + if(Math.random() * 100 > (100.00 - treasure.getDropChance())) { - 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())); - } + xp += treasure.getXp(); + is.add(treasure.getDrop()); } } } break; case SAND: - for(int i = 0; i < sand.size(); i++) + for(ExcavationTreasure treasure : LoadProperties.excavationFromSand) { - if(sand.get(i)) + if(skillLevel >= treasure.getDropLevel()) { - if(skillLevel >= dropLevels.get(i)) + if(Math.random() * 100 > (100.00 - treasure.getDropChance())) { - 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())); - } + xp += treasure.getXp(); + is.add(treasure.getDrop()); } } } break; case GRAVEL: - for(int i = 0; i < gravel.size(); i++) + for(ExcavationTreasure treasure : LoadProperties.excavationFromGravel) { - if(gravel.get(i)) + if(skillLevel >= treasure.getDropLevel()) { - if(skillLevel >= dropLevels.get(i)) + if(Math.random() * 100 > (100.00 - treasure.getDropChance())) { - 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())); - } + xp += treasure.getXp(); + is.add(treasure.getDrop()); } } } break; case CLAY: - for(int i = 0; i < clay.size(); i++) + for(ExcavationTreasure treasure : LoadProperties.excavationFromClay) { - if(clay.get(i)) + if(skillLevel >= treasure.getDropLevel()) { - if(skillLevel >= dropLevels.get(i)) + if(Math.random() * 100 > (100.00 - treasure.getDropChance())) { - 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())); - } + xp += treasure.getXp(); + is.add(treasure.getDrop()); } } } break; case MYCEL: - for(int i = 0; i < mycel.size(); i++) + for(ExcavationTreasure treasure : LoadProperties.excavationFromMycel) { - if(mycel.get(i)) + if(skillLevel >= treasure.getDropLevel()) { - if(skillLevel >= dropLevels.get(i)) + if(Math.random() * 100 > (100.00 - treasure.getDropChance())) { - 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())); - } + xp += treasure.getXp(); + is.add(treasure.getDrop()); } } } break; case SOUL_SAND: - for(int i = 0; i < soulSand.size(); i++) + for(ExcavationTreasure treasure : LoadProperties.excavationFromSoulSand) { - if(soulSand.get(i)) + if(skillLevel >= treasure.getDropLevel()) { - if(skillLevel >= dropLevels.get(i)) + if(Math.random() * 100 > (100.00 - treasure.getDropChance())) { - 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())); - } + xp += treasure.getXp(); + is.add(treasure.getDrop()); } } } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 1a9241f87..76369f5ad 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -259,24 +259,6 @@ Fishing: # Settings for Excavation ### Excavation: - Drops: - Cake: true - Sulphur: true - Bones: true - Apples: true - Slimeballs: true - Bucket: true - Netherrack: true - Mushrooms: true - Eggs: true - Slowsand: true - Watch: true - Web: true - String: true - Glowstone: true - Music: true - Diamond: true - Cocoa_Beans: true Treasure: - Cake - Gunpowder @@ -297,7 +279,10 @@ Excavation: - Green_Music - Diamond - Cocoa_Beans - + +# +# Configuration to define Treasures +### Treasures: Cake: ID: 354 @@ -322,13 +307,7 @@ Treasures: 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 @@ -337,13 +316,7 @@ Treasures: 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 @@ -352,13 +325,8 @@ Treasures: 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 @@ -367,13 +335,7 @@ Treasures: 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 @@ -382,13 +344,7 @@ Treasures: 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 @@ -397,13 +353,7 @@ Treasures: 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 @@ -414,11 +364,7 @@ Treasures: Drops_From: Dirt: true Grass: true - Sand: false - Gravel: false - Clay: false Mycelium: true - Soul_Sand: false Brown_Mushroom: ID: 39 Data: 0 @@ -429,11 +375,7 @@ Treasures: Drops_From: Dirt: true Grass: true - Sand: false - Gravel: false - Clay: false Mycelium: true - Soul_Sand: false Egg: ID: 344 Data: 0 @@ -442,13 +384,7 @@ Treasures: 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 @@ -457,13 +393,7 @@ Treasures: 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 @@ -472,13 +402,7 @@ Treasures: 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 @@ -487,13 +411,7 @@ Treasures: 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 @@ -502,13 +420,7 @@ Treasures: 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 @@ -520,10 +432,7 @@ Treasures: Dirt: true Grass: true Sand: true - Gravel: false - Clay: false Mycelium: true - Soul_Sand: false Gold_Music: ID: 2256 Data: 0 @@ -584,6 +493,7 @@ Treasures: Clay: true Mycelium: true Soul_Sand: true + # # Settings for commands ###