Add and fix expected price for tests

todo add test for handling work penalty
This commit is contained in:
alexcrea 2025-03-10 22:59:31 +01:00
parent 79f05d0f82
commit 335bca0335
No known key found for this signature in database
GPG key ID: 43FD265DB0DBF91F
7 changed files with 47 additions and 44 deletions

View file

@ -142,8 +142,9 @@ class PrepareAnvilListener : Listener {
// Rename item and add renaming cost
resultItem.itemMeta?.let {
val displayName =
if (useColor) it.displayName
val hasDisplayName = it.hasDisplayName()
val displayName = if (!hasDisplayName) null
else if (useColor) it.displayName
else ChatColor.stripColor(it.displayName)
if (!displayName.contentEquals(inventoryName)) {

View file

@ -45,24 +45,31 @@ object AnvilXpUtil {
anvilCost
}
/* Because Minecraft likes to have the final say in the repair cost displayed
* we need to wait for the event to end before overriding it, this ensures that
* we have the final say in the process. */
DependencyManager.scheduler.scheduleOnEntity(
CustomAnvil.instance, player,
Runnable {
inventory.maximumRepairCost =
val maximumRepairCost =
if (ConfigOptions.doRemoveCostLimit || ignoreRules) {
Int.MAX_VALUE
} else {
ConfigOptions.maxAnvilCost + 1
}
// Try first just in case another plugin, or the test need this
inventory.maximumRepairCost = maximumRepairCost
inventory.repairCost = finalAnvilCost
view.setProperty(REPAIR_COST, finalAnvilCost)
player.openInventory.setProperty(REPAIR_COST, finalAnvilCost)
// TODO for 2.x.x use anvil view & set directly there
/* Because Minecraft likes to have the final say in the repair cost displayed
* we need to wait for the event to end before overriding it, this ensures that
* we have the final say in the process. */
DependencyManager.scheduler.scheduleOnEntity(
CustomAnvil.instance, player
) {
// retry after a tick
inventory.maximumRepairCost = maximumRepairCost
inventory.repairCost = finalAnvilCost
// TODO for 2.x.x use anvil view & set directly there
if (player !is Player) return@scheduleOnEntity
if (player is Player) {
if (player.gameMode != GameMode.CREATIVE) {
val bypassToExpensive = (ConfigOptions.doReplaceTooExpensive) &&
(finalAnvilCost >= 40) &&
@ -72,8 +79,8 @@ object AnvilXpUtil {
}
player.updateInventory()
}
})
}
/**

View file

@ -64,8 +64,8 @@ public class AnvilFuseTests extends SharedCustomAnvilTest {
AnvilFuseTestData data = new AnvilFuseTestData(
sharpness4, sharpness4,
sharpness5Result
// TODO add expected price
sharpness5Result,
5
);
AnvilFuseTestUtil.executeAnvilTest(anvil, player, data);
@ -84,8 +84,8 @@ public class AnvilFuseTests extends SharedCustomAnvilTest {
AnvilFuseTestData data = new AnvilFuseTestData(
sharpness4, sharpness5,
sharpness5Result
// TODO add expected price
sharpness5Result,
5
);
AnvilFuseTestUtil.executeAnvilTest(anvil, player, data);
@ -117,8 +117,8 @@ public class AnvilFuseTests extends SharedCustomAnvilTest {
AnvilFuseTestData data = new AnvilFuseTestData(
base, null,
expected, expected, null
// TODO add expected price
expected, expected, null,
1, 1, null
);
AnvilFuseTestUtil.executeAnvilTest(anvil, player, data);

View file

@ -64,8 +64,7 @@ public class ConflictApiTests extends ConfigResetCustomAnvilTest {
AnvilFuseTestData legalResultData = new AnvilFuseTestData(
sharpness1, arthropods1,
illegalResult,
// TODO add expected price
null
2
);
CAEnchantment sharpness = EnchantmentApi.getByKey(Enchantment.SHARPNESS.getKey());

View file

@ -52,8 +52,7 @@ public class CustomAnvilRecipeApiTests extends ConfigResetCustomAnvilTest {
AnvilFuseTestData legalResultData = new AnvilFuseTestData(
stick, stick,
null, stick, null,
// TODO add expected price
null,
2,
null, null
);
@ -109,16 +108,14 @@ public class CustomAnvilRecipeApiTests extends ConfigResetCustomAnvilTest {
AnvilFuseTestData legalResultData1 = new AnvilFuseTestData(
stick, stick,
null, stick2, null,
// TODO add expected price
null,
2,
null, null
);
AnvilFuseTestData legalResultData2 = new AnvilFuseTestData(
stick5, stick,
null, stick10, null,
// TODO add expected price
null,
10, // 2 * 5
null, null
);

View file

@ -55,8 +55,7 @@ public class UnitRepairApiTests extends ConfigResetCustomAnvilTest {
AnvilFuseTestData legalResultData = new AnvilFuseTestData(
damagedPickaxe, diamond2,
resultPickaxe,
// TODO add expected price
null
2
);
AnvilFuseTestUtil.executeAnvilTest(anvil, player, legalResultData);
@ -105,8 +104,7 @@ public class UnitRepairApiTests extends ConfigResetCustomAnvilTest {
AnvilFuseTestData legalResultData = new AnvilFuseTestData(
damagedPickaxe, stick2,
resultPickaxe,
// TODO add expected price
null
2
);
AnvilFuseTestUtil.executeAnvilTest(anvil, player, nullResultData);

View file

@ -136,6 +136,7 @@ public class AnvilFuseTestUtil {
ItemStack result = anvil.getItem(2);
assertEqual(expectedResult, result);
assertPriceEqual(expectedPrice, anvil.getRepairCost());
}
@ -158,7 +159,7 @@ public class AnvilFuseTestUtil {
public static void assertPriceEqual(Integer expectedPrice, int price){
if(expectedPrice == null) return;
Assertions.assertEquals(price, expectedPrice);
Assertions.assertEquals(expectedPrice, price);
}
}