SPIGOT-5516: Correct EnchantmentTarget values

This commit is contained in:
md_5 2020-01-15 14:20:14 +11:00
parent 01334e7dcb
commit ec4b2b5ef1

View File

@ -0,0 +1,41 @@
package org.bukkit.enchantments;
import net.minecraft.server.EnchantmentSlotType;
import net.minecraft.server.IRegistry;
import net.minecraft.server.Item;
import org.bukkit.Material;
import org.bukkit.craftbukkit.util.CraftMagicNumbers;
import org.junit.Assert;
import org.junit.Test;
public class EnchantmentTargetTest {
@Test
public void test() {
for (EnchantmentSlotType nmsSlot : EnchantmentSlotType.values()) {
EnchantmentTarget bukkitTarget;
switch (nmsSlot) {
case ARMOR_CHEST:
bukkitTarget = EnchantmentTarget.ARMOR_TORSO;
break;
case DIGGER:
bukkitTarget = EnchantmentTarget.TOOL;
break;
default:
bukkitTarget = EnchantmentTarget.valueOf(nmsSlot.name());
break;
}
Assert.assertNotNull("No bukkit target for slot " + nmsSlot, bukkitTarget);
for (Item item : IRegistry.ITEM) {
Material material = CraftMagicNumbers.getMaterial(item);
boolean nms = nmsSlot.canEnchant(item);
boolean bukkit = bukkitTarget.includes(material);
Assert.assertEquals("Slot mismatch for " + bukkitTarget + " and " + material, nms, bukkit);
}
}
}
}