diff --git a/src/main/java/com/gmail/nossr50/util/BlockUtils.java b/src/main/java/com/gmail/nossr50/util/BlockUtils.java index f8b3719f7..277baefc9 100644 --- a/src/main/java/com/gmail/nossr50/util/BlockUtils.java +++ b/src/main/java/com/gmail/nossr50/util/BlockUtils.java @@ -15,6 +15,7 @@ import org.bukkit.material.SmoothBrick; import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.skills.repair.Repair; import com.gmail.nossr50.skills.salvage.Salvage; +import com.gmail.nossr50.util.temp.DualSupport; public final class BlockUtils { private BlockUtils() {} @@ -63,22 +64,11 @@ public final class BlockUtils { case DROPPER: case HOPPER: case TRAPPED_CHEST: - case IRON_TRAPDOOR: - case ACACIA_DOOR: - case SPRUCE_DOOR: - case BIRCH_DOOR: - case JUNGLE_DOOR: - case DARK_OAK_DOOR: case IRON_DOOR: - case ACACIA_FENCE: - case DARK_OAK_FENCE: - case BIRCH_FENCE: - case JUNGLE_FENCE: - case ARMOR_STAND: return false; default: - return !isMcMMOAnvil(blockState) && !mcMMO.getModManager().isCustomAbilityBlock(blockState); + return DualSupport.canActivateAbilities(blockState) && !isMcMMOAnvil(blockState) && !mcMMO.getModManager().isCustomAbilityBlock(blockState); } } @@ -173,12 +163,10 @@ public final class BlockUtils { case SANDSTONE: case STAINED_CLAY: case STONE: - case RED_SANDSTONE: - case PRISMARINE: return true; default: - return isOre(blockState) || mcMMO.getModManager().isCustomMiningBlock(blockState); + return DualSupport.affectedBySuperBreaker(blockState) || isOre(blockState) || mcMMO.getModManager().isCustomMiningBlock(blockState); } } diff --git a/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java b/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java index cc6a906ad..914c8e67e 100644 --- a/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java +++ b/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java @@ -48,6 +48,7 @@ import com.gmail.nossr50.util.Misc; import com.gmail.nossr50.util.MobHealthbarUtils; import com.gmail.nossr50.util.Permissions; import com.gmail.nossr50.util.player.UserManager; +import com.gmail.nossr50.util.temp.CompatableGuardianXP; import com.google.common.collect.ImmutableMap; public final class CombatUtils { @@ -466,7 +467,6 @@ public final class CombatUtils { switch (type) { case BAT: case SQUID: - case RABBIT: baseXP = ExperienceConfig.getInstance().getAnimalsXP(); break; @@ -489,14 +489,6 @@ public final class CombatUtils { baseXP = ExperienceConfig.getInstance().getCombatXP(type); break; - case GUARDIAN: - if (((Guardian) target).isElder()) { - baseXP = ExperienceConfig.getInstance().getElderGuardianXP(); - } else { - baseXP = ExperienceConfig.getInstance().getCombatXP(type); - } - break; - case SKELETON: switch (((Skeleton) target).getSkeletonType()) { case WITHER: @@ -515,6 +507,18 @@ public final class CombatUtils { break; default: + if (type.name().equals("RABBIT")) { + baseXP = ExperienceConfig.getInstance().getAnimalsXP(); + break; + } + if (type.name().equals("ENDERMITE")) { + baseXP = ExperienceConfig.getInstance().getCombatXP(type); + break; + } + if (type.name().equals("GUARDIAN")) { + baseXP = CompatableGuardianXP.get(target); + break; + } baseXP = 1.0; mcMMO.getModManager().addCustomEntity(target); break; diff --git a/src/main/java/com/gmail/nossr50/util/temp/CompatableGuardianXP.java b/src/main/java/com/gmail/nossr50/util/temp/CompatableGuardianXP.java new file mode 100644 index 000000000..0ca848100 --- /dev/null +++ b/src/main/java/com/gmail/nossr50/util/temp/CompatableGuardianXP.java @@ -0,0 +1,17 @@ +package com.gmail.nossr50.util.temp; + +import org.bukkit.entity.Entity; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Guardian; + +import com.gmail.nossr50.config.experience.ExperienceConfig; + +public class CompatableGuardianXP { + public static double get(Entity target) { + if (((Guardian) target).isElder()) { + return ExperienceConfig.getInstance().getElderGuardianXP(); + } else { + return ExperienceConfig.getInstance().getCombatXP(EntityType.GUARDIAN); + } + } +} diff --git a/src/main/java/com/gmail/nossr50/util/temp/DualSupport.java b/src/main/java/com/gmail/nossr50/util/temp/DualSupport.java new file mode 100644 index 000000000..bc55f8c62 --- /dev/null +++ b/src/main/java/com/gmail/nossr50/util/temp/DualSupport.java @@ -0,0 +1,19 @@ +package com.gmail.nossr50.util.temp; + +import org.bukkit.block.BlockState; + +public class DualSupport { + + public static boolean canActivateAbilities(BlockState blockState) { + String mat = blockState.getType().name(); + return !mat.equals("IRON_TRAPDOOR") && !mat.equals("ACACIA_DOOR") && !mat.equals("SPRUCE_DOOR") && !mat.equals("BIRCH_DOOR") + && !mat.equals("JUNGLE_DOOR") && !mat.equals("DARK_OAK_DOOR") && !mat.equals("ACACIA_FENCE") && !mat.equals("DARK_OAK_FENCE") + && !mat.equals("BIRCH_FENCE") && !mat.equals("JUNGLE_FENCE") && !mat.equals("ARMOR_STAND"); + } + + public static boolean affectedBySuperBreaker(BlockState blockState) { + String mat = blockState.getType().name(); + return mat.equals("PRISMARINE") || mat.equals("RED_SANDSTONE"); + } + +}