Updates Spigot, and fixes depreciated code
All checks were successful
EpicKnarvik97/Blacksmith/pipeline/head This commit looks good

This commit is contained in:
2024-05-04 02:46:46 +02:00
parent 44f8bb36b0
commit 7e5525bd00
13 changed files with 38 additions and 338 deletions

View File

@ -1,39 +0,0 @@
package net.knarcraft.blacksmith;
import be.seeseemelk.mockbukkit.ServerMock;
import org.bukkit.Material;
import org.bukkit.NamespacedKey;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.Recipe;
import org.bukkit.inventory.ShapedRecipe;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;
/**
* A custom server mock specifically for making the SalvageHelperTest work
*/
public class CustomServerMock extends ServerMock {
@Override
@NotNull
public List<Recipe> getRecipesFor(@NotNull ItemStack itemStack) {
List<Recipe> validRecipes = new ArrayList<>();
if (itemStack.getType() == Material.DIAMOND_PICKAXE) {
ShapedRecipe recipe = new ShapedRecipe(NamespacedKey.minecraft("diamond_pickaxe"), itemStack);
recipe.shape("ddd", "asa", "asa");
recipe.setIngredient('d', Material.DIAMOND);
recipe.setIngredient('s', Material.STICK);
validRecipes.add(recipe);
} else if (itemStack.getType() == Material.TNT) {
ShapedRecipe recipe = new ShapedRecipe(NamespacedKey.minecraft("tnt"), itemStack);
recipe.shape("gsg", "sgs", "gsg");
recipe.setIngredient('g', Material.GUNPOWDER);
recipe.setIngredient('s', Material.SAND);
validRecipes.add(recipe);
}
return validRecipes;
}
}

View File

