mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-29 16:46:46 +01:00
Start of work on allowing custom tool/block mods. This version should
allow for XP gain from vanilla blocks with custom tools. Please report any issues to facilitate further development.
This commit is contained in:
parent
b5963936fd
commit
2b4ca80a95
@ -53,7 +53,10 @@ public class Config extends ConfigLoader {
|
|||||||
public double getHardcoreDeathStatPenaltyPercentage() { return config.getDouble("Hardcore.Death_Stat_Loss_Penalty_Percentage", 75); }
|
public double getHardcoreDeathStatPenaltyPercentage() { return config.getDouble("Hardcore.Death_Stat_Loss_Penalty_Percentage", 75); }
|
||||||
public double getHardcoreVampirismStatLeechPercentage() { return config.getDouble("Hardcore.Vampirism_Stat_Leech_Percentage", 5); }
|
public double getHardcoreVampirismStatLeechPercentage() { return config.getDouble("Hardcore.Vampirism_Stat_Leech_Percentage", 5); }
|
||||||
public boolean getHardcoreVampirismEnabled() { return config.getBoolean("Hardcore.Vampirism", false); }
|
public boolean getHardcoreVampirismEnabled() { return config.getBoolean("Hardcore.Vampirism", false); }
|
||||||
|
|
||||||
|
/* SMP Mods */
|
||||||
|
public boolean getToolModsEnabled() { return config.getBoolean("Mods.Tool_Mods_Enabled", false); }
|
||||||
|
public boolean getBlockModsEnabled() { return config.getBoolean("Mods.Block_Mods_Enabled", false); }
|
||||||
|
|
||||||
/* Commands */
|
/* Commands */
|
||||||
public boolean getCommandXPLockEnabled() { return config.getBoolean("Commands.xplock.Enabled", true); }
|
public boolean getCommandXPLockEnabled() { return config.getBoolean("Commands.xplock.Enabled", true); }
|
||||||
@ -446,7 +449,6 @@ public class Config extends ConfigLoader {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void load() {
|
protected void load() {
|
||||||
// If it doesn't exist, copy it from the .jar
|
|
||||||
if (!configFile.exists()) {
|
if (!configFile.exists()) {
|
||||||
dataFolder.mkdir();
|
dataFolder.mkdir();
|
||||||
plugin.saveDefaultConfig();
|
plugin.saveDefaultConfig();
|
||||||
|
@ -48,8 +48,6 @@ public class LoadTreasures extends ConfigLoader{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void load() {
|
protected void load() {
|
||||||
|
|
||||||
// If it doesn't exist, copy it from the .jar
|
|
||||||
if (!configFile.exists()) {
|
if (!configFile.exists()) {
|
||||||
dataFolder.mkdir();
|
dataFolder.mkdir();
|
||||||
plugin.saveTreasuresConfig();
|
plugin.saveTreasuresConfig();
|
||||||
@ -95,7 +93,7 @@ public class LoadTreasures extends ConfigLoader{
|
|||||||
int data = config.getInt("Treasures." + treasureName + ".Data");
|
int data = config.getInt("Treasures." + treasureName + ".Data");
|
||||||
|
|
||||||
if (Material.getMaterial(id) == null) {
|
if (Material.getMaterial(id) == null) {
|
||||||
reason.add("Invlid id: " + id);
|
reason.add("Invalid id: " + id);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (amount < 1) {
|
if (amount < 1) {
|
||||||
|
109
src/main/java/com/gmail/nossr50/config/mods/LoadCustomTools.java
Normal file
109
src/main/java/com/gmail/nossr50/config/mods/LoadCustomTools.java
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
package com.gmail.nossr50.config.mods;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.mcMMO;
|
||||||
|
import com.gmail.nossr50.config.ConfigLoader;
|
||||||
|
import com.gmail.nossr50.datatypes.mods.CustomTool;
|
||||||
|
|
||||||
|
public class LoadCustomTools extends ConfigLoader {
|
||||||
|
private static LoadCustomTools instance;
|
||||||
|
|
||||||
|
public static LoadCustomTools getInstance() {
|
||||||
|
if (instance == null) {
|
||||||
|
instance = new LoadCustomTools(mcMMO.p);
|
||||||
|
}
|
||||||
|
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<CustomTool> customAxes = new ArrayList<CustomTool>();
|
||||||
|
public List<CustomTool> customBows = new ArrayList<CustomTool>();
|
||||||
|
public List<CustomTool> customHoes = new ArrayList<CustomTool>();
|
||||||
|
public List<CustomTool> customPickaxes = new ArrayList<CustomTool>();
|
||||||
|
public List<CustomTool> customShovels = new ArrayList<CustomTool>();
|
||||||
|
public List<CustomTool> customSwords = new ArrayList<CustomTool>();
|
||||||
|
|
||||||
|
public List<Integer> customAxeIDs = new ArrayList<Integer>();
|
||||||
|
public List<Integer> customBowIDs = new ArrayList<Integer>();
|
||||||
|
public List<Integer> customHoeIDs = new ArrayList<Integer>();
|
||||||
|
public List<Integer> customPickaxeIDs = new ArrayList<Integer>();
|
||||||
|
public List<Integer> customShovelIDs = new ArrayList<Integer>();
|
||||||
|
public List<Integer> customSwordIDs = new ArrayList<Integer>();
|
||||||
|
|
||||||
|
private LoadCustomTools(mcMMO plugin) {
|
||||||
|
super(plugin, "ModConfigs" + File.separator + "tools.yml");
|
||||||
|
config = plugin.getToolsConfig();
|
||||||
|
load();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void load() {
|
||||||
|
if (!configFile.exists()) {
|
||||||
|
dataFolder.mkdir();
|
||||||
|
plugin.saveToolsConfig();
|
||||||
|
}
|
||||||
|
|
||||||
|
addDefaults();
|
||||||
|
loadKeys();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void loadKeys() {
|
||||||
|
plugin.getLogger().info("Loading mcMMO tools.yml File...");
|
||||||
|
|
||||||
|
loadTool("Axes", customAxes, customAxeIDs);
|
||||||
|
loadTool("Bows", customBows, customBowIDs);
|
||||||
|
loadTool("Hoes", customHoes, customHoeIDs);
|
||||||
|
loadTool("Pickaxes", customPickaxes, customPickaxeIDs);
|
||||||
|
loadTool("Shovels", customShovels, customShovelIDs);
|
||||||
|
loadTool("Swords", customSwords, customSwordIDs);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void loadTool(String toolType, List<CustomTool> toolList, List<Integer> idList) {
|
||||||
|
ConfigurationSection toolSection = config.getConfigurationSection(toolType);
|
||||||
|
Set<String> toolConfigSet = toolSection.getKeys(false);
|
||||||
|
Iterator<String> iterator = toolConfigSet.iterator();
|
||||||
|
|
||||||
|
while (iterator.hasNext()) {
|
||||||
|
String toolName = iterator.next();
|
||||||
|
|
||||||
|
int id = config.getInt(toolType + "." + toolName + ".ID");
|
||||||
|
double multiplier = config.getDouble(toolType + "." + toolName + ".XP_Modifier", 1.0);
|
||||||
|
boolean repairable = config.getBoolean(toolType + "." + toolName + ".Repairable");
|
||||||
|
int repairID = config.getInt(toolType + "." + toolName + ".Repair_Material_ID");
|
||||||
|
byte repairData = (byte) config.getInt(toolType + "." + toolName + ".Repair_Material_Data_Value");
|
||||||
|
short durability = (short) config.getInt(toolType + "." + toolName + ".Durability");
|
||||||
|
|
||||||
|
if (id == 0) {
|
||||||
|
plugin.getLogger().warning("Missing ID. This item will be skipped.");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (repairable && (repairID == 0 || durability == 0)) {
|
||||||
|
plugin.getLogger().warning("Incomplete repair information. This item will be unrepairable.");
|
||||||
|
repairable = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
CustomTool tool;
|
||||||
|
|
||||||
|
if (repairable) {
|
||||||
|
ItemStack repairMaterial = new ItemStack(repairID, 1, (short) 0, repairData);
|
||||||
|
tool = new CustomTool(durability, repairMaterial, repairable, multiplier, id);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
tool = new CustomTool(durability, null, repairable, multiplier, id);
|
||||||
|
}
|
||||||
|
|
||||||
|
toolList.add(tool);
|
||||||
|
idList.add(id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -48,7 +48,7 @@ public enum ToolType {
|
|||||||
return ItemChecks.isHoe(is);
|
return ItemChecks.isHoe(is);
|
||||||
|
|
||||||
case PICKAXE:
|
case PICKAXE:
|
||||||
return ItemChecks.isMiningPick(is);
|
return ItemChecks.isPickaxe(is);
|
||||||
|
|
||||||
case SHOVEL:
|
case SHOVEL:
|
||||||
return ItemChecks.isShovel(is);
|
return ItemChecks.isShovel(is);
|
||||||
|
@ -0,0 +1,59 @@
|
|||||||
|
package com.gmail.nossr50.datatypes.mods;
|
||||||
|
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
public class CustomTool {
|
||||||
|
private int itemID;
|
||||||
|
private double xpMultiplier;
|
||||||
|
private boolean repairable;
|
||||||
|
private ItemStack repairMaterial;
|
||||||
|
private short durability;
|
||||||
|
|
||||||
|
public CustomTool(short durability, ItemStack repairMaterial, boolean repairable, double xpMultiplier, int itemID) {
|
||||||
|
this.itemID = itemID;
|
||||||
|
this.xpMultiplier = xpMultiplier;
|
||||||
|
this.repairable = repairable;
|
||||||
|
this.repairMaterial = repairMaterial;
|
||||||
|
this.durability = durability;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getItemID() {
|
||||||
|
return itemID;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setItemID(int itemID) {
|
||||||
|
this.itemID = itemID;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getXpMultiplier() {
|
||||||
|
return xpMultiplier;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setXpMultiplier(Double xpMultiplier) {
|
||||||
|
this.xpMultiplier = xpMultiplier;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isRepairable() {
|
||||||
|
return repairable;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRepairable(boolean repairable) {
|
||||||
|
this.repairable = repairable;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemStack getRepairMaterial() {
|
||||||
|
return repairMaterial;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRepairMaterial(ItemStack repairMaterial) {
|
||||||
|
this.repairMaterial = repairMaterial;
|
||||||
|
}
|
||||||
|
|
||||||
|
public short getDurability() {
|
||||||
|
return durability;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDurability(short durability) {
|
||||||
|
this.durability = durability;
|
||||||
|
}
|
||||||
|
}
|
@ -4,7 +4,7 @@ import org.bukkit.inventory.ItemStack;
|
|||||||
|
|
||||||
public abstract class Treasure {
|
public abstract class Treasure {
|
||||||
private int xp;
|
private int xp;
|
||||||
private Double dropChance;
|
private double dropChance;
|
||||||
private int dropLevel;
|
private int dropLevel;
|
||||||
private ItemStack drop;
|
private ItemStack drop;
|
||||||
|
|
||||||
@ -31,7 +31,7 @@ public abstract class Treasure {
|
|||||||
this.xp = xp;
|
this.xp = xp;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Double getDropChance() {
|
public double getDropChance() {
|
||||||
return dropChance;
|
return dropChance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -164,7 +164,7 @@ public class BlockListener implements Listener {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
if (Permissions.getInstance().mining(player) && BlockChecks.canBeSuperBroken(mat)) {
|
if (Permissions.getInstance().mining(player) && BlockChecks.canBeSuperBroken(mat)) {
|
||||||
if (Config.getInstance().getMiningRequiresTool() && ItemChecks.isMiningPick(inhand)) {
|
if (Config.getInstance().getMiningRequiresTool() && ItemChecks.isPickaxe(inhand)) {
|
||||||
Mining.miningBlockCheck(player, block);
|
Mining.miningBlockCheck(player, block);
|
||||||
}
|
}
|
||||||
else if (!Config.getInstance().getMiningRequiresTool()) {
|
else if (!Config.getInstance().getMiningRequiresTool()) {
|
||||||
@ -279,7 +279,7 @@ public class BlockListener implements Listener {
|
|||||||
}
|
}
|
||||||
else if (PP.getAbilityMode(AbilityType.SUPER_BREAKER) && Skills.triggerCheck(player, block, AbilityType.SUPER_BREAKER)) {
|
else if (PP.getAbilityMode(AbilityType.SUPER_BREAKER) && Skills.triggerCheck(player, block, AbilityType.SUPER_BREAKER)) {
|
||||||
if(!player.getItemInHand().containsEnchantment(Enchantment.SILK_TOUCH)) {
|
if(!player.getItemInHand().containsEnchantment(Enchantment.SILK_TOUCH)) {
|
||||||
if (Config.getInstance().getMiningRequiresTool() && ItemChecks.isMiningPick(inhand)) {
|
if (Config.getInstance().getMiningRequiresTool() && ItemChecks.isPickaxe(inhand)) {
|
||||||
event.setInstaBreak(true);
|
event.setInstaBreak(true);
|
||||||
Mining.SuperBreakerBlockCheck(player, block);
|
Mining.SuperBreakerBlockCheck(player, block);
|
||||||
}
|
}
|
||||||
|
@ -56,6 +56,7 @@ public class mcMMO extends JavaPlugin {
|
|||||||
public static String flatFileDirectory;
|
public static String flatFileDirectory;
|
||||||
public static String usersFile;
|
public static String usersFile;
|
||||||
public static String leaderboardDirectory;
|
public static String leaderboardDirectory;
|
||||||
|
public static String modDirectory;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Things to be run when the plugin is enabled.
|
* Things to be run when the plugin is enabled.
|
||||||
@ -67,6 +68,7 @@ public class mcMMO extends JavaPlugin {
|
|||||||
mainDirectory = getDataFolder().getPath() + File.separator;
|
mainDirectory = getDataFolder().getPath() + File.separator;
|
||||||
flatFileDirectory = mainDirectory + "FlatFileStuff" + File.separator;
|
flatFileDirectory = mainDirectory + "FlatFileStuff" + File.separator;
|
||||||
leaderboardDirectory = flatFileDirectory + "Leaderboards" + File.separator;
|
leaderboardDirectory = flatFileDirectory + "Leaderboards" + File.separator;
|
||||||
|
modDirectory = mainDirectory + "ModConfigs" + File.separator;
|
||||||
usersFile = flatFileDirectory + "mcmmo.users";
|
usersFile = flatFileDirectory + "mcmmo.users";
|
||||||
|
|
||||||
if (!Config.getInstance().getUseMySQL()) {
|
if (!Config.getInstance().getUseMySQL()) {
|
||||||
@ -79,11 +81,12 @@ public class mcMMO extends JavaPlugin {
|
|||||||
pm.registerEvents(playerListener, this);
|
pm.registerEvents(playerListener, this);
|
||||||
pm.registerEvents(blockListener, this);
|
pm.registerEvents(blockListener, this);
|
||||||
pm.registerEvents(entityListener, this);
|
pm.registerEvents(entityListener, this);
|
||||||
|
|
||||||
if (Config.getInstance().getHardcoreEnabled()) {
|
if (Config.getInstance().getHardcoreEnabled()) {
|
||||||
pm.registerEvents(hardcoreListener, this);
|
pm.registerEvents(hardcoreListener, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
PluginDescriptionFile pdfFile = this.getDescription();
|
PluginDescriptionFile pdfFile = getDescription();
|
||||||
|
|
||||||
//Setup the leaderboards
|
//Setup the leaderboards
|
||||||
if (Config.getInstance().getUseMySQL()) {
|
if (Config.getInstance().getUseMySQL()) {
|
||||||
@ -117,7 +120,8 @@ public class mcMMO extends JavaPlugin {
|
|||||||
try {
|
try {
|
||||||
Metrics metrics = new Metrics(this);
|
Metrics metrics = new Metrics(this);
|
||||||
metrics.start();
|
metrics.start();
|
||||||
} catch (IOException e) {
|
}
|
||||||
|
catch (IOException e) {
|
||||||
System.out.println("Failed to submit stats.");
|
System.out.println("Failed to submit stats.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -168,12 +172,13 @@ public class mcMMO extends JavaPlugin {
|
|||||||
x.save();
|
x.save();
|
||||||
}
|
}
|
||||||
|
|
||||||
this.getServer().getScheduler().cancelTasks(this); //This removes our tasks
|
getServer().getScheduler().cancelTasks(this); //This removes our tasks
|
||||||
|
|
||||||
//Remove other tasks BEFORE starting the Backup, or we just cancel it straight away.
|
//Remove other tasks BEFORE starting the Backup, or we just cancel it straight away.
|
||||||
try {
|
try {
|
||||||
ZipLibrary.mcMMObackup();
|
ZipLibrary.mcMMObackup();
|
||||||
} catch (IOException e) {
|
}
|
||||||
|
catch (IOException e) {
|
||||||
getLogger().severe(e.toString());
|
getLogger().severe(e.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -304,7 +309,7 @@ public class mcMMO extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Boilerplate Custom Config Stuff
|
* Boilerplate Custom Config Stuff (Treasures)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
private FileConfiguration treasuresConfig = null;
|
private FileConfiguration treasuresConfig = null;
|
||||||
@ -352,7 +357,60 @@ public class mcMMO extends JavaPlugin {
|
|||||||
treasuresConfig.save(treasuresConfigFile);
|
treasuresConfig.save(treasuresConfigFile);
|
||||||
}
|
}
|
||||||
catch (IOException ex) {
|
catch (IOException ex) {
|
||||||
this.getLogger().severe("Could not save config to " + treasuresConfigFile + ex.toString());
|
getLogger().severe("Could not save config to " + treasuresConfigFile + ex.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Boilerplate Custom Config Stuff (Tools)
|
||||||
|
*/
|
||||||
|
|
||||||
|
private FileConfiguration toolsConfig = null;
|
||||||
|
private File toolsConfigFile = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reload the Tools.yml file.
|
||||||
|
*/
|
||||||
|
public void reloadToolsConfig() {
|
||||||
|
if (toolsConfigFile == null) {
|
||||||
|
toolsConfigFile = new File(modDirectory, "tools.yml");
|
||||||
|
}
|
||||||
|
|
||||||
|
toolsConfig = YamlConfiguration.loadConfiguration(toolsConfigFile);
|
||||||
|
InputStream defConfigStream = getResource("tools.yml"); // Look for defaults in the jar
|
||||||
|
|
||||||
|
if (defConfigStream != null) {
|
||||||
|
YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream);
|
||||||
|
toolsConfig.setDefaults(defConfig);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the Tools config information.
|
||||||
|
*
|
||||||
|
* @return the configuration object for tools.yml
|
||||||
|
*/
|
||||||
|
public FileConfiguration getToolsConfig() {
|
||||||
|
if (toolsConfig == null) {
|
||||||
|
reloadToolsConfig();
|
||||||
|
}
|
||||||
|
|
||||||
|
return toolsConfig;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Save the Tools config informtion.
|
||||||
|
*/
|
||||||
|
public void saveToolsConfig() {
|
||||||
|
if (toolsConfig == null || toolsConfigFile == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
toolsConfig.save(toolsConfigFile);
|
||||||
|
}
|
||||||
|
catch (IOException ex) {
|
||||||
|
getLogger().severe("Could not save config to " + toolsConfigFile + ex.toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -327,7 +327,7 @@ public class Repair {
|
|||||||
else if (ItemChecks.isHoe(is) || ItemChecks.isSword(is) || is.getType().equals(Material.SHEARS)) {
|
else if (ItemChecks.isHoe(is) || ItemChecks.isSword(is) || is.getType().equals(Material.SHEARS)) {
|
||||||
ramt = maxDurability / 2;
|
ramt = maxDurability / 2;
|
||||||
}
|
}
|
||||||
else if (ItemChecks.isAxe(is) || ItemChecks.isMiningPick(is) || ItemChecks.isStringTool(is)) {
|
else if (ItemChecks.isAxe(is) || ItemChecks.isPickaxe(is) || ItemChecks.isStringTool(is)) {
|
||||||
ramt = maxDurability / 3;
|
ramt = maxDurability / 3;
|
||||||
}
|
}
|
||||||
else if (ItemChecks.isBoots(is)) {
|
else if (ItemChecks.isBoots(is)) {
|
||||||
|
@ -2,7 +2,11 @@ package com.gmail.nossr50.util;
|
|||||||
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.config.Config;
|
||||||
|
import com.gmail.nossr50.config.mods.LoadCustomTools;
|
||||||
|
|
||||||
public class ItemChecks {
|
public class ItemChecks {
|
||||||
|
private static Config configInstance = Config.getInstance();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if the item is a sword.
|
* Checks if the item is a sword.
|
||||||
@ -20,7 +24,12 @@ public class ItemChecks {
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return false;
|
if (configInstance.getToolModsEnabled() && LoadCustomTools.getInstance().customSwordIDs.contains(is.getTypeId())) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -40,7 +49,12 @@ public class ItemChecks {
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return false;
|
if (configInstance.getToolModsEnabled() && LoadCustomTools.getInstance().customHoeIDs.contains(is.getTypeId())) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -49,7 +63,7 @@ public class ItemChecks {
|
|||||||
*
|
*
|
||||||
* @param is Item to check
|
* @param is Item to check
|
||||||
* @return true if the item is a shovel, false otherwise
|
* @return true if the item is a shovel, false otherwise
|
||||||
*/
|
*/
|
||||||
public static boolean isShovel(ItemStack is) {
|
public static boolean isShovel(ItemStack is) {
|
||||||
switch (is.getType()) {
|
switch (is.getType()) {
|
||||||
case DIAMOND_SPADE:
|
case DIAMOND_SPADE:
|
||||||
@ -60,7 +74,12 @@ public class ItemChecks {
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return false;
|
if (configInstance.getToolModsEnabled() && LoadCustomTools.getInstance().customShovelIDs.contains(is.getTypeId())) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -80,7 +99,12 @@ public class ItemChecks {
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return false;
|
if (configInstance.getToolModsEnabled() && LoadCustomTools.getInstance().customAxeIDs.contains(is.getTypeId())) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -90,7 +114,7 @@ public class ItemChecks {
|
|||||||
* @param is Item to check
|
* @param is Item to check
|
||||||
* @return true if the item is a pickaxe, false otherwise
|
* @return true if the item is a pickaxe, false otherwise
|
||||||
*/
|
*/
|
||||||
public static boolean isMiningPick(ItemStack is) {
|
public static boolean isPickaxe(ItemStack is) {
|
||||||
switch (is.getType()) {
|
switch (is.getType()) {
|
||||||
case DIAMOND_PICKAXE:
|
case DIAMOND_PICKAXE:
|
||||||
case GOLD_PICKAXE:
|
case GOLD_PICKAXE:
|
||||||
@ -100,7 +124,12 @@ public class ItemChecks {
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return false;
|
if (configInstance.getToolModsEnabled() && LoadCustomTools.getInstance().customPickaxeIDs.contains(is.getTypeId())) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -395,4 +424,3 @@ public class ItemChecks {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -40,6 +40,13 @@ Hardcore:
|
|||||||
Vampirism: false
|
Vampirism: false
|
||||||
Vampirism_Stat_Leech_Percentage: 5
|
Vampirism_Stat_Leech_Percentage: 5
|
||||||
|
|
||||||
|
#
|
||||||
|
# Settings for SMP Mods
|
||||||
|
###
|
||||||
|
Mods:
|
||||||
|
Tool_Mods_Enabled: false
|
||||||
|
Block_Mods_Enabled: false
|
||||||
|
|
||||||
#
|
#
|
||||||
# Settings for mcMMO items
|
# Settings for mcMMO items
|
||||||
###
|
###
|
||||||
|
113
src/main/resources/tools.yml
Normal file
113
src/main/resources/tools.yml
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
#
|
||||||
|
# Settings for Axes
|
||||||
|
###
|
||||||
|
Axes:
|
||||||
|
Axe_1:
|
||||||
|
ID: 999
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material_ID: 99
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Durability: 9999
|
||||||
|
Axe_2:
|
||||||
|
ID: 999
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material_ID: 99
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Durability: 9999
|
||||||
|
|
||||||
|
#
|
||||||
|
# Settings for Bows
|
||||||
|
###
|
||||||
|
Bows:
|
||||||
|
Bow_1:
|
||||||
|
ID: 999
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material_ID: 99
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Durability: 9999
|
||||||
|
Bow_2:
|
||||||
|
ID: 999
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material_ID: 99
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Durability: 9999
|
||||||
|
|
||||||
|
#
|
||||||
|
# Settings for Hoes
|
||||||
|
###
|
||||||
|
Hoes:
|
||||||
|
Hoe_1:
|
||||||
|
ID: 999
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material_ID: 99
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Durability: 9999
|
||||||
|
Hoe_2:
|
||||||
|
ID: 999
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material_ID: 99
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Durability: 9999
|
||||||
|
|
||||||
|
#
|
||||||
|
# Settings for Pickaxes
|
||||||
|
###
|
||||||
|
Pickaxes:
|
||||||
|
Pickaxe_1:
|
||||||
|
ID: 999
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material_ID: 99
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Durability: 9999
|
||||||
|
Pickaxe_2:
|
||||||
|
ID: 999
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material_ID: 99
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Durability: 9999
|
||||||
|
|
||||||
|
#
|
||||||
|
# Settings for Shovels
|
||||||
|
###
|
||||||
|
Shovels:
|
||||||
|
Shovel_1:
|
||||||
|
ID: 999
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material_ID: 99
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Durability: 9999
|
||||||
|
Shovel_2:
|
||||||
|
ID: 999
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material_ID: 99
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Durability: 9999
|
||||||
|
|
||||||
|
#
|
||||||
|
# Settings for Swords
|
||||||
|
###
|
||||||
|
Swords:
|
||||||
|
Sword_1:
|
||||||
|
ID: 999
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material_ID: 99
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Durability: 9999
|
||||||
|
Sword_2:
|
||||||
|
ID: 999
|
||||||
|
XP_Modifer: 1.0
|
||||||
|
Repairable: true
|
||||||
|
Repair_Material_ID: 99
|
||||||
|
Repair_Material_Data_Value: 0
|
||||||
|
Durability: 9999
|
Loading…
Reference in New Issue
Block a user