Add level limit bypass

This commit is contained in:
alexcrea 2024-11-06 13:15:29 +01:00
parent 304abd89d7
commit 7d8b733cc7
No known key found for this signature in database
GPG key ID: 43FD265DB0DBF91F
2 changed files with 90 additions and 5 deletions

View file

@ -12,14 +12,15 @@ import org.bukkit.permissions.PermissionAttachment;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import xyz.alexcrea.cuanvil.api.EnchantmentApi;
import xyz.alexcrea.cuanvil.config.ConfigHolder;
import xyz.alexcrea.cuanvil.tests.DefaultCustomAnvilTest;
import xyz.alexcrea.cuanvil.tests.ConfigResetCustomAnvilTest;
import xyz.alexcrea.cuanvil.util.AnvilFuseTestData;
import xyz.alexcrea.cuanvil.util.AnvilFuseTestUtil;
import java.util.List;
public class EnchantmentUtilTests extends DefaultCustomAnvilTest {
public class EnchantmentUtilTests extends ConfigResetCustomAnvilTest {
private AnvilInventory anvil;
private PlayerMock player;
@ -47,7 +48,7 @@ public class EnchantmentUtilTests extends DefaultCustomAnvilTest {
Assertions.assertEquals("ca.bypass.fuse", permission, "bypass fuse permission changed. " +
"Caution with that as it will break some server CustomAnvil setup.");
// Create item
// Create ingredient item
ItemStack normalStick = new ItemStackMock(Material.STICK);
ItemStack sharpnessBook = AnvilFuseTestUtil.prepareItem(
Material.ENCHANTED_BOOK,
@ -57,6 +58,7 @@ public class EnchantmentUtilTests extends DefaultCustomAnvilTest {
Material.STICK,
List.of("sharpness"), 1);
// Create result item
ItemStack sharpnessResultStick = AnvilFuseTestUtil.prepareItem(
Material.STICK, 1,
List.of("sharpness"), 1);
@ -64,7 +66,7 @@ public class EnchantmentUtilTests extends DefaultCustomAnvilTest {
Material.STICK, 1,
List.of("sharpness"), 2);
// Create anvil fuse data
// Create failing anvil fuse data
AnvilFuseTestData nullResultData = new AnvilFuseTestData(
normalStick, sharpnessBook,
null
@ -74,6 +76,7 @@ public class EnchantmentUtilTests extends DefaultCustomAnvilTest {
null
);
// Create successful anvil fuse data
AnvilFuseTestData legalResultData = new AnvilFuseTestData(
normalStick, sharpnessBook,
sharpnessResultStick
@ -98,5 +101,85 @@ public class EnchantmentUtilTests extends DefaultCustomAnvilTest {
AnvilFuseTestUtil.executeAnvilTest(anvil, player, legalResultData2);
}
@Test
public void testLeveLimitFuse(){
String permission = CustomAnvil.bypassLevelPermission;
Assertions.assertEquals("ca.bypass.level", permission, "level fuse permission changed. " +
"Caution with that as it will break some server CustomAnvil setup.");
// Create ingredient item
ItemStack sharpness5Sword = AnvilFuseTestUtil.prepareItem(
Material.DIAMOND_SWORD,
List.of("sharpness"), 5);
ItemStack sharpnessBook = AnvilFuseTestUtil.prepareItem(
Material.ENCHANTED_BOOK,
List.of("sharpness"), 1);
ItemStack sharpness5Book = AnvilFuseTestUtil.prepareItem(
Material.ENCHANTED_BOOK,
List.of("sharpness"), 5);
ItemStack sharpness6Book = AnvilFuseTestUtil.prepareItem(
Material.ENCHANTED_BOOK,
List.of("sharpness"), 6);
// Create result item
ItemStack sharpness2BookResult = AnvilFuseTestUtil.prepareItem(
Material.ENCHANTED_BOOK, 1,
List.of("sharpness"), 2);
ItemStack sharpness6SwordResult = AnvilFuseTestUtil.prepareItem(
Material.DIAMOND_SWORD, 1,
List.of("sharpness"), 6);
// Create failing anvil fuse data
AnvilFuseTestData nullResultData = new AnvilFuseTestData(
sharpnessBook, sharpnessBook,
null
);
AnvilFuseTestData nullResultData2 = new AnvilFuseTestData(
sharpness5Sword, sharpness6Book,
null
);
AnvilFuseTestData nullResultData3 = new AnvilFuseTestData(
sharpness5Sword, sharpness5Book,
null
);
// Create successful anvil fuse data
AnvilFuseTestData legalResultData = new AnvilFuseTestData(
sharpnessBook, sharpnessBook,
sharpness2BookResult
// TODO add expected price
);
AnvilFuseTestData legalResultData2 = new AnvilFuseTestData(
sharpness5Sword, sharpness6Book,
sharpness6SwordResult
// TODO add expected price
);
AnvilFuseTestData legalResultData3 = new AnvilFuseTestData(
sharpness5Sword, sharpness5Book,
sharpness6SwordResult
// TODO add expected price
);
// Test failing result first
AnvilFuseTestUtil.executeAnvilTest(anvil, player, nullResultData2);
AnvilFuseTestUtil.executeAnvilTest(anvil, player, nullResultData3);
// Test working sharpness 2
AnvilFuseTestUtil.executeAnvilTest(anvil, player, legalResultData);
// Set merge limit to 2 & test
ConfigHolder.DEFAULT_CONFIG.getConfig().set("disable-merge-over.minecraft:sharpness", 1);
AnvilFuseTestUtil.executeAnvilTest(anvil, player, nullResultData);
// Add permission
PermissionAttachment attachment = player.addAttachment(plugin);
attachment.setPermission(permission, true);
// Test working sharpness 2
AnvilFuseTestUtil.executeAnvilTest(anvil, player, legalResultData);
AnvilFuseTestUtil.executeAnvilTest(anvil, player, legalResultData2);
AnvilFuseTestUtil.executeAnvilTest(anvil, player, legalResultData3);
}
}