@ -1,15 +1,10 @@
package net.knarcraft.blacksmith.util;
import be.seeseemelk.mockbukkit.enchantments.EnchantmentMock;
import org.bukkit.Material;
import org.bukkit.NamespacedKey;
import org.bukkit.enchantments.Enchantment;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
@ -18,16 +13,6 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
*/
public class InputParsingHelperTest {
private static Enchantment curseOfBinding;
@BeforeAll
public static void setUp() {
//Note: When not testing against a real server, no default enchantments are loaded!
curseOfBinding = new EnchantmentMock(NamespacedKey.minecraft("binding_curse"),
"CURSE_OF_BINDING");
Enchantment.registerEnchantment(curseOfBinding);
}
@Test
public void isEmptyTrueTest() {
assertTrue(InputParsingHelper.isEmpty(null));
@ -71,28 +56,6 @@ public class InputParsingHelperTest {
assertNull(InputParsingHelper.matchMaterial("minecraft: golden-BOOTS"));
}
@Test
public void matchEnchantmentValidTest() {
for (Enchantment enchantment : Enchantment.values()) {
assertEquals(enchantment, InputParsingHelper.matchEnchantment(enchantment.getKey().getKey()));
}
assertEquals(curseOfBinding, InputParsingHelper.matchEnchantment("binding_curse"));
assertEquals(curseOfBinding, InputParsingHelper.matchEnchantment("binding-curse"));
assertEquals(curseOfBinding, InputParsingHelper.matchEnchantment("binding curse"));
assertEquals(curseOfBinding, InputParsingHelper.matchEnchantment("BINDING curse"));
}
@Test
public void matchEnchantmentInvalidTest() {
for (Enchantment enchantment : Enchantment.values()) {
assertEquals(enchantment, InputParsingHelper.matchEnchantment(enchantment.getKey().getKey()));
}
assertNotEquals(curseOfBinding, InputParsingHelper.matchEnchantment("bonding_curse"));
assertNotEquals(curseOfBinding, InputParsingHelper.matchEnchantment("binding curse"));
assertNotEquals(curseOfBinding, InputParsingHelper.matchEnchantment(" BINDING curse"));
assertNotEquals(curseOfBinding, InputParsingHelper.matchEnchantment("binding:curse"));
}
@Test
public void regExIfyTest() {
assertEquals("NO REGEX HERE", InputParsingHelper.regExIfy("no regEx here"));

View File

@ -1,16 +1,8 @@
package net.knarcraft.blacksmith.util;
import be.seeseemelk.mockbukkit.MockBukkit;
import net.knarcraft.blacksmith.CustomServerMock;
import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import java.util.List;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
@ -19,80 +11,6 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
*/
public class ItemHelperTest {
@BeforeAll
public static void setUp() {
MockBukkit.mock(new CustomServerMock());
}
@AfterAll
public static void tearDown() {
MockBukkit.unmock();
}
@Test
public void isRepairableTest() {
for (Material material : Material.values()) {
String name = material.name();
if (name.endsWith("_SWORD") || name.endsWith("_PICKAXE") || name.endsWith("_AXE") ||
name.endsWith("_HOE") || name.endsWith("_SHOVEL") || name.endsWith("_CHESTPLATE") ||
name.endsWith("_HELMET") || name.equals("ELYTRA") || name.endsWith("BOW") ||
name.endsWith("_LEGGINGS") || name.endsWith("_BOOTS") || name.equals("TRIDENT") ||
name.equals("FISHING_ROD") || name.equals("FLINT_AND_STEEL") || name.equals("SHEARS")) {
assertTrue(ItemHelper.isRepairable(new ItemStack(material, 1)));
}
}
assertFalse(ItemHelper.isRepairable(new ItemStack(Material.POTATO, 1)));
assertFalse(ItemHelper.isRepairable(new ItemStack(Material.DIRT, 1)));
}
@Test
public void getMaxDurabilityTest() {
assertEquals(1561, ItemHelper.getMaxDurability(new ItemStack(Material.DIAMOND_PICKAXE, 1)));
assertEquals(0, ItemHelper.getMaxDurability(new ItemStack(Material.POTATO, 1)));
}
@Test
public void updateAndGetDamageTest() {
for (Material material : Material.values()) {
//A lot of items seem to have weird metadata which isn't mocked properly. Therefore, this test is limited.
if (!material.name().endsWith("_PICKAXE")) {
continue;
}
ItemStack itemStack = new ItemStack(material, 1);
assertEquals(0, ItemHelper.getDamage(itemStack));
ItemHelper.updateDamage(itemStack, 3);
assertEquals(3, ItemHelper.getDamage(itemStack));
}
}
@Test
public void getDurabilityTest() {
for (Material material : Material.values()) {
ItemStack itemStack = new ItemStack(material, 1);
assertEquals(ItemHelper.getMaxDurability(itemStack), ItemHelper.getDurability(itemStack));
}
for (Material material : Material.values()) {
//A lot of items seem to have weird metadata which isn't mocked properly. Therefore, this test is limited.
if (!material.name().endsWith("_PICKAXE")) {
continue;
}
ItemStack itemStack = new ItemStack(material, 1);
ItemHelper.updateDamage(itemStack, 100);
assertEquals(ItemHelper.getMaxDurability(itemStack) - 100, ItemHelper.getDurability(itemStack));
}
}
@Test
public void getAllReforgeAbleMaterialsTest() {
List<Material> materials = ItemHelper.getAllReforgeAbleMaterials();
assertFalse(materials.isEmpty());
for (Material material : materials) {
assertTrue(ItemHelper.getMaxDurability(new ItemStack(material, 1)) > 0);
}
}
@Test
public void isAnvilRequiresDamagedTest() {
assertTrue(ItemHelper.isAnvil(Material.DAMAGED_ANVIL, true));

View File

@ -1,123 +0,0 @@
package net.knarcraft.blacksmith.util;
import be.seeseemelk.mockbukkit.MockBukkit;
import net.knarcraft.blacksmith.CustomServerMock;
import org.bukkit.Material;
import org.bukkit.Server;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.Damageable;
import org.bukkit.inventory.meta.ItemMeta;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.fail;
/**
* A test class to test salvaging
*/
public class SalvageHelperTest {
private static Server server;
@BeforeAll
public static void setUp() {
server = MockBukkit.mock(new CustomServerMock());
}
@AfterAll
public static void tearDown() {
MockBukkit.unmock();
}
@Test
public void getNullForInvalidItemTest() {
//Assert that a non-reforge-able item will return null
assertNull(SalvageHelper.getSalvage(server, new ItemStack(Material.POTATO, 1), new ArrayList<>(), false));
}
@Test
public void getNullForLessThanOneItemTest() {
//Assert that 0 or 1 items will return null
assertNull(SalvageHelper.getSalvage(server, new ItemStack(Material.IRON_AXE, 0), new ArrayList<>(), false));
assertNull(SalvageHelper.getSalvage(server, new ItemStack(Material.IRON_SWORD, -1), new ArrayList<>(), false));
}
@Test
public void getFullSalvageTest() {
Set<ItemStack> expectedSalvage = new HashSet<>();
expectedSalvage.add(new ItemStack(Material.DIAMOND, 3));
expectedSalvage.add(new ItemStack(Material.STICK, 2));
ItemStack itemToSalvage = new ItemStack(Material.DIAMOND_PICKAXE, 1);
//Note: Conversion to sets makes sure the order doesn't matter
List<ItemStack> salvage = SalvageHelper.getSalvage(server, itemToSalvage, new ArrayList<>(), false);
if (salvage == null) {
fail();
} else {
assertEquals(expectedSalvage, new HashSet<>(salvage));
}
}
@Test
public void getExtendedSalvageTest() {
Set<ItemStack> expectedSalvage = new HashSet<>();
expectedSalvage.add(new ItemStack(Material.GUNPOWDER, 5));
expectedSalvage.add(new ItemStack(Material.SAND, 4));
ItemStack itemToSalvage = new ItemStack(Material.TNT, 1);
//Note: Conversion to sets makes sure the order doesn't matter
List<ItemStack> salvage = SalvageHelper.getSalvage(server, itemToSalvage, new ArrayList<>(), true);
if (salvage == null) {
fail();
} else {
assertEquals(expectedSalvage, new HashSet<>(salvage));
}
}
@Test
public void getNonFullSalvageTest() {
List<ItemStack> expectedSalvage = new ArrayList<>();
expectedSalvage.add(new ItemStack(Material.DIAMOND, 3));
expectedSalvage.add(new ItemStack(Material.STICK, 2));
ItemStack itemToSalvage = new ItemStack(Material.DIAMOND_PICKAXE, 1);
ItemMeta meta = itemToSalvage.getItemMeta();
Damageable damageable = (Damageable) meta;
if (damageable != null) {
damageable.setDamage(100);
}
itemToSalvage.setItemMeta(meta);
List<ItemStack> salvage = SalvageHelper.getSalvage(server, itemToSalvage, new ArrayList<>(), false);
//Assert that some items are given
assertNotEquals(salvage, new ArrayList<>());
//Assert that a damaged item won't give full salvage
assertNotEquals(expectedSalvage, salvage);
}
@Test
public void ignoredSalvageTest() {
List<ItemStack> expectedSalvage = new ArrayList<>();
expectedSalvage.add(new ItemStack(Material.DIAMOND, 2));
ItemStack itemToSalvage = new ItemStack(Material.DIAMOND_PICKAXE, 1);
List<Material> ignoredSalvage = new ArrayList<>();
ignoredSalvage.add(Material.STICK);
ItemMeta meta = itemToSalvage.getItemMeta();
Damageable damageable = (Damageable) meta;
if (damageable != null) {
damageable.setDamage(100);
}
itemToSalvage.setItemMeta(meta);
List<ItemStack> salvage = SalvageHelper.getSalvage(server, itemToSalvage, ignoredSalvage, false);
//Assert that some items are given
assertNotEquals(salvage, new ArrayList<>());
//Assert that a damaged diamond pickaxe with sticks ignored returns 2 diamonds a salvage
assertEquals(expectedSalvage, salvage);
}
}

View File

@ -1,11 +1,7 @@
package net.knarcraft.blacksmith.util;
import be.seeseemelk.mockbukkit.enchantments.EnchantmentMock;
import net.knarcraft.blacksmith.config.SettingValueType;
import org.bukkit.Material;
import org.bukkit.NamespacedKey;
import org.bukkit.enchantments.Enchantment;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import java.util.ArrayList;
@ -19,16 +15,6 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
*/
public class TypeValidatorHelperTest {
private static Enchantment infinity;
@BeforeAll
public static void setUp() {
//Note: When not testing against a real server, no default enchantments are loaded!
infinity = new EnchantmentMock(NamespacedKey.minecraft("arrow_infinite"),
"INFINITY");
Enchantment.registerEnchantment(infinity);
}
@Test
public void isValidPositiveDoubleValidTest() {
SettingValueType type = SettingValueType.POSITIVE_DOUBLE;
@ -152,18 +138,9 @@ public class TypeValidatorHelperTest {
assertFalse(TypeValidationHelper.isValid(type, true, null));
}
@Test
public void isValidEnchantmentValidTest() {
SettingValueType type = SettingValueType.ENCHANTMENT;
assertTrue(TypeValidationHelper.isValid(type, infinity, null));
assertTrue(TypeValidationHelper.isValid(type, "arrow_infinite", null));
}
@Test
public void isValidEnchantmentInvalidTest() {
SettingValueType type = SettingValueType.ENCHANTMENT;
assertFalse(TypeValidationHelper.isValid(type, "potato", null));
assertFalse(TypeValidationHelper.isValid(type, 7675, null));
assertFalse(TypeValidationHelper.isValid(type, null, null));
}