mirror of
https://github.com/alexcrea/CustomAnvil.git
synced 2026-06-23 16:16:17 +02:00
Add and fix expected price for tests
todo add test for handling work penalty
This commit is contained in:
parent
79f05d0f82
commit
335bca0335
7 changed files with 47 additions and 44 deletions
|
|
@ -142,15 +142,16 @@ class PrepareAnvilListener : Listener {
|
||||||
|
|
||||||
// Rename item and add renaming cost
|
// Rename item and add renaming cost
|
||||||
resultItem.itemMeta?.let {
|
resultItem.itemMeta?.let {
|
||||||
val displayName =
|
val hasDisplayName = it.hasDisplayName()
|
||||||
if (useColor) it.displayName
|
val displayName = if (!hasDisplayName) null
|
||||||
else ChatColor.stripColor(it.displayName)
|
else if (useColor) it.displayName
|
||||||
|
else ChatColor.stripColor(it.displayName)
|
||||||
|
|
||||||
if (!displayName.contentEquals(inventoryName)) {
|
if (!displayName.contentEquals(inventoryName)) {
|
||||||
it.setDisplayName(inventoryName)
|
it.setDisplayName(inventoryName)
|
||||||
resultItem.itemMeta = it
|
resultItem.itemMeta = it
|
||||||
|
|
||||||
sumCost+= ConfigOptions.itemRenameCost
|
sumCost += ConfigOptions.itemRenameCost
|
||||||
}
|
}
|
||||||
|
|
||||||
return sumCost
|
return sumCost
|
||||||
|
|
|
||||||
|
|
@ -45,35 +45,42 @@ object AnvilXpUtil {
|
||||||
anvilCost
|
anvilCost
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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
|
||||||
|
// TODO for 2.x.x use anvil view & set directly there
|
||||||
|
|
||||||
/* Because Minecraft likes to have the final say in the repair cost displayed
|
/* 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 need to wait for the event to end before overriding it, this ensures that
|
||||||
* we have the final say in the process. */
|
* we have the final say in the process. */
|
||||||
DependencyManager.scheduler.scheduleOnEntity(
|
DependencyManager.scheduler.scheduleOnEntity(
|
||||||
CustomAnvil.instance, player,
|
CustomAnvil.instance, player
|
||||||
Runnable {
|
) {
|
||||||
inventory.maximumRepairCost =
|
// retry after a tick
|
||||||
if (ConfigOptions.doRemoveCostLimit || ignoreRules) {
|
inventory.maximumRepairCost = maximumRepairCost
|
||||||
Int.MAX_VALUE
|
inventory.repairCost = finalAnvilCost
|
||||||
} else {
|
// TODO for 2.x.x use anvil view & set directly there
|
||||||
ConfigOptions.maxAnvilCost + 1
|
|
||||||
}
|
|
||||||
|
|
||||||
inventory.repairCost = finalAnvilCost
|
if (player !is Player) return@scheduleOnEntity
|
||||||
view.setProperty(REPAIR_COST, finalAnvilCost)
|
|
||||||
player.openInventory.setProperty(REPAIR_COST, finalAnvilCost)
|
|
||||||
|
|
||||||
if (player is Player) {
|
if (player.gameMode != GameMode.CREATIVE) {
|
||||||
if (player.gameMode != GameMode.CREATIVE) {
|
val bypassToExpensive = (ConfigOptions.doReplaceTooExpensive) &&
|
||||||
val bypassToExpensive = (ConfigOptions.doReplaceTooExpensive) &&
|
(finalAnvilCost >= 40) &&
|
||||||
(finalAnvilCost >= 40) &&
|
finalAnvilCost < inventory.maximumRepairCost
|
||||||
finalAnvilCost < inventory.maximumRepairCost
|
|
||||||
|
|
||||||
DependencyManager.packetManager.setInstantBuild(player, bypassToExpensive)
|
DependencyManager.packetManager.setInstantBuild(player, bypassToExpensive)
|
||||||
}
|
}
|
||||||
|
|
||||||
player.updateInventory()
|
player.updateInventory()
|
||||||
}
|
|
||||||
})
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -64,8 +64,8 @@ public class AnvilFuseTests extends SharedCustomAnvilTest {
|
||||||
|
|
||||||
AnvilFuseTestData data = new AnvilFuseTestData(
|
AnvilFuseTestData data = new AnvilFuseTestData(
|
||||||
sharpness4, sharpness4,
|
sharpness4, sharpness4,
|
||||||
sharpness5Result
|
sharpness5Result,
|
||||||
// TODO add expected price
|
5
|
||||||
);
|
);
|
||||||
|
|
||||||
AnvilFuseTestUtil.executeAnvilTest(anvil, player, data);
|
AnvilFuseTestUtil.executeAnvilTest(anvil, player, data);
|
||||||
|
|
@ -84,8 +84,8 @@ public class AnvilFuseTests extends SharedCustomAnvilTest {
|
||||||
|
|
||||||
AnvilFuseTestData data = new AnvilFuseTestData(
|
AnvilFuseTestData data = new AnvilFuseTestData(
|
||||||
sharpness4, sharpness5,
|
sharpness4, sharpness5,
|
||||||
sharpness5Result
|
sharpness5Result,
|
||||||
// TODO add expected price
|
5
|
||||||
);
|
);
|
||||||
|
|
||||||
AnvilFuseTestUtil.executeAnvilTest(anvil, player, data);
|
AnvilFuseTestUtil.executeAnvilTest(anvil, player, data);
|
||||||
|
|
@ -117,8 +117,8 @@ public class AnvilFuseTests extends SharedCustomAnvilTest {
|
||||||
|
|
||||||
AnvilFuseTestData data = new AnvilFuseTestData(
|
AnvilFuseTestData data = new AnvilFuseTestData(
|
||||||
base, null,
|
base, null,
|
||||||
expected, expected, null
|
expected, expected, null,
|
||||||
// TODO add expected price
|
1, 1, null
|
||||||
);
|
);
|
||||||
|
|
||||||
AnvilFuseTestUtil.executeAnvilTest(anvil, player, data);
|
AnvilFuseTestUtil.executeAnvilTest(anvil, player, data);
|
||||||
|
|
|
||||||
|
|
@ -64,8 +64,7 @@ public class ConflictApiTests extends ConfigResetCustomAnvilTest {
|
||||||
AnvilFuseTestData legalResultData = new AnvilFuseTestData(
|
AnvilFuseTestData legalResultData = new AnvilFuseTestData(
|
||||||
sharpness1, arthropods1,
|
sharpness1, arthropods1,
|
||||||
illegalResult,
|
illegalResult,
|
||||||
// TODO add expected price
|
2
|
||||||
null
|
|
||||||
);
|
);
|
||||||
|
|
||||||
CAEnchantment sharpness = EnchantmentApi.getByKey(Enchantment.SHARPNESS.getKey());
|
CAEnchantment sharpness = EnchantmentApi.getByKey(Enchantment.SHARPNESS.getKey());
|
||||||
|
|
|
||||||
|
|
@ -52,8 +52,7 @@ public class CustomAnvilRecipeApiTests extends ConfigResetCustomAnvilTest {
|
||||||
AnvilFuseTestData legalResultData = new AnvilFuseTestData(
|
AnvilFuseTestData legalResultData = new AnvilFuseTestData(
|
||||||
stick, stick,
|
stick, stick,
|
||||||
null, stick, null,
|
null, stick, null,
|
||||||
// TODO add expected price
|
2,
|
||||||
null,
|
|
||||||
null, null
|
null, null
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -109,16 +108,14 @@ public class CustomAnvilRecipeApiTests extends ConfigResetCustomAnvilTest {
|
||||||
AnvilFuseTestData legalResultData1 = new AnvilFuseTestData(
|
AnvilFuseTestData legalResultData1 = new AnvilFuseTestData(
|
||||||
stick, stick,
|
stick, stick,
|
||||||
null, stick2, null,
|
null, stick2, null,
|
||||||
// TODO add expected price
|
2,
|
||||||
null,
|
|
||||||
null, null
|
null, null
|
||||||
);
|
);
|
||||||
|
|
||||||
AnvilFuseTestData legalResultData2 = new AnvilFuseTestData(
|
AnvilFuseTestData legalResultData2 = new AnvilFuseTestData(
|
||||||
stick5, stick,
|
stick5, stick,
|
||||||
null, stick10, null,
|
null, stick10, null,
|
||||||
// TODO add expected price
|
10, // 2 * 5
|
||||||
null,
|
|
||||||
null, null
|
null, null
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -55,8 +55,7 @@ public class UnitRepairApiTests extends ConfigResetCustomAnvilTest {
|
||||||
AnvilFuseTestData legalResultData = new AnvilFuseTestData(
|
AnvilFuseTestData legalResultData = new AnvilFuseTestData(
|
||||||
damagedPickaxe, diamond2,
|
damagedPickaxe, diamond2,
|
||||||
resultPickaxe,
|
resultPickaxe,
|
||||||
// TODO add expected price
|
2
|
||||||
null
|
|
||||||
);
|
);
|
||||||
|
|
||||||
AnvilFuseTestUtil.executeAnvilTest(anvil, player, legalResultData);
|
AnvilFuseTestUtil.executeAnvilTest(anvil, player, legalResultData);
|
||||||
|
|
@ -105,8 +104,7 @@ public class UnitRepairApiTests extends ConfigResetCustomAnvilTest {
|
||||||
AnvilFuseTestData legalResultData = new AnvilFuseTestData(
|
AnvilFuseTestData legalResultData = new AnvilFuseTestData(
|
||||||
damagedPickaxe, stick2,
|
damagedPickaxe, stick2,
|
||||||
resultPickaxe,
|
resultPickaxe,
|
||||||
// TODO add expected price
|
2
|
||||||
null
|
|
||||||
);
|
);
|
||||||
|
|
||||||
AnvilFuseTestUtil.executeAnvilTest(anvil, player, nullResultData);
|
AnvilFuseTestUtil.executeAnvilTest(anvil, player, nullResultData);
|
||||||
|
|
|
||||||
|
|
@ -136,6 +136,7 @@ public class AnvilFuseTestUtil {
|
||||||
|
|
||||||
ItemStack result = anvil.getItem(2);
|
ItemStack result = anvil.getItem(2);
|
||||||
assertEqual(expectedResult, result);
|
assertEqual(expectedResult, result);
|
||||||
|
|
||||||
assertPriceEqual(expectedPrice, anvil.getRepairCost());
|
assertPriceEqual(expectedPrice, anvil.getRepairCost());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -158,7 +159,7 @@ public class AnvilFuseTestUtil {
|
||||||
|
|
||||||
public static void assertPriceEqual(Integer expectedPrice, int price){
|
public static void assertPriceEqual(Integer expectedPrice, int price){
|
||||||
if(expectedPrice == null) return;
|
if(expectedPrice == null) return;
|
||||||
Assertions.assertEquals(price, expectedPrice);
|
Assertions.assertEquals(expectedPrice, price);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue