NOT WORKING! Even even more patches!

This commit is contained in:
Shane Freeder 2018-07-17 21:32:05 +01:00
parent 4ec5e6e37f
commit 885edbdaf5
No known key found for this signature in database
GPG Key ID: A3F61EA5A085289C
27 changed files with 265 additions and 209 deletions

View File

@ -1,4 +1,4 @@
From 6aa8b24934a87152a920c31909f7e63199336589 Mon Sep 17 00:00:00 2001 From a320a06499b1e0c8089eaaa36fcbd1a8f71f7d09 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Mon, 19 Dec 2016 23:07:42 -0500 Date: Mon, 19 Dec 2016 23:07:42 -0500
Subject: [PATCH] Prevent Pathfinding out of World Border Subject: [PATCH] Prevent Pathfinding out of World Border
@ -6,10 +6,10 @@ Subject: [PATCH] Prevent Pathfinding out of World Border
This prevents Entities from trying to run outside of the World Border This prevents Entities from trying to run outside of the World Border
diff --git a/src/main/java/net/minecraft/server/NavigationAbstract.java b/src/main/java/net/minecraft/server/NavigationAbstract.java diff --git a/src/main/java/net/minecraft/server/NavigationAbstract.java b/src/main/java/net/minecraft/server/NavigationAbstract.java
index 3ac6f84d3..935b2e81e 100644 index 0c5215657..05e0545fd 100644
--- a/src/main/java/net/minecraft/server/NavigationAbstract.java --- a/src/main/java/net/minecraft/server/NavigationAbstract.java
+++ b/src/main/java/net/minecraft/server/NavigationAbstract.java +++ b/src/main/java/net/minecraft/server/NavigationAbstract.java
@@ -69,6 +69,7 @@ public abstract class NavigationAbstract { @@ -73,6 +73,7 @@ public abstract class NavigationAbstract {
@Nullable @Nullable
public PathEntity b(BlockPosition blockposition) { public PathEntity b(BlockPosition blockposition) {
@ -17,7 +17,7 @@ index 3ac6f84d3..935b2e81e 100644
if (!this.b()) { if (!this.b()) {
return null; return null;
} else if (this.c != null && !this.c.b() && blockposition.equals(this.q)) { } else if (this.c != null && !this.c.b() && blockposition.equals(this.q)) {
@@ -95,6 +96,7 @@ public abstract class NavigationAbstract { @@ -99,6 +100,7 @@ public abstract class NavigationAbstract {
return null; return null;
} else { } else {
BlockPosition blockposition = new BlockPosition(entity); BlockPosition blockposition = new BlockPosition(entity);
@ -26,7 +26,7 @@ index 3ac6f84d3..935b2e81e 100644
if (this.c != null && !this.c.b() && blockposition.equals(this.q)) { if (this.c != null && !this.c.b() && blockposition.equals(this.q)) {
return this.c; return this.c;
diff --git a/src/main/java/net/minecraft/server/WorldBorder.java b/src/main/java/net/minecraft/server/WorldBorder.java diff --git a/src/main/java/net/minecraft/server/WorldBorder.java b/src/main/java/net/minecraft/server/WorldBorder.java
index 9038d52eb..632eb1c9d 100644 index 4763c30a8..ec5386fd5 100644
--- a/src/main/java/net/minecraft/server/WorldBorder.java --- a/src/main/java/net/minecraft/server/WorldBorder.java
+++ b/src/main/java/net/minecraft/server/WorldBorder.java +++ b/src/main/java/net/minecraft/server/WorldBorder.java
@@ -29,7 +29,7 @@ public class WorldBorder { @@ -29,7 +29,7 @@ public class WorldBorder {

View File

@ -1,4 +1,4 @@
From 9140c809a2ab87aaccef774be18f66a6e83113d2 Mon Sep 17 00:00:00 2001 From 6a37edaf0197147075c033b77c864f8d3de94a07 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Tue, 20 Dec 2016 15:15:11 -0500 Date: Tue, 20 Dec 2016 15:15:11 -0500
Subject: [PATCH] Bound Treasure Maps to World Border Subject: [PATCH] Bound Treasure Maps to World Border
@ -11,21 +11,19 @@ that is outside happens to be closer, but unreachable, yet another reachable
one is in border that would of been missed. one is in border that would of been missed.
diff --git a/src/main/java/net/minecraft/server/StructureGenerator.java b/src/main/java/net/minecraft/server/StructureGenerator.java diff --git a/src/main/java/net/minecraft/server/StructureGenerator.java b/src/main/java/net/minecraft/server/StructureGenerator.java
index 34fd7edfe..e8263baa4 100644 index 263ea953a..8b8b468f3 100644
--- a/src/main/java/net/minecraft/server/StructureGenerator.java --- a/src/main/java/net/minecraft/server/StructureGenerator.java
+++ b/src/main/java/net/minecraft/server/StructureGenerator.java +++ b/src/main/java/net/minecraft/server/StructureGenerator.java
@@ -236,6 +236,9 @@ public abstract class StructureGenerator extends WorldGenBase { @@ -124,6 +124,7 @@ public abstract class StructureGenerator<C extends WorldGenFeatureConfiguration>
WorldGenBase.a(world.getSeed(), random, l2, i3); if (flag || flag1) {
random.nextInt(); ChunkCoordIntPair chunkcoordintpair = this.a(chunkgenerator, seededrandom, j, k, i1, j1);
+ + if (!world.getWorldBorder().isChunkInBounds(chunkcoordintpair.x, chunkcoordintpair.z)) { continue; } // Paper
+ if (!world.getWorldBorder().isChunkInBounds(l2, i3)) { continue; } // Paper StructureStart structurestart = this.a(world, chunkgenerator, seededrandom, chunkcoordintpair.a());
+
if (structuregenerator.a(l2, i3)) { if (structurestart != StructureGenerator.a) {
if (!flag1 || !world.b(l2, i3)) {
return new BlockPosition((l2 << 4) + 8, 64, (i3 << 4) + 8);
diff --git a/src/main/java/net/minecraft/server/WorldBorder.java b/src/main/java/net/minecraft/server/WorldBorder.java diff --git a/src/main/java/net/minecraft/server/WorldBorder.java b/src/main/java/net/minecraft/server/WorldBorder.java
index 632eb1c9d..1bb172bbf 100644 index ec5386fd5..08424a88b 100644
--- a/src/main/java/net/minecraft/server/WorldBorder.java --- a/src/main/java/net/minecraft/server/WorldBorder.java
+++ b/src/main/java/net/minecraft/server/WorldBorder.java +++ b/src/main/java/net/minecraft/server/WorldBorder.java
@@ -33,6 +33,18 @@ public class WorldBorder { @@ -33,6 +33,18 @@ public class WorldBorder {
@ -45,7 +43,7 @@ index 632eb1c9d..1bb172bbf 100644
+ // Paper end + // Paper end
+ +
public boolean isInBounds(ChunkCoordIntPair chunkcoordintpair) { public boolean isInBounds(ChunkCoordIntPair chunkcoordintpair) {
return (double) chunkcoordintpair.e() > this.b() && (double) chunkcoordintpair.c() < this.d() && (double) chunkcoordintpair.f() > this.c() && (double) chunkcoordintpair.d() < this.e(); return (double) chunkcoordintpair.f() > this.b() && (double) chunkcoordintpair.d() < this.d() && (double) chunkcoordintpair.g() > this.c() && (double) chunkcoordintpair.e() < this.e();
} }
-- --
2.18.0 2.18.0

View File

@ -1,4 +1,4 @@
From 0a8b200ed814c2a3f9b5758defb1ea16ed685839 Mon Sep 17 00:00:00 2001 From 08a801e72f6cac422d809de13137806bfec8e3ea Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Tue, 20 Dec 2016 15:26:27 -0500 Date: Tue, 20 Dec 2016 15:26:27 -0500
Subject: [PATCH] Configurable Cartographer Treasure Maps Subject: [PATCH] Configurable Cartographer Treasure Maps
@ -9,10 +9,10 @@ Also allow turning off treasure maps all together as they can eat up Map ID's
which are limited in quantity. which are limited in quantity.
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
index 4b9bf3b4f..2ba3bcb8e 100644 index f64a5ef35..5df8b1143 100644
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
@@ -398,4 +398,14 @@ public class PaperWorldConfig { @@ -333,4 +333,14 @@ public class PaperWorldConfig {
Bukkit.getLogger().warning("Spawn Egg and Armor Stand NBT filtering disabled, this is a potential security risk"); Bukkit.getLogger().warning("Spawn Egg and Armor Stand NBT filtering disabled, this is a potential security risk");
} }
} }
@ -28,19 +28,17 @@ index 4b9bf3b4f..2ba3bcb8e 100644
+ } + }
} }
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
index 9d201b14e..57fcc3c05 100644 index abfd9adbd..dcc14aa11 100644
--- a/src/main/java/net/minecraft/server/EntityVillager.java --- a/src/main/java/net/minecraft/server/EntityVillager.java
+++ b/src/main/java/net/minecraft/server/EntityVillager.java +++ b/src/main/java/net/minecraft/server/EntityVillager.java
@@ -783,7 +783,8 @@ public class EntityVillager extends EntityAgeable implements NPC, IMerchant { @@ -755,6 +755,7 @@ public class EntityVillager extends EntityAgeable implements NPC, IMerchant {
public void a(IMerchant imerchant, MerchantRecipeList merchantrecipelist, Random random) { public void a(IMerchant imerchant, MerchantRecipeList merchantrecipelist, Random random) {
int i = this.a.a(random); int i = this.a.a(random);
World world = imerchant.u_(); World world = imerchant.getWorld();
- BlockPosition blockposition = world.a(this.b, imerchant.v_(), true);
+ if (!world.paperConfig.enableTreasureMaps) return; //Paper + if (!world.paperConfig.enableTreasureMaps) return; //Paper
+ BlockPosition blockposition = world.a(this.b, imerchant.v_(), world.paperConfig.treasureMapsAlreadyDiscovered); // Paper - pass false to return first structure, regardless of if its been discovered. true returns only undiscovered. BlockPosition blockposition = world.a(this.b, imerchant.getPosition(), 100);
if (blockposition != null) { if (blockposition != null) {
ItemStack itemstack = ItemWorldMap.a(world, (double) blockposition.getX(), (double) blockposition.getZ(), (byte) 2, true, true);
-- --
2.18.0 2.18.0

View File

@ -0,0 +1,23 @@
From 928e3728f86fc9571a913643714c8af71344bf93 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Wed, 21 Dec 2016 03:48:29 -0500
Subject: [PATCH] Optimize ItemStack.isEmpty()
Remove hashMap lookup every check, simplify code to remove ternary
diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java
index 70f2dcc9e..be6205275 100644
--- a/src/main/java/net/minecraft/server/ItemStack.java
+++ b/src/main/java/net/minecraft/server/ItemStack.java
@@ -134,7 +134,7 @@ public final class ItemStack {
}
public boolean isEmpty() {
- return this == ItemStack.a ? true : (this.getItem() != null && this.getItem() != Items.AIR ? this.count <= 0 : true);
+ return this == ItemStack.a || this.item == null || this.item == Items.AIR || this.count <= 0; // Paper
}
public ItemStack cloneAndSubtract(int i) {
--
2.18.0

View File

@ -1,23 +1,23 @@
From 1a10e756e4f3d5cf2ff493fe92f97d14f86f8c17 Mon Sep 17 00:00:00 2001 From 82856d9550300acb55b93cdb1b79913f19089673 Mon Sep 17 00:00:00 2001
From: kashike <kashike@vq.lc> From: kashike <kashike@vq.lc>
Date: Wed, 21 Dec 2016 11:47:25 -0600 Date: Wed, 21 Dec 2016 11:47:25 -0600
Subject: [PATCH] Add API methods to control if armour stands can move Subject: [PATCH] Add API methods to control if armour stands can move
diff --git a/src/main/java/net/minecraft/server/EntityArmorStand.java b/src/main/java/net/minecraft/server/EntityArmorStand.java diff --git a/src/main/java/net/minecraft/server/EntityArmorStand.java b/src/main/java/net/minecraft/server/EntityArmorStand.java
index c9054fc91..ee3d37a71 100644 index 4c615baea..52a1036fd 100644
--- a/src/main/java/net/minecraft/server/EntityArmorStand.java --- a/src/main/java/net/minecraft/server/EntityArmorStand.java
+++ b/src/main/java/net/minecraft/server/EntityArmorStand.java +++ b/src/main/java/net/minecraft/server/EntityArmorStand.java
@@ -50,6 +50,7 @@ public class EntityArmorStand extends EntityLiving { @@ -44,6 +44,7 @@ public class EntityArmorStand extends EntityLiving {
public Vector3f rightArmPose; public Vector3f rightArmPose;
public Vector3f leftLegPose; public Vector3f leftLegPose;
public Vector3f rightLegPose; public Vector3f rightLegPose;
+ public boolean canMove = true; // Paper + public boolean canMove = true; // Paper
public EntityArmorStand(World world) { public EntityArmorStand(World world) {
super(world); super(EntityTypes.ARMOR_STAND, world);
@@ -770,4 +771,13 @@ public class EntityArmorStand extends EntityLiving { @@ -755,4 +756,13 @@ public class EntityArmorStand extends EntityLiving {
public boolean cS() { public boolean de() {
return false; return false;
} }
+ +

View File

@ -0,0 +1,47 @@
From cb943190b9136ef3fc873e413a73ee7c45c5744b Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Tue, 20 Dec 2016 23:09:21 -0600
Subject: [PATCH] Add option to remove invalid statistics
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
index 459c86bce..ea6fcb39f 100644
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
@@ -262,4 +262,13 @@ public class PaperConfig {
maxPlayerAutoSavePerTick = (playerAutoSaveRate == -1 || playerAutoSaveRate > 100) ? 10 : 20;
}
}
+
+ public static boolean removeInvalidStatistics = false;
+ private static void removeInvalidStatistics() {
+ if (version < 12) {
+ boolean oldValue = getBoolean("remove-invalid-statistics", false);
+ set("settings.remove-invalid-statistics", oldValue);
+ }
+ removeInvalidStatistics = getBoolean("settings.remove-invalid-statistics", false);
+ }
}
diff --git a/src/main/java/net/minecraft/server/ServerStatisticManager.java b/src/main/java/net/minecraft/server/ServerStatisticManager.java
index 172f72fd8..7ba12c23d 100644
--- a/src/main/java/net/minecraft/server/ServerStatisticManager.java
+++ b/src/main/java/net/minecraft/server/ServerStatisticManager.java
@@ -83,6 +83,7 @@ public class ServerStatisticManager extends StatisticManager {
try {
JsonReader jsonreader = new JsonReader(new StringReader(s));
Throwable throwable = null;
+ java.util.List<String> invalidStats = com.google.common.collect.Lists.newArrayList(); // Paper
try {
jsonreader.setLenient(false);
@@ -118,6 +119,7 @@ public class ServerStatisticManager extends StatisticManager {
if (statistic == null) {
ServerStatisticManager.b.warn("Invalid statistic in {}: Don\'t know what {} is", this.d, s2);
+ if (com.destroystokyo.paper.PaperConfig.removeInvalidStatistics) invalidStats.add(s2); // Paper
} else {
this.a.put(statistic, nbttagcompound2.getInt(s2));
}
--
2.18.0

View File

@ -1,4 +1,4 @@
From bc04820d56bdc51cd13c3a880d50dbac3850c65f Mon Sep 17 00:00:00 2001 From 4a71e35c105f2d8c83b679090c6eceaed46b2c30 Mon Sep 17 00:00:00 2001
From: Alfie Cleveland <alfeh@me.com> From: Alfie Cleveland <alfeh@me.com>
Date: Tue, 27 Dec 2016 01:57:57 +0000 Date: Tue, 27 Dec 2016 01:57:57 +0000
Subject: [PATCH] Properly fix item duplication bug Subject: [PATCH] Properly fix item duplication bug
@ -6,10 +6,10 @@ Subject: [PATCH] Properly fix item duplication bug
Credit to prplz for figuring out the real issue Credit to prplz for figuring out the real issue
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index f8e289475..cce3f98da 100644 index cf2a39384..c91caf578 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java --- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -1500,7 +1500,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @@ -1531,7 +1531,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@Override @Override
protected boolean isFrozen() { protected boolean isFrozen() {
@ -19,16 +19,17 @@ index f8e289475..cce3f98da 100644
@Override @Override
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index cca1c6aa3..3f9e60171 100644 index 53d3e9775..b69c194bb 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java --- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -2631,6 +2631,6 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { @@ -2499,7 +2499,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
}
// CraftBukkit start - Add "isDisconnected" method
public final boolean isDisconnected() { public final boolean isDisconnected() {
- return !this.player.joining && !this.networkManager.isConnected(); - return !this.player.joining && !this.networkManager.isConnected();
+ return (!this.player.joining && !this.networkManager.isConnected()) || this.processedDisconnect; // Paper + return (!this.player.joining && !this.networkManager.isConnected()) || this.processedDisconnect; // Paper
} }
// CraftBukkit end
} }
-- --
2.18.0 2.18.0

View File

@ -1,4 +1,4 @@
From 4c172f93ecc6a820530393ef7551192a1d68f55f Mon Sep 17 00:00:00 2001 From 34125d9dac2db4cc51b0411293a97f5070d81714 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Tue, 27 Dec 2016 15:02:42 -0500 Date: Tue, 27 Dec 2016 15:02:42 -0500
Subject: [PATCH] String based Action Bar API Subject: [PATCH] String based Action Bar API
@ -62,10 +62,10 @@ index a4b0901cf..02940d697 100644
+ } + }
} }
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 98e9da59a..a9186b77a 100644 index 7d4355439..3c1f02c18 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -169,6 +169,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -208,6 +208,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
} }
// Paper start // Paper start

View File

@ -1,4 +1,4 @@
From 3da653ac5594ecd2407621dc2d303c63816df5a4 Mon Sep 17 00:00:00 2001 From d44c3c626673c4d10d9e15823fe3f7abadacfcb3 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Tue, 27 Dec 2016 22:38:06 -0500 Date: Tue, 27 Dec 2016 22:38:06 -0500
Subject: [PATCH] Activation Range Improvements Subject: [PATCH] Activation Range Improvements
@ -6,44 +6,44 @@ Subject: [PATCH] Activation Range Improvements
Fixes and adds new Immunities to improve gameplay behavior Fixes and adds new Immunities to improve gameplay behavior
diff --git a/src/main/java/net/minecraft/server/EntityCreature.java b/src/main/java/net/minecraft/server/EntityCreature.java diff --git a/src/main/java/net/minecraft/server/EntityCreature.java b/src/main/java/net/minecraft/server/EntityCreature.java
index 0c82c6f5b..9659a45ef 100644 index e2e109511..34dcd01de 100644
--- a/src/main/java/net/minecraft/server/EntityCreature.java --- a/src/main/java/net/minecraft/server/EntityCreature.java
+++ b/src/main/java/net/minecraft/server/EntityCreature.java +++ b/src/main/java/net/minecraft/server/EntityCreature.java
@@ -10,6 +10,7 @@ public abstract class EntityCreature extends EntityInsentient { @@ -6,6 +6,7 @@ import org.bukkit.event.entity.EntityUnleashEvent;
public abstract class EntityCreature extends EntityInsentient {
public static final UUID bv = UUID.fromString("E199AD21-BA8A-4C53-8D13-6182D5C69D3A");
public static final AttributeModifier bw = (new AttributeModifier(EntityCreature.bv, "Fleeing speed bonus", 2.0D, 2)).a(false);
+ public BlockPosition movingTarget = null; public BlockPosition getMovingTarget() { return movingTarget; } // Paper + public BlockPosition movingTarget = null; public BlockPosition getMovingTarget() { return movingTarget; } // Paper
private BlockPosition a; private BlockPosition a;
private float b; private float b;
private final float c;
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index dda6219a7..9e864864d 100644 index b12c9e461..1b2e802ea 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java --- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -73,7 +73,7 @@ public abstract class EntityLiving extends Entity { @@ -73,7 +73,7 @@ public abstract class EntityLiving extends Entity {
public float aQ; public float aT;
public float aR; public float aU;
public EntityHuman killer; public EntityHuman killer;
- protected int lastDamageByPlayerTime; - protected int lastDamageByPlayerTime;
+ public int lastDamageByPlayerTime; // Paper - public + public int lastDamageByPlayerTime; // Paper - public
protected boolean aU; protected boolean aX;
protected int ticksFarFromPlayer; protected int ticksFarFromPlayer;
protected float aW; protected float aZ;
diff --git a/src/main/java/net/minecraft/server/EntityLlama.java b/src/main/java/net/minecraft/server/EntityLlama.java diff --git a/src/main/java/net/minecraft/server/EntityLlama.java b/src/main/java/net/minecraft/server/EntityLlama.java
index dbda68dd0..af49b7273 100644 index 269857960..864ca3cc6 100644
--- a/src/main/java/net/minecraft/server/EntityLlama.java --- a/src/main/java/net/minecraft/server/EntityLlama.java
+++ b/src/main/java/net/minecraft/server/EntityLlama.java +++ b/src/main/java/net/minecraft/server/EntityLlama.java
@@ -363,6 +363,7 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn @@ -363,6 +363,7 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn
return this.bM != null; return this.bR != null;
} }
+ public boolean inCaravan() { return this.dW(); } // Paper - OBFHELPER + public boolean inCaravan() { return this.em(); } // Paper - OBFHELPER
public boolean dW() { public boolean em() {
return this.bL != null; return this.bQ != null;
} }
diff --git a/src/main/java/net/minecraft/server/PathfinderGoal.java b/src/main/java/net/minecraft/server/PathfinderGoal.java diff --git a/src/main/java/net/minecraft/server/PathfinderGoal.java b/src/main/java/net/minecraft/server/PathfinderGoal.java
index 83d9c43f3..1cb6652c2 100644 index a146a8b45..a19853463 100644
--- a/src/main/java/net/minecraft/server/PathfinderGoal.java --- a/src/main/java/net/minecraft/server/PathfinderGoal.java
+++ b/src/main/java/net/minecraft/server/PathfinderGoal.java +++ b/src/main/java/net/minecraft/server/PathfinderGoal.java
@@ -18,7 +18,10 @@ public abstract class PathfinderGoal { @@ -18,7 +18,10 @@ public abstract class PathfinderGoal {
@ -59,44 +59,47 @@ index 83d9c43f3..1cb6652c2 100644
public void e() {} public void e() {}
diff --git a/src/main/java/net/minecraft/server/PathfinderGoalGotoTarget.java b/src/main/java/net/minecraft/server/PathfinderGoalGotoTarget.java diff --git a/src/main/java/net/minecraft/server/PathfinderGoalGotoTarget.java b/src/main/java/net/minecraft/server/PathfinderGoalGotoTarget.java
index e5b5e9887..e3781f3a8 100644 index d5c08aa7c..fe6570c88 100644
--- a/src/main/java/net/minecraft/server/PathfinderGoalGotoTarget.java --- a/src/main/java/net/minecraft/server/PathfinderGoalGotoTarget.java
+++ b/src/main/java/net/minecraft/server/PathfinderGoalGotoTarget.java +++ b/src/main/java/net/minecraft/server/PathfinderGoalGotoTarget.java
@@ -2,12 +2,21 @@ package net.minecraft.server; @@ -2,17 +2,24 @@ package net.minecraft.server;
public abstract class PathfinderGoalGotoTarget extends PathfinderGoal { public abstract class PathfinderGoalGotoTarget extends PathfinderGoal {
- private final EntityCreature c; - private final EntityCreature f;
+ private final EntityCreature c; public EntityCreature getEntity() { return c; } // Paper - OBFHELPER + private final EntityCreature f; public EntityCreature getEntity() { return f; } // Paper - OBFHELPER
private final double d; public double a;
protected int a; protected int b;
private int e; protected int c;
private int f; private int g;
- protected BlockPosition b; - protected BlockPosition d;
+ protected BlockPosition b; public BlockPosition getTarget() { return b; } public void setTarget(BlockPosition pos) { this.b = pos; getEntity().movingTarget = pos != BlockPosition.ZERO ? pos : null; } // Paper - OBFHELPER + protected BlockPosition d; public BlockPosition getTarget() { return d; } public void setTarget(BlockPosition pos) { this.d = pos; getEntity().movingTarget = pos != BlockPosition.ZERO ? pos : null; } // Paper - OBFHELPER
+ private boolean h;
+ // Paper start private final int i;
private final int j;
public int e;
+ // Paper start - activation range improvements
+ @Override + @Override
+ public void onTaskReset() { + public void onTaskReset() {
+ super.onTaskReset(); + super.onTaskReset();
+ setTarget(BlockPosition.ZERO); + setTarget(BlockPosition.ZERO);
+ } + }
+ // Paper end + // Paper end
+ public PathfinderGoalGotoTarget(EntityCreature entitycreature, double d0, int i) {
private boolean g; this(entitycreature, d0, i, 1);
private final int h; }
@@ -93,7 +100,7 @@ public abstract class PathfinderGoalGotoTarget extends PathfinderGoal {
@@ -69,7 +78,7 @@ public abstract class PathfinderGoalGotoTarget extends PathfinderGoal { for (int j1 = i1 < l && i1 > -l ? l : 0; j1 <= l; j1 = j1 > 0 ? -j1 : 1 - j1) {
BlockPosition blockposition1 = blockposition.a(l, j - 1, i1); blockposition_mutableblockposition.g(blockposition).d(i1, k - 1, j1);
if (this.f.f((BlockPosition) blockposition_mutableblockposition) && this.a(this.f.world, blockposition_mutableblockposition)) {
if (this.c.f(blockposition1) && this.a(this.c.world, blockposition1)) { - this.d = blockposition_mutableblockposition;
- this.b = blockposition1; + setTarget(blockposition_mutableblockposition); // Paper
+ setTarget(blockposition1); // Paper
return true; return true;
} }
} }
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
index b79bf70f0..33ae73890 100644 index e02647f80..cdbf769e7 100644
--- a/src/main/java/org/spigotmc/ActivationRange.java --- a/src/main/java/org/spigotmc/ActivationRange.java
+++ b/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java
@@ -20,6 +20,7 @@ import net.minecraft.server.EntityFireball; @@ -20,6 +20,7 @@ import net.minecraft.server.EntityFireball;
@ -107,7 +110,7 @@ index b79bf70f0..33ae73890 100644
import net.minecraft.server.EntityMonster; import net.minecraft.server.EntityMonster;
import net.minecraft.server.EntityProjectile; import net.minecraft.server.EntityProjectile;
import net.minecraft.server.EntitySheep; import net.minecraft.server.EntitySheep;
@@ -210,18 +211,29 @@ public class ActivationRange @@ -212,18 +213,29 @@ public class ActivationRange
if ( entity instanceof EntityLiving ) if ( entity instanceof EntityLiving )
{ {
EntityLiving living = (EntityLiving) entity; EntityLiving living = (EntityLiving) entity;
@ -140,16 +143,7 @@ index b79bf70f0..33ae73890 100644
if ( entity instanceof EntityAnimal ) if ( entity instanceof EntityAnimal )
{ {
EntityAnimal animal = (EntityAnimal) entity; EntityAnimal animal = (EntityAnimal) entity;
@@ -251,7 +263,7 @@ public class ActivationRange @@ -276,10 +288,10 @@ public class ActivationRange
{
// Never safe to skip fireworks or entities not yet added to chunk
// PAIL: inChunk - boolean under datawatchers
- if ( !entity.aa || entity instanceof EntityFireworks ) {
+ if ( !entity.isAddedToChunk() || entity instanceof EntityFireworks ) { // Paper (use obf helper)
return true;
}
@@ -275,10 +287,10 @@ public class ActivationRange
{ {
isActive = false; isActive = false;
} }

View File

@ -1,11 +1,11 @@
From 0596e4e92bdc6e00405b6a5604e55110229e5716 Mon Sep 17 00:00:00 2001 From d7ce58b548fbbf9db858847057dc7e1d2ab961c7 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Wed, 28 Dec 2016 01:18:33 -0500 Date: Wed, 28 Dec 2016 01:18:33 -0500
Subject: [PATCH] Firework API's Subject: [PATCH] Firework API's
diff --git a/src/main/java/net/minecraft/server/EntityFireworks.java b/src/main/java/net/minecraft/server/EntityFireworks.java diff --git a/src/main/java/net/minecraft/server/EntityFireworks.java b/src/main/java/net/minecraft/server/EntityFireworks.java
index 48cdef5db..bd0ec95f2 100644 index 4c2cdd4bc..abf8799c4 100644
--- a/src/main/java/net/minecraft/server/EntityFireworks.java --- a/src/main/java/net/minecraft/server/EntityFireworks.java
+++ b/src/main/java/net/minecraft/server/EntityFireworks.java +++ b/src/main/java/net/minecraft/server/EntityFireworks.java
@@ -2,6 +2,8 @@ package net.minecraft.server; @@ -2,6 +2,8 @@ package net.minecraft.server;
@ -26,8 +26,8 @@ index 48cdef5db..bd0ec95f2 100644
+ private EntityLiving e;public EntityLiving getBoostedEntity() { return e; } // Paper - OBFHELPER + private EntityLiving e;public EntityLiving getBoostedEntity() { return e; } // Paper - OBFHELPER
public EntityFireworks(World world) { public EntityFireworks(World world) {
super(world); super(EntityTypes.FIREWORK_ROCKET, world);
@@ -203,6 +206,11 @@ public class EntityFireworks extends Entity { @@ -196,6 +199,11 @@ public class EntityFireworks extends Entity {
if (!itemstack.isEmpty()) { if (!itemstack.isEmpty()) {
nbttagcompound.set("FireworksItem", itemstack.save(new NBTTagCompound())); nbttagcompound.set("FireworksItem", itemstack.save(new NBTTagCompound()));
} }
@ -39,9 +39,9 @@ index 48cdef5db..bd0ec95f2 100644
} }
@@ -218,7 +226,11 @@ public class EntityFireworks extends Entity { @@ -207,7 +215,11 @@ public class EntityFireworks extends Entity {
this.datawatcher.set(EntityFireworks.FIREWORK_ITEM, itemstack); if (!itemstack.isEmpty()) {
} this.datawatcher.set(EntityFireworks.FIREWORK_ITEM, itemstack);
} }
- -
+ // Paper start + // Paper start
@ -51,20 +51,20 @@ index 48cdef5db..bd0ec95f2 100644
+ // Paper end + // Paper end
} }
public boolean bd() { public boolean bk() {
diff --git a/src/main/java/net/minecraft/server/ItemFireworks.java b/src/main/java/net/minecraft/server/ItemFireworks.java diff --git a/src/main/java/net/minecraft/server/ItemFireworks.java b/src/main/java/net/minecraft/server/ItemFireworks.java
index b0bb4aa23..44a997215 100644 index 7b1d51e5a..b0863b4db 100644
--- a/src/main/java/net/minecraft/server/ItemFireworks.java --- a/src/main/java/net/minecraft/server/ItemFireworks.java
+++ b/src/main/java/net/minecraft/server/ItemFireworks.java +++ b/src/main/java/net/minecraft/server/ItemFireworks.java
@@ -9,6 +9,7 @@ public class ItemFireworks extends Item { @@ -19,6 +19,7 @@ public class ItemFireworks extends Item {
ItemStack itemstack = entityhuman.b(enumhand); ItemStack itemstack = itemactioncontext.getItemStack();
EntityFireworks entityfireworks = new EntityFireworks(world, (double) ((float) blockposition.getX() + f), (double) ((float) blockposition.getY() + f1), (double) ((float) blockposition.getZ() + f2), itemstack); EntityFireworks entityfireworks = new EntityFireworks(world, (double) ((float) blockposition.getX() + itemactioncontext.m()), (double) ((float) blockposition.getY() + itemactioncontext.n()), (double) ((float) blockposition.getZ() + itemactioncontext.o()), itemstack);
+ entityfireworks.spawningEntity = entityhuman.getUniqueID(); // Paper + entityfireworks.spawningEntity = entityhuman.getUniqueID(); // Paper
world.addEntity(entityfireworks); world.addEntity(entityfireworks);
if (!entityhuman.abilities.canInstantlyBuild) { itemstack.subtract(1);
itemstack.subtract(1); }
@@ -25,6 +26,7 @@ public class ItemFireworks extends Item { @@ -33,6 +34,7 @@ public class ItemFireworks extends Item {
if (!world.isClientSide) { if (!world.isClientSide) {
EntityFireworks entityfireworks = new EntityFireworks(world, itemstack, entityhuman); EntityFireworks entityfireworks = new EntityFireworks(world, itemstack, entityhuman);
@ -73,10 +73,10 @@ index b0bb4aa23..44a997215 100644
if (!entityhuman.abilities.canInstantlyBuild) { if (!entityhuman.abilities.canInstantlyBuild) {
itemstack.subtract(1); itemstack.subtract(1);
diff --git a/src/main/java/net/minecraft/server/NBTTagCompound.java b/src/main/java/net/minecraft/server/NBTTagCompound.java diff --git a/src/main/java/net/minecraft/server/NBTTagCompound.java b/src/main/java/net/minecraft/server/NBTTagCompound.java
index e15c23367..82c2537b3 100644 index e658816c2..0d69deb51 100644
--- a/src/main/java/net/minecraft/server/NBTTagCompound.java --- a/src/main/java/net/minecraft/server/NBTTagCompound.java
+++ b/src/main/java/net/minecraft/server/NBTTagCompound.java +++ b/src/main/java/net/minecraft/server/NBTTagCompound.java
@@ -106,7 +106,7 @@ public class NBTTagCompound extends NBTBase { @@ -108,7 +108,7 @@ public class NBTTagCompound implements NBTBase {
return new UUID(this.getLong(s + "Most"), this.getLong(s + "Least")); return new UUID(this.getLong(s + "Most"), this.getLong(s + "Least"));
} }
@ -86,7 +86,7 @@ index e15c23367..82c2537b3 100644
} }
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java
index 99746b3c2..d4fbe31d6 100644 index 7b3b20682..b39e33f4f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java
@@ -1,6 +1,7 @@ @@ -1,6 +1,7 @@

View File

@ -1,4 +1,4 @@
From 540ca9ec6094933c35bf034c50e44d1a59a88f07 Mon Sep 17 00:00:00 2001 From 36ef4c96b2b0b383b236263c46315cddf4027b1d Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Sat, 31 Dec 2016 21:44:50 -0500 Date: Sat, 31 Dec 2016 21:44:50 -0500
Subject: [PATCH] PlayerTeleportEndGatewayEvent Subject: [PATCH] PlayerTeleportEndGatewayEvent
@ -6,10 +6,10 @@ Subject: [PATCH] PlayerTeleportEndGatewayEvent
Allows you to access the Gateway being used in a teleport event Allows you to access the Gateway being used in a teleport event
diff --git a/src/main/java/net/minecraft/server/TileEntityEndGateway.java b/src/main/java/net/minecraft/server/TileEntityEndGateway.java diff --git a/src/main/java/net/minecraft/server/TileEntityEndGateway.java b/src/main/java/net/minecraft/server/TileEntityEndGateway.java
index cfce9274a..ecbc48b0c 100644 index bb9822799..c3d30dc94 100644
--- a/src/main/java/net/minecraft/server/TileEntityEndGateway.java --- a/src/main/java/net/minecraft/server/TileEntityEndGateway.java
+++ b/src/main/java/net/minecraft/server/TileEntityEndGateway.java +++ b/src/main/java/net/minecraft/server/TileEntityEndGateway.java
@@ -124,7 +124,7 @@ public class TileEntityEndGateway extends TileEntityEnderPortal implements ITick @@ -126,7 +126,7 @@ public class TileEntityEndGateway extends TileEntityEnderPortal implements ITick
location.setPitch(player.getLocation().getPitch()); location.setPitch(player.getLocation().getPitch());
location.setYaw(player.getLocation().getYaw()); location.setYaw(player.getLocation().getYaw());

View File

@ -1,4 +1,4 @@
From ae5bdca8944e22bbd51dd5c3a668844dc10297df Mon Sep 17 00:00:00 2001 From 394e5e84f0310ea3992761cda1895646bbc1d24a Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Mon, 2 Jan 2017 16:32:56 -0500 Date: Mon, 2 Jan 2017 16:32:56 -0500
Subject: [PATCH] ShulkerBox Dupe Prevention Subject: [PATCH] ShulkerBox Dupe Prevention
@ -7,16 +7,16 @@ This ensures that Shulker Boxes can never drop their contents twice, and
that the inventory is cleared incase it some how also got saved to the world. that the inventory is cleared incase it some how also got saved to the world.
diff --git a/src/main/java/net/minecraft/server/BlockShulkerBox.java b/src/main/java/net/minecraft/server/BlockShulkerBox.java diff --git a/src/main/java/net/minecraft/server/BlockShulkerBox.java b/src/main/java/net/minecraft/server/BlockShulkerBox.java
index 8811eb3e3..74e2e448f 100644 index a823e7073..37ec634f6 100644
--- a/src/main/java/net/minecraft/server/BlockShulkerBox.java --- a/src/main/java/net/minecraft/server/BlockShulkerBox.java
+++ b/src/main/java/net/minecraft/server/BlockShulkerBox.java +++ b/src/main/java/net/minecraft/server/BlockShulkerBox.java
@@ -112,6 +112,7 @@ public class BlockShulkerBox extends BlockTileEntity { @@ -100,6 +100,7 @@ public class BlockShulkerBox extends BlockTileEntity {
}
a(world, blockposition, itemstack);
+ tileentityshulkerbox.clear(); // Paper - This was intended to be called in Vanilla (is checked in the if statement above if has been called) - Fixes dupe issues
} }
a(world, blockposition, itemstack);
+ tileentityshulkerbox.clear(); // Paper - This was intended to be called in Vanilla (is checked in the if statement above if has been called) - Fixes dupe issues
} }
world.updateAdjacentComparators(blockposition, iblockdata.getBlock()); world.updateAdjacentComparators(blockposition, iblockdata.getBlock());
-- --
2.18.0 2.18.0

View File

@ -1,4 +1,4 @@
From 8ad93887128df82ddae370b8a6da958cf7b1ff7b Mon Sep 17 00:00:00 2001 From d01eef55a17b0d2c9ebec24bec84ed17299ad4de Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Sat, 7 Jan 2017 15:24:46 -0500 Date: Sat, 7 Jan 2017 15:24:46 -0500
Subject: [PATCH] Provide E/TE/Chunk count stat methods Subject: [PATCH] Provide E/TE/Chunk count stat methods
@ -7,10 +7,10 @@ Provides counts without the ineffeciency of using .getEntities().size()
which creates copy of the collections. which creates copy of the collections.
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 284dc6391..2e78cd8cf 100644 index e516ec603..4fd6d3dbf 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -78,6 +78,29 @@ public class CraftWorld implements World { @@ -81,6 +81,29 @@ public class CraftWorld implements World {
private int chunkLoadCount = 0; private int chunkLoadCount = 0;
private int chunkGCTickCount; private int chunkGCTickCount;

View File

@ -1,4 +1,4 @@
From 747e0616893e74e1c96216c04ab0e4462b675533 Mon Sep 17 00:00:00 2001 From 2a5803386edd8ea650fe2d1da9363103c4058c1d Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Sat, 7 Jan 2017 15:41:58 -0500 Date: Sat, 7 Jan 2017 15:41:58 -0500
Subject: [PATCH] Enforce Sync Player Saves Subject: [PATCH] Enforce Sync Player Saves
@ -7,10 +7,10 @@ Saving players async is extremely dangerous. This will force it to main
the same way we handle async chunk loads. the same way we handle async chunk loads.
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index 23ed9efbf..c49711cad 100644 index 1f2265231..e41850742 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java --- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -1252,6 +1252,7 @@ public abstract class PlayerList { @@ -1226,6 +1226,7 @@ public abstract class PlayerList {
} }
public void savePlayers(Integer interval) { public void savePlayers(Integer interval) {
@ -18,7 +18,7 @@ index 23ed9efbf..c49711cad 100644
long now = MinecraftServer.currentTick; long now = MinecraftServer.currentTick;
MinecraftTimings.savePlayers.startTiming(); // Paper MinecraftTimings.savePlayers.startTiming(); // Paper
int numSaved = 0; // Paper int numSaved = 0; // Paper
@@ -1263,6 +1264,7 @@ public abstract class PlayerList { @@ -1237,6 +1238,7 @@ public abstract class PlayerList {
} }
} }
MinecraftTimings.savePlayers.stopTiming(); // Paper MinecraftTimings.savePlayers.stopTiming(); // Paper

View File

@ -1,4 +1,4 @@
From 246c986d5d4681c5ab7fb23a07b8e061d389ce8c Mon Sep 17 00:00:00 2001 From 3007709ef27aefc2029b6501e852a56d0fcca914 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Sat, 7 Jan 2017 16:06:44 -0500 Date: Sat, 7 Jan 2017 16:06:44 -0500
Subject: [PATCH] Enforce Sync Chunk Unloads Subject: [PATCH] Enforce Sync Chunk Unloads
@ -7,10 +7,10 @@ Unloading Chunks async is extremely dangerous. This will force it to main
the same way we handle async chunk loads. the same way we handle async chunk loads.
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 2e78cd8cf..4ffe0d208 100644 index 4fd6d3dbf..013c5b4cf 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -245,6 +245,7 @@ public class CraftWorld implements World { @@ -244,6 +244,7 @@ public class CraftWorld implements World {
} }
private boolean unloadChunk0(int x, int z, boolean save) { private boolean unloadChunk0(int x, int z, boolean save) {
@ -18,7 +18,7 @@ index 2e78cd8cf..4ffe0d208 100644
net.minecraft.server.Chunk chunk = world.getChunkProviderServer().getChunkIfLoaded(x, z); net.minecraft.server.Chunk chunk = world.getChunkProviderServer().getChunkIfLoaded(x, z);
if (chunk == null) { if (chunk == null) {
return true; return true;
@@ -252,6 +253,7 @@ public class CraftWorld implements World { @@ -251,6 +252,7 @@ public class CraftWorld implements World {
// If chunk had previously been queued to save, must do save to avoid loss of that data // If chunk had previously been queued to save, must do save to avoid loss of that data
return world.getChunkProviderServer().unloadChunk(chunk, chunk.mustSave || save); return world.getChunkProviderServer().unloadChunk(chunk, chunk.mustSave || save);

View File

@ -1,19 +1,19 @@
From 977e13e598af25e22f19ad88220a047723a12193 Mon Sep 17 00:00:00 2001 From 9e606fa80e1d93abf95a23b48e459a04e9d6e67e Mon Sep 17 00:00:00 2001
From: Alfie Cleveland <alfeh@me.com> From: Alfie Cleveland <alfeh@me.com>
Date: Sun, 8 Jan 2017 04:31:36 +0000 Date: Sun, 8 Jan 2017 04:31:36 +0000
Subject: [PATCH] Don't allow entities to ride themselves - #572 Subject: [PATCH] Don't allow entities to ride themselves - #572
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index b6711dcfa..e7f63c927 100644 index eb2a693af..b47bf9738 100644
--- a/src/main/java/net/minecraft/server/Entity.java --- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1981,6 +1981,7 @@ public abstract class Entity implements ICommandListener, KeyedObject { // Paper @@ -2075,6 +2075,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
} }
protected void o(Entity entity) { protected void o(Entity entity) {
+ if (entity == this) throw new IllegalArgumentException("Entities cannot become a passenger of themselves"); // Paper - issue 572 + if (entity == this) throw new IllegalArgumentException("Entities cannot become a passenger of themselves"); // Paper - issue 572
if (entity.bJ() != this) { if (entity.getVehicle() != this) {
throw new IllegalStateException("Use x.startRiding(y), not y.addPassenger(x)"); throw new IllegalStateException("Use x.startRiding(y), not y.addPassenger(x)");
} else { } else {
-- --

View File

@ -1,14 +1,14 @@
From 6b0a93e2ddfdb13b7aff806e071e79173d20b13b Mon Sep 17 00:00:00 2001 From 1d07c47c26d62a65101a2a873e4737f94f975b86 Mon Sep 17 00:00:00 2001
From: Michael Himing <mhiming@gmail.com> From: Michael Himing <mhiming@gmail.com>
Date: Sun, 8 Jan 2017 18:50:35 +1100 Date: Sun, 8 Jan 2017 18:50:35 +1100
Subject: [PATCH] Fix block break desync Subject: [PATCH] Fix block break desync
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index 4f8865d61..802008b4e 100644 index b69c194bb..25e3d6423 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java --- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -868,6 +868,8 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { @@ -1144,6 +1144,8 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
double d3 = d0 * d0 + d1 * d1 + d2 * d2; double d3 = d0 * d0 + d1 * d1 + d2 * d2;
if (d3 > 36.0D) { if (d3 > 36.0D) {
@ -18,5 +18,5 @@ index 4f8865d61..802008b4e 100644
} else if (blockposition.getY() >= this.minecraftServer.getMaxBuildHeight()) { } else if (blockposition.getY() >= this.minecraftServer.getMaxBuildHeight()) {
return; return;
-- --
2.17.1 2.18.0

View File

@ -0,0 +1,22 @@
From eb5e873163442ce0fe19f3f1d9563c834542fd5d Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Sat, 14 Jan 2017 01:22:07 -0600
Subject: [PATCH] Assign the World in WorldGenStronghold
diff --git a/src/main/java/net/minecraft/server/WorldGenStronghold.java b/src/main/java/net/minecraft/server/WorldGenStronghold.java
index 8b285bdd4..b6e60e9df 100644
--- a/src/main/java/net/minecraft/server/WorldGenStronghold.java
+++ b/src/main/java/net/minecraft/server/WorldGenStronghold.java
@@ -80,7 +80,7 @@ public class WorldGenStronghold extends StructureGenerator<WorldGenFeatureStrong
if (this.d != world.getSeed()) {
this.c();
}
-
+ this.g = world; // Paper
if (!this.b) {
this.a(chunkgenerator);
this.b = true;
--
2.18.0

View File

@ -1,4 +1,4 @@
From 6fab4174f4e7fc320a124b1b8d083541b49701fe Mon Sep 17 00:00:00 2001 From bd7f8afbd3193a6cfc3d65665f0afd251097c023 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Tue, 19 Dec 2017 16:31:46 -0500 Date: Tue, 19 Dec 2017 16:31:46 -0500
Subject: [PATCH] ExperienceOrbs API for Reason/Source/Triggering player Subject: [PATCH] ExperienceOrbs API for Reason/Source/Triggering player
@ -8,10 +8,10 @@ Adds lots of information about why this orb exists.
Replaces isFromBottle() with logic that persists entity reloads too. Replaces isFromBottle() with logic that persists entity reloads too.
diff --git a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java diff --git a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java
index 352310960..3e2f52647 100644 index ff110c8e9..d95587c8c 100644
--- a/src/main/java/net/minecraft/server/Block.java --- a/src/main/java/net/minecraft/server/Block.java
+++ b/src/main/java/net/minecraft/server/Block.java +++ b/src/main/java/net/minecraft/server/Block.java
@@ -388,13 +388,13 @@ public class Block { @@ -473,13 +473,13 @@ public class Block implements IMaterial {
} }
} }
@ -28,7 +28,7 @@ index 352310960..3e2f52647 100644
} }
diff --git a/src/main/java/net/minecraft/server/EntityEnderDragon.java b/src/main/java/net/minecraft/server/EntityEnderDragon.java diff --git a/src/main/java/net/minecraft/server/EntityEnderDragon.java b/src/main/java/net/minecraft/server/EntityEnderDragon.java
index a8cc6b61a..c925de971 100644 index e5f064577..e237c5dc1 100644
--- a/src/main/java/net/minecraft/server/EntityEnderDragon.java --- a/src/main/java/net/minecraft/server/EntityEnderDragon.java
+++ b/src/main/java/net/minecraft/server/EntityEnderDragon.java +++ b/src/main/java/net/minecraft/server/EntityEnderDragon.java
@@ -618,7 +618,7 @@ public class EntityEnderDragon extends EntityInsentient implements IComplex, IMo @@ -618,7 +618,7 @@ public class EntityEnderDragon extends EntityInsentient implements IComplex, IMo
@ -41,10 +41,10 @@ index a8cc6b61a..c925de971 100644
} }
diff --git a/src/main/java/net/minecraft/server/EntityExperienceOrb.java b/src/main/java/net/minecraft/server/EntityExperienceOrb.java diff --git a/src/main/java/net/minecraft/server/EntityExperienceOrb.java b/src/main/java/net/minecraft/server/EntityExperienceOrb.java
index bf5f1f0e8..d567ad4a5 100644 index 3c888d601..79d80596d 100644
--- a/src/main/java/net/minecraft/server/EntityExperienceOrb.java --- a/src/main/java/net/minecraft/server/EntityExperienceOrb.java
+++ b/src/main/java/net/minecraft/server/EntityExperienceOrb.java +++ b/src/main/java/net/minecraft/server/EntityExperienceOrb.java
@@ -15,9 +15,54 @@ public class EntityExperienceOrb extends Entity { @@ -15,9 +15,59 @@ public class EntityExperienceOrb extends Entity {
public int value; public int value;
private EntityHuman targetPlayer; private EntityHuman targetPlayer;
private int targetTime; private int targetTime;
@ -86,13 +86,17 @@ index bf5f1f0e8..d567ad4a5 100644
+ } + }
+ nbttagcompound.set("Paper.ExpData", comp); + nbttagcompound.set("Paper.ExpData", comp);
+ } + }
public EntityExperienceOrb(World world, double d0, double d1, double d2, int i) {
+ this(world, d0, d1, d2, i, null, null);
+ }
+
+ public EntityExperienceOrb(World world, double d0, double d1, double d2, int i, org.bukkit.entity.ExperienceOrb.SpawnReason reason, Entity triggerId) { + public EntityExperienceOrb(World world, double d0, double d1, double d2, int i, org.bukkit.entity.ExperienceOrb.SpawnReason reason, Entity triggerId) {
+ this(world, d0, d1, d2, i, reason, triggerId, null); + this(world, d0, d1, d2, i, reason, triggerId, null);
+ } + }
+
- public EntityExperienceOrb(World world, double d0, double d1, double d2, int i) {
+ public EntityExperienceOrb(World world, double d0, double d1, double d2, int i, org.bukkit.entity.ExperienceOrb.SpawnReason reason, Entity triggerId, Entity sourceId) { + public EntityExperienceOrb(World world, double d0, double d1, double d2, int i, org.bukkit.entity.ExperienceOrb.SpawnReason reason, Entity triggerId, Entity sourceId) {
super(world); super(EntityTypes.EXPERIENCE_ORB, world);
+ this.sourceEntityId = sourceId != null ? sourceId.getUniqueID() : null; + this.sourceEntityId = sourceId != null ? sourceId.getUniqueID() : null;
+ this.triggerEntityId = triggerId != null ? triggerId.getUniqueID() : null; + this.triggerEntityId = triggerId != null ? triggerId.getUniqueID() : null;
+ this.spawnReason = reason != null ? reason : org.bukkit.entity.ExperienceOrb.SpawnReason.UNKNOWN; + this.spawnReason = reason != null ? reason : org.bukkit.entity.ExperienceOrb.SpawnReason.UNKNOWN;
@ -100,7 +104,7 @@ index bf5f1f0e8..d567ad4a5 100644
this.setSize(0.5F, 0.5F); this.setSize(0.5F, 0.5F);
this.setPosition(d0, d1, d2); this.setPosition(d0, d1, d2);
this.yaw = (float) (Math.random() * 360.0D); this.yaw = (float) (Math.random() * 360.0D);
@@ -149,12 +194,14 @@ public class EntityExperienceOrb extends Entity { @@ -156,12 +206,14 @@ public class EntityExperienceOrb extends Entity {
nbttagcompound.setShort("Health", (short) this.d); nbttagcompound.setShort("Health", (short) this.d);
nbttagcompound.setShort("Age", (short) this.b); nbttagcompound.setShort("Age", (short) this.b);
nbttagcompound.setShort("Value", (short) this.value); nbttagcompound.setShort("Value", (short) this.value);
@ -116,10 +120,10 @@ index bf5f1f0e8..d567ad4a5 100644
public void d(EntityHuman entityhuman) { public void d(EntityHuman entityhuman) {
diff --git a/src/main/java/net/minecraft/server/EntityFishingHook.java b/src/main/java/net/minecraft/server/EntityFishingHook.java diff --git a/src/main/java/net/minecraft/server/EntityFishingHook.java b/src/main/java/net/minecraft/server/EntityFishingHook.java
index 6ac89d1e3..177d8582f 100644 index 7440e4a2a..895254c15 100644
--- a/src/main/java/net/minecraft/server/EntityFishingHook.java --- a/src/main/java/net/minecraft/server/EntityFishingHook.java
+++ b/src/main/java/net/minecraft/server/EntityFishingHook.java +++ b/src/main/java/net/minecraft/server/EntityFishingHook.java
@@ -458,7 +458,7 @@ public class EntityFishingHook extends Entity { @@ -467,7 +467,7 @@ public class EntityFishingHook extends Entity {
this.world.addEntity(entityitem); this.world.addEntity(entityitem);
// CraftBukkit start - this.random.nextInt(6) + 1 -> playerFishEvent.getExpToDrop() // CraftBukkit start - this.random.nextInt(6) + 1 -> playerFishEvent.getExpToDrop()
if (playerFishEvent.getExpToDrop() > 0) { if (playerFishEvent.getExpToDrop() > 0) {
@ -127,12 +131,12 @@ index 6ac89d1e3..177d8582f 100644
+ this.owner.world.addEntity(new EntityExperienceOrb(this.owner.world, this.owner.locX, this.owner.locY + 0.5D, this.owner.locZ + 0.5D, playerFishEvent.getExpToDrop(), org.bukkit.entity.ExperienceOrb.SpawnReason.FISHING, this.owner, this)); // Paper + this.owner.world.addEntity(new EntityExperienceOrb(this.owner.world, this.owner.locX, this.owner.locY + 0.5D, this.owner.locZ + 0.5D, playerFishEvent.getExpToDrop(), org.bukkit.entity.ExperienceOrb.SpawnReason.FISHING, this.owner, this)); // Paper
} }
// CraftBukkit end // CraftBukkit end
Item item = itemstack.getItem(); if (itemstack1.getItem().a(TagsItem.G)) {
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index 9e864864d..38c043375 100644 index 1b2e802ea..3a38f384e 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java --- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -347,7 +347,8 @@ public abstract class EntityLiving extends Entity { @@ -352,7 +352,8 @@ public abstract class EntityLiving extends Entity {
int j = EntityExperienceOrb.getOrbValue(i); int j = EntityExperienceOrb.getOrbValue(i);
i -= j; i -= j;
@ -143,10 +147,10 @@ index 9e864864d..38c043375 100644
this.expToDrop = 0; this.expToDrop = 0;
// CraftBukkit end // CraftBukkit end
diff --git a/src/main/java/net/minecraft/server/EntityThrownExpBottle.java b/src/main/java/net/minecraft/server/EntityThrownExpBottle.java diff --git a/src/main/java/net/minecraft/server/EntityThrownExpBottle.java b/src/main/java/net/minecraft/server/EntityThrownExpBottle.java
index 0255986fd..e14f614f5 100644 index a5e1939e0..e73dba09a 100644
--- a/src/main/java/net/minecraft/server/EntityThrownExpBottle.java --- a/src/main/java/net/minecraft/server/EntityThrownExpBottle.java
+++ b/src/main/java/net/minecraft/server/EntityThrownExpBottle.java +++ b/src/main/java/net/minecraft/server/EntityThrownExpBottle.java
@@ -40,7 +40,7 @@ public class EntityThrownExpBottle extends EntityProjectile { @@ -36,7 +36,7 @@ public class EntityThrownExpBottle extends EntityProjectile {
int j = EntityExperienceOrb.getOrbValue(i); int j = EntityExperienceOrb.getOrbValue(i);
i -= j; i -= j;
@ -156,10 +160,10 @@ index 0255986fd..e14f614f5 100644
this.die(); this.die();
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
index 57fcc3c05..a9c4ab10d 100644 index dcc14aa11..0a9d9fd26 100644
--- a/src/main/java/net/minecraft/server/EntityVillager.java --- a/src/main/java/net/minecraft/server/EntityVillager.java
+++ b/src/main/java/net/minecraft/server/EntityVillager.java +++ b/src/main/java/net/minecraft/server/EntityVillager.java
@@ -437,7 +437,7 @@ public class EntityVillager extends EntityAgeable implements NPC, IMerchant { @@ -411,7 +411,7 @@ public class EntityVillager extends EntityAgeable implements NPC, IMerchant {
} }
if (merchantrecipe.j()) { if (merchantrecipe.j()) {
@ -169,23 +173,23 @@ index 57fcc3c05..a9c4ab10d 100644
if (this.tradingPlayer instanceof EntityPlayer) { if (this.tradingPlayer instanceof EntityPlayer) {
diff --git a/src/main/java/net/minecraft/server/PathfinderGoalBreed.java b/src/main/java/net/minecraft/server/PathfinderGoalBreed.java diff --git a/src/main/java/net/minecraft/server/PathfinderGoalBreed.java b/src/main/java/net/minecraft/server/PathfinderGoalBreed.java
index 059671b54..444792ea0 100644 index 4a128f707..b87096467 100644
--- a/src/main/java/net/minecraft/server/PathfinderGoalBreed.java --- a/src/main/java/net/minecraft/server/PathfinderGoalBreed.java
+++ b/src/main/java/net/minecraft/server/PathfinderGoalBreed.java +++ b/src/main/java/net/minecraft/server/PathfinderGoalBreed.java
@@ -122,7 +122,7 @@ public class PathfinderGoalBreed extends PathfinderGoal { @@ -122,7 +122,7 @@ public class PathfinderGoalBreed extends PathfinderGoal {
if (this.a.getGameRules().getBoolean("doMobLoot")) { if (this.b.getGameRules().getBoolean("doMobLoot")) {
// CraftBukkit start - use event experience // CraftBukkit start - use event experience
if (experience > 0) { if (experience > 0) {
- this.a.addEntity(new EntityExperienceOrb(this.a, this.animal.locX, this.animal.locY, this.animal.locZ, experience)); - this.b.addEntity(new EntityExperienceOrb(this.b, this.animal.locX, this.animal.locY, this.animal.locZ, experience));
+ this.a.addEntity(new EntityExperienceOrb(this.a, this.animal.locX, this.animal.locY, this.animal.locZ, experience, org.bukkit.entity.ExperienceOrb.SpawnReason.BREED, entityplayer, entityageable)); // Paper + this.b.addEntity(new EntityExperienceOrb(this.b, this.animal.locX, this.animal.locY, this.animal.locZ, experience, org.bukkit.entity.ExperienceOrb.SpawnReason.BREED, entityplayer, entityageable)); // Paper
} }
// CraftBukkit end // CraftBukkit end
} }
diff --git a/src/main/java/net/minecraft/server/PlayerInteractManager.java b/src/main/java/net/minecraft/server/PlayerInteractManager.java diff --git a/src/main/java/net/minecraft/server/PlayerInteractManager.java b/src/main/java/net/minecraft/server/PlayerInteractManager.java
index a1689c065..a49b5c81a 100644 index 33b508014..e34198e40 100644
--- a/src/main/java/net/minecraft/server/PlayerInteractManager.java --- a/src/main/java/net/minecraft/server/PlayerInteractManager.java
+++ b/src/main/java/net/minecraft/server/PlayerInteractManager.java +++ b/src/main/java/net/minecraft/server/PlayerInteractManager.java
@@ -383,7 +383,7 @@ public class PlayerInteractManager { @@ -384,7 +384,7 @@ public class PlayerInteractManager {
// CraftBukkit start - Drop event experience // CraftBukkit start - Drop event experience
if (flag && event != null) { if (flag && event != null) {
@ -195,10 +199,10 @@ index a1689c065..a49b5c81a 100644
// CraftBukkit end // CraftBukkit end
diff --git a/src/main/java/net/minecraft/server/SlotFurnaceResult.java b/src/main/java/net/minecraft/server/SlotFurnaceResult.java diff --git a/src/main/java/net/minecraft/server/SlotFurnaceResult.java b/src/main/java/net/minecraft/server/SlotFurnaceResult.java
index 1dcf967a1..ed394f7a5 100644 index 998662d9e..6b4eb7f05 100644
--- a/src/main/java/net/minecraft/server/SlotFurnaceResult.java --- a/src/main/java/net/minecraft/server/SlotFurnaceResult.java
+++ b/src/main/java/net/minecraft/server/SlotFurnaceResult.java +++ b/src/main/java/net/minecraft/server/SlotFurnaceResult.java
@@ -7,7 +7,7 @@ import org.bukkit.event.inventory.FurnaceExtractEvent; @@ -9,7 +9,7 @@ import org.bukkit.event.inventory.FurnaceExtractEvent;
public class SlotFurnaceResult extends Slot { public class SlotFurnaceResult extends Slot {
@ -207,20 +211,20 @@ index 1dcf967a1..ed394f7a5 100644
private int b; private int b;
public SlotFurnaceResult(EntityHuman entityhuman, IInventory iinventory, int i, int j, int k) { public SlotFurnaceResult(EntityHuman entityhuman, IInventory iinventory, int i, int j, int k) {
@@ -71,7 +71,7 @@ public class SlotFurnaceResult extends Slot { @@ -85,7 +85,7 @@ public class SlotFurnaceResult extends Slot {
while (i > 0) { while (i > 0) {
j = EntityExperienceOrb.getOrbValue(i); j = EntityExperienceOrb.getOrbValue(i);
i -= j; i -= j;
- this.a.world.addEntity(new EntityExperienceOrb(this.a.world, this.a.locX, this.a.locY + 0.5D, this.a.locZ + 0.5D, j)); - this.a.world.addEntity(new EntityExperienceOrb(this.a.world, this.a.locX, this.a.locY + 0.5D, this.a.locZ + 0.5D, j));
+ this.a.world.addEntity(new EntityExperienceOrb(this.a.world, this.a.locX, this.a.locY + 0.5D, this.a.locZ + 0.5D, j, org.bukkit.entity.ExperienceOrb.SpawnReason.FURNACE, getPlayer())); // Paper + this.a.world.addEntity(new EntityExperienceOrb(this.a.world, this.a.locX, this.a.locY + 0.5D, this.a.locZ + 0.5D, j, org.bukkit.entity.ExperienceOrb.SpawnReason.FURNACE, getPlayer())); // Paper
}
} }
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 4ffe0d208..568a50ec4 100644 index 013c5b4cf..817e29474 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1218,7 +1218,7 @@ public class CraftWorld implements World { @@ -1240,7 +1240,7 @@ public class CraftWorld implements World {
} else if (TNTPrimed.class.isAssignableFrom(clazz)) { } else if (TNTPrimed.class.isAssignableFrom(clazz)) {
entity = new EntityTNTPrimed(world, x, y, z, null); entity = new EntityTNTPrimed(world, x, y, z, null);
} else if (ExperienceOrb.class.isAssignableFrom(clazz)) { } else if (ExperienceOrb.class.isAssignableFrom(clazz)) {

View File

@ -1,31 +0,0 @@
From a1b931dcc9fc5937954696bacf2349dcc5b9d57a Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Wed, 21 Dec 2016 03:48:29 -0500
Subject: [PATCH] Optimize ItemStack.isEmpty()
Remove hashMap lookup every check, simplify code to remove ternary
diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java
index 5047a57e9..736686bed 100644
--- a/src/main/java/net/minecraft/server/ItemStack.java
+++ b/src/main/java/net/minecraft/server/ItemStack.java
@@ -144,9 +144,15 @@ public final class ItemStack {
this.F();
}
+ // Paper start - optimize isEmpty
+ private static Item airItem;
public boolean isEmpty() {
- return this == ItemStack.a ? true : (this.item != null && this.item != Item.getItemOf(Blocks.AIR) ? (this.count <= 0 ? true : this.damage < -32768 || this.damage > '\uffff') : true);
+ if (airItem == null) {
+ airItem = Item.REGISTRY.get(new MinecraftKey("air"));
+ }
+ return this == ItemStack.a || this.item == null || this.item == airItem || (this.count <= 0 || (this.damage < -32768 || this.damage > '\uffff'));
}
+ // Paper end
public static void a(DataConverterManager dataconvertermanager) {
dataconvertermanager.a(DataConverterTypes.ITEM_INSTANCE, (DataInspector) (new DataInspectorBlockEntity()));
--
2.18.0

@ -1 +1 @@
Subproject commit b4bff6fc3d3f80a7e297624f5d9dbf3ec7d6f6aa Subproject commit a71d06a0c8426f7d1d23f9e76ea6cdf47b666db5

@ -1 +1 @@
Subproject commit 1d0aef704b8cca70ab2c71dbabad4a09b91287e3 Subproject commit 11bdb291b30fed321b346668a4b5e4ddf45229b6