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.