Minestom/src/test/java/net/minestom/server/item/ItemAttributeTest.java

50 lines
1.7 KiB
Java

package net.minestom.server.item;
import net.minestom.server.attribute.Attribute;
import net.minestom.server.attribute.AttributeOperation;
import net.minestom.server.item.attribute.AttributeSlot;
import net.minestom.server.item.attribute.ItemAttribute;
import org.junit.jupiter.api.Test;
import java.util.List;
import java.util.UUID;
import static net.minestom.testing.TestUtils.assertEqualsSNBT;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class ItemAttributeTest {
@Test
public void attribute() {
var attributes = List.of(new ItemAttribute(
new UUID(0, 0), "generic.attack_damage", Attribute.ATTACK_DAMAGE,
AttributeOperation.ADDITION, 2, AttributeSlot.MAINHAND));
var item = ItemStack.builder(Material.STICK)
.meta(builder -> builder.attributes(attributes))
.build();
assertEquals(attributes, item.meta().getAttributes());
}
@Test
public void attributeNbt() {
var item = ItemStack.builder(Material.STICK)
.meta(builder -> builder.attributes(
List.of(new ItemAttribute(
new UUID(0, 0), "generic.attack_damage", Attribute.ATTACK_DAMAGE,
AttributeOperation.ADDITION, 2, AttributeSlot.MAINHAND))))
.build();
assertEqualsSNBT("""
{"AttributeModifiers":[
{
"Amount":2.0D,
"UUID":[I;0,0,0,0],
"Slot":"mainhand",
"Operation":0,
"AttributeName":"generic.attack_damage",
"Name":"generic.attack_damage"
}
]}
""", item.meta().toNBT());
}
}