Mining Bonus Drop registration

This commit is contained in:
nossr50 2019-04-02 21:52:07 -07:00
parent 5c6f0e8cbf
commit ecce631527
7 changed files with 80 additions and 7 deletions

View File

@ -1,5 +1,6 @@
package com.gmail.nossr50.config; package com.gmail.nossr50.config;
import com.gmail.nossr50.mcMMO;
import org.bukkit.Material; import org.bukkit.Material;
import java.util.HashMap; import java.util.HashMap;
@ -32,7 +33,7 @@ public class BonusDropManager implements Unload {
* Adds materials to the bonus drop whitelist * Adds materials to the bonus drop whitelist
* @param materials target material list * @param materials target material list
*/ */
public void addToWhitelist(List<Material> materials) public void addToWhitelistByMaterial(List<Material> materials)
{ {
for(Material material : materials) for(Material material : materials)
{ {
@ -40,6 +41,25 @@ public class BonusDropManager implements Unload {
} }
} }
/**
* Adds materials to the bonus drop whitelist
* @param materials target material list
*/
public void addToWhitelistByNameID(List<String> materials)
{
for(String material : materials)
{
Material m = Material.matchMaterial(material);
if(m == null)
{
mcMMO.p.getLogger().severe("Error registering Bonus Drop -- Invalid Minecraft Name ID: "+material);
continue;
}
registerMaterial(m, true);
}
}
/** /**
* Adds a material to the bonus drop whitelist * Adds a material to the bonus drop whitelist
* @param material target material * @param material target material

View File

@ -379,9 +379,14 @@ public final class ConfigManager {
*/ */
public void registerBonusDrops() public void registerBonusDrops()
{ {
bonusDropManager.addToWhitelist(configMining.getBonusDrops()); bonusDropManager.addToWhitelistByNameID(getConfigMining().getBonusDrops());
bonusDropManager.addToWhitelist(configHerbalism.getBonusDrops()); bonusDropManager.addToWhitelistByNameID(configHerbalism.getBonusDrops());
bonusDropManager.addToWhitelist(configWoodcutting.getBonusDrops()); bonusDropManager.addToWhitelistByNameID(configWoodcutting.getBonusDrops());
}
public void validateConfigs()
{
} }
/* /*

View File

@ -0,0 +1,5 @@
package com.gmail.nossr50.config;
public interface Validation {
void validate();
}

View File

@ -1,8 +1,54 @@
package com.gmail.nossr50.config.hocon.skills.mining; package com.gmail.nossr50.config.hocon.skills.mining;
import ninja.leaping.configurate.objectmapping.Setting;
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable; import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
import java.util.ArrayList;
import static org.bukkit.Material.*;
@ConfigSerializable @ConfigSerializable
public class ConfigMining { public class ConfigMining {
private static final ArrayList<String> DEFAULT_BONUS_DROPS;
static {
DEFAULT_BONUS_DROPS = new ArrayList<>();
DEFAULT_BONUS_DROPS.add(ANDESITE.getKey().toString());
DEFAULT_BONUS_DROPS.add(DIORITE.getKey().toString());
DEFAULT_BONUS_DROPS.add(GRANITE.getKey().toString());
DEFAULT_BONUS_DROPS.add(COAL_ORE.getKey().toString());
DEFAULT_BONUS_DROPS.add(COAL.getKey().toString());
DEFAULT_BONUS_DROPS.add(DIAMOND_ORE.getKey().toString());
DEFAULT_BONUS_DROPS.add(DIAMOND.getKey().toString());
DEFAULT_BONUS_DROPS.add(EMERALD_ORE.getKey().toString());
DEFAULT_BONUS_DROPS.add(EMERALD.getKey().toString());
DEFAULT_BONUS_DROPS.add(END_STONE.getKey().toString());
DEFAULT_BONUS_DROPS.add(GLOWSTONE.getKey().toString());
DEFAULT_BONUS_DROPS.add(GLOWSTONE_DUST.getKey().toString());
DEFAULT_BONUS_DROPS.add(GOLD_ORE.getKey().toString());
DEFAULT_BONUS_DROPS.add(IRON_ORE.getKey().toString());
DEFAULT_BONUS_DROPS.add(IRON_INGOT.getKey().toString());
DEFAULT_BONUS_DROPS.add(LAPIS_ORE.getKey().toString());
DEFAULT_BONUS_DROPS.add(LAPIS_LAZULI.getKey().toString());
DEFAULT_BONUS_DROPS.add(MOSSY_COBBLESTONE.getKey().toString());
DEFAULT_BONUS_DROPS.add(NETHERRACK.getKey().toString());
DEFAULT_BONUS_DROPS.add(OBSIDIAN.getKey().toString());
DEFAULT_BONUS_DROPS.add(NETHER_QUARTZ_ORE.getKey().toString());
DEFAULT_BONUS_DROPS.add(QUARTZ.getKey().toString());
DEFAULT_BONUS_DROPS.add(REDSTONE_ORE.getKey().toString());
DEFAULT_BONUS_DROPS.add(REDSTONE.getKey().toString());
DEFAULT_BONUS_DROPS.add(SANDSTONE.getKey().toString());
DEFAULT_BONUS_DROPS.add(STONE.getKey().toString());
DEFAULT_BONUS_DROPS.add(COBBLESTONE.getKey().toString());
}
@Setting(value = "Z-Bonus-Drops", comment = "Bonus drops will be allowed for these blocks." +
"\nUse Minecraft friendly names for entries, not Bukkit material names.")
private ArrayList<String> bonusDrops = DEFAULT_BONUS_DROPS;
public ArrayList<String> getBonusDrops() {
return bonusDrops;
}
} }

View File

@ -6,7 +6,6 @@ import ninja.leaping.configurate.objectmapping.Setting;
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable; import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List;
@ConfigSerializable @ConfigSerializable
public class ConfigSalvage { public class ConfigSalvage {

View File

@ -4,7 +4,6 @@ import com.gmail.nossr50.datatypes.skills.ItemMaterialCategory;
import com.gmail.nossr50.datatypes.skills.ItemType; import com.gmail.nossr50.datatypes.skills.ItemType;
import com.gmail.nossr50.util.ItemUtils; import com.gmail.nossr50.util.ItemUtils;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;

View File

@ -4,7 +4,6 @@ import com.gmail.nossr50.datatypes.skills.ItemMaterialCategory;
import com.gmail.nossr50.datatypes.skills.ItemType; import com.gmail.nossr50.datatypes.skills.ItemType;
import com.gmail.nossr50.util.ItemUtils; import com.gmail.nossr50.util.ItemUtils;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;
/** /**
* Represents a 'Salvageable' item * Represents a 'Salvageable' item