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.
* 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
*/
@ -34,7 +34,9 @@ public class AnvilRecipeBuilder {
this.name = name;
this.exactCount = true;
this.levelCostPerCraft = 1;
this.levelCostPerCraft = 0;
this.linearXpCostPerCraft = 0;
this.removeExactLinearXp = false;
this.leftItem = 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>
* 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.
@ -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
* @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
*/

View file

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