Get entity default attributes

== AT ==
public net.minecraft.world.entity.ai.attributes.AttributeSupplier getAttributeInstance(Lnet/minecraft/core/Holder;)Lnet/minecraft/world/entity/ai/attributes/AttributeInstance;
This commit is contained in:
Jake Potrebic
2021-08-20 13:03:21 -07:00
parent 067c4e04bd
commit 4180e72054
4 changed files with 114 additions and 0 deletions

View File

@@ -0,0 +1,40 @@
package io.papermc.paper.attribute;
import org.bukkit.attribute.Attributable;
import org.bukkit.attribute.Attribute;
import org.bukkit.attribute.AttributeInstance;
import org.bukkit.attribute.AttributeModifier;
import org.bukkit.entity.EntityType;
import org.bukkit.support.environment.AllFeatures;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
@AllFeatures
public class EntityTypeAttributesTest {
@Test
public void testIllegalEntity() {
assertFalse(EntityType.EGG.hasDefaultAttributes());
assertThrows(IllegalArgumentException.class, EntityType.EGG::getDefaultAttributes);
}
@Test
public void testLegalEntity() {
assertTrue(EntityType.ZOMBIE.hasDefaultAttributes());
EntityType.ZOMBIE.getDefaultAttributes();
}
@Test
public void testUnmodifiabilityOfAttributable() {
Attributable attributable = EntityType.ZOMBIE.getDefaultAttributes();
assertThrows(UnsupportedOperationException.class, () -> attributable.registerAttribute(Attribute.ATTACK_DAMAGE));
AttributeInstance instance = attributable.getAttribute(Attribute.FOLLOW_RANGE);
assertNotNull(instance);
assertThrows(UnsupportedOperationException.class, () -> instance.addModifier(new AttributeModifier("test", 3, AttributeModifier.Operation.ADD_NUMBER)));
assertThrows(UnsupportedOperationException.class, () -> instance.setBaseValue(3.2));
}
}