Allow for configuration of custom Excavation drops (WIP) - Addresses

MCCORE-1
This commit is contained in:
GJ 2012-02-20 13:58:22 -05:00
parent 887f8f3e0c
commit b23fa36543
3 changed files with 616 additions and 139 deletions

View File

@ -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;
@ -87,6 +90,21 @@ public class LoadProperties {
excavationxpmodifier, archeryxpmodifier, swordsxpmodifier,
axesxpmodifier, acrobaticsxpmodifier;
public static List<String> excavationTreasures = new ArrayList<String>();
public static List<Integer> excavationIDs = new ArrayList<Integer>();
public static List<Integer> excavationDatas = new ArrayList<Integer>();
public static List<Integer> excavationAmounts = new ArrayList<Integer>();
public static List<Integer> excavationXPs = new ArrayList<Integer>();
public static List<Double> excavationDropChances = new ArrayList<Double>();
public static List<Integer> excavationDropLevels = new ArrayList<Integer>();
public static List<Boolean> excavationFromDirt = new ArrayList<Boolean>();
public static List<Boolean> excavationFromGrass = new ArrayList<Boolean>();
public static List<Boolean> excavationFromSand = new ArrayList<Boolean>();
public static List<Boolean> excavationFromGravel = new ArrayList<Boolean>();
public static List<Boolean> excavationFromClay = new ArrayList<Boolean>();
public static List<Boolean> excavationFromMycel = new ArrayList<Boolean>();
public static List<Boolean> excavationFromSoulSand = new ArrayList<Boolean>();
public static HUDType defaulthud;
protected static File configFile;
protected static File dataFolder;
@ -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<String> 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"));
}
}
}

View File

@ -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;
@ -90,163 +91,295 @@ public class Excavation
ArrayList<ItemStack> is = new ArrayList<ItemStack>();
int xp = 0;
//Custom Excavation Drops
List<Integer> idValues = LoadProperties.excavationIDs;
List<Integer> dataValues = LoadProperties.excavationDatas;
List<Integer> xpValues = LoadProperties.excavationXPs;
List<Integer> amounts = LoadProperties.excavationAmounts;
List<Double> dropChances = LoadProperties.excavationDropChances;
List<Integer> dropLevels = LoadProperties.excavationDropLevels;
List<Boolean> dirt = LoadProperties.excavationFromDirt;
List<Boolean> grass = LoadProperties.excavationFromGrass;
List<Boolean> sand = LoadProperties.excavationFromSand;
List<Boolean> gravel = LoadProperties.excavationFromGravel;
List<Boolean> clay = LoadProperties.excavationFromClay;
List<Boolean> mycel = LoadProperties.excavationFromMycel;
List<Boolean> 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)

View File

@ -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
###