From 005d4c04cc3873bbe15026898f1fb19d5a0580d5 Mon Sep 17 00:00:00 2001 From: LinoxGH Date: Sun, 28 Jun 2020 18:53:12 +0300 Subject: [PATCH] Did the requested changes. --- .../items/tools/ClimbingPick.java | 48 ++++++++++--------- src/main/resources/languages/messages_en.yml | 1 + 2 files changed, 27 insertions(+), 22 deletions(-) diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/tools/ClimbingPick.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/tools/ClimbingPick.java index b317c258e..297007f1a 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/tools/ClimbingPick.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/tools/ClimbingPick.java @@ -1,7 +1,7 @@ package io.github.thebusybiscuit.slimefun4.implementation.items.tools; import java.util.ArrayList; -import java.util.HashMap; +import java.util.EnumMap; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -19,7 +19,7 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.util.Vector; -import io.github.thebusybiscuit.cscorelib2.item.CustomItem; +import io.github.thebusybiscuit.cscorelib2.config.Config; import io.github.thebusybiscuit.cscorelib2.materials.MaterialCollections; import io.github.thebusybiscuit.slimefun4.api.events.ClimbingPickLaunchEvent; import io.github.thebusybiscuit.slimefun4.api.MinecraftVersion; @@ -42,34 +42,36 @@ import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; */ public class ClimbingPick extends SimpleSlimefunItem implements DamageableItem, RecipeDisplayItem { - private final Map materialSpeeds; + private final Map materialSpeeds; private final Set users = new HashSet<>(); public ClimbingPick(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) { super(category, item, recipeType, recipe); - Map materialSpeedsDef = new HashMap<>(); + String cfgKey = getID() + ".launch-amounts."; + Config itemCfg = SlimefunPlugin.getItemCfg(); + materialSpeeds = new EnumMap<>(Material.class); + for (Material mat : MaterialCollections.getAllIceBlocks()) { - materialSpeedsDef.put(mat.name(), 1D); + materialSpeeds.put(mat, itemCfg.getOrSetDefault(cfgKey + mat.name(), 1.0)); } for (Material mat : MaterialCollections.getAllConcretePowderColors()) { - materialSpeedsDef.put(mat.name(), 1D); + materialSpeeds.put(mat, itemCfg.getOrSetDefault(cfgKey + mat.name(), 1.0)); } for (Material mat : MaterialCollections.getAllTerracottaColors()) { - materialSpeedsDef.put(mat.name(), 1D); + materialSpeeds.put(mat, itemCfg.getOrSetDefault(cfgKey + mat.name(), 1.0)); } - materialSpeedsDef.put(Material.GRAVEL.name(), 0.4); - materialSpeedsDef.put(Material.SAND.name(), 0.4); - materialSpeedsDef.put(Material.STONE.name(), 0.6); - materialSpeedsDef.put(Material.DIORITE.name(), 0.6); - materialSpeedsDef.put(Material.GRANITE.name(), 0.6); - materialSpeedsDef.put(Material.ANDESITE.name(), 0.6); - materialSpeedsDef.put(Material.NETHERRACK.name(), 0.6); + materialSpeeds.put(Material.GRAVEL, itemCfg.getOrSetDefault(cfgKey + Material.GRAVEL.name(), 0.4)); + materialSpeeds.put(Material.SAND, itemCfg.getOrSetDefault(cfgKey + Material.SAND.name(), 0.4)); + materialSpeeds.put(Material.STONE, itemCfg.getOrSetDefault(cfgKey + Material.STONE.name(), 0.6)); + materialSpeeds.put(Material.DIORITE, itemCfg.getOrSetDefault(cfgKey + Material.DIORITE.name(), 0.6)); + materialSpeeds.put(Material.GRANITE, itemCfg.getOrSetDefault(cfgKey + Material.GRANITE.name(), 0.6)); + materialSpeeds.put(Material.ANDESITE, itemCfg.getOrSetDefault(cfgKey + Material.ANDESITE.name(), 0.6)); + materialSpeeds.put(Material.NETHERRACK, itemCfg.getOrSetDefault(cfgKey + Material.NETHERRACK.name(), 0.6)); if (SlimefunPlugin.getMinecraftVersion().isAtLeast(MinecraftVersion.MINECRAFT_1_16)) { - materialSpeedsDef.put(Material.BLACKSTONE.name(), 0.6); + materialSpeeds.put(Material.BLACKSTONE, itemCfg.getOrSetDefault(cfgKey + Material.BLACKSTONE.name(), 0.6)); } - materialSpeeds = SlimefunPlugin.getItemCfg().getOrSetDefault(getID() + ".launch-amounts", materialSpeedsDef); } @Override @@ -85,8 +87,7 @@ public class ClimbingPick extends SimpleSlimefunItem implements if (e.getClickedFace() == BlockFace.DOWN || e.getClickedFace() == BlockFace.UP) return; if (!users.contains(p.getUniqueId())) { - Material mat = block.getType(); - double launch = materialSpeeds.getOrDefault(mat.name(), 0D); + double launch = materialSpeeds.getOrDefault(block.getType(), 0D); Vector velocity = new Vector(0, 0, 0); if (launch > 0.05) { @@ -123,12 +124,15 @@ public class ClimbingPick extends SimpleSlimefunItem implements @Override public List getDisplayRecipes() { List display = new ArrayList<>(); - for (String matName : materialSpeeds.keySet()) { - Material mat = Material.getMaterial(matName); - if (mat == null) continue; - display.add(new CustomItem(mat, "&bCan Climb This Block")); + for (Material mat : materialSpeeds.keySet()) { + display.add(new ItemStack(mat)); } return display; } + + @Override + public String getLabelLocalPath() { + return "guide.tooltips.recipes.climbing-pick"; + } } diff --git a/src/main/resources/languages/messages_en.yml b/src/main/resources/languages/messages_en.yml index e0a84ce44..5b5c4ad0a 100644 --- a/src/main/resources/languages/messages_en.yml +++ b/src/main/resources/languages/messages_en.yml @@ -46,6 +46,7 @@ guide: miner: 'Resources you can obtain with this Miner' generator: 'Available types of fuel' gold-pan: 'Resources you can obtain' + climbing-pick: 'Surfaces you can climb' cheat: no-multiblocks: '&4You cannot cheat in Multiblocks, you have to build them!'