aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0662-Get-entity-default-attributes.patch
diff options
context:
space:
mode:
authorJake Potrebic <[email protected]>2023-10-22 12:12:00 -0700
committerGitHub <[email protected]>2023-10-22 20:12:00 +0100
commit90fe0d58a5945c31f2c1b138799f64f2fe3475d8 (patch)
tree57e2a8b12dbe8245ce5694dd15af35dc33c3c4c2 /patches/server/0662-Get-entity-default-attributes.patch
parent489bff9bbdc4215bd2cbc54d837463c608e7747e (diff)
downloadPaper-90fe0d58a5945c31f2c1b138799f64f2fe3475d8.tar.gz
Paper-90fe0d58a5945c31f2c1b138799f64f2fe3475d8.zip
Updated Upstream (Bukkit/CraftBukkit/Spigot) (#9825)
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: 897a0a23 SPIGOT-5753: Back PotionType by a minecraft registry 255b2aa1 SPIGOT-7080: Add World#locateNearestBiome ff984826 Remove javadoc.io doc links CraftBukkit Changes: 71b0135cc SPIGOT-5753: Back PotionType by a minecraft registry a6bcb8489 SPIGOT-7080: Add World#locateNearestBiome ad0e57434 SPIGOT-7502: CraftMetaItem - cannot deserialize BlockStateTag b3efca57a SPIGOT-6400: Use Mockito instead of InvocationHandler 38c599f9d PR-1272: Only allow one entity in CraftItem instead of two f065271ac SPIGOT-7498: ChunkSnapshot.getBlockEmittedLight() gets 64 blocks upper in Overworld Spigot Changes: e0e223fe Remove javadoc.io doc links
Diffstat (limited to 'patches/server/0662-Get-entity-default-attributes.patch')
-rw-r--r--patches/server/0662-Get-entity-default-attributes.patch150
1 files changed, 0 insertions, 150 deletions
diff --git a/patches/server/0662-Get-entity-default-attributes.patch b/patches/server/0662-Get-entity-default-attributes.patch
deleted file mode 100644
index 0b08f57edc..0000000000
--- a/patches/server/0662-Get-entity-default-attributes.patch
+++ /dev/null
@@ -1,150 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Jake Potrebic <[email protected]>
-Date: Fri, 20 Aug 2021 13:03:21 -0700
-Subject: [PATCH] Get entity default attributes
-
-== AT ==
-public net.minecraft.world.entity.ai.attributes.AttributeSupplier getAttributeInstance(Lnet/minecraft/world/entity/ai/attributes/Attribute;)Lnet/minecraft/world/entity/ai/attributes/AttributeInstance;
-
-diff --git a/src/main/java/io/papermc/paper/attribute/UnmodifiableAttributeInstance.java b/src/main/java/io/papermc/paper/attribute/UnmodifiableAttributeInstance.java
-new file mode 100644
-index 0000000000000000000000000000000000000000..12135ffeacd648f6bc4d7d327059ea1a7e8c79c4
---- /dev/null
-+++ b/src/main/java/io/papermc/paper/attribute/UnmodifiableAttributeInstance.java
-@@ -0,0 +1,30 @@
-+package io.papermc.paper.attribute;
-+
-+import net.minecraft.world.entity.ai.attributes.AttributeInstance;
-+import org.bukkit.attribute.Attribute;
-+import org.bukkit.attribute.AttributeModifier;
-+import org.bukkit.craftbukkit.attribute.CraftAttributeInstance;
-+
-+import java.util.Collection;
-+
-+public class UnmodifiableAttributeInstance extends CraftAttributeInstance {
-+
-+ public UnmodifiableAttributeInstance(AttributeInstance handle, Attribute attribute) {
-+ super(handle, attribute);
-+ }
-+
-+ @Override
-+ public void setBaseValue(double d) {
-+ throw new UnsupportedOperationException("Cannot modify default attributes");
-+ }
-+
-+ @Override
-+ public void addModifier(AttributeModifier modifier) {
-+ throw new UnsupportedOperationException("Cannot modify default attributes");
-+ }
-+
-+ @Override
-+ public void removeModifier(AttributeModifier modifier) {
-+ throw new UnsupportedOperationException("Cannot modify default attributes");
-+ }
-+}
-diff --git a/src/main/java/io/papermc/paper/attribute/UnmodifiableAttributeMap.java b/src/main/java/io/papermc/paper/attribute/UnmodifiableAttributeMap.java
-new file mode 100644
-index 0000000000000000000000000000000000000000..68044b8439c302114240d0ae4da93ab3e0789cd2
---- /dev/null
-+++ b/src/main/java/io/papermc/paper/attribute/UnmodifiableAttributeMap.java
-@@ -0,0 +1,32 @@
-+package io.papermc.paper.attribute;
-+
-+import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
-+import org.bukkit.attribute.Attributable;
-+import org.bukkit.attribute.Attribute;
-+import org.bukkit.attribute.AttributeInstance;
-+import org.bukkit.craftbukkit.attribute.CraftAttribute;
-+import org.jetbrains.annotations.NotNull;
-+import org.jetbrains.annotations.Nullable;
-+
-+public class UnmodifiableAttributeMap implements Attributable {
-+
-+ private final AttributeSupplier handle;
-+
-+ public UnmodifiableAttributeMap(@NotNull AttributeSupplier handle) {
-+ this.handle = handle;
-+ }
-+
-+ @Override
-+ public @Nullable AttributeInstance getAttribute(@NotNull Attribute attribute) {
-+ net.minecraft.world.entity.ai.attributes.Attribute nmsAttribute = CraftAttribute.bukkitToMinecraft(attribute);
-+ if (!this.handle.hasAttribute(nmsAttribute)) {
-+ return null;
-+ }
-+ return new UnmodifiableAttributeInstance(this.handle.getAttributeInstance(nmsAttribute), attribute);
-+ }
-+
-+ @Override
-+ public void registerAttribute(@NotNull Attribute attribute) {
-+ throw new UnsupportedOperationException("Cannot register new attributes here");
-+ }
-+}
-diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index b16e22ab5f371ce8d84a77a2f709d3541d48d3b6..b697619abf1bce42a15a38d959dad37d49055c30 100644
---- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-@@ -550,6 +550,18 @@ public final class CraftMagicNumbers implements UnsafeValues {
- public int getProtocolVersion() {
- return net.minecraft.SharedConstants.getCurrentVersion().getProtocolVersion();
- }
-+
-+ @Override
-+ public boolean hasDefaultEntityAttributes(NamespacedKey bukkitEntityKey) {
-+ return net.minecraft.world.entity.ai.attributes.DefaultAttributes.hasSupplier(net.minecraft.core.registries.BuiltInRegistries.ENTITY_TYPE.get(CraftNamespacedKey.toMinecraft(bukkitEntityKey)));
-+ }
-+
-+ @Override
-+ public org.bukkit.attribute.Attributable getDefaultEntityAttributes(NamespacedKey bukkitEntityKey) {
-+ Preconditions.checkArgument(hasDefaultEntityAttributes(bukkitEntityKey), bukkitEntityKey + " doesn't have default attributes");
-+ var supplier = net.minecraft.world.entity.ai.attributes.DefaultAttributes.getSupplier((net.minecraft.world.entity.EntityType<? extends net.minecraft.world.entity.LivingEntity>) net.minecraft.core.registries.BuiltInRegistries.ENTITY_TYPE.get(CraftNamespacedKey.toMinecraft(bukkitEntityKey)));
-+ return new io.papermc.paper.attribute.UnmodifiableAttributeMap(supplier);
-+ }
- // Paper end
-
- /**
-diff --git a/src/test/java/io/papermc/paper/attribute/EntityTypeAttributesTest.java b/src/test/java/io/papermc/paper/attribute/EntityTypeAttributesTest.java
-new file mode 100644
-index 0000000000000000000000000000000000000000..e8cdfa385230d3de202122e4df5e07f61f80ce75
---- /dev/null
-+++ b/src/test/java/io/papermc/paper/attribute/EntityTypeAttributesTest.java
-@@ -0,0 +1,39 @@
-+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.AbstractTestingBase;
-+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;
-+
-+public class EntityTypeAttributesTest extends AbstractTestingBase {
-+
-+ @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.GENERIC_ATTACK_DAMAGE));
-+ AttributeInstance instance = attributable.getAttribute(Attribute.GENERIC_FOLLOW_RANGE);
-+ assertNotNull(instance);
-+ assertThrows(UnsupportedOperationException.class, () -> instance.addModifier(new AttributeModifier("test", 3, AttributeModifier.Operation.ADD_NUMBER)));
-+ assertThrows(UnsupportedOperationException.class, () -> instance.setBaseValue(3.2));
-+ }
-+}