mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-11 09:23:42 +01:00
abca14ff96
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: 6f9fe1d9 #562: Add API to set equipment silently bcddb754 SPIGOT-6256: Add method to check if the entity is in water CraftBukkit Changes: 878b4375 #772: Add API to set equipment silently 22d7fcc9 SPIGOT-6256: Add method to check if the entity is in water
50 lines
2.7 KiB
Diff
50 lines
2.7 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Hugo Manrique <hugmanrique@gmail.com>
|
|
Date: Mon, 23 Jul 2018 12:57:39 +0200
|
|
Subject: [PATCH] Option to prevent armor stands from doing entity lookups
|
|
|
|
|
|
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
index 6e7e00678295b5b714a1be4753626e21ab469fd6..54d7f6efcf42d4c7a8c209dfe3c5485318afafe3 100644
|
|
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
@@ -373,4 +373,9 @@ public class PaperWorldConfig {
|
|
private void scanForLegacyEnderDragon() {
|
|
scanForLegacyEnderDragon = getBoolean("game-mechanics.scan-for-legacy-ender-dragon", true);
|
|
}
|
|
+
|
|
+ public boolean armorStandEntityLookups = true;
|
|
+ private void armorStandEntityLookups() {
|
|
+ armorStandEntityLookups = getBoolean("armor-stands-do-collision-entity-lookups", true);
|
|
+ }
|
|
}
|
|
diff --git a/src/main/java/net/minecraft/server/EntityArmorStand.java b/src/main/java/net/minecraft/server/EntityArmorStand.java
|
|
index b0847b4e61e587a47fd209eb2ec3772d1486802d..89f6525ef1a4c41d3b662a5ad22b353064a82f36 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityArmorStand.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityArmorStand.java
|
|
@@ -321,6 +321,7 @@ public class EntityArmorStand extends EntityLiving {
|
|
|
|
@Override
|
|
protected void collideNearby() {
|
|
+ if (!world.paperConfig.armorStandEntityLookups) return; // Paper
|
|
List<Entity> list = this.world.getEntities(this, this.getBoundingBox(), EntityArmorStand.br);
|
|
|
|
for (int i = 0; i < list.size(); ++i) {
|
|
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
|
|
index fa095bb55c09a3b5f8ab70bcce5a03c7eb93dcfa..7affb75a97e49b67861b24de38ef83e72b0abd5a 100644
|
|
--- a/src/main/java/net/minecraft/server/World.java
|
|
+++ b/src/main/java/net/minecraft/server/World.java
|
|
@@ -801,6 +801,13 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
|
// Paper end
|
|
}
|
|
}
|
|
+ // Paper start - Prevent armor stands from doing entity lookups
|
|
+ @Override
|
|
+ public boolean getCubes(@Nullable Entity entity, AxisAlignedBB axisAlignedBB) {
|
|
+ if (entity instanceof EntityArmorStand && !entity.world.paperConfig.armorStandEntityLookups) return false;
|
|
+ return GeneratorAccess.super.getCubes(entity, axisAlignedBB);
|
|
+ }
|
|
+ // Paper end
|
|
|
|
public Explosion explode(@Nullable Entity entity, double d0, double d1, double d2, float f, Explosion.Effect explosion_effect) {
|
|
return this.createExplosion(entity, (DamageSource) null, (ExplosionDamageCalculator) null, d0, d1, d2, f, false, explosion_effect);
|