fix papi placeholders when using world or placeholder requirements

This commit is contained in:
okx-code
2023-07-25 22:07:28 +01:00
parent 8bf502922d
commit abd4365f20
4 changed files with 38 additions and 4 deletions
+1 -1
View File
@@ -14,7 +14,7 @@ pitest {
}
group 'sh.okx'
version '3.14.1'
version '3.14.2'
java {
sourceCompatibility = JavaVersion.VERSION_1_8
@@ -177,11 +177,11 @@ public class RankupExpansion implements Expansion {
case "left":
return placeholders.getSimpleFormat().format(orElse(requirement, r -> r.getRemaining(player), 0));
case "done":
return placeholders.getSimpleFormat().format(orElse(requirement, r -> r.getValueDouble() - r.getRemaining(player), 0));
return placeholders.getSimpleFormat().format(orElse(requirement, r -> r.getTotal(player) - r.getRemaining(player), 0));
case "percent_left":
return placeholders.getPercentFormat().format(orElse(requirement, r -> (r.getRemaining(player) / r.getValueDouble()) * 100, 0));
return placeholders.getPercentFormat().format(orElse(requirement, r -> (r.getRemaining(player) / r.getTotal(player)) * 100, 0));
case "percent_done":
return placeholders.getPercentFormat().format(orElse(requirement, r -> (1 - (r.getRemaining(player) / r.getValueDouble())) * 100, 100));
return placeholders.getPercentFormat().format(orElse(requirement, r -> (1 - (r.getRemaining(player) / r.getTotal(player))) * 100, 100));
default:
return null;
}
@@ -0,0 +1,29 @@
package sh.okx.rankup;
import be.seeseemelk.mockbukkit.entity.PlayerMock;
import org.bukkit.Location;
import org.junit.jupiter.api.Test;
import sh.okx.rankup.placeholders.RankupExpansion;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class WorldRequirementTest extends RankupTest {
public WorldRequirementTest() {
super("world");
}
@Test
public void testStatusComplete() {
PlayerMock player = server.addPlayer();
groupProvider.addGroup(player.getUniqueId(), "a");
RankupExpansion expansion = plugin.getPlaceholders().getExpansion();
assertEquals("0", expansion.placeholder(player, "requirement_world_percent_done"));
player.teleport(new Location(server.getWorld("the_nether"), 0, 0, 0));
assertEquals("100", expansion.placeholder(player, "requirement_world_percent_done"));
}
}
+5
View File
@@ -0,0 +1,5 @@
a:
rank: 'a'
next: 'b'
requirements:
- 'world the_nether'