diff options
author | Zach Brown <[email protected]> | 2017-03-25 00:22:02 -0500 |
---|---|---|
committer | Zach Brown <[email protected]> | 2017-03-25 00:22:02 -0500 |
commit | 5e2784e941ba2873facc44b30be906485fcdae95 (patch) | |
tree | bd89c6f56ded2bfabe6ffe468f15bc7ce329a1b9 /Spigot-Server-Patches/0017-Player-affects-spawning-API.patch | |
parent | 246712ed92d21dbc90f9e8437dc42c79b558308d (diff) | |
download | Paper-5e2784e941ba2873facc44b30be906485fcdae95.tar.gz Paper-5e2784e941ba2873facc44b30be906485fcdae95.zip |
Switch to a bStats based Metrics system
Diffstat (limited to 'Spigot-Server-Patches/0017-Player-affects-spawning-API.patch')
-rw-r--r-- | Spigot-Server-Patches/0017-Player-affects-spawning-API.patch | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/Spigot-Server-Patches/0017-Player-affects-spawning-API.patch b/Spigot-Server-Patches/0017-Player-affects-spawning-API.patch new file mode 100644 index 0000000000..5ec6f1d5eb --- /dev/null +++ b/Spigot-Server-Patches/0017-Player-affects-spawning-API.patch @@ -0,0 +1,95 @@ +From 18f6ba2999aa3d3d8175d9d660753847446cb5bf Mon Sep 17 00:00:00 2001 +From: Jedediah Smith <[email protected]> +Date: Tue, 1 Mar 2016 14:47:52 -0600 +Subject: [PATCH] Player affects spawning API + + +diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java +index ec8f581ad..43e28d61c 100644 +--- a/src/main/java/net/minecraft/server/EntityHuman.java ++++ b/src/main/java/net/minecraft/server/EntityHuman.java +@@ -63,6 +63,7 @@ public abstract class EntityHuman extends EntityLiving { + private final ItemCooldown bV; + @Nullable + public EntityFishingHook hookedFish; ++ public boolean affectsSpawning = true; + + // CraftBukkit start + public boolean fauxSleeping; +diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java +index 21f5df3c0..a7283d36d 100644 +--- a/src/main/java/net/minecraft/server/EntityInsentient.java ++++ b/src/main/java/net/minecraft/server/EntityInsentient.java +@@ -616,7 +616,7 @@ public abstract class EntityInsentient extends EntityLiving { + } else { + EntityHuman entityhuman = this.world.findNearbyPlayer(this, -1.0D); + +- if (entityhuman != null) { ++ if (entityhuman != null && entityhuman.affectsSpawning) { // Paper - Affects Spawning API + double d0 = entityhuman.locX - this.locX; + double d1 = entityhuman.locY - this.locY; + double d2 = entityhuman.locZ - this.locZ; +diff --git a/src/main/java/net/minecraft/server/EntitySilverfish.java b/src/main/java/net/minecraft/server/EntitySilverfish.java +index 5af51cc0a..7531c9ba9 100644 +--- a/src/main/java/net/minecraft/server/EntitySilverfish.java ++++ b/src/main/java/net/minecraft/server/EntitySilverfish.java +@@ -99,8 +99,7 @@ public class EntitySilverfish extends EntityMonster { + public boolean cM() { + if (super.cM()) { + EntityHuman entityhuman = this.world.b(this, 5.0D); +- +- return entityhuman == null; ++ return !(entityhuman != null && !entityhuman.affectsSpawning) && entityhuman == null; // Paper - Affects Spawning API + } else { + return false; + } +diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java +index 17bf3e410..a05fad54f 100644 +--- a/src/main/java/net/minecraft/server/SpawnerCreature.java ++++ b/src/main/java/net/minecraft/server/SpawnerCreature.java +@@ -52,7 +52,7 @@ public final class SpawnerCreature { + while (iterator.hasNext()) { + EntityHuman entityhuman = (EntityHuman) iterator.next(); + +- if (!entityhuman.isSpectator()) { ++ if (!entityhuman.isSpectator() && entityhuman.affectsSpawning) { + int l = MathHelper.floor(entityhuman.locX / 16.0D); + + j = MathHelper.floor(entityhuman.locZ / 16.0D); +diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java +index edd6c3b5e..751fc01d1 100644 +--- a/src/main/java/net/minecraft/server/World.java ++++ b/src/main/java/net/minecraft/server/World.java +@@ -2722,7 +2722,7 @@ public abstract class World implements IBlockAccess { + for (int i = 0; i < this.players.size(); ++i) { + EntityHuman entityhuman = (EntityHuman) this.players.get(i); + +- if (IEntitySelector.e.apply(entityhuman)) { ++ if (IEntitySelector.e.apply(entityhuman) && entityhuman.affectsSpawning) { // Paper - Affects Spawning API + double d4 = entityhuman.d(d0, d1, d2); + + if (d3 < 0.0D || d4 < d3 * d3) { +diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +index 9f452043f..b412bf653 100644 +--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java ++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +@@ -1469,6 +1469,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player { + + } + ++ @Override ++ public void setAffectsSpawning(boolean affects) { ++ this.getHandle().affectsSpawning = affects; ++ } ++ ++ @Override ++ public boolean getAffectsSpawning() { ++ return this.getHandle().affectsSpawning; ++ } ++ + // Spigot start + private final Player.Spigot spigot = new Player.Spigot() + { +-- +2.12.0.windows.1 + |