From 2650d57d8e360df08f75429c49ceaa032dc7a1ff Mon Sep 17 00:00:00 2001 From: TfT_02 Date: Tue, 19 Aug 2014 21:28:53 -0600 Subject: [PATCH] Added options to experience.yml for Dirt and Sand variations Adds #2194 --- Changelog.txt | 1 + .../config/experience/ExperienceConfig.java | 35 +++++++++++++++++++ .../nossr50/skills/excavation/Excavation.java | 11 +++++- src/main/resources/experience.yml | 3 ++ 4 files changed, 49 insertions(+), 1 deletion(-) diff --git a/Changelog.txt b/Changelog.txt index cb30316f0..dbd69f220 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -14,6 +14,7 @@ Version 1.5.01-dev + Added new feature to Herbalism. Instantly-regrown crops are protected from being broken for 1 second + Added option to config.yml to show the /mcstats scoreboard automatically after logging in + Added option to config.yml for Alchemy. Skills.Alchemy.Prevent_Hopper_Transfer_Bottles + + Added options to experience.yml for Dirt and Sand variations + Added support for `MATERIAL|data` format in treasures.yml + Added API to experience events to get XP gain reason + Added API to check if an entity is bleeding diff --git a/src/main/java/com/gmail/nossr50/config/experience/ExperienceConfig.java b/src/main/java/com/gmail/nossr50/config/experience/ExperienceConfig.java index 3e652f3d9..6db77ce2c 100644 --- a/src/main/java/com/gmail/nossr50/config/experience/ExperienceConfig.java +++ b/src/main/java/com/gmail/nossr50/config/experience/ExperienceConfig.java @@ -207,6 +207,41 @@ public class ExperienceConfig extends AutoUpdateConfigLoader { /* Alchemy */ public double getPotionXP(PotionStage stage) { return config.getDouble("Experience.Alchemy.Potion_Stage_" + stage.toNumerical(), 10D); } + /* Excavation */ + public int getDirtAndSandXp(MaterialData data) { + Material type = data.getItemType(); + + if (type == Material.DIRT) { + switch (data.getData()) { + case 0x0: + return config.getInt("Experience.Excavation.Dirt", 40); + + case 0x1: + return config.getInt("Experience.Excavation.Coarse_Dirt", 40); + + case 0x2: + return config.getInt("Experience.Excavation.Podzol", 40); + + default: + return 0; + } + } + else if (type == Material.SAND) { + switch (data.getData()) { + case 0x0: + return config.getInt("Experience.Excavation.Sand", 40); + + case 0x1: + return config.getInt("Experience.Excavation.Red_Sand", 40); + + default: + return 0; + } + } + + return 0; + } + /* Fishing */ public int getFishXp(MaterialData data) { switch (data.getData()) { diff --git a/src/main/java/com/gmail/nossr50/skills/excavation/Excavation.java b/src/main/java/com/gmail/nossr50/skills/excavation/Excavation.java index 4517ba454..1f96a80c6 100644 --- a/src/main/java/com/gmail/nossr50/skills/excavation/Excavation.java +++ b/src/main/java/com/gmail/nossr50/skills/excavation/Excavation.java @@ -3,6 +3,7 @@ package com.gmail.nossr50.skills.excavation; import java.util.ArrayList; import java.util.List; +import org.bukkit.Material; import org.bukkit.block.BlockState; import com.gmail.nossr50.mcMMO; @@ -50,7 +51,15 @@ public class Excavation { } protected static int getBlockXP(BlockState blockState) { - int xp = ExperienceConfig.getInstance().getXp(SkillType.EXCAVATION, blockState.getType()); + Material material = blockState.getType(); + int xp; + + if (material == Material.DIRT || material == Material.SAND) { + xp = ExperienceConfig.getInstance().getDirtAndSandXp(blockState.getData()); + } + else { + xp = ExperienceConfig.getInstance().getXp(SkillType.EXCAVATION, material); + } if (xp == 0 && mcMMO.getModManager().isCustomExcavationBlock(blockState)) { xp = mcMMO.getModManager().getBlock(blockState).getXpGain(); diff --git a/src/main/resources/experience.yml b/src/main/resources/experience.yml index 167c5dbcd..e1e47006e 100644 --- a/src/main/resources/experience.yml +++ b/src/main/resources/experience.yml @@ -100,10 +100,13 @@ Experience: Excavation: Clay: 40 Dirt: 40 + Coarse_Dirt: 40 + Podzol: 40 Grass: 40 Gravel: 40 Mycel: 40 Sand: 40 + Red_Sand: 40 Snow: 20 Snow_Block: 40 Soul_Sand: 40