This commit is contained in:
okx-code
2020-07-17 15:16:23 +01:00
parent 55e190a5c2
commit e043cd2b1f
6 changed files with 890 additions and 826 deletions
+1 -1
View File
@@ -4,7 +4,7 @@ plugins {
}
group 'sh.okx'
version '3.9-beta.2'
version '3.9'
repositories {
mavenCentral()
@@ -176,8 +176,11 @@ public class RankupPlugin extends JavaPlugin {
long time = (long) (config.getDouble("autorankup-interval") * 60 * 20);
if (time > 0) {
if (!autoRankup.isCancelled()) {
autoRankup.cancel();
try {
if (!autoRankup.isCancelled()) {
autoRankup.cancel();
}
} catch (IllegalStateException ignored) {
}
autoRankup.runTaskTimer(this, time, time);
}
@@ -178,7 +178,13 @@ public class InfoCommand implements TabExecutor {
"next_rank",
};
for (String placeholder : placeholders) {
sender.sendMessage(placeholder + ": " + plugin.getPlaceholders().getExpansion().placeholder(sender instanceof Player ? (Player) sender : null, placeholder));
String result;
try {
result = plugin.getPlaceholders().getExpansion().placeholder(sender instanceof Player ? (Player) sender : null, placeholder);
} catch (Exception e) {
result = e.getClass().getSimpleName() + ", " + e.getMessage();
}
sender.sendMessage(placeholder + ": " + result);
}
return true;
} else if (args[0].equalsIgnoreCase("tree") && sender.hasPermission("rankup.admin")) {
@@ -120,9 +120,9 @@ public class RankupExpansion implements Expansion {
case "money_formatted":
return plugin.formatMoney(getMoney(player, rank).doubleValue());
case "money_left":
return String.valueOf(Math.max(0, orElse(rank, r -> simplify(plugin.getEconomy().getBalance(player) - r.getRequirement(player, "money").getValueDouble()), 0).doubleValue()));
return String.valueOf(Math.max(0, orElse(rank, r -> simplify(r.getRequirement(player, "money").getValueDouble() - plugin.getEconomy().getBalance(player)), 0).doubleValue()));
case "money_left_formatted":
return plugin.formatMoney(Math.max(0D, orElse(rank, r -> plugin.getEconomy().getBalance(player) - r.getRequirement(player, "money").getValueDouble(), 0D)));
return plugin.formatMoney(Math.max(0D, orElse(rank, r -> r.getRequirement(player, "money").getValueDouble() - plugin.getEconomy().getBalance(player), 0D)));
case "percent_left":
return String.valueOf(Math.max(0D, orElse(rank, r -> (1 - (plugin.getEconomy().getBalance(player) / r.getRequirement(player, "money").getValueDouble())) * 100, 0).doubleValue()));
case "percent_left_formatted":
@@ -0,0 +1,35 @@
package sh.okx.rankup;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import be.seeseemelk.mockbukkit.entity.PlayerMock;
import org.junit.Test;
public class RankupCommandTest extends RankupTest {
@Test
public void testPlaceholders() {
// placeholders command should never throw an exception
PlayerMock player = server.addPlayer();
player.addAttachment(plugin, "rankup.admin", true);
plugin.getCommand("rankup3").execute(player, "pru", new String[] {"placeholders"});
player.assertSaid("--- Rankup placeholders ---");
}
@Test
public void testForce() {
// forcing rankup should change group and not affect money
PlayerMock player = server.addPlayer();
player.addAttachment(plugin, "rankup.force", true);
plugin.getEconomy().setPlayer(player, 11);
groupProvider.addGroup(player.getUniqueId(), "A");
plugin.getCommand("rankup3").execute(player, "pru", new String[] {"forcerankup", player.getName()});
assertTrue(groupProvider.inGroup(player.getUniqueId(), "B"));
assertEquals(11, plugin.getEconomy().getBalance(player), 0.0001);
}
}
@@ -1,11 +1,11 @@
package sh.okx.rankup;
import static org.junit.Assert.assertEquals;
import be.seeseemelk.mockbukkit.entity.PlayerMock;
import org.junit.Test;
import sh.okx.rankup.placeholders.RankupExpansion;
import static org.junit.Assert.assertEquals;
public class RankupPlaceholderTest extends RankupTest {
@Test
public void testCurrentRank() {
@@ -52,4 +52,24 @@ public class RankupPlaceholderTest extends RankupTest {
RankupExpansion expansion = plugin.getPlaceholders().getExpansion();
assertEquals("Incomplete", expansion.placeholder(player, "status_b"));
}
@Test
public void testMoneyLeft() {
PlayerMock player = server.addPlayer();
groupProvider.addGroup(player.getUniqueId(), "A");
plugin.getEconomy().setPlayer(player, 900);
RankupExpansion expansion = plugin.getPlaceholders().getExpansion();
assertEquals("100.0", expansion.placeholder(player, "money_left"));
}
@Test
public void testMoney() {
PlayerMock player = server.addPlayer();
groupProvider.addGroup(player.getUniqueId(), "A");
plugin.getEconomy().setPlayer(player, 900);
RankupExpansion expansion = plugin.getPlaceholders().getExpansion();
assertEquals("1000", expansion.placeholder(player, "money"));
}
}