mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-26 12:36:07 +01:00
89d51d5f29
Because this exploit has been widely known for years and has not been fixed by Mojang, we decided that it was worth allowing people to toggle it on/off due to how easy it is to make it configurable. It should be noted that this decision does not promise all future exploits will be configurable.
58 lines
2.9 KiB
Diff
58 lines
2.9 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: ysl3000 <yannicklamprecht@live.de>
|
|
Date: Sat, 24 Oct 2020 16:37:44 +0200
|
|
Subject: [PATCH] living entity allow attribute registration
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java
|
|
index d5dfb08f550f5644ff5164170d6c16a3b25a3748..897d7632ecfea40890433474870dd7a5e534d8ab 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java
|
|
@@ -152,4 +152,12 @@ public class AttributeMap {
|
|
}
|
|
|
|
}
|
|
+
|
|
+ // Paper - start - living entity allow attribute registration
|
|
+ public void registerAttribute(Attribute attributeBase) {
|
|
+ AttributeInstance attributeModifiable = new AttributeInstance(attributeBase, AttributeInstance::getAttribute);
|
|
+ attributes.put(attributeBase, attributeModifiable);
|
|
+ }
|
|
+ // Paper - end - living entity allow attribute registration
|
|
+
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/attribute/CraftAttributeMap.java b/src/main/java/org/bukkit/craftbukkit/attribute/CraftAttributeMap.java
|
|
index ea48f1119a940056c37d1d203437bfbfdf13663b..8a678df56fcf30535957e111d81ad07be5b501ec 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/attribute/CraftAttributeMap.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/attribute/CraftAttributeMap.java
|
|
@@ -35,4 +35,11 @@ public class CraftAttributeMap implements Attributable {
|
|
|
|
return (nms == null) ? null : new CraftAttributeInstance(nms, attribute);
|
|
}
|
|
+ // Paper start - living entity allow attribute registration
|
|
+ @Override
|
|
+ public void registerAttribute(Attribute attribute) {
|
|
+ Preconditions.checkArgument(attribute != null, "attribute");
|
|
+ handle.registerAttribute(CraftAttribute.bukkitToMinecraft(attribute));
|
|
+ }
|
|
+ // Paper end - living entity allow attribute registration
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
|
index 3b2d54d7a365e268107c4abc5a15c996954e5e9c..c95c0580e0c3afe9730a1c3f2095b7970e7cc001 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
|
@@ -739,6 +739,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
|
|
return this.getHandle().craftAttributes.getAttribute(attribute);
|
|
}
|
|
|
|
+ // Paper start - living entity allow attribute registration
|
|
+ @Override
|
|
+ public void registerAttribute(Attribute attribute) {
|
|
+ getHandle().craftAttributes.registerAttribute(attribute);
|
|
+ }
|
|
+ // Paper end - living entity allow attribute registration
|
|
+
|
|
@Override
|
|
public void setAI(boolean ai) {
|
|
if (this.getHandle() instanceof Mob) {
|