diff --git a/SaneEconomyCore/pom.xml b/SaneEconomyCore/pom.xml
index c1b094f..02674c5 100644
--- a/SaneEconomyCore/pom.xml
+++ b/SaneEconomyCore/pom.xml
@@ -9,7 +9,7 @@
0
SaneEconomyCore
- 0.16.0-SNAPSHOT
+ 0.16.1-SNAPSHOT
diff --git a/SaneEconomyCore/src/main/java/org/appledash/saneeconomy/SaneEconomy.java b/SaneEconomyCore/src/main/java/org/appledash/saneeconomy/SaneEconomy.java
index 6ffd51f..c4c4641 100644
--- a/SaneEconomyCore/src/main/java/org/appledash/saneeconomy/SaneEconomy.java
+++ b/SaneEconomyCore/src/main/java/org/appledash/saneeconomy/SaneEconomy.java
@@ -98,7 +98,7 @@ public class SaneEconomy extends SanePlugin implements ISaneEconomy {
Arrays.stream(playersToSync).filter(p -> (p != null) && !p.isOnline()).forEach(p -> {
ByteArrayDataOutput bado = ByteStreams.newDataOutput();
bado.writeUTF("Forward");
- bado.writeUTF("ALL");
+ bado.writeUTF("ONLINE");
bado.writeUTF("SaneEconomy");
bado.writeUTF("SyncPlayer");
bado.writeUTF(p.getUniqueId().toString());
diff --git a/SaneEconomyCore/src/main/java/org/appledash/saneeconomy/utils/NumberUtils.java b/SaneEconomyCore/src/main/java/org/appledash/saneeconomy/utils/NumberUtils.java
index b9a5ac1..1be918a 100644
--- a/SaneEconomyCore/src/main/java/org/appledash/saneeconomy/utils/NumberUtils.java
+++ b/SaneEconomyCore/src/main/java/org/appledash/saneeconomy/utils/NumberUtils.java
@@ -60,6 +60,18 @@ public final class NumberUtils {
return filterAmount(currency, parsePositiveDouble(sDouble));
}
+ public static boolean equals(BigDecimal left, BigDecimal right) {
+ if (left == null) {
+ throw new NullPointerException("left == null");
+ }
+
+ if (right == null) {
+ throw new NullPointerException("right == null");
+ }
+
+ return left.compareTo(right) == 0;
+ }
+
private static DecimalFormat constructDecimalFormat() {
DecimalFormat decimalFormat = (DecimalFormat) NumberFormat.getInstance();
diff --git a/SaneEconomyCore/src/test/java/org/appledash/saneeconomy/test/EconomyManagerTest.java b/SaneEconomyCore/src/test/java/org/appledash/saneeconomy/test/EconomyManagerTest.java
index de2897b..30c3543 100644
--- a/SaneEconomyCore/src/test/java/org/appledash/saneeconomy/test/EconomyManagerTest.java
+++ b/SaneEconomyCore/src/test/java/org/appledash/saneeconomy/test/EconomyManagerTest.java
@@ -10,6 +10,7 @@ import org.appledash.saneeconomy.economy.transaction.TransactionResult;
import org.appledash.saneeconomy.test.mock.MockEconomyStorageBackend;
import org.appledash.saneeconomy.test.mock.MockOfflinePlayer;
import org.appledash.saneeconomy.test.mock.MockSaneEconomy;
+import org.appledash.saneeconomy.test.util.SaneEcoAssert;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
@@ -41,8 +42,8 @@ public class EconomyManagerTest {
// Accounts should not exist
Assert.assertFalse(this.economyManager.accountExists(playerOne));
Assert.assertFalse(this.economyManager.accountExists(playerTwo));
- Assert.assertEquals(BigDecimal.ZERO, this.economyManager.getBalance(playerOne));
- Assert.assertEquals(BigDecimal.ZERO, this.economyManager.getBalance(playerTwo));
+ SaneEcoAssert.assertEquals(BigDecimal.ZERO, this.economyManager.getBalance(playerOne));
+ SaneEcoAssert.assertEquals(BigDecimal.ZERO, this.economyManager.getBalance(playerTwo));
this.economyManager.setBalance(playerOne, new BigDecimal(100.0));
@@ -51,22 +52,22 @@ public class EconomyManagerTest {
Assert.assertFalse(this.economyManager.accountExists(playerTwo));
// One should have balance, two should not
- Assert.assertEquals(new BigDecimal("100.00"), this.economyManager.getBalance(playerOne));
- Assert.assertEquals(BigDecimal.ZERO, this.economyManager.getBalance(playerTwo));
+ SaneEcoAssert.assertEquals(new BigDecimal("100.00"), this.economyManager.getBalance(playerOne));
+ SaneEcoAssert.assertEquals(BigDecimal.ZERO, this.economyManager.getBalance(playerTwo));
// One should be able to transfer to two
Assert.assertSame(this.economyManager.transact(new Transaction(this.economyManager.getCurrency(), playerOne, playerTwo, new BigDecimal(50.0), TransactionReason.PLAYER_PAY)).getStatus(), TransactionResult.Status.SUCCESS);
// One should now have only 50 left, two should have 50 now
- Assert.assertEquals("Player one should have 50 dollars", new BigDecimal("50.00"), this.economyManager.getBalance(playerOne));
- Assert.assertEquals("Player two should have 50 dollars", new BigDecimal("50.00"), this.economyManager.getBalance(playerTwo));
+ SaneEcoAssert.assertEquals("Player one should have 50 dollars", new BigDecimal("50.00"), this.economyManager.getBalance(playerOne));
+ SaneEcoAssert.assertEquals("Player two should have 50 dollars", new BigDecimal("50.00"), this.economyManager.getBalance(playerTwo));
// Ensure that balance addition and subtraction works...
- Assert.assertEquals(new BigDecimal("25.00"), this.economyManager.transact(
+ SaneEcoAssert.assertEquals(new BigDecimal("25.00"), this.economyManager.transact(
new Transaction(this.economyManager.getCurrency(), playerOne, Economable.CONSOLE, new BigDecimal("25.00"), TransactionReason.TEST_TAKE)
).getFromBalance());
- Assert.assertEquals(new BigDecimal("50.00"), this.economyManager.transact(
+ SaneEcoAssert.assertEquals(new BigDecimal("50.00"), this.economyManager.transact(
new Transaction(this.economyManager.getCurrency(), Economable.CONSOLE, playerOne, new BigDecimal("25.00"), TransactionReason.TEST_GIVE)
).getToBalance());
diff --git a/SaneEconomyCore/src/test/java/org/appledash/saneeconomy/test/NumberUtilsTest.java b/SaneEconomyCore/src/test/java/org/appledash/saneeconomy/test/NumberUtilsTest.java
index 332e936..5284530 100644
--- a/SaneEconomyCore/src/test/java/org/appledash/saneeconomy/test/NumberUtilsTest.java
+++ b/SaneEconomyCore/src/test/java/org/appledash/saneeconomy/test/NumberUtilsTest.java
@@ -1,6 +1,7 @@
package org.appledash.saneeconomy.test;
import org.appledash.saneeconomy.economy.Currency;
+import org.appledash.saneeconomy.test.util.SaneEcoAssert;
import org.appledash.saneeconomy.utils.NumberUtils;
import org.junit.Assert;
import org.junit.Test;
@@ -17,12 +18,12 @@ public class NumberUtilsTest {
@Test
public void testParsePositive() {
// Valid input
- Assert.assertEquals(new BigDecimal("69.0"), NumberUtils.parsePositiveDouble("69.0"));
+ SaneEcoAssert.assertEquals(new BigDecimal("69.0"), NumberUtils.parsePositiveDouble("69.0"));
// Valid but not positive
- Assert.assertEquals(BigDecimal.ONE.negate(), NumberUtils.parsePositiveDouble("-10.0"));
+ SaneEcoAssert.assertEquals(BigDecimal.ONE.negate(), NumberUtils.parsePositiveDouble("-10.0"));
// Invalid
- Assert.assertEquals(BigDecimal.ONE.negate(), NumberUtils.parsePositiveDouble("nan"));
- Assert.assertEquals(BigDecimal.ONE.negate(), NumberUtils.parsePositiveDouble("ponies"));
+ SaneEcoAssert.assertEquals(BigDecimal.ONE.negate(), NumberUtils.parsePositiveDouble("nan"));
+ SaneEcoAssert.assertEquals(BigDecimal.ONE.negate(), NumberUtils.parsePositiveDouble("ponies"));
// Infinite
// TODO: Not needed with BigDecimal? Assert.assertEquals(BigDecimal.ONE.negate(), NumberUtils.parsePositiveDouble("1E1000000000"));
}
@@ -31,7 +32,7 @@ public class NumberUtilsTest {
public void testFilter() {
Currency currency = new Currency(null, null, new DecimalFormat("0.00"));
- Assert.assertEquals(new BigDecimal("1337.42"), NumberUtils.filterAmount(currency, new BigDecimal("1337.420")));
+ SaneEcoAssert.assertEquals(new BigDecimal("1337.42"), NumberUtils.filterAmount(currency, new BigDecimal("1337.420")));
}
@Test
@@ -47,4 +48,14 @@ public class NumberUtilsTest {
Locale.setDefault(old);
}
}
+
+ @Test
+ public void testBigDecimalEquals() {
+ BigDecimal one = new BigDecimal("100.0");
+ BigDecimal two = new BigDecimal("100.00");
+ BigDecimal three = new BigDecimal("100.1");
+
+ Assert.assertTrue("100.0 should equal 100.00", NumberUtils.equals(one, two));
+ Assert.assertFalse("100.0 should not equal 100.1", NumberUtils.equals(one, three));
+ }
}
diff --git a/SaneEconomyCore/src/test/java/org/appledash/saneeconomy/test/util/SaneEcoAssert.java b/SaneEconomyCore/src/test/java/org/appledash/saneeconomy/test/util/SaneEcoAssert.java
new file mode 100644
index 0000000..909ada2
--- /dev/null
+++ b/SaneEconomyCore/src/test/java/org/appledash/saneeconomy/test/util/SaneEcoAssert.java
@@ -0,0 +1,19 @@
+package org.appledash.saneeconomy.test.util;
+
+import org.appledash.saneeconomy.utils.NumberUtils;
+import org.junit.Assert;
+
+import java.math.BigDecimal;
+
+public final class SaneEcoAssert {
+ private SaneEcoAssert() {
+ }
+
+ public static void assertEquals(BigDecimal left, BigDecimal right) {
+ Assert.assertTrue(String.format("%s != %s", left.toPlainString(), right.toPlainString()), NumberUtils.equals(left, right));
+ }
+
+ public static void assertEquals(String message, BigDecimal left, BigDecimal right) {
+ Assert.assertTrue(message, NumberUtils.equals(left, right));
+ }
+}
diff --git a/SaneEconomyMobKills/pom.xml b/SaneEconomyMobKills/pom.xml
index 22bb9da..f9c0101 100644
--- a/SaneEconomyMobKills/pom.xml
+++ b/SaneEconomyMobKills/pom.xml
@@ -16,7 +16,7 @@
org.appledash
SaneEconomyCore
- 0.14.0-SNAPSHOT
+ 0.16.1-SNAPSHOT
diff --git a/SaneEconomyOnlineTime/pom.xml b/SaneEconomyOnlineTime/pom.xml
index b141ec6..388ec92 100644
--- a/SaneEconomyOnlineTime/pom.xml
+++ b/SaneEconomyOnlineTime/pom.xml
@@ -17,7 +17,7 @@
org.appledash
SaneEconomyCore
- 0.14.0-SNAPSHOT
+ 0.16.1-SNAPSHOT
diff --git a/SaneEconomySignShop/pom.xml b/SaneEconomySignShop/pom.xml
index ff97c69..0b0b9d8 100644
--- a/SaneEconomySignShop/pom.xml
+++ b/SaneEconomySignShop/pom.xml
@@ -16,7 +16,7 @@
org.appledash
SaneEconomyCore
- 0.14.0-SNAPSHOT
+ 0.16.1-SNAPSHOT