diff --git a/pom.xml b/pom.xml index 975f002..500a52a 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 edu.whimc WHIMC-ScienceTools - 2.4.10 + 2.4.11 WHIMC Science Tools Simulate values for scientific tools diff --git a/src/main/java/edu/whimc/sciencetools/models/conversion/Conversion.java b/src/main/java/edu/whimc/sciencetools/models/conversion/Conversion.java index 495bf3b..df65ad9 100644 --- a/src/main/java/edu/whimc/sciencetools/models/conversion/Conversion.java +++ b/src/main/java/edu/whimc/sciencetools/models/conversion/Conversion.java @@ -20,6 +20,8 @@ public class Conversion { private String unit; /* The expression to calculate the passed value in the new unit*/ private JSNumericExpression expression; + /* The decimal precision of the tool. */ + private final int precision; /** * Constructs a Conversion. @@ -27,11 +29,13 @@ public class Conversion { * @param name The name of the Conversion. * @param unit The unit being converted to. * @param expression The Conversion equation. + * @param precision The number of places after the decimal place to include */ - protected Conversion(String name, String unit, JSNumericExpression expression) { + protected Conversion(String name, String unit, JSNumericExpression expression, int precision) { this.name = name; this.unit = unit; this.expression = expression; + this.precision = precision; } /** @@ -52,6 +56,10 @@ public String getUnit() { return this.unit; } + public int getPrecision() { + return this.precision; + } + /** * Sets a new unit and saves it to the config. * @@ -86,7 +94,8 @@ public void sendInfo(CommandSender sender) { Utils.msg(sender, getName() + ":", " Expression: " + getExpression(), - " Unit: " + getUnit()); + " Unit: " + getUnit(), + " Precision: " + getPrecision()); } } diff --git a/src/main/java/edu/whimc/sciencetools/models/conversion/ConversionManager.java b/src/main/java/edu/whimc/sciencetools/models/conversion/ConversionManager.java index 9092b24..a071fc3 100644 --- a/src/main/java/edu/whimc/sciencetools/models/conversion/ConversionManager.java +++ b/src/main/java/edu/whimc/sciencetools/models/conversion/ConversionManager.java @@ -3,11 +3,11 @@ import edu.whimc.sciencetools.ScienceTools; import edu.whimc.sciencetools.javascript.JSNumericExpression; import edu.whimc.sciencetools.utils.Utils; -import java.util.Collection; import java.util.HashMap; import java.util.Map; import org.bukkit.configuration.file.FileConfiguration; import org.jetbrains.annotations.NotNull; +import scala.Int; /** * Handles operations regarding Conversions (adding, removing, saving, loading). @@ -36,9 +36,12 @@ public void loadConversions() { Utils.log("&b - &f" + conversion); String expr = config.getString("conversions." + conversion + ".expression"); String unit = config.getString("conversions." + conversion + ".unit"); + int precision = config.getInt("conversions." + conversion + ".precision"); + //no idea if this needs to go in the log ^ Utils.log("&b\t- Expression: \"&f" + expr + "&b\""); Utils.log("&b\t- Unit: \"&f" + unit + "&b\""); + Utils.log("&b\t- Precision: \"&f" + precision + "&b\""); // ensure conversion's expression is valid, skip if not JSNumericExpression jsExpr = new JSNumericExpression(expr); @@ -47,7 +50,7 @@ public void loadConversions() { continue; } - loadConversion(conversion, unit, jsExpr); + loadConversion(conversion, unit, jsExpr, precision); } Utils.log("&eConversions loaded!"); @@ -59,10 +62,11 @@ public void loadConversions() { * @param name The name of the Conversion. * @param unit The unit being converted to. * @param expr The Conversion equation. + * @param precision The number of places after the decimal place to include. * @return The Conversion. */ - private @NotNull Conversion loadConversion(String name, String unit, JSNumericExpression expr) { - Conversion conversion = new Conversion(name, unit, expr); + private @NotNull Conversion loadConversion(String name, String unit, JSNumericExpression expr, int precision) { + Conversion conversion = new Conversion(name, unit, expr, precision); conversions.put(name, conversion); return conversion; } @@ -75,8 +79,8 @@ public void loadConversions() { * @param expr The Conversion equation. * @return The Conversion. */ - public Conversion createConversion(String name, String unit, JSNumericExpression expr) { - Conversion conversion = loadConversion(name, unit, expr); + public Conversion createConversion(String name, String unit, JSNumericExpression expr, int precision) { + Conversion conversion = loadConversion(name, unit, expr, precision); saveToConfig(conversion); return conversion; } diff --git a/src/main/java/edu/whimc/sciencetools/models/sciencetool/NumericScienceTool.java b/src/main/java/edu/whimc/sciencetools/models/sciencetool/NumericScienceTool.java index 157bf58..8ea50b1 100644 --- a/src/main/java/edu/whimc/sciencetools/models/sciencetool/NumericScienceTool.java +++ b/src/main/java/edu/whimc/sciencetools/models/sciencetool/NumericScienceTool.java @@ -73,7 +73,9 @@ public NumericScienceTool(String toolKey, // display converted values for (Conversion conversion : conversions) { - String converted = Utils.trimDecimals(conversion.convert(data), precision); + //conversions now have their own separate precision; not sure what happens if it's left out of the config? + //does an unassigned int in Java have a value of 0? Or is it null and does null == 0 in this case? + String converted = Utils.trimDecimals(conversion.convert(data), conversion.getPrecision()); message += " (" + converted + conversion.getUnit() + ")"; } diff --git a/src/main/java/edu/whimc/sciencetools/models/sciencetool/QuestsScienceToolObjective.java b/src/main/java/edu/whimc/sciencetools/models/sciencetool/QuestsScienceToolObjective.java index becf0c2..9178a85 100644 --- a/src/main/java/edu/whimc/sciencetools/models/sciencetool/QuestsScienceToolObjective.java +++ b/src/main/java/edu/whimc/sciencetools/models/sciencetool/QuestsScienceToolObjective.java @@ -3,11 +3,11 @@ import edu.whimc.sciencetools.models.Measurement; import edu.whimc.sciencetools.utils.Utils; import java.util.Map; +import org.bukkit.Bukkit; +import org.bukkit.event.EventHandler; import me.pikamug.quests.quests.Quest; import me.pikamug.quests.module.BukkitCustomObjective; import me.pikamug.quests.Quests; -import org.bukkit.Bukkit; -import org.bukkit.event.EventHandler; /** * A custom objective for the Quests plugin.