mirror of
				https://github.com/mcMMO-Dev/mcMMO.git
				synced 2025-10-31 17:23:42 +01:00 
			
		
		
		
	Multiple items can be specified as a detonator
This commit is contained in:
		| @@ -84,6 +84,7 @@ Version 2.2.0 | |||||||
|     Super Ability conifg options will now be found in "skill_super_abilities.conf" |     Super Ability conifg options will now be found in "skill_super_abilities.conf" | ||||||
|     Super Abilities now have a default max length cap of one minute |     Super Abilities now have a default max length cap of one minute | ||||||
|     Blast Mining default cooldown increased from 60 seconds to 120 seconds |     Blast Mining default cooldown increased from 60 seconds to 120 seconds | ||||||
|  |     You can now configure multiple items as detonators for Blast Mining | ||||||
|  |  | ||||||
|     Exploit related config options will now be found in "exploit-prevention" |     Exploit related config options will now be found in "exploit-prevention" | ||||||
|     Exploit Prevention's "EndermanEndermiteFarms" renamed -> "Endermen-Endermite-Fix" |     Exploit Prevention's "EndermanEndermiteFarms" renamed -> "Endermen-Endermite-Fix" | ||||||
|   | |||||||
| @@ -48,7 +48,24 @@ public class ConfigMining { | |||||||
|             "\nUse Minecraft friendly names for entries, not Bukkit material names.") |             "\nUse Minecraft friendly names for entries, not Bukkit material names.") | ||||||
|     private ArrayList<String> bonusDrops = DEFAULT_BONUS_DROPS; |     private ArrayList<String> bonusDrops = DEFAULT_BONUS_DROPS; | ||||||
|  |  | ||||||
|  |     @Setting(value = "Sub-Skills") | ||||||
|  |     private ConfigMiningSubskills miningSubskills = new ConfigMiningSubskills(); | ||||||
|  |  | ||||||
|  |     public ConfigMiningSubskills getMiningSubskills() { | ||||||
|  |         return miningSubskills; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public ConfigMiningBlastMining getBlastMining() { | ||||||
|  |         return miningSubskills.getBlastMining(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public ArrayList<String> getDetonators() { | ||||||
|  |         return getBlastMining().getDetonators(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     public ArrayList<String> getBonusDrops() { |     public ArrayList<String> getBonusDrops() { | ||||||
|         return bonusDrops; |         return bonusDrops; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |  | ||||||
| } | } | ||||||
| @@ -0,0 +1,29 @@ | |||||||
|  | package com.gmail.nossr50.config.hocon.skills.mining; | ||||||
|  |  | ||||||
|  | import ninja.leaping.configurate.objectmapping.Setting; | ||||||
|  | import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable; | ||||||
|  | import org.bukkit.Material; | ||||||
|  |  | ||||||
|  | import java.util.ArrayList; | ||||||
|  |  | ||||||
|  | @ConfigSerializable | ||||||
|  | public class ConfigMiningBlastMining { | ||||||
|  |  | ||||||
|  |     public static final ArrayList<String> DETONATORS_DEFAULT; | ||||||
|  |  | ||||||
|  |     static { | ||||||
|  |         DETONATORS_DEFAULT = new ArrayList<>(); | ||||||
|  |         DETONATORS_DEFAULT.add(Material.FLINT_AND_STEEL.getKey().toString()); | ||||||
|  |         DETONATORS_DEFAULT.add(Material.DIAMOND_PICKAXE.getKey().toString()); | ||||||
|  |         DETONATORS_DEFAULT.add(Material.GOLDEN_PICKAXE.getKey().toString()); | ||||||
|  |         DETONATORS_DEFAULT.add(Material.IRON_PICKAXE.getKey().toString()); | ||||||
|  |         DETONATORS_DEFAULT.add(Material.WOODEN_PICKAXE.getKey().toString()); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Setting(value = "Detonators", comment = "Items that can be used to activate Blast-Mining") | ||||||
|  |     private ArrayList<String> detonators = DETONATORS_DEFAULT; | ||||||
|  |  | ||||||
|  |     public ArrayList<String> getDetonators() { | ||||||
|  |         return detonators; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @@ -0,0 +1,15 @@ | |||||||
|  | package com.gmail.nossr50.config.hocon.skills.mining; | ||||||
|  |  | ||||||
|  | import ninja.leaping.configurate.objectmapping.Setting; | ||||||
|  | import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable; | ||||||
|  |  | ||||||
|  | @ConfigSerializable | ||||||
|  | public class ConfigMiningSubskills { | ||||||
|  |  | ||||||
|  |     @Setting(value = "Blast-Mining", comment = "Settings for Blast Mining") | ||||||
|  |     public ConfigMiningBlastMining blastMining = new ConfigMiningBlastMining(); | ||||||
|  |  | ||||||
|  |     public ConfigMiningBlastMining getBlastMining() { | ||||||
|  |         return blastMining; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @@ -41,8 +41,6 @@ public class BlastMining { | |||||||
|  |  | ||||||
|     }*/ |     }*/ | ||||||
|  |  | ||||||
|     public static Material detonator = MainConfig.getInstance().getDetonatorItem(); |  | ||||||
|  |  | ||||||
|     public final static int MAXIMUM_REMOTE_DETONATION_DISTANCE = 100; |     public final static int MAXIMUM_REMOTE_DETONATION_DISTANCE = 100; | ||||||
|  |  | ||||||
|     public static double getBlastRadiusModifier(int rank) { |     public static double getBlastRadiusModifier(int rank) { | ||||||
|   | |||||||
| @@ -2,13 +2,51 @@ package com.gmail.nossr50.skills.mining; | |||||||
|  |  | ||||||
| import com.gmail.nossr50.config.experience.ExperienceConfig; | import com.gmail.nossr50.config.experience.ExperienceConfig; | ||||||
| import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | ||||||
|  | import com.gmail.nossr50.mcMMO; | ||||||
|  | import com.gmail.nossr50.util.ItemUtils; | ||||||
| import com.gmail.nossr50.util.Misc; | import com.gmail.nossr50.util.Misc; | ||||||
|  | import net.royawesome.jlibnoise.module.combiner.Min; | ||||||
| import org.bukkit.Material; | import org.bukkit.Material; | ||||||
| import org.bukkit.block.BlockState; | import org.bukkit.block.BlockState; | ||||||
| import org.bukkit.inventory.ItemStack; | import org.bukkit.inventory.ItemStack; | ||||||
|  |  | ||||||
|  | import java.util.List; | ||||||
|  |  | ||||||
| public class Mining { | public class Mining { | ||||||
|  |  | ||||||
|  |     private List<Material> detonators; | ||||||
|  |     private static Mining instance; | ||||||
|  |  | ||||||
|  |     public static Mining getInstance() { | ||||||
|  |         if(instance == null) | ||||||
|  |             instance = new Mining(); | ||||||
|  |  | ||||||
|  |         return instance; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public Mining() { | ||||||
|  |         //Init detonators | ||||||
|  |         this.detonators = ItemUtils.matchMaterials(mcMMO.getConfigManager().getConfigMining().getDetonators()); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Retrieve a list of Blast Mining detonator types | ||||||
|  |      * @return blast mining detonator materials | ||||||
|  |      */ | ||||||
|  |     public List<Material> getDetonators() { | ||||||
|  |         return detonators; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Check if an itemStack is a valid blast mining detonator | ||||||
|  |      * @param itemStack target itemstack | ||||||
|  |      * @return true if valid blast mining detonator | ||||||
|  |      */ | ||||||
|  |     public Boolean isDetonator(ItemStack itemStack) | ||||||
|  |     { | ||||||
|  |         return getDetonators().contains(itemStack.getType()); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * Calculate XP gain for Mining. |      * Calculate XP gain for Mining. | ||||||
|      * |      * | ||||||
|   | |||||||
| @@ -43,7 +43,7 @@ public class MiningManager extends SkillManager { | |||||||
|         Player player = getPlayer(); |         Player player = getPlayer(); | ||||||
|  |  | ||||||
|         return canUseBlastMining() && player.isSneaking() |         return canUseBlastMining() && player.isSneaking() | ||||||
|                 && (ItemUtils.isPickaxe(getPlayer().getInventory().getItemInMainHand()) || player.getInventory().getItemInMainHand().getType() == Config.getInstance().getDetonatorItem()) |                 && Mining.getInstance().isDetonator(player.getInventory().getItemInMainHand()) | ||||||
|                 && Permissions.remoteDetonation(player); |                 && Permissions.remoteDetonation(player); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 nossr50
					nossr50