mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-25 22:56:45 +01:00
Added ability to configure drops from Shake in treasures.yml
This commit is contained in:
parent
5ad7716137
commit
875091a1ce
@ -8,6 +8,7 @@ Key:
|
||||
- Removal
|
||||
|
||||
Version 1.4.06-dev
|
||||
+ Added ability to configure drops from Shake in treasures.yml
|
||||
+ Added "Master Angler" ability to Fishing.
|
||||
+ Added health display for mobs during combat.
|
||||
+ Added new API method to McMMOPlayerLevelUpEvent to set levels gained
|
||||
|
@ -9,13 +9,17 @@ import java.util.Set;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.material.MaterialData;
|
||||
import org.bukkit.potion.Potion;
|
||||
import org.bukkit.potion.PotionType;
|
||||
|
||||
import com.gmail.nossr50.config.ConfigLoader;
|
||||
import com.gmail.nossr50.datatypes.treasure.ExcavationTreasure;
|
||||
import com.gmail.nossr50.datatypes.treasure.FishingTreasure;
|
||||
import com.gmail.nossr50.datatypes.treasure.HylianTreasure;
|
||||
import com.gmail.nossr50.datatypes.treasure.ShakeTreasure;
|
||||
import com.gmail.nossr50.datatypes.treasure.Treasure;
|
||||
|
||||
public class TreasureConfig extends ConfigLoader {
|
||||
@ -33,6 +37,27 @@ public class TreasureConfig extends ConfigLoader {
|
||||
public List<HylianTreasure> hylianFromFlowers = new ArrayList<HylianTreasure>();
|
||||
public List<HylianTreasure> hylianFromPots = new ArrayList<HylianTreasure>();
|
||||
|
||||
public List<ShakeTreasure> shakeFromBlaze = new ArrayList<ShakeTreasure>();
|
||||
public List<ShakeTreasure> shakeFromCaveSpider = new ArrayList<ShakeTreasure>();
|
||||
public List<ShakeTreasure> shakeFromSpider = new ArrayList<ShakeTreasure>();
|
||||
public List<ShakeTreasure> shakeFromChicken = new ArrayList<ShakeTreasure>();
|
||||
public List<ShakeTreasure> shakeFromCow = new ArrayList<ShakeTreasure>();
|
||||
public List<ShakeTreasure> shakeFromCreeper = new ArrayList<ShakeTreasure>();
|
||||
public List<ShakeTreasure> shakeFromEnderman = new ArrayList<ShakeTreasure>();
|
||||
public List<ShakeTreasure> shakeFromGhast = new ArrayList<ShakeTreasure>();
|
||||
public List<ShakeTreasure> shakeFromIronGolem = new ArrayList<ShakeTreasure>();
|
||||
public List<ShakeTreasure> shakeFromMagmaCube = new ArrayList<ShakeTreasure>();
|
||||
public List<ShakeTreasure> shakeFromMushroomCow = new ArrayList<ShakeTreasure>();
|
||||
public List<ShakeTreasure> shakeFromPig = new ArrayList<ShakeTreasure>();
|
||||
public List<ShakeTreasure> shakeFromPigZombie = new ArrayList<ShakeTreasure>();
|
||||
public List<ShakeTreasure> shakeFromSheep = new ArrayList<ShakeTreasure>();
|
||||
public List<ShakeTreasure> shakeFromSkeleton = new ArrayList<ShakeTreasure>();
|
||||
public List<ShakeTreasure> shakeFromSlime = new ArrayList<ShakeTreasure>();
|
||||
public List<ShakeTreasure> shakeFromSnowman = new ArrayList<ShakeTreasure>();
|
||||
public List<ShakeTreasure> shakeFromSquid = new ArrayList<ShakeTreasure>();
|
||||
public List<ShakeTreasure> shakeFromWitch = new ArrayList<ShakeTreasure>();
|
||||
public List<ShakeTreasure> shakeFromZombie = new ArrayList<ShakeTreasure>();
|
||||
|
||||
public List<FishingTreasure> fishingRewards = new ArrayList<FishingTreasure>();
|
||||
|
||||
private TreasureConfig() {
|
||||
@ -128,15 +153,32 @@ public class TreasureConfig extends ConfigLoader {
|
||||
reason.add("Invalid Drop_Level: " + dropLevel);
|
||||
}
|
||||
|
||||
/*
|
||||
* Potions
|
||||
*/
|
||||
|
||||
ItemStack item = null;
|
||||
|
||||
if (config.contains("Treasures." + treasureName + ".Potion_Type")) {
|
||||
String potionType = config.getString("Treasures." + treasureName + ".Potion_Type");
|
||||
try {
|
||||
item = new Potion(PotionType.valueOf(potionType.toUpperCase())).toItemStack(amount);
|
||||
}
|
||||
catch (IllegalArgumentException ex) {
|
||||
reason.add("Invalid Potion_Type: " + potionType);
|
||||
}
|
||||
}
|
||||
else {
|
||||
item = (new MaterialData(id, (byte) data)).toItemStack(amount);
|
||||
}
|
||||
|
||||
/*
|
||||
* Drops From & Max Level
|
||||
*/
|
||||
|
||||
ItemStack item = (new MaterialData(id, (byte) data)).toItemStack(amount);
|
||||
|
||||
if (config.getBoolean("Treasures." + treasureName + ".Drops_From.Fishing", false)) {
|
||||
if (config.getConfigurationSection("Treasures." + treasureName + ".Drops_From").getKeys(false).size() != 1) {
|
||||
reason.add("Fishing drops cannot also be excavation drops");
|
||||
reason.add("This can only be a fishing drop.");
|
||||
}
|
||||
|
||||
if (!config.contains("Treasures." + treasureName + ".Max_Level")) {
|
||||
@ -150,6 +192,30 @@ public class TreasureConfig extends ConfigLoader {
|
||||
treasures.put(treasureName, fTreasure);
|
||||
}
|
||||
}
|
||||
else if (config.getBoolean("Treasures." + treasureName + "Drops_From.Shake", false)) {
|
||||
if (config.getConfigurationSection("Treasures." + treasureName + ".Drops_From").getKeys(false).size() != 1) {
|
||||
reason.add("This can only be a shake drop.");
|
||||
}
|
||||
|
||||
if (!config.contains("Treasures." + treasureName + ".Mob")) {
|
||||
reason.add("Missing Mob");
|
||||
}
|
||||
|
||||
String mobType = config.getString("Treasures." + treasureName + ".Mob");
|
||||
EntityType mob = null;
|
||||
|
||||
try {
|
||||
mob = EntityType.valueOf(mobType.toUpperCase().trim());
|
||||
}
|
||||
catch (IllegalArgumentException ex){
|
||||
reason.add("Invalid Mob: " + mobType);
|
||||
}
|
||||
|
||||
if (noErrorsInTreasure(reason)) {
|
||||
ShakeTreasure sTreasure = new ShakeTreasure(item, xp, dropChance, dropLevel, mob);
|
||||
treasures.put(treasureName, sTreasure);
|
||||
}
|
||||
}
|
||||
else {
|
||||
ExcavationTreasure eTreasure = new ExcavationTreasure(item, xp, dropChance, dropLevel);
|
||||
HylianTreasure hTreasure = new HylianTreasure(item, xp, dropChance, dropLevel);
|
||||
@ -195,7 +261,11 @@ public class TreasureConfig extends ConfigLoader {
|
||||
}
|
||||
|
||||
if (config.getBoolean("Treasures." + treasureName + ".Drops_From.Fishing", false)) {
|
||||
reason.add("Excavation drops cannot also be fishing drops");
|
||||
reason.add("This cannot also be a fishing drop.");
|
||||
}
|
||||
|
||||
if (config.getBoolean("Treasures." + treasureName + ".Drops_From.Shake", false)) {
|
||||
reason.add("This cannot also be a shake drop.");
|
||||
}
|
||||
|
||||
if (noErrorsInTreasure(reason) && hTreasure.getDropsFrom() == (byte) 0x0) {
|
||||
@ -210,6 +280,7 @@ public class TreasureConfig extends ConfigLoader {
|
||||
List<String> excavationTreasures = config.getStringList("Excavation.Treasure");
|
||||
List<String> fishingTreasures = config.getStringList("Fishing.Treasure");
|
||||
List<String> hylianTreasures = config.getStringList("Hylian_Luck.Treasure");
|
||||
List<String> shakeTreasures = config.getStringList("Shake.Treasure");
|
||||
|
||||
for (Entry<String, Treasure> nextEntry : treasures.entrySet()) {
|
||||
String treasureKey = nextEntry.getKey();
|
||||
@ -222,6 +293,97 @@ public class TreasureConfig extends ConfigLoader {
|
||||
|
||||
fishingRewards.add((FishingTreasure) treasure);
|
||||
}
|
||||
else if (treasure instanceof ShakeTreasure) {
|
||||
if (shakeTreasures == null || !shakeTreasures.contains(treasureKey)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
ShakeTreasure e = (ShakeTreasure) treasure;
|
||||
switch (e.getMob()) {
|
||||
case BLAZE:
|
||||
shakeFromBlaze.add(e);
|
||||
break;
|
||||
|
||||
case CAVE_SPIDER:
|
||||
shakeFromCaveSpider.add(e);
|
||||
break;
|
||||
|
||||
case CHICKEN:
|
||||
shakeFromChicken.add(e);
|
||||
break;
|
||||
|
||||
case COW:
|
||||
shakeFromCow.add(e);
|
||||
break;
|
||||
|
||||
case CREEPER:
|
||||
shakeFromCreeper.add(e);
|
||||
break;
|
||||
|
||||
case ENDERMAN:
|
||||
shakeFromEnderman.add(e);
|
||||
break;
|
||||
|
||||
case GHAST:
|
||||
shakeFromGhast.add(e);
|
||||
break;
|
||||
|
||||
case IRON_GOLEM:
|
||||
shakeFromIronGolem.add(e);
|
||||
break;
|
||||
|
||||
case MAGMA_CUBE:
|
||||
shakeFromMagmaCube.add(e);
|
||||
break;
|
||||
|
||||
case MUSHROOM_COW:
|
||||
shakeFromMushroomCow.add(e);
|
||||
break;
|
||||
|
||||
case PIG:
|
||||
shakeFromPig.add(e);
|
||||
break;
|
||||
|
||||
case PIG_ZOMBIE:
|
||||
shakeFromPigZombie.add(e);
|
||||
break;
|
||||
|
||||
case SHEEP:
|
||||
shakeFromSheep.add(e);
|
||||
break;
|
||||
|
||||
case SKELETON:
|
||||
shakeFromSkeleton.add(e);
|
||||
break;
|
||||
|
||||
case SLIME:
|
||||
shakeFromSlime.add(e);
|
||||
break;
|
||||
|
||||
case SPIDER:
|
||||
shakeFromSpider.add(e);
|
||||
break;
|
||||
|
||||
case SNOWMAN:
|
||||
shakeFromSnowman.add(e);
|
||||
break;
|
||||
|
||||
case SQUID:
|
||||
shakeFromSquid.add(e);
|
||||
break;
|
||||
|
||||
case WITCH:
|
||||
shakeFromWitch.add(e);
|
||||
break;
|
||||
|
||||
case ZOMBIE:
|
||||
shakeFromZombie.add(e);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (treasure instanceof HylianTreasure) {
|
||||
if (hylianTreasures == null || !hylianTreasures.contains(treasureKey)) {
|
||||
continue;
|
||||
|
@ -0,0 +1,21 @@
|
||||
package com.gmail.nossr50.datatypes.treasure;
|
||||
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class ShakeTreasure extends Treasure {
|
||||
private EntityType mob;
|
||||
|
||||
public ShakeTreasure(ItemStack drop, int xp, double dropChance, int dropLevel, EntityType mob) {
|
||||
super(drop, xp, dropChance, dropLevel);
|
||||
this.mob = mob;
|
||||
}
|
||||
|
||||
public EntityType getMob() {
|
||||
return mob;
|
||||
}
|
||||
|
||||
public void setMob(EntityType mob) {
|
||||
this.mob = mob;
|
||||
}
|
||||
}
|
@ -1,16 +1,13 @@
|
||||
package com.gmail.nossr50.skills.fishing;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.DyeColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.potion.Potion;
|
||||
import org.bukkit.potion.PotionType;
|
||||
|
||||
import com.gmail.nossr50.config.AdvancedConfig;
|
||||
import com.gmail.nossr50.config.treasure.TreasureConfig;
|
||||
import com.gmail.nossr50.datatypes.treasure.ShakeTreasure;
|
||||
import com.gmail.nossr50.util.Misc;
|
||||
|
||||
public final class Fishing {
|
||||
@ -66,115 +63,70 @@ public final class Fishing {
|
||||
* @param target Targeted entity
|
||||
* @param possibleDrops List of ItemStack that can be dropped
|
||||
*/
|
||||
protected static void findPossibleDrops(LivingEntity target, Map<ItemStack, Integer> possibleDrops) {
|
||||
protected static List<ShakeTreasure> findPossibleDrops(LivingEntity target) {
|
||||
switch (target.getType()) {
|
||||
case BLAZE:
|
||||
possibleDrops.put(new ItemStack(Material.BLAZE_ROD), 100);
|
||||
break;
|
||||
return TreasureConfig.getInstance().shakeFromBlaze;
|
||||
|
||||
case CAVE_SPIDER:
|
||||
case SPIDER:
|
||||
possibleDrops.put(new ItemStack(Material.SPIDER_EYE), 50);
|
||||
possibleDrops.put(new ItemStack(Material.STRING), 50);
|
||||
break;
|
||||
return TreasureConfig.getInstance().shakeFromCaveSpider;
|
||||
|
||||
case CHICKEN:
|
||||
possibleDrops.put(new ItemStack(Material.FEATHER), 34);
|
||||
possibleDrops.put(new ItemStack(Material.RAW_CHICKEN), 33);
|
||||
possibleDrops.put(new ItemStack(Material.EGG), 33);
|
||||
break;
|
||||
return TreasureConfig.getInstance().shakeFromChicken;
|
||||
|
||||
case COW:
|
||||
possibleDrops.put(new ItemStack(Material.MILK_BUCKET), 2);
|
||||
possibleDrops.put(new ItemStack(Material.LEATHER), 49);
|
||||
possibleDrops.put(new ItemStack(Material.RAW_BEEF), 49);
|
||||
break;
|
||||
return TreasureConfig.getInstance().shakeFromCow;
|
||||
|
||||
case CREEPER:
|
||||
possibleDrops.put(new ItemStack(Material.SKULL_ITEM, 1, (short) 4), 1);
|
||||
possibleDrops.put(new ItemStack(Material.SULPHUR), 99);
|
||||
break;
|
||||
return TreasureConfig.getInstance().shakeFromCreeper;
|
||||
|
||||
case ENDERMAN:
|
||||
possibleDrops.put(new ItemStack(Material.ENDER_PEARL), 100);
|
||||
break;
|
||||
return TreasureConfig.getInstance().shakeFromEnderman;
|
||||
|
||||
case GHAST:
|
||||
possibleDrops.put(new ItemStack(Material.SULPHUR), 50);
|
||||
possibleDrops.put(new ItemStack(Material.GHAST_TEAR), 50);
|
||||
break;
|
||||
return TreasureConfig.getInstance().shakeFromGhast;
|
||||
|
||||
case IRON_GOLEM:
|
||||
possibleDrops.put(new ItemStack(Material.PUMPKIN), 3);
|
||||
possibleDrops.put(new ItemStack(Material.IRON_INGOT), 12);
|
||||
possibleDrops.put(new ItemStack(Material.RED_ROSE), 85);
|
||||
break;
|
||||
return TreasureConfig.getInstance().shakeFromIronGolem;
|
||||
|
||||
case MAGMA_CUBE:
|
||||
possibleDrops.put(new ItemStack(Material.MAGMA_CREAM), 100);
|
||||
break;
|
||||
return TreasureConfig.getInstance().shakeFromMagmaCube;
|
||||
|
||||
case MUSHROOM_COW:
|
||||
possibleDrops.put(new ItemStack(Material.MILK_BUCKET), 5);
|
||||
possibleDrops.put(new ItemStack(Material.MUSHROOM_SOUP), 5);
|
||||
possibleDrops.put(new ItemStack(Material.LEATHER), 30);
|
||||
possibleDrops.put(new ItemStack(Material.RAW_BEEF), 30);
|
||||
possibleDrops.put(new ItemStack(Material.RED_MUSHROOM, Misc.getRandom().nextInt(3) + 1), 30);
|
||||
break;
|
||||
return TreasureConfig.getInstance().shakeFromMushroomCow;
|
||||
|
||||
case PIG:
|
||||
possibleDrops.put(new ItemStack(Material.PORK), 100);
|
||||
break;
|
||||
return TreasureConfig.getInstance().shakeFromPig;
|
||||
|
||||
case PIG_ZOMBIE:
|
||||
possibleDrops.put(new ItemStack(Material.ROTTEN_FLESH), 50);
|
||||
possibleDrops.put(new ItemStack(Material.GOLD_NUGGET), 50);
|
||||
break;
|
||||
return TreasureConfig.getInstance().shakeFromPigZombie;
|
||||
|
||||
case SHEEP:
|
||||
possibleDrops.put(new ItemStack(Material.WOOL, Misc.getRandom().nextInt(6) + 1), 100);
|
||||
break;
|
||||
return TreasureConfig.getInstance().shakeFromSheep;
|
||||
|
||||
case SKELETON:
|
||||
possibleDrops.put(new ItemStack(Material.SKULL_ITEM, 1, (short) 0), 2);
|
||||
possibleDrops.put(new ItemStack(Material.BONE), 49);
|
||||
possibleDrops.put(new ItemStack(Material.ARROW, Misc.getRandom().nextInt(3) + 1), 49);
|
||||
break;
|
||||
return TreasureConfig.getInstance().shakeFromSkeleton;
|
||||
|
||||
case SLIME:
|
||||
possibleDrops.put(new ItemStack(Material.SLIME_BALL), 100);
|
||||
break;
|
||||
return TreasureConfig.getInstance().shakeFromSlime;
|
||||
|
||||
case SNOWMAN:
|
||||
possibleDrops.put(new ItemStack(Material.PUMPKIN), 3);
|
||||
possibleDrops.put(new ItemStack(Material.SNOW_BALL, Misc.getRandom().nextInt(4) + 1), 97);
|
||||
break;
|
||||
return TreasureConfig.getInstance().shakeFromSnowman;
|
||||
|
||||
case SPIDER:
|
||||
return TreasureConfig.getInstance().shakeFromSpider;
|
||||
|
||||
case SQUID:
|
||||
possibleDrops.put(new ItemStack(Material.INK_SACK, 1, DyeColor.BLACK.getDyeData()), 100);
|
||||
break;
|
||||
return TreasureConfig.getInstance().shakeFromSquid;
|
||||
|
||||
case WITCH:
|
||||
possibleDrops.put(new Potion(PotionType.INSTANT_HEAL).toItemStack(1), 1);
|
||||
possibleDrops.put(new Potion(PotionType.FIRE_RESISTANCE).toItemStack(1), 1);
|
||||
possibleDrops.put(new Potion(PotionType.SPEED).toItemStack(1), 1);
|
||||
possibleDrops.put(new ItemStack(Material.GLASS_BOTTLE), 9);
|
||||
possibleDrops.put(new ItemStack(Material.GLOWSTONE_DUST), 13);
|
||||
possibleDrops.put(new ItemStack(Material.SULPHUR), 12);
|
||||
possibleDrops.put(new ItemStack(Material.REDSTONE), 13);
|
||||
possibleDrops.put(new ItemStack(Material.SPIDER_EYE), 12);
|
||||
possibleDrops.put(new ItemStack(Material.STICK), 13);
|
||||
possibleDrops.put(new ItemStack(Material.SUGAR), 12);
|
||||
possibleDrops.put(new ItemStack(Material.POTION), 13);
|
||||
break;
|
||||
return TreasureConfig.getInstance().shakeFromWitch;
|
||||
|
||||
case ZOMBIE:
|
||||
possibleDrops.put(new ItemStack(Material.SKULL_ITEM, 1, (short) 2), 2);
|
||||
possibleDrops.put(new ItemStack(Material.ROTTEN_FLESH), 98);
|
||||
break;
|
||||
return TreasureConfig.getInstance().shakeFromZombie;
|
||||
|
||||
default:
|
||||
return;
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -184,15 +136,15 @@ public final class Fishing {
|
||||
* @param possibleDrops List of ItemStack that can be dropped
|
||||
* @return Chosen ItemStack
|
||||
*/
|
||||
protected static ItemStack chooseDrop(Map<ItemStack, Integer> possibleDrops) {
|
||||
protected static ItemStack chooseDrop(List<ShakeTreasure> possibleDrops) {
|
||||
int dropProbability = Misc.getRandom().nextInt(100);
|
||||
int cumulatedProbability = 0;
|
||||
double cumulatedProbability = 0;
|
||||
|
||||
for (Entry<ItemStack, Integer> entry : possibleDrops.entrySet()) {
|
||||
cumulatedProbability += entry.getValue();
|
||||
for (ShakeTreasure treasure : possibleDrops) {
|
||||
cumulatedProbability += treasure.getDropChance();
|
||||
|
||||
if (dropProbability < cumulatedProbability) {
|
||||
return entry.getKey();
|
||||
return treasure.getDrop();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2,9 +2,7 @@ package com.gmail.nossr50.skills.fishing;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
@ -24,6 +22,7 @@ import com.gmail.nossr50.config.treasure.TreasureConfig;
|
||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||
import com.gmail.nossr50.datatypes.skills.SkillType;
|
||||
import com.gmail.nossr50.datatypes.treasure.FishingTreasure;
|
||||
import com.gmail.nossr50.datatypes.treasure.ShakeTreasure;
|
||||
import com.gmail.nossr50.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.skills.SkillManager;
|
||||
import com.gmail.nossr50.skills.fishing.Fishing.Tier;
|
||||
@ -144,11 +143,9 @@ public class FishingManager extends SkillManager {
|
||||
*/
|
||||
public void shakeCheck(LivingEntity target) {
|
||||
if (getShakeProbability() > Misc.getRandom().nextInt(getActivationChance())) {
|
||||
Map<ItemStack, Integer> possibleDrops = new HashMap<ItemStack, Integer>();
|
||||
List<ShakeTreasure> possibleDrops = Fishing.findPossibleDrops(target);
|
||||
|
||||
Fishing.findPossibleDrops(target, possibleDrops);
|
||||
|
||||
if (possibleDrops.isEmpty()) {
|
||||
if (possibleDrops == null || possibleDrops.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -100,6 +100,62 @@ Hylian_Luck:
|
||||
- Diamond_Gem
|
||||
- Gold_Nuggets
|
||||
#
|
||||
# Settings for Shake
|
||||
###
|
||||
Shake:
|
||||
Treasure:
|
||||
- Blaze_Blaze_Rod
|
||||
- Cave_Spider_Cobweb
|
||||
- Cave_Spider_Potion
|
||||
- Cave_Spider_Spider_Eye
|
||||
- Cave_Spider_String
|
||||
- Spider_Spider_Eye
|
||||
- Spider_String
|
||||
- Chicken_Feather
|
||||
- Chicken_Raw_Chicken
|
||||
- Chicken_Egg
|
||||
- Cow_Milk_Bucket
|
||||
- Cow_Leather
|
||||
- Cow_Raw_Beef
|
||||
- Creeper_Skull
|
||||
- Creeper_Sulphur
|
||||
- Enderman_Ender_Pearl
|
||||
- Ghast_Sulphur
|
||||
- Ghast_Ghast_Tear
|
||||
- Iron_Golem_Pumpkin
|
||||
- Iron_Golem_Iron_Ingot
|
||||
- Iron_Golem_Red_Rose
|
||||
- Magma_Cube_Magma_Cream
|
||||
- Mushroom_Cow_Milk_Bucket
|
||||
- Mushroom_Cow_Mushroom_Soup
|
||||
- Mushroom_Cow_Leather
|
||||
- Mushroom_Cow_Raw_Beef
|
||||
- Mushroom_Cow_Red_Mushroom
|
||||
- Pig_Pork
|
||||
- Pig_Zombie_Rotten_Flesh
|
||||
- Pig_Zombie_Gold_Nugget
|
||||
- Sheep_Wool
|
||||
- Skeleton_Skull
|
||||
- Skeleton_Bone
|
||||
- Skeleton_Arrow
|
||||
- Slime_Slime_Ball
|
||||
- Snowman_Pumpkin
|
||||
- Snowman_Snowball
|
||||
- Squid_Ink_Sack
|
||||
- Witch_Heal_Potion
|
||||
- Witch_Fire_Potion
|
||||
- Witch_Speed_Potion
|
||||
- Witch_Glass_Bottle
|
||||
- Witch_Glowstone_Dust
|
||||
- Witch_Sulphur
|
||||
- Witch_Redstone
|
||||
- Witch_Spider_Eye
|
||||
- Witch_Stick
|
||||
- Witch_Sugar
|
||||
- Witch_Potion
|
||||
- Zombie_Skull
|
||||
- Zombie_Rotten_Flesh
|
||||
#
|
||||
# Configuration to define Treasures
|
||||
###
|
||||
Treasures:
|
||||
@ -969,3 +1025,517 @@ Treasures:
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Pots: true
|
||||
Blaze_Blaze_Rod:
|
||||
ID: 369
|
||||
Mob: BLAZE
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 100.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Cave_Spider_Spider_Eye:
|
||||
ID: 375
|
||||
Mob: CAVE_SPIDER
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 49.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Cave_Spider_String:
|
||||
ID: 287
|
||||
Mob: CAVE_SPIDER
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 49.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Cave_Spider_Cobweb:
|
||||
ID: 30
|
||||
Mob: CAVE_SPIDER
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 1.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Cave_Spider_Potion:
|
||||
ID: 373
|
||||
Mob: CAVE_SPIDER
|
||||
Potion_Type: POISON
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 1.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Spider_Spider_Eye:
|
||||
ID: 375
|
||||
Mob: SPIDER
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 50.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Spider_String:
|
||||
ID: 287
|
||||
Mob: SPIDER
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 50.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Chicken_Feather:
|
||||
ID: 288
|
||||
Mob: CHICKEN
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 33.3
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Chicken_Raw_Chicken:
|
||||
ID: 365
|
||||
Mob: CHICKEN
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 33.3
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Chicken_Egg:
|
||||
ID: 344
|
||||
Mob: CHICKEN
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 33.3
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Cow_Milk_Bucket:
|
||||
ID: 335
|
||||
Mob: COW
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 2.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Cow_Leather:
|
||||
ID: 334
|
||||
Mob: COW
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 49.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Cow_Raw_Beef:
|
||||
ID: 363
|
||||
Mob: COW
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 49.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Creeper_Skull:
|
||||
ID: 397
|
||||
Mob: CREEPER
|
||||
Data: 4
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 1.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Creeper_Sulphur:
|
||||
ID: 289
|
||||
Mob: CREEPER
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 99.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Enderman_Ender_Pearl:
|
||||
ID: 368
|
||||
Mob: ENDERMAN
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 100.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Ghast_Sulphur:
|
||||
ID: 289
|
||||
Mob: GHAST
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 50.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Ghast_Ghast_Tear:
|
||||
ID: 370
|
||||
Mob: GHAST
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 50.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Iron_Golem_Pumpkin:
|
||||
ID: 86
|
||||
Mob: IRON_GOLEM
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 3.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Iron_Golem_Iron_Ingot:
|
||||
ID: 265
|
||||
Mob: IRON_GOLEM
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 12.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Iron_Golem_Red_Rose:
|
||||
ID: 38
|
||||
Mob: IRON_GOLEM
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 85.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Magma_Cube_Magma_Cream:
|
||||
ID: 378
|
||||
Mob: MAGMA_CUBE
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 100.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Mushroom_Cow_Milk_Bucket:
|
||||
ID: 335
|
||||
Mob: MUSHROOM_COW
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 5.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Mushroom_Cow_Mushroom_Soup:
|
||||
ID: 282
|
||||
Mob: MUSHROOM_COW
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 5.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Mushroom_Cow_Leather:
|
||||
ID: 334
|
||||
Mob: MUSHROOM_COW
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 30.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Mushroom_Cow_Raw_Beef:
|
||||
ID: 363
|
||||
Mob: MUSHROOM_COW
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 30.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Mushroom_Cow_Red_Mushroom:
|
||||
ID: 40
|
||||
Mob: MUSHROOM_COW
|
||||
Data: 0
|
||||
Amount: 2
|
||||
XP: 0
|
||||
Drop_Chance: 30.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Pig_Pork:
|
||||
ID: 319
|
||||
Mob: PIG
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 100.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Pig_Zombie_Rotten_Flesh:
|
||||
ID: 367
|
||||
Mob: PIG_ZOMBIE
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 50.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Pig_Zombie_Gold_Nugget:
|
||||
ID: 371
|
||||
Mob: PIG_ZOMBIE
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 50.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Sheep_Wool:
|
||||
ID: 35
|
||||
Mob: SHEEP
|
||||
Data: 0
|
||||
Amount: 3
|
||||
XP: 0
|
||||
Drop_Chance: 100.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Skeleton_Skull:
|
||||
ID: 397
|
||||
Mob: SKELETON
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 2.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Skeleton_Bone:
|
||||
ID: 352
|
||||
Mob: SKELETON
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 49.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Skeleton_Arrow:
|
||||
ID: 262
|
||||
Mob: SKELETON
|
||||
Data: 0
|
||||
Amount: 2
|
||||
XP: 0
|
||||
Drop_Chance: 49.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Slime_Slime_Ball:
|
||||
ID: 341
|
||||
Mob: SLIME
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 100.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Snowman_Pumpkin:
|
||||
ID: 86
|
||||
Mob: SNOWMAN
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 3.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Snowman_Snowball:
|
||||
ID: 341
|
||||
Mob: SNOWMAN
|
||||
Data: 0
|
||||
Amount: 2
|
||||
XP: 0
|
||||
Drop_Chance: 97.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Squid_Ink_Sack:
|
||||
ID: 351
|
||||
Mob: SQUID
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 100.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Witch_Heal_Potion:
|
||||
ID: 373
|
||||
Mob: WITCH
|
||||
Potion_Type: INSTANT_HEAL
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 1.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Witch_Fire_Potion:
|
||||
ID: 373
|
||||
Mob: WITCH
|
||||
Potion_Type: FIRE_RESISTANCE
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 1.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Witch_Speed_Potion:
|
||||
ID: 373
|
||||
Mob: WITCH
|
||||
Potion_Type: SPEED
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 1.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Witch_Glass_Bottle:
|
||||
ID: 374
|
||||
Mob: WITCH
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 9.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Witch_Glowstone_Dust:
|
||||
ID: 348
|
||||
Mob: WITCH
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 13.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Witch_Sulphur:
|
||||
ID: 289
|
||||
Mob: WITCH
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 12.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Witch_Redstone:
|
||||
ID: 331
|
||||
Mob: WITCH
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 13.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Witch_Spider_Eye:
|
||||
ID: 375
|
||||
Mob: WITCH
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 12.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Witch_Stick:
|
||||
ID: 380
|
||||
Mob: WITCH
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 13.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Witch_Sugar:
|
||||
ID: 353
|
||||
Mob: WITCH
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 12.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Witch_Potion:
|
||||
ID: 373
|
||||
Mob: WITCH
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 13.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Zombie_Skull:
|
||||
ID: 397
|
||||
Mob: ZOMBIE
|
||||
Data: 2
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 2.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
||||
Zombie_Rotten_Flesh:
|
||||
ID: 367
|
||||
Mob: ZOMBIE
|
||||
Data: 0
|
||||
Amount: 1
|
||||
XP: 0
|
||||
Drop_Chance: 98.0
|
||||
Drop_Level: 0
|
||||
Drops_From:
|
||||
Shake: true
|
Loading…
Reference in New Issue
Block a user