change api recipe default cost

also update api recipe builder unit test
This commit is contained in:
alexcrea 2025-07-05 04:05:06 +02:00
parent b6f5c7b7a1
commit 6078136a80
Signed by: alexcrea
GPG key ID: E346CD16413450E3
2 changed files with 38 additions and 14 deletions

View file

@ -26,7 +26,7 @@ public class AnvilRecipeBuilder {
/** /**
* Instantiates a new Anvil recipe builder. * Instantiates a new Anvil recipe builder.
* exact count default to true. * exact count default to true.
* xp cost per craft default to 1. * xp level and linear cost per craft default to 0.
* *
* @param name The recipe name * @param name The recipe name
*/ */
@ -34,7 +34,9 @@ public class AnvilRecipeBuilder {
this.name = name; this.name = name;
this.exactCount = true; this.exactCount = true;
this.levelCostPerCraft = 1; this.levelCostPerCraft = 0;
this.linearXpCostPerCraft = 0;
this.removeExactLinearXp = false;
this.leftItem = null; this.leftItem = null;
this.rightItem = null; this.rightItem = null;
@ -63,7 +65,7 @@ public class AnvilRecipeBuilder {
} }
/** /**
* Get if the recipe is exact count. * Get if the recipe is exact count. (default 0)
* <p> * <p>
* Exact count mean the recipe can only be crafted 1 by 1. * Exact count mean the recipe can only be crafted 1 by 1.
* If set to false, then it will craft as much as possible in 1 go and will keep unused material onto the anvil inventory. * If set to false, then it will craft as much as possible in 1 go and will keep unused material onto the anvil inventory.
@ -89,7 +91,7 @@ public class AnvilRecipeBuilder {
} }
/** /**
* Get the xp level cost per craft. * Get the xp level cost per craft. (default 0)
* *
* @return The xp level cost per craft * @return The xp level cost per craft
* @deprecated use {@link #getLevelCostPerCraft() getLevelCostPerCraft} instead * @deprecated use {@link #getLevelCostPerCraft() getLevelCostPerCraft} instead
@ -112,7 +114,7 @@ public class AnvilRecipeBuilder {
} }
/** /**
* Get the xp level cost per craft. * Get the xp level cost per craft. (default 0)
* *
* @return The xp level cost per craft * @return The xp level cost per craft
*/ */

View file

@ -12,10 +12,15 @@ import static org.junit.jupiter.api.Assertions.*;
public class AnvilRecipeBuilderTest extends SharedOnlyMockBukkit { public class AnvilRecipeBuilderTest extends SharedOnlyMockBukkit {
private AnvilRecipeBuilder builder; private AnvilRecipeBuilder builder;
private AnvilRecipeBuilder builder2;
@BeforeEach @BeforeEach
public void setup() { public void setup() {
builder = new AnvilRecipeBuilder("test"); builder = new AnvilRecipeBuilder("test");
builder2 = new AnvilRecipeBuilder("test");
builder2.setLeftItem(new ItemStack(Material.STICK));
builder2.setResultItem(new ItemStack(Material.STICK));
} }
@Test @Test
@ -38,6 +43,7 @@ public class AnvilRecipeBuilderTest extends SharedOnlyMockBukkit {
.setResultItem(new ItemStack(Material.STICK)); .setResultItem(new ItemStack(Material.STICK));
assertNotNull(builder.build()); assertNotNull(builder.build());
assertNotNull(builder2.build());
} }
@Test @Test
@ -63,23 +69,39 @@ public class AnvilRecipeBuilderTest extends SharedOnlyMockBukkit {
@Test @Test
void setXpCostPerCraft(){ void setXpCostPerCraft(){
assertEquals(1, builder.getLevelCostPerCraft()); assertEquals(0, builder2.getLevelCostPerCraft());
builder.setLevelCostPerCraft(2); assertEquals(0, builder2.build().getLevelCostPerCraft());
assertEquals(2, builder.getLevelCostPerCraft()); builder2.setLevelCostPerCraft(2);
assertEquals(2, builder2.getLevelCostPerCraft());
assertEquals(2, builder2.build().getLevelCostPerCraft());
} }
@Test
void setLinearXpCostPerCraft(){
assertEquals(0, builder2.getLinearXpCostPerCraft());
assertEquals(0, builder2.build().getXpCostPerCraft());
builder2.setLinearXpCostPerCraft(2);
assertEquals(2, builder2.getLinearXpCostPerCraft());
assertEquals(2, builder2.build().getXpCostPerCraft());
}
@Test @Test
void setExactCount(){ void setExactCount(){
assertTrue(builder.isExactCount()); assertTrue(builder2.isExactCount());
builder.setExactCount(false); assertTrue(builder2.build().getExactCount());
assertFalse(builder.isExactCount()); builder2.setExactCount(false);
assertFalse(builder2.isExactCount());
assertFalse(builder2.build().getExactCount());
} }
@Test @Test
void setName(){ void setName(){
assertEquals("test", builder.getName()); assertEquals("test", builder2.getName());
builder.setName("other"); assertEquals("test", builder2.build().getName());
assertEquals("other", builder.getName()); builder2.setName("other");
assertEquals("other", builder2.getName());
assertEquals("other", builder2.build().getName());
} }
} }