Little more progress

Keep getting interrupted so not as much as I'd like :(
This commit is contained in:
Zach Brown 2019-12-11 18:03:31 -06:00
parent b00d871009
commit 01de058bf2
No known key found for this signature in database
GPG key ID: CC9DA35FC5450B76
42 changed files with 437 additions and 450 deletions

View file

@ -1,30 +1,28 @@
From 0b4c26afdef9e3616c02b0d712527b266630fd31 Mon Sep 17 00:00:00 2001 From 76c9cc9efc90a7643e725cad6fec6e30170cd4e5 Mon Sep 17 00:00:00 2001
From: Hugo Manrique <hugmanrique@gmail.com> From: Hugo Manrique <hugmanrique@gmail.com>
Date: Mon, 23 Jul 2018 12:57:39 +0200 Date: Mon, 23 Jul 2018 12:57:39 +0200
Subject: [PATCH] Option to prevent armor stands from doing entity lookups 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 diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
index 1ffcebd3c..721685704 100644 index b4e5948cc..0a99b8fe9 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
@@ -326,6 +326,11 @@ public class PaperWorldConfig { @@ -386,4 +386,9 @@ public class PaperWorldConfig {
log("Bed Search Radius: " + bedSearchRadius);
} }
} }
+
+ public boolean armorStandEntityLookups = true; + public boolean armorStandEntityLookups = true;
+ private void armorStandEntityLookups() { + private void armorStandEntityLookups() {
+ armorStandEntityLookups = getBoolean("armor-stands-do-collision-entity-lookups", true); + armorStandEntityLookups = getBoolean("armor-stands-do-collision-entity-lookups", true);
+ } + }
+ }
public int maxCollisionsPerEntity;
private void maxEntityCollision() {
maxCollisionsPerEntity = getInt( "max-entity-collisions", this.spigotConfig.getInt("max-entity-collisions", 8) );
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 95c809ba9..98195fb16 100644 index 7fcc8c52d..eea3a542d 100644
--- a/src/main/java/net/minecraft/server/World.java --- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java
@@ -868,6 +868,14 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose @@ -788,6 +788,14 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
} }
} }
@ -32,13 +30,13 @@ index 95c809ba9..98195fb16 100644
+ @Override + @Override
+ public boolean getCubes(@Nullable Entity entity, AxisAlignedBB axisAlignedBB) { + public boolean getCubes(@Nullable Entity entity, AxisAlignedBB axisAlignedBB) {
+ if (entity instanceof EntityArmorStand && !entity.world.paperConfig.armorStandEntityLookups) return false; + if (entity instanceof EntityArmorStand && !entity.world.paperConfig.armorStandEntityLookups) return false;
+ return GeneratorAccess.super.getCubes(entity, axisAlignedBB); + return GeneratorAccess.super.getCubes(entity, axisAlignedBB)
+ } + }
+ // Paper end + // Paper end
+ +
public boolean a(AxisAlignedBB axisalignedbb) { public boolean b(AxisAlignedBB axisalignedbb) {
int i = MathHelper.floor(axisalignedbb.minX); int i = MathHelper.floor(axisalignedbb.minX);
int j = MathHelper.f(axisalignedbb.maxX); int j = MathHelper.f(axisalignedbb.maxX);
-- --
2.23.0 2.24.0

View file

@ -1,14 +1,14 @@
From f877fd71860241598d881907e582804237b726cc Mon Sep 17 00:00:00 2001 From ed7ca392c8ac6f2e1acb67904f3da1bc65cf5aed Mon Sep 17 00:00:00 2001
From: Hugo Manrique <hugmanrique@gmail.com> From: Hugo Manrique <hugmanrique@gmail.com>
Date: Mon, 23 Jul 2018 14:22:26 +0200 Date: Mon, 23 Jul 2018 14:22:26 +0200
Subject: [PATCH] Vanished players don't have rights Subject: [PATCH] Vanished players don't have rights
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 9241874139..9776a29923 100644 index 3458333c9..6ef5d2ebd 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
@@ -97,7 +97,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -98,7 +98,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
private static double e = 1.0D; private static double e = 1.0D;
private final EntityTypes<?> f; private final EntityTypes<?> f;
private int id; private int id;
@ -16,9 +16,9 @@ index 9241874139..9776a29923 100644
+ public boolean i; public final boolean blocksEntitySpawning() { return this.i; } // Paper - OBFHELPER + public boolean i; public final boolean blocksEntitySpawning() { return this.i; } // Paper - OBFHELPER
public final List<Entity> passengers; public final List<Entity> passengers;
protected int j; protected int j;
private Entity vehicle; @Nullable
diff --git a/src/main/java/net/minecraft/server/IBlockData.java b/src/main/java/net/minecraft/server/IBlockData.java diff --git a/src/main/java/net/minecraft/server/IBlockData.java b/src/main/java/net/minecraft/server/IBlockData.java
index 3328a84792..367b02800a 100644 index 8d9b9af9b..08d884649 100644
--- a/src/main/java/net/minecraft/server/IBlockData.java --- a/src/main/java/net/minecraft/server/IBlockData.java
+++ b/src/main/java/net/minecraft/server/IBlockData.java +++ b/src/main/java/net/minecraft/server/IBlockData.java
@@ -146,6 +146,7 @@ public class IBlockData extends BlockDataAbstract<Block, IBlockData> implements @@ -146,6 +146,7 @@ public class IBlockData extends BlockDataAbstract<Block, IBlockData> implements
@ -30,21 +30,21 @@ index 3328a84792..367b02800a 100644
return this.getBlock().b(this, iblockaccess, blockposition, voxelshapecollision); return this.getBlock().b(this, iblockaccess, blockposition, voxelshapecollision);
} }
diff --git a/src/main/java/net/minecraft/server/ItemBlock.java b/src/main/java/net/minecraft/server/ItemBlock.java diff --git a/src/main/java/net/minecraft/server/ItemBlock.java b/src/main/java/net/minecraft/server/ItemBlock.java
index c34c635a85..0c8b11bbec 100644 index ab875a736..aed353365 100644
--- a/src/main/java/net/minecraft/server/ItemBlock.java --- a/src/main/java/net/minecraft/server/ItemBlock.java
+++ b/src/main/java/net/minecraft/server/ItemBlock.java +++ b/src/main/java/net/minecraft/server/ItemBlock.java
@@ -136,7 +136,8 @@ public class ItemBlock extends Item { @@ -136,7 +136,8 @@ public class ItemBlock extends Item {
EntityHuman entityhuman = blockactioncontext.getEntity(); EntityHuman entityhuman = blockactioncontext.getEntity();
VoxelShapeCollision voxelshapecollision = entityhuman == null ? VoxelShapeCollision.a() : VoxelShapeCollision.a((Entity) entityhuman); VoxelShapeCollision voxelshapecollision = entityhuman == null ? VoxelShapeCollision.a() : VoxelShapeCollision.a((Entity) entityhuman);
// CraftBukkit start - store default return // CraftBukkit start - store default return
- boolean defaultReturn = (!this.d() || iblockdata.canPlace(blockactioncontext.getWorld(), blockactioncontext.getClickPosition())) && blockactioncontext.getWorld().a(iblockdata, blockactioncontext.getClickPosition(), voxelshapecollision); - boolean defaultReturn = (!this.T_() || iblockdata.canPlace(blockactioncontext.getWorld(), blockactioncontext.getClickPosition())) && blockactioncontext.getWorld().a(iblockdata, blockactioncontext.getClickPosition(), voxelshapecollision);
+ World world = blockactioncontext.getWorld(); // Paper + World world = blockactioncontext.getWorld(); // Paper
+ boolean defaultReturn = (!this.d() || iblockdata.canPlace(world, blockactioncontext.getClickPosition())) && world.checkEntityCollision(iblockdata, entityhuman, voxelshapecollision, blockactioncontext.getClickPosition(), true); // Paper + boolean defaultReturn = (!this.T_() || iblockdata.canPlace(blockactioncontext.getWorld(), blockactioncontext.getClickPosition())) && world.checkEntityCollision(iblockdata, entityhuman, voxelshapecollision, blockactioncontext.getClickPosition(), true); // Paper
org.bukkit.entity.Player player = (blockactioncontext.getEntity() instanceof EntityPlayer) ? (org.bukkit.entity.Player) blockactioncontext.getEntity().getBukkitEntity() : null; org.bukkit.entity.Player player = (blockactioncontext.getEntity() instanceof EntityPlayer) ? (org.bukkit.entity.Player) blockactioncontext.getEntity().getBukkitEntity() : null;
BlockCanBuildEvent event = new BlockCanBuildEvent(CraftBlock.at(blockactioncontext.getWorld(), blockactioncontext.getClickPosition()), player, CraftBlockData.fromData(iblockdata), defaultReturn); BlockCanBuildEvent event = new BlockCanBuildEvent(CraftBlock.at(blockactioncontext.getWorld(), blockactioncontext.getClickPosition()), player, CraftBlockData.fromData(iblockdata), defaultReturn);
diff --git a/src/main/java/net/minecraft/server/VoxelShape.java b/src/main/java/net/minecraft/server/VoxelShape.java diff --git a/src/main/java/net/minecraft/server/VoxelShape.java b/src/main/java/net/minecraft/server/VoxelShape.java
index 3801b3f21d..092f02cc2f 100644 index 0f64a3c05..0f95bcbcc 100644
--- a/src/main/java/net/minecraft/server/VoxelShape.java --- a/src/main/java/net/minecraft/server/VoxelShape.java
+++ b/src/main/java/net/minecraft/server/VoxelShape.java +++ b/src/main/java/net/minecraft/server/VoxelShape.java
@@ -46,6 +46,7 @@ public abstract class VoxelShape { @@ -46,6 +46,7 @@ public abstract class VoxelShape {
@ -56,7 +56,7 @@ index 3801b3f21d..092f02cc2f 100644
return (VoxelShape) (this.isEmpty() ? VoxelShapes.a() : new VoxelShapeArray(this.a, new DoubleListOffset(this.a(EnumDirection.EnumAxis.X), d0), new DoubleListOffset(this.a(EnumDirection.EnumAxis.Y), d1), new DoubleListOffset(this.a(EnumDirection.EnumAxis.Z), d2))); return (VoxelShape) (this.isEmpty() ? VoxelShapes.a() : new VoxelShapeArray(this.a, new DoubleListOffset(this.a(EnumDirection.EnumAxis.X), d0), new DoubleListOffset(this.a(EnumDirection.EnumAxis.Y), d1), new DoubleListOffset(this.a(EnumDirection.EnumAxis.Z), d2)));
} }
diff --git a/src/main/java/net/minecraft/server/VoxelShapes.java b/src/main/java/net/minecraft/server/VoxelShapes.java diff --git a/src/main/java/net/minecraft/server/VoxelShapes.java b/src/main/java/net/minecraft/server/VoxelShapes.java
index b8659f703c..c8bd4b7034 100644 index 143be566c..08c83c62d 100644
--- a/src/main/java/net/minecraft/server/VoxelShapes.java --- a/src/main/java/net/minecraft/server/VoxelShapes.java
+++ b/src/main/java/net/minecraft/server/VoxelShapes.java +++ b/src/main/java/net/minecraft/server/VoxelShapes.java
@@ -33,6 +33,7 @@ public final class VoxelShapes { @@ -33,6 +33,7 @@ public final class VoxelShapes {
@ -74,19 +74,19 @@ index b8659f703c..c8bd4b7034 100644
+ public static final boolean applyOperation(VoxelShape voxelshape, VoxelShape voxelshape1, OperatorBoolean operatorboolean) { return VoxelShapes.c(voxelshape, voxelshape1, operatorboolean); } // Paper - OBFHELPER + public static final boolean applyOperation(VoxelShape voxelshape, VoxelShape voxelshape1, OperatorBoolean operatorboolean) { return VoxelShapes.c(voxelshape, voxelshape1, operatorboolean); } // Paper - OBFHELPER
public static boolean c(VoxelShape voxelshape, VoxelShape voxelshape1, OperatorBoolean operatorboolean) { public static boolean c(VoxelShape voxelshape, VoxelShape voxelshape1, OperatorBoolean operatorboolean) {
if (operatorboolean.apply(false, false)) { if (operatorboolean.apply(false, false)) {
throw new IllegalArgumentException(); throw (IllegalArgumentException) SystemUtils.c(new IllegalArgumentException());
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index cacc18ca41..c60279da8f 100644 index eea3a542d..bdbabe6a0 100644
--- a/src/main/java/net/minecraft/server/World.java --- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java
@@ -164,6 +164,48 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose @@ -164,6 +164,46 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
this.tileLimiter = new org.spigotmc.TickLimiter(spigotConfig.tileMaxTickTime); this.tileLimiter = new org.spigotmc.TickLimiter(spigotConfig.tileMaxTickTime);
} }
+ // Paper start + // Paper start
+ // ret true if no collision + // ret true if no collision
+ public final boolean checkEntityCollision(IBlockData data, Entity source, VoxelShapeCollision voxelshapedcollision, + public final boolean checkEntityCollision(IBlockData data, Entity source, VoxelShapeCollision voxelshapedcollision,
+ BlockPosition position, boolean checkCanSee) { + BlockPosition position, boolean checkCanSee) {
+ // Copied from IWorldReader#a(IBlockData, BlockPosition, VoxelShapeCollision) & EntityAccess#a(Entity, VoxelShape) + // Copied from IWorldReader#a(IBlockData, BlockPosition, VoxelShapeCollision) & EntityAccess#a(Entity, VoxelShape)
+ VoxelShape voxelshape = data.getCollisionShape(this, position, voxelshapedcollision); + VoxelShape voxelshape = data.getCollisionShape(this, position, voxelshapedcollision);
+ if (voxelshape.isEmpty()) { + if (voxelshape.isEmpty()) {
@ -94,18 +94,16 @@ index cacc18ca41..c60279da8f 100644
+ } + }
+ +
+ voxelshape = voxelshape.offset((double) position.getX(), (double) position.getY(), (double) position.getZ()); + voxelshape = voxelshape.offset((double) position.getX(), (double) position.getY(), (double) position.getZ());
+
+ if (voxelshape.isEmpty()) { + if (voxelshape.isEmpty()) {
+ return true; + return true;
+ } + }
+ +
+ List<Entity> entities = this.getEntities(null, voxelshape.getBoundingBox()); + List<Entity> entities = this.getEntities(null, voxelshape.getBoundingBox());
+
+ for (int i = 0, len = entities.size(); i < len; ++i) { + for (int i = 0, len = entities.size(); i < len; ++i) {
+ Entity entity = entities.get(i); + Entity entity = entities.get(i);
+ +
+ if (checkCanSee && source instanceof EntityPlayer && entity instanceof EntityPlayer + if (checkCanSee && source instanceof EntityPlayer && entity instanceof EntityPlayer
+ && !((EntityPlayer)source).getBukkitEntity().canSee(((EntityPlayer)entity).getBukkitEntity())) { + && !((EntityPlayer) source).getBukkitEntity().canSee(((EntityPlayer) entity).getBukkitEntity())) {
+ continue; + continue;
+ } + }
+ +
@ -126,10 +124,10 @@ index cacc18ca41..c60279da8f 100644
+ // Paper end + // Paper end
+ +
@Override @Override
public BiomeBase getBiome(BlockPosition blockposition) { public boolean p_() {
IChunkProvider ichunkprovider = this.getChunkProvider(); return this.isClientSide;
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index ade1d42f7e..ac4369dcef 100644 index 7967222d9..e954c59d5 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -1166,6 +1166,14 @@ public class CraftEventFactory { @@ -1166,6 +1166,14 @@ public class CraftEventFactory {
@ -148,5 +146,5 @@ index ade1d42f7e..ac4369dcef 100644
return event; return event;
} }
-- --
2.23.0 2.24.0

View file

@ -1,4 +1,4 @@
From bdc8b4e008a43b7abca0d75d8bc9f3ed61a82fd2 Mon Sep 17 00:00:00 2001 From ad87d83601ee698012d473208eb47ce44ddf42c3 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Mon, 23 Jul 2018 22:18:31 -0400 Date: Mon, 23 Jul 2018 22:18:31 -0400
Subject: [PATCH] Mark chunk dirty anytime entities change to guarantee it Subject: [PATCH] Mark chunk dirty anytime entities change to guarantee it
@ -6,10 +6,10 @@ Subject: [PATCH] Mark chunk dirty anytime entities change to guarantee it
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 1da80e244b..4c0fc8f7ea 100644 index 1efddb533..6774c6480 100644
--- a/src/main/java/net/minecraft/server/Chunk.java --- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -416,6 +416,7 @@ public class Chunk implements IChunkAccess { @@ -410,6 +410,7 @@ public class Chunk implements IChunkAccess {
entity.chunkY = k; entity.chunkY = k;
entity.chunkZ = this.loc.z; entity.chunkZ = this.loc.z;
this.entitySlices[k].add(entity); this.entitySlices[k].add(entity);
@ -17,7 +17,7 @@ index 1da80e244b..4c0fc8f7ea 100644
} }
@Override @Override
@@ -442,6 +443,7 @@ public class Chunk implements IChunkAccess { @@ -436,6 +437,7 @@ public class Chunk implements IChunkAccess {
return; return;
} }
entityCounts.decrement(entity.getMinecraftKeyString()); entityCounts.decrement(entity.getMinecraftKeyString());
@ -26,5 +26,5 @@ index 1da80e244b..4c0fc8f7ea 100644
} }
-- --
2.22.0 2.24.0

View file

@ -1,4 +1,4 @@
From 5e4738fb8845901178678c562879409f2aae83e5 Mon Sep 17 00:00:00 2001 From 5ad8734def245b4eaeb12a9271d1d878e654f98a Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Mon, 23 Jul 2018 22:44:23 -0400 Date: Mon, 23 Jul 2018 22:44:23 -0400
Subject: [PATCH] Add some Debug to Chunk Entity slices Subject: [PATCH] Add some Debug to Chunk Entity slices
@ -9,10 +9,10 @@ This should hopefully avoid duplicate entities ever being created
if the entity was to end up in 2 different chunk slices if the entity was to end up in 2 different chunk slices
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 4c0fc8f7ea..a74e389d14 100644 index 6774c6480..b156f5428 100644
--- a/src/main/java/net/minecraft/server/Chunk.java --- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -408,6 +408,25 @@ public class Chunk implements IChunkAccess { @@ -402,6 +402,25 @@ public class Chunk implements IChunkAccess {
if (k >= this.entitySlices.length) { if (k >= this.entitySlices.length) {
k = this.entitySlices.length - 1; k = this.entitySlices.length - 1;
} }
@ -38,7 +38,7 @@ index 4c0fc8f7ea..a74e389d14 100644
if (!entity.inChunk || entity.getCurrentChunk() != this) entityCounts.increment(entity.getMinecraftKeyString()); // Paper if (!entity.inChunk || entity.getCurrentChunk() != this) entityCounts.increment(entity.getMinecraftKeyString()); // Paper
entity.inChunk = true; entity.inChunk = true;
@@ -416,6 +435,7 @@ public class Chunk implements IChunkAccess { @@ -410,6 +429,7 @@ public class Chunk implements IChunkAccess {
entity.chunkY = k; entity.chunkY = k;
entity.chunkZ = this.loc.z; entity.chunkZ = this.loc.z;
this.entitySlices[k].add(entity); this.entitySlices[k].add(entity);
@ -46,7 +46,7 @@ index 4c0fc8f7ea..a74e389d14 100644
this.markDirty(); // Paper this.markDirty(); // Paper
} }
@@ -439,6 +459,9 @@ public class Chunk implements IChunkAccess { @@ -433,6 +453,9 @@ public class Chunk implements IChunkAccess {
} }
// Paper start // Paper start
if (entity.currentChunk != null && entity.currentChunk.get() == this) entity.setCurrentChunk(null); if (entity.currentChunk != null && entity.currentChunk.get() == this) entity.setCurrentChunk(null);
@ -57,17 +57,17 @@ index 4c0fc8f7ea..a74e389d14 100644
return; return;
} }
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 9776a29923..701090c11e 100644 index 6ef5d2ebd..be8f6ac99 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
@@ -67,6 +67,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -71,6 +71,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
} }
} }
}; };
+ List<Entity> entitySlice = null; + List<Entity> entitySlice = null;
// Paper end // Paper end
static boolean isLevelAtLeast(NBTTagCompound tag, int level) {
return tag.hasKey("Bukkit.updateLevel") && tag.getInt("Bukkit.updateLevel") >= level; public com.destroystokyo.paper.loottable.PaperLootableInventoryData lootableData; // Paper
-- --
2.22.0 2.24.0

View file

@ -1,14 +1,14 @@
From 5372197b746a06b86ed5a30e0cc24f048a583a99 Mon Sep 17 00:00:00 2001 From 0c350de8da85d6bd775b71fa4219cce816aac3b9 Mon Sep 17 00:00:00 2001
From: Anthony MacAllister <anthonymmacallister@gmail.com> From: Anthony MacAllister <anthonymmacallister@gmail.com>
Date: Thu, 26 Jul 2018 15:30:03 -0400 Date: Thu, 26 Jul 2018 15:30:03 -0400
Subject: [PATCH] EntityTransformedEvent Subject: [PATCH] EntityTransformedEvent
diff --git a/src/main/java/net/minecraft/server/EntityMushroomCow.java b/src/main/java/net/minecraft/server/EntityMushroomCow.java diff --git a/src/main/java/net/minecraft/server/EntityMushroomCow.java b/src/main/java/net/minecraft/server/EntityMushroomCow.java
index 3b1b0b599..1363069ff 100644 index 1fff4ce63..efde7bd1d 100644
--- a/src/main/java/net/minecraft/server/EntityMushroomCow.java --- a/src/main/java/net/minecraft/server/EntityMushroomCow.java
+++ b/src/main/java/net/minecraft/server/EntityMushroomCow.java +++ b/src/main/java/net/minecraft/server/EntityMushroomCow.java
@@ -110,6 +110,7 @@ public class EntityMushroomCow extends EntityCow { @@ -116,6 +116,7 @@ public class EntityMushroomCow extends EntityCow {
if (CraftEventFactory.callEntityTransformEvent(this, entitycow, EntityTransformEvent.TransformReason.SHEARED).isCancelled()) { if (CraftEventFactory.callEntityTransformEvent(this, entitycow, EntityTransformEvent.TransformReason.SHEARED).isCancelled()) {
return false; return false;
} }
@ -17,10 +17,10 @@ index 3b1b0b599..1363069ff 100644
this.die(); // CraftBukkit - from above this.die(); // CraftBukkit - from above
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 a4033a666..c2ccb8589 100644 index 4aa947e24..7ea55c939 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
@@ -711,6 +711,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation @@ -696,6 +696,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
if (CraftEventFactory.callEntityTransformEvent(this, entitywitch, EntityTransformEvent.TransformReason.LIGHTNING).isCancelled()) { if (CraftEventFactory.callEntityTransformEvent(this, entitywitch, EntityTransformEvent.TransformReason.LIGHTNING).isCancelled()) {
return; return;
} }
@ -29,10 +29,10 @@ index a4033a666..c2ccb8589 100644
// CraftBukkit end // CraftBukkit end
this.die(); this.die();
diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java
index a3af14630..832375f27 100644 index 6333d2234..c8e4dcdac 100644
--- a/src/main/java/net/minecraft/server/EntityZombie.java --- a/src/main/java/net/minecraft/server/EntityZombie.java
+++ b/src/main/java/net/minecraft/server/EntityZombie.java +++ b/src/main/java/net/minecraft/server/EntityZombie.java
@@ -252,6 +252,7 @@ public class EntityZombie extends EntityMonster { @@ -257,6 +257,7 @@ public class EntityZombie extends EntityMonster {
return; return;
} }
// CraftBukkit end // CraftBukkit end
@ -40,7 +40,7 @@ index a3af14630..832375f27 100644
this.world.addEntity(entityzombie, CreatureSpawnEvent.SpawnReason.DROWNED); // CraftBukkit - added spawn reason this.world.addEntity(entityzombie, CreatureSpawnEvent.SpawnReason.DROWNED); // CraftBukkit - added spawn reason
this.die(); this.die();
} }
@@ -424,6 +425,7 @@ public class EntityZombie extends EntityMonster { @@ -463,6 +464,7 @@ public class EntityZombie extends EntityMonster {
if (CraftEventFactory.callEntityTransformEvent(this, entityzombievillager, EntityTransformEvent.TransformReason.INFECTION).isCancelled()) { if (CraftEventFactory.callEntityTransformEvent(this, entityzombievillager, EntityTransformEvent.TransformReason.INFECTION).isCancelled()) {
return; return;
} }
@ -49,10 +49,10 @@ index a3af14630..832375f27 100644
this.world.addEntity(entityzombievillager, CreatureSpawnEvent.SpawnReason.INFECTION); // CraftBukkit - add SpawnReason this.world.addEntity(entityzombievillager, CreatureSpawnEvent.SpawnReason.INFECTION); // CraftBukkit - add SpawnReason
// CraftBukkit end // CraftBukkit end
diff --git a/src/main/java/net/minecraft/server/EntityZombieVillager.java b/src/main/java/net/minecraft/server/EntityZombieVillager.java diff --git a/src/main/java/net/minecraft/server/EntityZombieVillager.java b/src/main/java/net/minecraft/server/EntityZombieVillager.java
index edb0aa220..d2bd3bb31 100644 index 91cac5d53..8082fa617 100644
--- a/src/main/java/net/minecraft/server/EntityZombieVillager.java --- a/src/main/java/net/minecraft/server/EntityZombieVillager.java
+++ b/src/main/java/net/minecraft/server/EntityZombieVillager.java +++ b/src/main/java/net/minecraft/server/EntityZombieVillager.java
@@ -172,6 +172,7 @@ public class EntityZombieVillager extends EntityZombie implements VillagerDataHo @@ -197,6 +197,7 @@ public class EntityZombieVillager extends EntityZombie implements VillagerDataHo
((ZombieVillager) getBukkitEntity()).setConversionTime(-1); // SPIGOT-5208: End conversion to stop event spam ((ZombieVillager) getBukkitEntity()).setConversionTime(-1); // SPIGOT-5208: End conversion to stop event spam
return; return;
} }
@ -61,5 +61,5 @@ index edb0aa220..d2bd3bb31 100644
worldserver.addEntity(entityvillager, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.CURED); // CraftBukkit - add SpawnReason worldserver.addEntity(entityvillager, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.CURED); // CraftBukkit - add SpawnReason
// CraftBukkit end // CraftBukkit end
-- --
2.22.0 2.24.0

View file

@ -1,19 +1,19 @@
From b1dcd3fe0f0a7fb39c46b90ee97048a337b8e7ec Mon Sep 17 00:00:00 2001 From 2614673448fe2d3757e44f87d549f4b458195591 Mon Sep 17 00:00:00 2001
From: BillyGalbreath <Blake.Galbreath@GMail.com> From: BillyGalbreath <Blake.Galbreath@GMail.com>
Date: Fri, 27 Jul 2018 22:36:31 -0500 Date: Fri, 27 Jul 2018 22:36:31 -0500
Subject: [PATCH] SkeletonHorse Additions Subject: [PATCH] SkeletonHorse Additions
diff --git a/src/main/java/net/minecraft/server/EntityHorseSkeleton.java b/src/main/java/net/minecraft/server/EntityHorseSkeleton.java diff --git a/src/main/java/net/minecraft/server/EntityHorseSkeleton.java b/src/main/java/net/minecraft/server/EntityHorseSkeleton.java
index ab6deaaa89..0aa77914ca 100644 index 621f2afee..290cb9337 100644
--- a/src/main/java/net/minecraft/server/EntityHorseSkeleton.java --- a/src/main/java/net/minecraft/server/EntityHorseSkeleton.java
+++ b/src/main/java/net/minecraft/server/EntityHorseSkeleton.java +++ b/src/main/java/net/minecraft/server/EntityHorseSkeleton.java
@@ -6,7 +6,7 @@ public class EntityHorseSkeleton extends EntityHorseAbstract { @@ -6,7 +6,7 @@ public class EntityHorseSkeleton extends EntityHorseAbstract {
private final PathfinderGoalHorseTrap bI = new PathfinderGoalHorseTrap(this); private final PathfinderGoalHorseTrap bF = new PathfinderGoalHorseTrap(this);
private boolean bJ; private boolean bG;
- private int bK; - private int bH;
+ private int bK;public int getTrapTime() { return this.bK; } // Paper - OBFHELPER + private int bH; public int getTrapTime() { return this.bH; } // Paper - OBFHELPER
public EntityHorseSkeleton(EntityTypes<? extends EntityHorseSkeleton> entitytypes, World world) { public EntityHorseSkeleton(EntityTypes<? extends EntityHorseSkeleton> entitytypes, World world) {
super(entitytypes, world); super(entitytypes, world);
@ -21,17 +21,17 @@ index ab6deaaa89..0aa77914ca 100644
return 0.96F; return 0.96F;
} }
+ public boolean isTrap() { return this.dV(); } // Paper - OBFHELPER + public boolean isTrap() { return this.eq(); } // Paper - OBFHELPER
public boolean dV() { public boolean eq() {
return this.bJ; return this.bG;
} }
+ public void setTrap(boolean trap) { this.r(trap); } // Paper - OBFHELPER + public void setTrap(boolean trap) { this.r(trap); } // Paper - OBFHELPER
public void r(boolean flag) { public void r(boolean flag) {
if (flag != this.bJ) { if (flag != this.bG) {
this.bJ = flag; this.bG = flag;
diff --git a/src/main/java/net/minecraft/server/PathfinderGoalHorseTrap.java b/src/main/java/net/minecraft/server/PathfinderGoalHorseTrap.java diff --git a/src/main/java/net/minecraft/server/PathfinderGoalHorseTrap.java b/src/main/java/net/minecraft/server/PathfinderGoalHorseTrap.java
index 7b0a6f82fb..f093744136 100644 index dfe5a6358..37626f925 100644
--- a/src/main/java/net/minecraft/server/PathfinderGoalHorseTrap.java --- a/src/main/java/net/minecraft/server/PathfinderGoalHorseTrap.java
+++ b/src/main/java/net/minecraft/server/PathfinderGoalHorseTrap.java +++ b/src/main/java/net/minecraft/server/PathfinderGoalHorseTrap.java
@@ -15,6 +15,7 @@ public class PathfinderGoalHorseTrap extends PathfinderGoal { @@ -15,6 +15,7 @@ public class PathfinderGoalHorseTrap extends PathfinderGoal {
@ -43,7 +43,7 @@ index 7b0a6f82fb..f093744136 100644
this.a.r(false); this.a.r(false);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeletonHorse.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeletonHorse.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeletonHorse.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeletonHorse.java
index e822c2200d..2a7d1d4ec2 100644 index e822c2200..2a7d1d4ec 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeletonHorse.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeletonHorse.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeletonHorse.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeletonHorse.java
@@ -26,4 +26,26 @@ public class CraftSkeletonHorse extends CraftAbstractHorse implements SkeletonHo @@ -26,4 +26,26 @@ public class CraftSkeletonHorse extends CraftAbstractHorse implements SkeletonHo
@ -74,5 +74,5 @@ index e822c2200d..2a7d1d4ec2 100644
+ // Paper end + // Paper end
} }
-- --
2.22.0 2.24.0

View file

@ -1,4 +1,4 @@
From 91043567437b4d6e6a453fd63b75599c3140146f Mon Sep 17 00:00:00 2001 From 67ed4f8755937acbbb51582709bf1621185783c4 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Thu, 26 Jul 2018 00:11:12 -0400 Date: Thu, 26 Jul 2018 00:11:12 -0400
Subject: [PATCH] Prevent Saving Bad entities to chunks Subject: [PATCH] Prevent Saving Bad entities to chunks
@ -18,10 +18,10 @@ an invalid entity.
This should reduce log occurrences of dupe uuid messages. This should reduce log occurrences of dupe uuid messages.
diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
index 03be77299b..e778c2e857 100644 index 4af5a230b..6371f2f5b 100644
--- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java --- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java
+++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java +++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
@@ -319,6 +319,7 @@ public class ChunkRegionLoader { @@ -300,6 +300,7 @@ public class ChunkRegionLoader {
nbttagcompound1.set("TileEntities", nbttaglist1); nbttagcompound1.set("TileEntities", nbttaglist1);
NBTTagList nbttaglist2 = new NBTTagList(); NBTTagList nbttaglist2 = new NBTTagList();
@ -29,13 +29,13 @@ index 03be77299b..e778c2e857 100644
if (ichunkaccess.getChunkStatus().getType() == ChunkStatus.Type.LEVELCHUNK) { if (ichunkaccess.getChunkStatus().getType() == ChunkStatus.Type.LEVELCHUNK) {
Chunk chunk = (Chunk) ichunkaccess; Chunk chunk = (Chunk) ichunkaccess;
@@ -330,13 +331,29 @@ public class ChunkRegionLoader { @@ -311,13 +312,29 @@ public class ChunkRegionLoader {
while (iterator1.hasNext()) { while (iterator1.hasNext()) {
Entity entity = (Entity) iterator1.next(); Entity entity = (Entity) iterator1.next();
NBTTagCompound nbttagcompound3 = new NBTTagCompound(); NBTTagCompound nbttagcompound4 = new NBTTagCompound();
- -
+ // Paper start + // Paper start
+ if ((int)Math.floor(entity.locX) >> 4 != chunk.getPos().x || (int)Math.floor(entity.locZ) >> 4 != chunk.getPos().z) { + if ((int) Math.floor(entity.locX()) >> 4 != chunk.getPos().x || (int) Math.floor(entity.locZ()) >> 4 != chunk.getPos().z) {
+ LogManager.getLogger().warn(entity + " is not in this chunk, skipping save. This a bug fix to a vanilla bug. Do not report this to PaperMC please."); + LogManager.getLogger().warn(entity + " is not in this chunk, skipping save. This a bug fix to a vanilla bug. Do not report this to PaperMC please.");
+ toUpdate.add(entity); + toUpdate.add(entity);
+ continue; + continue;
@ -44,9 +44,9 @@ index 03be77299b..e778c2e857 100644
+ continue; + continue;
+ } + }
+ // Paper end + // Paper end
if (entity.d(nbttagcompound3)) { if (entity.d(nbttagcompound4)) {
chunk.d(true); chunk.d(true);
nbttaglist2.add(nbttagcompound3); nbttaglist2.add(nbttagcompound4);
} }
} }
} }
@ -61,5 +61,5 @@ index 03be77299b..e778c2e857 100644
ProtoChunk protochunk = (ProtoChunk) ichunkaccess; ProtoChunk protochunk = (ProtoChunk) ichunkaccess;
-- --
2.22.0 2.24.0

View file

@ -1,4 +1,4 @@
From 244d4a3b61d4250cd14c16f475900a0a31e588bf Mon Sep 17 00:00:00 2001 From 5899397fadd311c18af6469e0aaad56e968f03d2 Mon Sep 17 00:00:00 2001
From: Hugo Manrique <hugmanrique@gmail.com> From: Hugo Manrique <hugmanrique@gmail.com>
Date: Thu, 26 Jul 2018 14:10:23 +0200 Date: Thu, 26 Jul 2018 14:10:23 +0200
Subject: [PATCH] Don't call getItemMeta on hasItemMeta Subject: [PATCH] Don't call getItemMeta on hasItemMeta
@ -11,10 +11,10 @@ Returns true if getDamage() == 0 or has damage tag or other tag is set.
Check the `ItemMetaTest#testTaggedButNotMeta` method to see how this method behaves. Check the `ItemMetaTest#testTaggedButNotMeta` method to see how this method behaves.
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
index d273f24da..b1ea5b93d 100644 index 553f60987..ba8fbef85 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
@@ -545,7 +545,7 @@ public final class CraftItemStack extends ItemStack { @@ -552,7 +552,7 @@ public final class CraftItemStack extends ItemStack {
@Override @Override
public boolean hasItemMeta() { public boolean hasItemMeta() {
@ -24,36 +24,28 @@ index d273f24da..b1ea5b93d 100644
static boolean hasItemMeta(net.minecraft.server.ItemStack item) { static boolean hasItemMeta(net.minecraft.server.ItemStack item) {
diff --git a/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java b/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java diff --git a/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java b/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java
index 919f2ffa9..4726386ef 100644 index 3a82bede7..d73141839 100644
--- a/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java --- a/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java
+++ b/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java +++ b/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java
@@ -4,6 +4,7 @@ import static org.hamcrest.Matchers.*; @@ -2,10 +2,9 @@ package org.bukkit.craftbukkit.inventory;
import static org.junit.Assert.*;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collections; // Paper
import java.util.List;
import java.util.UUID;
import com.destroystokyo.paper.inventory.meta.ArmorStandMeta; // Paper
@@ -181,7 +182,47 @@ public class ItemMetaTest extends AbstractTestingBase {
assertThat("noTag and enchanted stacks should not be similar", noTag.isSimilar(enchanted), is(false)); import static org.hamcrest.Matchers.*;
assertThat("noTag and enchanted stacks should not be equal", noTag.equals(enchanted), is(false)); import static org.junit.Assert.*;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.UUID;
+ +
+ // Paper start - test additional ItemMeta damage cases +import java.util.*;
+ ItemStack clone = CraftItemStack.asBukkitCopy(CraftItemStack.asNMSCopy(noDamage));
+ assertThat("Bukkit and craft stacks should be similar", noDamage.isSimilar(clone), is(true));
+ assertThat("Bukkit and craft stacks should be equal", noDamage.equals(clone), is(true));
+
+ ItemStack pureBukkit = new ItemStack(Material.DIAMOND_SWORD);
+ pureBukkit.setDurability((short) 2);
+ net.minecraft.server.ItemStack nms = CraftItemStack.asNMSCopy(pureBukkit);
+ ItemStack other = CraftItemStack.asBukkitCopy(nms);
+
+ assertThat("Bukkit and NMS ItemStack copies should be similar", pureBukkit.isSimilar(other), is(true));
+ assertThat("Bukkit and NMS ItemStack copies should be equal", pureBukkit.equals(other), is(true));
+ }
+ +
import com.destroystokyo.paper.inventory.meta.ArmorStandMeta; // Paper
import net.minecraft.server.Block;
import net.minecraft.server.IRegistry;
@@ -97,6 +96,34 @@ public class ItemMetaTest extends AbstractTestingBase {
assertThat(itemMeta.hasConflictingEnchant(null), is(false));
}
+ // Paper start
+ private void testItemMeta(ItemStack stack) { + private void testItemMeta(ItemStack stack) {
+ assertThat("Should not have ItemMeta", stack.hasItemMeta(), is(false)); + assertThat("Should not have ItemMeta", stack.hasItemMeta(), is(false));
+ +
@ -78,11 +70,12 @@ index 919f2ffa9..4726386ef 100644
+ +
+ testItemMeta(itemStack); + testItemMeta(itemStack);
+ testItemMeta(CraftItemStack.asCraftCopy(itemStack)); + testItemMeta(CraftItemStack.asCraftCopy(itemStack));
} + }
+ // Paper end + // Paper end
+
@Test @Test
public void testBlockStateMeta() { public void testConflictingStoredEnchantment() {
EnchantmentStorageMeta itemMeta = (EnchantmentStorageMeta) Bukkit.getItemFactory().getItemMeta(Material.ENCHANTED_BOOK);
-- --
2.23.0 2.24.0

View file

@ -1,4 +1,4 @@
From a3d4cf323907ffaa92c7a1880fec59bbf2e7482a Mon Sep 17 00:00:00 2001 From 1f69d5e3135d8797208b362e5b66fada181deb92 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Sat, 28 Jul 2018 12:18:27 -0400 Date: Sat, 28 Jul 2018 12:18:27 -0400
Subject: [PATCH] Ignore Dead Entities in entityList iteration Subject: [PATCH] Ignore Dead Entities in entityList iteration
@ -11,7 +11,7 @@ This will ensure that dead entities are skipped from iteration since
they shouldn't of been in the list in the first place. they shouldn't of been in the list in the first place.
diff --git a/src/main/java/com/destroystokyo/paper/PaperCommand.java b/src/main/java/com/destroystokyo/paper/PaperCommand.java diff --git a/src/main/java/com/destroystokyo/paper/PaperCommand.java b/src/main/java/com/destroystokyo/paper/PaperCommand.java
index eecf27370b..d704fc79c0 100644 index eecf27370..d704fc79c 100644
--- a/src/main/java/com/destroystokyo/paper/PaperCommand.java --- a/src/main/java/com/destroystokyo/paper/PaperCommand.java
+++ b/src/main/java/com/destroystokyo/paper/PaperCommand.java +++ b/src/main/java/com/destroystokyo/paper/PaperCommand.java
@@ -179,6 +179,7 @@ public class PaperCommand extends Command { @@ -179,6 +179,7 @@ public class PaperCommand extends Command {
@ -23,10 +23,10 @@ index eecf27370b..d704fc79c0 100644
MutablePair<Integer, Map<ChunkCoordIntPair, Integer>> info = list.computeIfAbsent(key, k -> MutablePair.of(0, Maps.newHashMap())); MutablePair<Integer, Map<ChunkCoordIntPair, Integer>> info = list.computeIfAbsent(key, k -> MutablePair.of(0, Maps.newHashMap()));
ChunkCoordIntPair chunk = new ChunkCoordIntPair(e.getChunkX(), e.getChunkZ()); ChunkCoordIntPair chunk = new ChunkCoordIntPair(e.getChunkX(), e.getChunkZ());
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index a74e389d14..09e010e670 100644 index b156f5428..c7c600b80 100644
--- a/src/main/java/net/minecraft/server/Chunk.java --- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -678,6 +678,7 @@ public class Chunk implements IChunkAccess { @@ -671,6 +671,7 @@ public class Chunk implements IChunkAccess {
while (iterator.hasNext()) { while (iterator.hasNext()) {
Entity entity1 = (Entity) iterator.next(); Entity entity1 = (Entity) iterator.next();
@ -34,15 +34,15 @@ index a74e389d14..09e010e670 100644
if (entity1.getBoundingBox().c(axisalignedbb) && entity1 != entity) { if (entity1.getBoundingBox().c(axisalignedbb) && entity1 != entity) {
if (predicate == null || predicate.test(entity1)) { if (predicate == null || predicate.test(entity1)) {
@@ -715,6 +716,7 @@ public class Chunk implements IChunkAccess { @@ -708,6 +709,7 @@ public class Chunk implements IChunkAccess {
while (iterator.hasNext()) { while (iterator.hasNext()) {
Entity entity = (Entity) iterator.next(); T entity = (T) iterator.next(); // CraftBukkit - decompile error
+ if (entity.shouldBeRemoved) continue; // Paper + if (entity.shouldBeRemoved) continue; // Paper
if ((entitytypes == null || entity.getEntityType() == entitytypes) && entity.getBoundingBox().c(axisalignedbb) && predicate.test(entity)) { if ((entitytypes == null || entity.getEntityType() == entitytypes) && entity.getBoundingBox().c(axisalignedbb) && predicate.test(entity)) {
list.add(entity); list.add(entity);
@@ -736,6 +738,7 @@ public class Chunk implements IChunkAccess { @@ -729,6 +731,7 @@ public class Chunk implements IChunkAccess {
while (iterator.hasNext()) { while (iterator.hasNext()) {
T t0 = (T) iterator.next(); // CraftBukkit - decompile error T t0 = (T) iterator.next(); // CraftBukkit - decompile error
@ -51,22 +51,22 @@ index a74e389d14..09e010e670 100644
if (oclass.isInstance(t0) && t0.getBoundingBox().c(axisalignedbb) && (predicate == null || predicate.test(t0))) { // Spigot - instance check if (oclass.isInstance(t0) && t0.getBoundingBox().c(axisalignedbb) && (predicate == null || predicate.test(t0))) { // Spigot - instance check
list.add(t0); list.add(t0);
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 701090c11e..7d579c119b 100644 index be8f6ac99..4a931aaf4 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
@@ -126,6 +126,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -196,6 +196,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
public float D; protected int numCollisions = 0; // Paper
public float E; public void inactiveTick() { }
public float F; // Spigot end
+ public boolean shouldBeRemoved; // Paper + public boolean shouldBeRemoved; // Paper
public float fallDistance;
private float av; public float getBukkitYaw() {
private float aw; return this.yaw;
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index a5ba64a4c9..6c55ae1a9f 100644 index 110d6e571..afae55973 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java --- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -886,7 +886,7 @@ public class WorldServer extends World { @@ -894,7 +894,7 @@ public class WorldServer extends World {
while (objectiterator.hasNext()) { while (objectiterator.hasNext()) {
Entity entity = (Entity) objectiterator.next(); Entity entity = (Entity) objectiterator.next();
@ -75,7 +75,7 @@ index a5ba64a4c9..6c55ae1a9f 100644
if (entity instanceof EntityInsentient) { if (entity instanceof EntityInsentient) {
EntityInsentient entityinsentient = (EntityInsentient) entity; EntityInsentient entityinsentient = (EntityInsentient) entity;
@@ -1205,6 +1205,7 @@ public class WorldServer extends World { @@ -1213,6 +1213,7 @@ public class WorldServer extends World {
entity.origin = entity.getBukkitEntity().getLocation(); entity.origin = entity.getBukkitEntity().getLocation();
} }
// Paper end // Paper end
@ -83,7 +83,7 @@ index a5ba64a4c9..6c55ae1a9f 100644
new com.destroystokyo.paper.event.entity.EntityAddToWorldEvent(entity.getBukkitEntity()).callEvent(); // Paper - fire while valid new com.destroystokyo.paper.event.entity.EntityAddToWorldEvent(entity.getBukkitEntity()).callEvent(); // Paper - fire while valid
} }
@@ -1217,6 +1218,7 @@ public class WorldServer extends World { @@ -1225,6 +1226,7 @@ public class WorldServer extends World {
this.removeEntityFromChunk(entity); this.removeEntityFromChunk(entity);
this.entitiesById.remove(entity.getId()); this.entitiesById.remove(entity.getId());
this.unregisterEntity(entity); this.unregisterEntity(entity);
@ -92,10 +92,10 @@ index a5ba64a4c9..6c55ae1a9f 100644
} }
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 67137d69c1..01b869a06f 100644 index 96ff39e13..cc4788c96 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
@@ -965,6 +965,7 @@ public class CraftWorld implements World { @@ -979,6 +979,7 @@ public class CraftWorld implements World {
for (Object o : world.entitiesById.values()) { for (Object o : world.entitiesById.values()) {
if (o instanceof net.minecraft.server.Entity) { if (o instanceof net.minecraft.server.Entity) {
net.minecraft.server.Entity mcEnt = (net.minecraft.server.Entity) o; net.minecraft.server.Entity mcEnt = (net.minecraft.server.Entity) o;
@ -103,7 +103,7 @@ index 67137d69c1..01b869a06f 100644
Entity bukkitEntity = mcEnt.getBukkitEntity(); Entity bukkitEntity = mcEnt.getBukkitEntity();
// Assuming that bukkitEntity isn't null // Assuming that bukkitEntity isn't null
@@ -984,6 +985,7 @@ public class CraftWorld implements World { @@ -998,6 +999,7 @@ public class CraftWorld implements World {
for (Object o : world.entitiesById.values()) { for (Object o : world.entitiesById.values()) {
if (o instanceof net.minecraft.server.Entity) { if (o instanceof net.minecraft.server.Entity) {
net.minecraft.server.Entity mcEnt = (net.minecraft.server.Entity) o; net.minecraft.server.Entity mcEnt = (net.minecraft.server.Entity) o;
@ -111,7 +111,7 @@ index 67137d69c1..01b869a06f 100644
Entity bukkitEntity = mcEnt.getBukkitEntity(); Entity bukkitEntity = mcEnt.getBukkitEntity();
// Assuming that bukkitEntity isn't null // Assuming that bukkitEntity isn't null
@@ -1010,6 +1012,7 @@ public class CraftWorld implements World { @@ -1024,6 +1026,7 @@ public class CraftWorld implements World {
for (Object entity: world.entitiesById.values()) { for (Object entity: world.entitiesById.values()) {
if (entity instanceof net.minecraft.server.Entity) { if (entity instanceof net.minecraft.server.Entity) {
@ -119,7 +119,7 @@ index 67137d69c1..01b869a06f 100644
Entity bukkitEntity = ((net.minecraft.server.Entity) entity).getBukkitEntity(); Entity bukkitEntity = ((net.minecraft.server.Entity) entity).getBukkitEntity();
if (bukkitEntity == null) { if (bukkitEntity == null) {
@@ -1033,6 +1036,7 @@ public class CraftWorld implements World { @@ -1047,6 +1050,7 @@ public class CraftWorld implements World {
for (Object entity: world.entitiesById.values()) { for (Object entity: world.entitiesById.values()) {
if (entity instanceof net.minecraft.server.Entity) { if (entity instanceof net.minecraft.server.Entity) {
@ -128,5 +128,5 @@ index 67137d69c1..01b869a06f 100644
if (bukkitEntity == null) { if (bukkitEntity == null) {
-- --
2.22.1 2.24.0

View file

@ -1,4 +1,4 @@
From b4a6f6b957e5228dc76fcaadc7ceda6fff224bf2 Mon Sep 17 00:00:00 2001 From 292b1b3faeb3bf5eca86e49d192a0d9dd5e42870 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Sun, 29 Jul 2018 22:58:47 -0400 Date: Sun, 29 Jul 2018 22:58:47 -0400
Subject: [PATCH] MC-111480: Start Entity ID's at 1 Subject: [PATCH] MC-111480: Start Entity ID's at 1
@ -7,10 +7,10 @@ DataWatchers that store Entity ID's treat 0 as special,
and can break things such as Elytra Fireworks. and can break things such as Elytra Fireworks.
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 7d579c119b..7811beb807 100644 index 4a931aaf4..75343a438 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
@@ -92,7 +92,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -93,7 +93,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
// CraftBukkit end // CraftBukkit end
protected static final Logger LOGGER = LogManager.getLogger(); protected static final Logger LOGGER = LogManager.getLogger();
@ -20,5 +20,5 @@ index 7d579c119b..7811beb807 100644
private static final AxisAlignedBB d = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 0.0D, 0.0D, 0.0D); private static final AxisAlignedBB d = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 0.0D, 0.0D, 0.0D);
private static double e = 1.0D; private static double e = 1.0D;
-- --
2.22.0 2.24.0

View file

@ -1,4 +1,4 @@
From 570ab48d26bb36dee4b7cc7c474e9cb8d7982787 Mon Sep 17 00:00:00 2001 From da3fb44719e20f155c6d71c1390728c30c57f0f4 Mon Sep 17 00:00:00 2001
From: willies952002 <admin@domnian.com> From: willies952002 <admin@domnian.com>
Date: Thu, 26 Jul 2018 02:25:46 -0400 Date: Thu, 26 Jul 2018 02:25:46 -0400
Subject: [PATCH] Implement Expanded ArmorStand API Subject: [PATCH] Implement Expanded ArmorStand API
@ -8,25 +8,25 @@ Add the following:
- Enable/Disable slot interactions - Enable/Disable slot interactions
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 b337fb812..d8497fa5e 100644 index 80bf58b05..eb6cf3a86 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
@@ -36,7 +36,7 @@ public class EntityArmorStand extends EntityLiving { @@ -36,7 +36,7 @@ public class EntityArmorStand extends EntityLiving {
private final NonNullList<ItemStack> armorItems; private final NonNullList<ItemStack> armorItems;
private boolean bD; private boolean armorStandInvisible;
public long bt; public long bq;
- private int bE; - private int bB;
+ private int bE; public void setDisabledSlots(int i) { bE = i;} public int getDisabledSlots() { return bE ;} // Paper - OBFHELPER + private int bB; public void setDisabledSlots(int i) { bB = i; } public int getDisabledSlots() { return bB; } // Paper - OBFHELPER
public Vector3f headPose; public Vector3f headPose;
public Vector3f bodyPose; public Vector3f bodyPose;
public Vector3f leftArmPose; public Vector3f leftArmPose;
@@ -381,6 +381,7 @@ public class EntityArmorStand extends EntityLiving { @@ -390,6 +390,7 @@ public class EntityArmorStand extends EntityLiving {
return enumitemslot; return enumitemslot;
} }
+ public boolean isSlotDisabled(EnumItemSlot slot) { return this.d(slot); } // Paper - OBFHELPER + public boolean isSlotDisabled(EnumItemSlot slot) { return this.d(slot); } // Paper - OBFHELPER
public boolean d(EnumItemSlot enumitemslot) { private boolean d(EnumItemSlot enumitemslot) {
return (this.bE & 1 << enumitemslot.c()) != 0 || enumitemslot.a() == EnumItemSlot.Function.HAND && !this.hasArms(); return (this.bB & 1 << enumitemslot.c()) != 0 || enumitemslot.a() == EnumItemSlot.Function.HAND && !this.hasArms();
} }
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftArmorStand.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftArmorStand.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftArmorStand.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftArmorStand.java
index 124c3185b..d1d689e5d 100644 index 124c3185b..d1d689e5d 100644

View file

@ -1,17 +1,17 @@
From 8c824a76d1e77103bde43f1e18598392f4e0e0f3 Mon Sep 17 00:00:00 2001 From 26bc456a8ad1e2b824b7928557e116a4d9cfa296 Mon Sep 17 00:00:00 2001
From: BillyGalbreath <Blake.Galbreath@GMail.com> From: BillyGalbreath <Blake.Galbreath@GMail.com>
Date: Fri, 20 Jul 2018 23:37:03 -0500 Date: Fri, 20 Jul 2018 23:37:03 -0500
Subject: [PATCH] AnvilDamageEvent Subject: [PATCH] AnvilDamageEvent
diff --git a/src/main/java/net/minecraft/server/ContainerAnvil.java b/src/main/java/net/minecraft/server/ContainerAnvil.java diff --git a/src/main/java/net/minecraft/server/ContainerAnvil.java b/src/main/java/net/minecraft/server/ContainerAnvil.java
index 59f4798520..7718c5a3b7 100644 index 1d9ce5ef1..286b930dd 100644
--- a/src/main/java/net/minecraft/server/ContainerAnvil.java --- a/src/main/java/net/minecraft/server/ContainerAnvil.java
+++ b/src/main/java/net/minecraft/server/ContainerAnvil.java +++ b/src/main/java/net/minecraft/server/ContainerAnvil.java
@@ -85,6 +85,16 @@ public class ContainerAnvil extends Container { @@ -85,6 +85,16 @@ public class ContainerAnvil extends Container {
if (!entityhuman.abilities.canInstantlyBuild && iblockdata.a(TagsBlock.ANVIL) && entityhuman.getRandom().nextFloat() < 0.12F) { if (!entityhuman.abilities.canInstantlyBuild && iblockdata.a(TagsBlock.ANVIL) && entityhuman.getRandom().nextFloat() < 0.12F) {
IBlockData iblockdata1 = BlockAnvil.a_(iblockdata); IBlockData iblockdata1 = BlockAnvil.e(iblockdata);
+ // Paper start + // Paper start
+ com.destroystokyo.paper.event.block.AnvilDamagedEvent event = new com.destroystokyo.paper.event.block.AnvilDamagedEvent(getBukkitView(), iblockdata1 != null ? org.bukkit.craftbukkit.block.data.CraftBlockData.fromData(iblockdata1) : null); + com.destroystokyo.paper.event.block.AnvilDamagedEvent event = new com.destroystokyo.paper.event.block.AnvilDamagedEvent(getBukkitView(), iblockdata1 != null ? org.bukkit.craftbukkit.block.data.CraftBlockData.fromData(iblockdata1) : null);
+ if (!event.callEvent()) { + if (!event.callEvent()) {
@ -26,5 +26,5 @@ index 59f4798520..7718c5a3b7 100644
if (iblockdata1 == null) { if (iblockdata1 == null) {
world.a(blockposition, false); world.a(blockposition, false);
-- --
2.22.0 2.24.0

View file

@ -1,11 +1,11 @@
From e866f25ed159540cac7277d5ccd1a3785f7263a0 Mon Sep 17 00:00:00 2001 From d256ecba29766e5be9e171883aafef26faa42509 Mon Sep 17 00:00:00 2001
From: Mark Vainomaa <mikroskeem@mikroskeem.eu> From: Mark Vainomaa <mikroskeem@mikroskeem.eu>
Date: Mon, 16 Jul 2018 00:05:05 +0300 Date: Mon, 16 Jul 2018 00:05:05 +0300
Subject: [PATCH] Add TNTPrimeEvent Subject: [PATCH] Add TNTPrimeEvent
diff --git a/src/main/java/net/minecraft/server/BlockFire.java b/src/main/java/net/minecraft/server/BlockFire.java diff --git a/src/main/java/net/minecraft/server/BlockFire.java b/src/main/java/net/minecraft/server/BlockFire.java
index 37e6a91520..135c6ae47e 100644 index 9cf7d0b9e..15d44cd98 100644
--- a/src/main/java/net/minecraft/server/BlockFire.java --- a/src/main/java/net/minecraft/server/BlockFire.java
+++ b/src/main/java/net/minecraft/server/BlockFire.java +++ b/src/main/java/net/minecraft/server/BlockFire.java
@@ -2,6 +2,7 @@ package net.minecraft.server; @@ -2,6 +2,7 @@ package net.minecraft.server;
@ -39,7 +39,7 @@ index 37e6a91520..135c6ae47e 100644
} }
} }
diff --git a/src/main/java/net/minecraft/server/BlockTNT.java b/src/main/java/net/minecraft/server/BlockTNT.java diff --git a/src/main/java/net/minecraft/server/BlockTNT.java b/src/main/java/net/minecraft/server/BlockTNT.java
index 462c77a000..b2689ee8bf 100644 index 44d26e096..199276f3a 100644
--- a/src/main/java/net/minecraft/server/BlockTNT.java --- a/src/main/java/net/minecraft/server/BlockTNT.java
+++ b/src/main/java/net/minecraft/server/BlockTNT.java +++ b/src/main/java/net/minecraft/server/BlockTNT.java
@@ -1,6 +1,7 @@ @@ -1,6 +1,7 @@
@ -98,8 +98,8 @@ index 462c77a000..b2689ee8bf 100644
+ // Paper end + // Paper end
a(world, blockposition, (EntityLiving) entityhuman); a(world, blockposition, (EntityLiving) entityhuman);
world.setTypeAndData(blockposition, Blocks.AIR.getBlockData(), 11); world.setTypeAndData(blockposition, Blocks.AIR.getBlockData(), 11);
if (item == Items.FLINT_AND_STEEL) { if (!entityhuman.isCreative()) {
@@ -99,6 +121,13 @@ public class BlockTNT extends Block { @@ -101,6 +123,13 @@ public class BlockTNT extends Block {
} }
// CraftBukkit end // CraftBukkit end
@ -114,7 +114,7 @@ index 462c77a000..b2689ee8bf 100644
world.a(blockposition, false); world.a(blockposition, false);
} }
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 5fae347db2..c2f35f89d3 100644 index 07abcc1e2..3df8e30ec 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
@@ -11,6 +11,7 @@ import org.bukkit.craftbukkit.block.CraftBlock; @@ -11,6 +11,7 @@ import org.bukkit.craftbukkit.block.CraftBlock;
@ -125,9 +125,9 @@ index 5fae347db2..c2f35f89d3 100644
// PAIL: Fixme // PAIL: Fixme
public class EntityEnderDragon extends EntityInsentient implements IMonster { public class EntityEnderDragon extends EntityInsentient implements IMonster {
@@ -463,6 +464,11 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster { @@ -468,6 +469,11 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster {
});
Block.b(craftBlock.getNMS(), loottableinfo_builder); craftBlock.getNMS().dropNaturally(world, blockposition, ItemStack.a);
} }
+ // Paper start - TNTPrimeEvent + // Paper start - TNTPrimeEvent
+ org.bukkit.block.Block tntBlock = world.getWorld().getBlockAt(blockposition.x, blockposition.y, blockposition.z); + org.bukkit.block.Block tntBlock = world.getWorld().getBlockAt(blockposition.x, blockposition.y, blockposition.z);
@ -138,5 +138,5 @@ index 5fae347db2..c2f35f89d3 100644
this.world.a(blockposition, false); this.world.a(blockposition, false);
-- --
2.22.0 2.24.0

View file

@ -1,4 +1,4 @@
From 010e85370e2742e11f9cc6e0d0b261768317362e Mon Sep 17 00:00:00 2001 From 946cd85fec1e93728dd02008796b6fa1298b543e Mon Sep 17 00:00:00 2001
From: Shane Freeder <theboyetronic@gmail.com> From: Shane Freeder <theboyetronic@gmail.com>
Date: Sun, 29 Jul 2018 05:02:15 +0100 Date: Sun, 29 Jul 2018 05:02:15 +0100
Subject: [PATCH] Break up and make tab spam limits configurable Subject: [PATCH] Break up and make tab spam limits configurable
@ -22,11 +22,11 @@ to take the burden of this into their own hand without having to rely on
plugins doing unsafe things. plugins doing unsafe things.
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
index dfdc7c384d..207e5d3e23 100644 index 26ab855dc..adef07d4d 100644
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
@@ -311,4 +311,18 @@ public class PaperConfig { @@ -287,4 +287,18 @@ public class PaperConfig {
logger.log(Level.INFO, "******************************************************"); Bukkit.getLogger().log(Level.INFO, "Using Aikar's Alternative Luck Formula to apply Luck attribute to all loot pool calculations. See https://luckformula.emc.gs");
} }
} }
+ +
@ -45,7 +45,7 @@ index dfdc7c384d..207e5d3e23 100644
+ } + }
} }
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 f2de19b9b4..a814d8cae9 100644 index 3a7e197e3..77c375f71 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
@@ -76,6 +76,7 @@ public class PlayerConnection implements PacketListenerPlayIn { @@ -76,6 +76,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
@ -56,7 +56,7 @@ index f2de19b9b4..a814d8cae9 100644
// CraftBukkit end // CraftBukkit end
private int j; private int j;
private final Int2ShortMap k = new Int2ShortOpenHashMap(); private final Int2ShortMap k = new Int2ShortOpenHashMap();
@@ -204,6 +205,7 @@ public class PlayerConnection implements PacketListenerPlayIn { @@ -207,6 +208,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
this.minecraftServer.getMethodProfiler().exit(); this.minecraftServer.getMethodProfiler().exit();
// CraftBukkit start // CraftBukkit start
for (int spam; (spam = this.chatThrottle) > 0 && !chatSpamField.compareAndSet(this, spam, spam - 1); ) ; for (int spam; (spam = this.chatThrottle) > 0 && !chatSpamField.compareAndSet(this, spam, spam - 1); ) ;
@ -64,7 +64,7 @@ index f2de19b9b4..a814d8cae9 100644
/* Use thread-safe field access instead /* Use thread-safe field access instead
if (this.chatThrottle > 0) { if (this.chatThrottle > 0) {
--this.chatThrottle; --this.chatThrottle;
@@ -523,7 +525,7 @@ public class PlayerConnection implements PacketListenerPlayIn { @@ -526,7 +528,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
public void a(PacketPlayInTabComplete packetplayintabcomplete) { public void a(PacketPlayInTabComplete packetplayintabcomplete) {
// PlayerConnectionUtils.ensureMainThread(packetplayintabcomplete, this, this.player.getWorldServer()); // Paper - run this async // PlayerConnectionUtils.ensureMainThread(packetplayintabcomplete, this, this.player.getWorldServer()); // Paper - run this async
// CraftBukkit start // CraftBukkit start
@ -74,5 +74,5 @@ index f2de19b9b4..a814d8cae9 100644
return; return;
} }
-- --
2.22.0 2.24.0

View file

@ -1,4 +1,4 @@
From f182bbf69fb73125d9db3e0c098654b2946e1d8c Mon Sep 17 00:00:00 2001 From abd00ec4f5c1c3a61e1304d17adb390fd741220a Mon Sep 17 00:00:00 2001
From: BillyGalbreath <Blake.Galbreath@GMail.com> From: BillyGalbreath <Blake.Galbreath@GMail.com>
Date: Thu, 2 Aug 2018 08:44:35 -0500 Date: Thu, 2 Aug 2018 08:44:35 -0500
Subject: [PATCH] Add hand to bucket events Subject: [PATCH] Add hand to bucket events
@ -18,63 +18,65 @@ index 6e385b530..2c8bbf20a 100644
if (event.isCancelled()) { if (event.isCancelled()) {
return false; return false;
diff --git a/src/main/java/net/minecraft/server/ItemBucket.java b/src/main/java/net/minecraft/server/ItemBucket.java diff --git a/src/main/java/net/minecraft/server/ItemBucket.java b/src/main/java/net/minecraft/server/ItemBucket.java
index 59e239e9d..91ff811d8 100644 index aaed8c0ae..0ff92aea5 100644
--- a/src/main/java/net/minecraft/server/ItemBucket.java --- a/src/main/java/net/minecraft/server/ItemBucket.java
+++ b/src/main/java/net/minecraft/server/ItemBucket.java +++ b/src/main/java/net/minecraft/server/ItemBucket.java
@@ -39,7 +39,7 @@ public class ItemBucket extends Item { @@ -41,7 +41,7 @@ public class ItemBucket extends Item {
if (iblockdata.getBlock() instanceof IFluidSource) { if (iblockdata.getBlock() instanceof IFluidSource) {
// CraftBukkit start // CraftBukkit start
FluidType dummyFluid = ((IFluidSource) iblockdata.getBlock()).removeFluid(DummyGeneratorAccess.INSTANCE, blockposition, iblockdata); FluidType dummyFluid = ((IFluidSource) iblockdata.getBlock()).removeFluid(DummyGeneratorAccess.INSTANCE, blockposition, iblockdata);
- PlayerBucketFillEvent event = CraftEventFactory.callPlayerBucketFillEvent(world, entityhuman, blockposition, blockposition, movingobjectpositionblock.getDirection(), itemstack, dummyFluid.b()); - PlayerBucketFillEvent event = CraftEventFactory.callPlayerBucketFillEvent(world, entityhuman, blockposition, blockposition, movingobjectpositionblock.getDirection(), itemstack, dummyFluid.a());
+ PlayerBucketFillEvent event = CraftEventFactory.callPlayerBucketFillEvent(world, entityhuman, blockposition, blockposition, movingobjectpositionblock.getDirection(), itemstack, dummyFluid.b(), enumhand); // Paper - add enumHand + PlayerBucketFillEvent event = CraftEventFactory.callPlayerBucketFillEvent(world, entityhuman, blockposition, blockposition, movingobjectpositionblock.getDirection(), itemstack, dummyFluid.a(), enumhand);
if (event.isCancelled()) { if (event.isCancelled()) {
((EntityPlayer) entityhuman).playerConnection.sendPacket(new PacketPlayOutBlockChange(world, blockposition)); // SPIGOT-5163 (see PlayerInteractManager) ((EntityPlayer) entityhuman).playerConnection.sendPacket(new PacketPlayOutBlockChange(world, blockposition)); // SPIGOT-5163 (see PlayerInteractManager)
@@ -67,7 +67,7 @@ public class ItemBucket extends Item { @@ -69,7 +69,7 @@ public class ItemBucket extends Item {
iblockdata = world.getType(blockposition); iblockdata = world.getType(blockposition);
BlockPosition blockposition1 = iblockdata.getBlock() instanceof IFluidContainer && this.fluidType == FluidTypes.WATER ? blockposition : movingobjectpositionblock.getBlockPosition().shift(movingobjectpositionblock.getDirection()); BlockPosition blockposition2 = iblockdata.getBlock() instanceof IFluidContainer && this.fluidType == FluidTypes.WATER ? blockposition : blockposition1;
- if (this.a(entityhuman, world, blockposition1, movingobjectpositionblock, movingobjectpositionblock.getDirection(), blockposition, itemstack)) { // CraftBukkit - if (this.a(entityhuman, world, blockposition2, movingobjectpositionblock, movingobjectpositionblock.getDirection(), blockposition, itemstack)) { // CraftBukkit
+ if (this.a(entityhuman, world, blockposition1, movingobjectpositionblock, movingobjectpositionblock.getDirection(), blockposition, itemstack, enumhand)) { // CraftBukkit // Paper - add enumHand + if (this.a(entityhuman, world, blockposition2, movingobjectpositionblock, movingobjectpositionblock.getDirection(), blockposition, itemstack, enumhand)) { // CraftBukkit // Paper - add enumhand
this.a(world, itemstack, blockposition1); this.a(world, itemstack, blockposition2);
if (entityhuman instanceof EntityPlayer) { if (entityhuman instanceof EntityPlayer) {
CriterionTriggers.y.a((EntityPlayer) entityhuman, blockposition1, itemstack); CriterionTriggers.y.a((EntityPlayer) entityhuman, blockposition2, itemstack);
@@ -117,6 +117,12 @@ public class ItemBucket extends Item { @@ -115,10 +115,12 @@ public class ItemBucket extends Item {
// CraftBukkit start
public boolean a(@Nullable EntityHuman entityhuman, World world, BlockPosition blockposition, @Nullable MovingObjectPositionBlock movingobjectpositionblock) {
- return a(entityhuman, world, blockposition, movingobjectpositionblock, null, null, null);
+ // Paper start - add enumHand
+ return a(entityhuman, world, blockposition, movingobjectpositionblock, null, null, null, null);
} }
public boolean a(EntityHuman entityhuman, World world, BlockPosition blockposition, @Nullable MovingObjectPositionBlock movingobjectpositionblock, EnumDirection enumdirection, BlockPosition clicked, ItemStack itemstack) { - public boolean a(EntityHuman entityhuman, World world, BlockPosition blockposition, @Nullable MovingObjectPositionBlock movingobjectpositionblock, EnumDirection enumdirection, BlockPosition clicked, ItemStack itemstack) {
+ // Paper start - add enumHand
+ return a(entityhuman, world, blockposition, movingobjectpositionblock, enumdirection, clicked, itemstack, null);
+ }
+
+ public boolean a(EntityHuman entityhuman, World world, BlockPosition blockposition, @Nullable MovingObjectPositionBlock movingobjectpositionblock, EnumDirection enumdirection, BlockPosition clicked, ItemStack itemstack, EnumHand enumhand) { + public boolean a(EntityHuman entityhuman, World world, BlockPosition blockposition, @Nullable MovingObjectPositionBlock movingobjectpositionblock, EnumDirection enumdirection, BlockPosition clicked, ItemStack itemstack, EnumHand enumhand) {
+ // Paper end + // Paper end
// CraftBukkit end // CraftBukkit end
if (!(this.fluidType instanceof FluidTypeFlowing)) { if (!(this.fluidType instanceof FluidTypeFlowing)) {
return false; return false;
@@ -127,11 +133,11 @@ public class ItemBucket extends Item { @@ -128,11 +130,11 @@ public class ItemBucket extends Item {
boolean flag1 = material.isReplaceable(); boolean flag = iblockdata.a(this.fluidType);
if (!world.isEmpty(blockposition) && !flag && !flag1 && (!(iblockdata.getBlock() instanceof IFluidContainer) || !((IFluidContainer) iblockdata.getBlock()).canPlace(world, blockposition, iblockdata, this.fluidType))) { if (!iblockdata.isAir() && !flag && (!(iblockdata.getBlock() instanceof IFluidContainer) || !((IFluidContainer) iblockdata.getBlock()).canPlace(world, blockposition, iblockdata, this.fluidType))) {
- return movingobjectpositionblock == null ? false : this.a(entityhuman, world, movingobjectpositionblock.getBlockPosition().shift(movingobjectpositionblock.getDirection()), (MovingObjectPositionBlock) null, enumdirection, clicked, itemstack); // CraftBukkit - return movingobjectpositionblock == null ? false : this.a(entityhuman, world, movingobjectpositionblock.getBlockPosition().shift(movingobjectpositionblock.getDirection()), (MovingObjectPositionBlock) null, enumdirection, clicked, itemstack); // CraftBukkit
+ return movingobjectpositionblock == null ? false : this.a(entityhuman, world, movingobjectpositionblock.getBlockPosition().shift(movingobjectpositionblock.getDirection()), (MovingObjectPositionBlock) null, enumdirection, clicked, itemstack, enumhand); // CraftBukkit // Paper - add enumhand + return movingobjectpositionblock == null ? false : this.a(entityhuman, world, movingobjectpositionblock.getBlockPosition().shift(movingobjectpositionblock.getDirection()), (MovingObjectPositionBlock) null, enumdirection, clicked, itemstack, enumhand); // CraftBukkit
} else { } else {
// CraftBukkit start // CraftBukkit start
if (entityhuman != null) { if (entityhuman != null) {
- PlayerBucketEmptyEvent event = CraftEventFactory.callPlayerBucketEmptyEvent(world, entityhuman, blockposition, clicked, enumdirection, itemstack); - PlayerBucketEmptyEvent event = CraftEventFactory.callPlayerBucketEmptyEvent(world, entityhuman, blockposition, clicked, enumdirection, itemstack);
+ PlayerBucketEmptyEvent event = CraftEventFactory.callPlayerBucketEmptyEvent(world, entityhuman, blockposition, clicked, enumdirection, itemstack, enumhand); // Paper - add enumHand + PlayerBucketEmptyEvent event = CraftEventFactory.callPlayerBucketEmptyEvent(world, entityhuman, blockposition, clicked, enumdirection, itemstack, enumhand);
if (event.isCancelled()) { if (event.isCancelled()) {
((EntityPlayer) entityhuman).playerConnection.sendPacket(new PacketPlayOutBlockChange(world, blockposition)); // SPIGOT-4238: needed when looking through entity ((EntityPlayer) entityhuman).playerConnection.sendPacket(new PacketPlayOutBlockChange(world, blockposition)); // SPIGOT-4238: needed when looking through entity
((EntityPlayer) entityhuman).getBukkitEntity().updateInventory(); // SPIGOT-4541 ((EntityPlayer) entityhuman).getBukkitEntity().updateInventory(); // SPIGOT-4541
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index f4db17759..e22389457 100644 index e954c59d5..844781f4e 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -369,6 +369,21 @@ public class CraftEventFactory { @@ -368,6 +368,20 @@ public class CraftEventFactory {
}
private static PlayerEvent getPlayerBucketEvent(boolean isFilling, World world, EntityHuman who, BlockPosition changed, BlockPosition clicked, EnumDirection clickedFace, ItemStack itemstack, net.minecraft.server.Item item) { private static PlayerEvent getPlayerBucketEvent(boolean isFilling, World world, EntityHuman who, BlockPosition changed, BlockPosition clicked, EnumDirection clickedFace, ItemStack itemstack, net.minecraft.server.Item item) {
Player player = (Player) who.getBukkitEntity(); + // Paper start - add enumHand
+ // Paper start - add EnumHand
+ return getPlayerBucketEvent(isFilling, world, who, changed, clicked, clickedFace, itemstack, item, null); + return getPlayerBucketEvent(isFilling, world, who, changed, clicked, clickedFace, itemstack, item, null);
+ } + }
+ +
@ -88,11 +90,10 @@ index f4db17759..e22389457 100644
+ +
+ private static PlayerEvent getPlayerBucketEvent(boolean isFilling, World world, EntityHuman who, BlockPosition changed, BlockPosition clicked, EnumDirection clickedFace, ItemStack itemstack, net.minecraft.server.Item item, EnumHand enumHand) { + private static PlayerEvent getPlayerBucketEvent(boolean isFilling, World world, EntityHuman who, BlockPosition changed, BlockPosition clicked, EnumDirection clickedFace, ItemStack itemstack, net.minecraft.server.Item item, EnumHand enumHand) {
+ // Paper end + // Paper end
+ Player player = (who == null) ? null : (Player) who.getBukkitEntity(); Player player = (Player) who.getBukkitEntity();
CraftItemStack itemInHand = CraftItemStack.asNewCraftStack(item); CraftItemStack itemInHand = CraftItemStack.asNewCraftStack(item);
Material bucket = CraftMagicNumbers.getMaterial(itemstack.getItem()); Material bucket = CraftMagicNumbers.getMaterial(itemstack.getItem());
@@ -380,10 +394,10 @@ public class CraftEventFactory {
@@ -380,10 +395,10 @@ public class CraftEventFactory {
PlayerEvent event; PlayerEvent event;
if (isFilling) { if (isFilling) {
@ -106,5 +107,5 @@ index f4db17759..e22389457 100644
} }
-- --
2.23.0 2.24.0

View file

@ -1,11 +1,11 @@
From e4803aa2bf42cc66ff99b28bf62e87b77e08046b Mon Sep 17 00:00:00 2001 From 2c17ec220f207cfbc2efcce031acf1b635006e79 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Fri, 3 Aug 2018 00:04:54 -0400 Date: Fri, 3 Aug 2018 00:04:54 -0400
Subject: [PATCH] MC-135506: Experience should save as Integers Subject: [PATCH] MC-135506: Experience should save as Integers
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 ba3e66f9e..d8f23ff02 100644 index 87c6b77ce..53c6c3389 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
@@ -207,7 +207,7 @@ public class EntityExperienceOrb extends Entity { @@ -207,7 +207,7 @@ public class EntityExperienceOrb extends Entity {
@ -27,5 +27,5 @@ index ba3e66f9e..d8f23ff02 100644
} }
-- --
2.23.0 2.24.0

View file

@ -1,4 +1,4 @@
From ee3e5585032f57eda55905990cc126bc607f6b21 Mon Sep 17 00:00:00 2001 From 4594f92c898a543516bb905ce833f797e2991b0b Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Tue, 22 Nov 2016 00:40:42 -0500 Date: Tue, 22 Nov 2016 00:40:42 -0500
Subject: [PATCH] Fix client rendering skulls from same user Subject: [PATCH] Fix client rendering skulls from same user
@ -12,7 +12,7 @@ This allows the client to render multiple skull textures from the same user,
for when different skins were used when skull was made. for when different skins were used when skull was made.
diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java
index f849a29e2a..c69a067ef1 100644 index 5fc7124dd..33d9cac4d 100644
--- a/src/main/java/net/minecraft/server/ItemStack.java --- a/src/main/java/net/minecraft/server/ItemStack.java
+++ b/src/main/java/net/minecraft/server/ItemStack.java +++ b/src/main/java/net/minecraft/server/ItemStack.java
@@ -54,7 +54,7 @@ public final class ItemStack { @@ -54,7 +54,7 @@ public final class ItemStack {
@ -25,7 +25,7 @@ index f849a29e2a..c69a067ef1 100644
private EntityItemFrame i; private EntityItemFrame i;
private ShapeDetectorBlock j; private ShapeDetectorBlock j;
diff --git a/src/main/java/net/minecraft/server/PacketDataSerializer.java b/src/main/java/net/minecraft/server/PacketDataSerializer.java diff --git a/src/main/java/net/minecraft/server/PacketDataSerializer.java b/src/main/java/net/minecraft/server/PacketDataSerializer.java
index 0d67676f7d..fa2d3ce8cb 100644 index d9574a9ac..93ae6dcd7 100644
--- a/src/main/java/net/minecraft/server/PacketDataSerializer.java --- a/src/main/java/net/minecraft/server/PacketDataSerializer.java
+++ b/src/main/java/net/minecraft/server/PacketDataSerializer.java +++ b/src/main/java/net/minecraft/server/PacketDataSerializer.java
@@ -253,6 +253,15 @@ public class PacketDataSerializer extends ByteBuf { @@ -253,6 +253,15 @@ public class PacketDataSerializer extends ByteBuf {
@ -62,19 +62,19 @@ index 0d67676f7d..fa2d3ce8cb 100644
} }
// CraftBukkit end // CraftBukkit end
diff --git a/src/main/java/net/minecraft/server/PacketPlayOutMapChunk.java b/src/main/java/net/minecraft/server/PacketPlayOutMapChunk.java diff --git a/src/main/java/net/minecraft/server/PacketPlayOutMapChunk.java b/src/main/java/net/minecraft/server/PacketPlayOutMapChunk.java
index 363ab5da12..d19a30ad87 100644 index 3a1d0deb0..1fcbbd698 100644
--- a/src/main/java/net/minecraft/server/PacketPlayOutMapChunk.java --- a/src/main/java/net/minecraft/server/PacketPlayOutMapChunk.java
+++ b/src/main/java/net/minecraft/server/PacketPlayOutMapChunk.java +++ b/src/main/java/net/minecraft/server/PacketPlayOutMapChunk.java
@@ -51,6 +51,7 @@ public class PacketPlayOutMapChunk implements Packet<PacketListenerPlayOut> { @@ -58,6 +58,7 @@ public class PacketPlayOutMapChunk implements Packet<PacketListenerPlayOut> {
if (this.f() || (i & 1 << j) != 0) { if (this.f() || (i & 1 << j) != 0) {
NBTTagCompound nbttagcompound = tileentity.b(); NBTTagCompound nbttagcompound = tileentity.b();
+ if (tileentity instanceof TileEntitySkull) { TileEntitySkull.sanitizeTileEntityUUID(nbttagcompound); } // Paper + if (tileentity instanceof TileEntitySkull) { TileEntitySkull.sanitizeTileEntityUUID(nbttagcompound); } // Paper
this.f.add(nbttagcompound); this.g.add(nbttagcompound);
} }
diff --git a/src/main/java/net/minecraft/server/TileEntitySkull.java b/src/main/java/net/minecraft/server/TileEntitySkull.java diff --git a/src/main/java/net/minecraft/server/TileEntitySkull.java b/src/main/java/net/minecraft/server/TileEntitySkull.java
index 177cceb77f..0882d82cef 100644 index 177cceb77..0882d82ce 100644
--- a/src/main/java/net/minecraft/server/TileEntitySkull.java --- a/src/main/java/net/minecraft/server/TileEntitySkull.java
+++ b/src/main/java/net/minecraft/server/TileEntitySkull.java +++ b/src/main/java/net/minecraft/server/TileEntitySkull.java
@@ -142,9 +142,37 @@ public class TileEntitySkull extends TileEntity /*implements ITickable*/ { // Pa @@ -142,9 +142,37 @@ public class TileEntitySkull extends TileEntity /*implements ITickable*/ { // Pa
@ -117,5 +117,5 @@ index 177cceb77f..0882d82cef 100644
public NBTTagCompound b() { public NBTTagCompound b() {
return this.save(new NBTTagCompound()); return this.save(new NBTTagCompound());
-- --
2.22.0 2.24.0

View file

@ -1,4 +1,4 @@
From 01e7f97e767e1390bd6c0b7d18e8c8d430029d0b Mon Sep 17 00:00:00 2001 From bf10a9d58ea091d50c7486c6c5f2ee6df35d1635 Mon Sep 17 00:00:00 2001
From: miclebrick <miclebrick@outlook.com> From: miclebrick <miclebrick@outlook.com>
Date: Wed, 8 Aug 2018 15:30:52 -0400 Date: Wed, 8 Aug 2018 15:30:52 -0400
Subject: [PATCH] Add Early Warning Feature to WatchDog Subject: [PATCH] Add Early Warning Feature to WatchDog
@ -9,10 +9,10 @@ thread dumps at an interval until the point of crash.
This will help diagnose what was going on in that time before the crash. This will help diagnose what was going on in that time before the crash.
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
index 207e5d3e23..a13c8c68b6 100644 index adef07d4d..214b577b3 100644
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
@@ -25,6 +25,7 @@ import org.bukkit.configuration.file.YamlConfiguration; @@ -24,6 +24,7 @@ import org.bukkit.configuration.file.YamlConfiguration;
import co.aikar.timings.Timings; import co.aikar.timings.Timings;
import co.aikar.timings.TimingsManager; import co.aikar.timings.TimingsManager;
import org.spigotmc.SpigotConfig; import org.spigotmc.SpigotConfig;
@ -20,7 +20,7 @@ index 207e5d3e23..a13c8c68b6 100644
public class PaperConfig { public class PaperConfig {
@@ -312,6 +313,14 @@ public class PaperConfig { @@ -288,6 +289,14 @@ public class PaperConfig {
} }
} }
@ -36,10 +36,10 @@ index 207e5d3e23..a13c8c68b6 100644
public static int tabSpamLimit = 500; public static int tabSpamLimit = 500;
private static void tabSpamLimiters() { private static void tabSpamLimiters() {
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 37353b29da..2acb71fa8a 100644 index 97a0a6924..dd2d8712e 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -861,6 +861,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas @@ -869,6 +869,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
this.a(this.serverPing); this.a(this.serverPing);
// Spigot start // Spigot start
@ -48,10 +48,10 @@ index 37353b29da..2acb71fa8a 100644
long start = System.nanoTime(), curTime, tickSection = start; // Paper - Further improve server tick loop long start = System.nanoTime(), curTime, tickSection = start; // Paper - Further improve server tick loop
lastTick = start - TICK_TIME; // Paper lastTick = start - TICK_TIME; // Paper
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 8b5765e619..1ca2c2204c 100644 index 296a11f14..8636283fd 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -757,6 +757,7 @@ public final class CraftServer implements Server { @@ -758,6 +758,7 @@ public final class CraftServer implements Server {
@Override @Override
public void reload() { public void reload() {
@ -59,7 +59,7 @@ index 8b5765e619..1ca2c2204c 100644
reloadCount++; reloadCount++;
configuration = YamlConfiguration.loadConfiguration(getConfigFile()); configuration = YamlConfiguration.loadConfiguration(getConfigFile());
commandsConfiguration = YamlConfiguration.loadConfiguration(getCommandsConfigFile()); commandsConfiguration = YamlConfiguration.loadConfiguration(getCommandsConfigFile());
@@ -857,6 +858,7 @@ public final class CraftServer implements Server { @@ -858,6 +859,7 @@ public final class CraftServer implements Server {
enablePlugins(PluginLoadOrder.STARTUP); enablePlugins(PluginLoadOrder.STARTUP);
enablePlugins(PluginLoadOrder.POSTWORLD); enablePlugins(PluginLoadOrder.POSTWORLD);
getPluginManager().callEvent(new ServerLoadEvent(ServerLoadEvent.LoadType.RELOAD)); getPluginManager().callEvent(new ServerLoadEvent(ServerLoadEvent.LoadType.RELOAD));
@ -68,7 +68,7 @@ index 8b5765e619..1ca2c2204c 100644
@Override @Override
diff --git a/src/main/java/org/spigotmc/SpigotConfig.java b/src/main/java/org/spigotmc/SpigotConfig.java diff --git a/src/main/java/org/spigotmc/SpigotConfig.java b/src/main/java/org/spigotmc/SpigotConfig.java
index 33767c85ca..359a0c8afc 100644 index 33767c85c..359a0c8af 100644
--- a/src/main/java/org/spigotmc/SpigotConfig.java --- a/src/main/java/org/spigotmc/SpigotConfig.java
+++ b/src/main/java/org/spigotmc/SpigotConfig.java +++ b/src/main/java/org/spigotmc/SpigotConfig.java
@@ -225,7 +225,7 @@ public class SpigotConfig @@ -225,7 +225,7 @@ public class SpigotConfig
@ -81,7 +81,7 @@ index 33767c85ca..359a0c8afc 100644
public static boolean bungee; public static boolean bungee;
diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java
index 9532aada82..a1d93200e6 100644 index 9532aada8..a1d93200e 100644
--- a/src/main/java/org/spigotmc/WatchdogThread.java --- a/src/main/java/org/spigotmc/WatchdogThread.java
+++ b/src/main/java/org/spigotmc/WatchdogThread.java +++ b/src/main/java/org/spigotmc/WatchdogThread.java
@@ -5,6 +5,7 @@ import java.lang.management.MonitorInfo; @@ -5,6 +5,7 @@ import java.lang.management.MonitorInfo;
@ -182,5 +182,5 @@ index 9532aada82..a1d93200e6 100644
{ {
interrupt(); interrupt();
-- --
2.22.0 2.24.0

View file

@ -1,11 +1,11 @@
From 508b4b6d07332426e937c60de4a5e14982845f17 Mon Sep 17 00:00:00 2001 From 6d874ac6c3a4e873cd2647efdd332060790ddbeb Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Fri, 10 Aug 2018 22:11:49 -0400 Date: Fri, 10 Aug 2018 22:11:49 -0400
Subject: [PATCH] Make EnderDragon implement Mob Subject: [PATCH] Make EnderDragon implement Mob
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftComplexLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftComplexLivingEntity.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftComplexLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftComplexLivingEntity.java
index cc115cc368..4947249da2 100644 index cc115cc36..4947249da 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftComplexLivingEntity.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftComplexLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftComplexLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftComplexLivingEntity.java
@@ -1,17 +1,18 @@ @@ -1,17 +1,18 @@
@ -32,5 +32,5 @@ index cc115cc368..4947249da2 100644
@Override @Override
-- --
2.22.0 2.24.0

View file

@ -1,4 +1,4 @@
From 258ff67bf071e96e6876c5e0c79f1824c5d3c306 Mon Sep 17 00:00:00 2001 From 8466229716ac8c3296927ca150e524ab8a407f8b Mon Sep 17 00:00:00 2001
From: egg82 <phantom_zero@ymail.com> From: egg82 <phantom_zero@ymail.com>
Date: Tue, 7 Aug 2018 01:24:23 -0600 Date: Tue, 7 Aug 2018 01:24:23 -0600
Subject: [PATCH] Use ConcurrentHashMap in JsonList Subject: [PATCH] Use ConcurrentHashMap in JsonList
@ -25,7 +25,7 @@ The point of this is readability, but does have a side-benefit of a small microp
Finally, added a couple obfhelpers for the modified code Finally, added a couple obfhelpers for the modified code
diff --git a/src/main/java/net/minecraft/server/JsonList.java b/src/main/java/net/minecraft/server/JsonList.java diff --git a/src/main/java/net/minecraft/server/JsonList.java b/src/main/java/net/minecraft/server/JsonList.java
index 734e7ecf63..8570e38f42 100644 index 734e7ecf6..8570e38f4 100644
--- a/src/main/java/net/minecraft/server/JsonList.java --- a/src/main/java/net/minecraft/server/JsonList.java
+++ b/src/main/java/net/minecraft/server/JsonList.java +++ b/src/main/java/net/minecraft/server/JsonList.java
@@ -35,7 +35,8 @@ public class JsonList<K, V extends JsonListEntry<K>> { @@ -35,7 +35,8 @@ public class JsonList<K, V extends JsonListEntry<K>> {
@ -99,5 +99,5 @@ index 734e7ecf63..8570e38f42 100644
String s = this.b.toJson(collection); String s = this.b.toJson(collection);
BufferedWriter bufferedwriter = null; BufferedWriter bufferedwriter = null;
-- --
2.22.0 2.24.0

View file

@ -1,4 +1,4 @@
From be7d2af254d189bf2a6e546950db79d49781de94 Mon Sep 17 00:00:00 2001 From 3ff0d47c3608aa6de884773fcefe9fb564218b1a Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Sun, 12 Aug 2018 02:33:39 -0400 Date: Sun, 12 Aug 2018 02:33:39 -0400
Subject: [PATCH] Use a Queue for Queueing Commands Subject: [PATCH] Use a Queue for Queueing Commands
@ -6,7 +6,7 @@ Subject: [PATCH] Use a Queue for Queueing Commands
Lists are bad as Queues mmmkay. Lists are bad as Queues mmmkay.
diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java
index c6eb88c34b..5bc19cd081 100644 index 6e95a0452..3ed74ae0e 100644
--- a/src/main/java/net/minecraft/server/DedicatedServer.java --- a/src/main/java/net/minecraft/server/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/DedicatedServer.java
@@ -43,7 +43,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer @@ -43,7 +43,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
@ -32,5 +32,5 @@ index c6eb88c34b..5bc19cd081 100644
// CraftBukkit start - ServerCommand for preprocessing // CraftBukkit start - ServerCommand for preprocessing
ServerCommandEvent event = new ServerCommandEvent(console, servercommand.command); ServerCommandEvent event = new ServerCommandEvent(console, servercommand.command);
-- --
2.22.0 2.24.0

View file

@ -1,11 +1,11 @@
From 9fd4bae1935edac9e3d787e83ee6df8e73b5259b Mon Sep 17 00:00:00 2001 From bbcf2acacb7383d14529049f4107e319b5276e11 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Wed, 15 Aug 2018 01:16:34 -0400 Date: Wed, 15 Aug 2018 01:16:34 -0400
Subject: [PATCH] Ability to get Tile Entities from a chunk without snapshots Subject: [PATCH] Ability to get Tile Entities from a chunk without snapshots
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
index bc9a65de2..b45516140 100644 index 3a21d2cdd..9dcba4d15 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java --- a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
@@ -125,9 +125,16 @@ public class CraftChunk implements Chunk { @@ -125,9 +125,16 @@ public class CraftChunk implements Chunk {
@ -35,5 +35,5 @@ index bc9a65de2..b45516140 100644
return entities; return entities;
-- --
2.23.0 2.24.0

View file

@ -1,16 +1,16 @@
From 2a3338308eecbeca3e916817a22e9abb19452f88 Mon Sep 17 00:00:00 2001 From fd83a25dc850b5af4f206395331c5cf7ce3c5b8d Mon Sep 17 00:00:00 2001
From: kashike <kashike@vq.lc> From: kashike <kashike@vq.lc>
Date: Wed, 15 Aug 2018 01:26:09 -0700 Date: Wed, 15 Aug 2018 01:26:09 -0700
Subject: [PATCH] Allow disabling armour stand ticking Subject: [PATCH] Allow disabling armour stand ticking
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 721685704..9ee27f638 100644 index 0a99b8fe9..42d14fac2 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
@@ -391,4 +391,10 @@ public class PaperWorldConfig { @@ -391,4 +391,10 @@ public class PaperWorldConfig {
log("Bed Search Radius: " + bedSearchRadius); private void armorStandEntityLookups() {
} armorStandEntityLookups = getBoolean("armor-stands-do-collision-entity-lookups", true);
} }
+ +
+ public boolean armorStandTick = true; + public boolean armorStandTick = true;
@ -20,7 +20,7 @@ index 721685704..9ee27f638 100644
+ } + }
} }
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 d8497fa5e..85fc48371 100644 index eb6cf3a86..b51662ee9 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
@@ -44,6 +44,12 @@ public class EntityArmorStand extends EntityLiving { @@ -44,6 +44,12 @@ public class EntityArmorStand extends EntityLiving {
@ -37,14 +37,14 @@ index d8497fa5e..85fc48371 100644
public EntityArmorStand(EntityTypes<? extends EntityArmorStand> entitytypes, World world) { public EntityArmorStand(EntityTypes<? extends EntityArmorStand> entitytypes, World world) {
super(entitytypes, world); super(entitytypes, world);
@@ -55,6 +61,7 @@ public class EntityArmorStand extends EntityLiving { @@ -55,6 +61,7 @@ public class EntityArmorStand extends EntityLiving {
this.rightArmPose = EntityArmorStand.bx; this.rightArmPose = EntityArmorStand.bu;
this.leftLegPose = EntityArmorStand.by; this.leftLegPose = EntityArmorStand.bv;
this.rightLegPose = EntityArmorStand.bz; this.rightLegPose = EntityArmorStand.bw;
+ if (world != null) this.canTick = world.paperConfig.armorStandTick; // Paper - armour stand ticking + if (world != null) this.canTick = world.paperConfig.armorStandTick; // Paper - armour stand ticking
this.K = 0.0F; this.H = 0.0F;
} }
@@ -135,6 +142,7 @@ public class EntityArmorStand extends EntityLiving { @@ -140,6 +147,7 @@ public class EntityArmorStand extends EntityLiving {
this.armorItems.set(enumitemslot.b(), itemstack); this.armorItems.set(enumitemslot.b(), itemstack);
} }
@ -52,7 +52,7 @@ index d8497fa5e..85fc48371 100644
} }
@Override @Override
@@ -215,6 +223,7 @@ public class EntityArmorStand extends EntityLiving { @@ -220,6 +228,7 @@ public class EntityArmorStand extends EntityLiving {
} }
nbttagcompound.set("Pose", this.B()); nbttagcompound.set("Pose", this.B());
@ -60,7 +60,7 @@ index d8497fa5e..85fc48371 100644
} }
@Override @Override
@@ -246,6 +255,12 @@ public class EntityArmorStand extends EntityLiving { @@ -251,6 +260,12 @@ public class EntityArmorStand extends EntityLiving {
this.setBasePlate(nbttagcompound.getBoolean("NoBasePlate")); this.setBasePlate(nbttagcompound.getBoolean("NoBasePlate"));
this.setMarker(nbttagcompound.getBoolean("Marker")); this.setMarker(nbttagcompound.getBoolean("Marker"));
this.noclip = !this.A(); this.noclip = !this.A();
@ -73,7 +73,7 @@ index d8497fa5e..85fc48371 100644
NBTTagCompound nbttagcompound1 = nbttagcompound.getCompound("Pose"); NBTTagCompound nbttagcompound1 = nbttagcompound.getCompound("Pose");
this.g(nbttagcompound1); this.g(nbttagcompound1);
@@ -589,7 +604,29 @@ public class EntityArmorStand extends EntityLiving { @@ -605,7 +620,29 @@ public class EntityArmorStand extends EntityLiving {
@Override @Override
public void tick() { public void tick() {
@ -103,7 +103,7 @@ index d8497fa5e..85fc48371 100644
Vector3f vector3f = (Vector3f) this.datawatcher.get(EntityArmorStand.c); Vector3f vector3f = (Vector3f) this.datawatcher.get(EntityArmorStand.c);
if (!this.headPose.equals(vector3f)) { if (!this.headPose.equals(vector3f)) {
@@ -712,31 +749,37 @@ public class EntityArmorStand extends EntityLiving { @@ -728,31 +765,37 @@ public class EntityArmorStand extends EntityLiving {
public void setHeadPose(Vector3f vector3f) { public void setHeadPose(Vector3f vector3f) {
this.headPose = vector3f; this.headPose = vector3f;
this.datawatcher.set(EntityArmorStand.c, vector3f); this.datawatcher.set(EntityArmorStand.c, vector3f);
@ -136,32 +136,32 @@ index d8497fa5e..85fc48371 100644
public void setRightLegPose(Vector3f vector3f) { public void setRightLegPose(Vector3f vector3f) {
this.rightLegPose = vector3f; this.rightLegPose = vector3f;
this.datawatcher.set(EntityArmorStand.bs, vector3f); this.datawatcher.set(EntityArmorStand.bp, vector3f);
+ this.noTickPoseDirty = true; // Paper - Allow updates when not ticking + this.noTickPoseDirty = true; // Paper - Allow updates when not ticking
} }
public Vector3f r() { public Vector3f r() {
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 e1972f793..dbf42f882 100644 index 470cbddeb..91b6d6878 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
@@ -2266,52 +2266,7 @@ public abstract class EntityLiving extends Entity { @@ -2324,52 +2324,7 @@ public abstract class EntityLiving extends Entity {
} }
} }
- EnumItemSlot[] aenumitemslot = EnumItemSlot.values(); - EnumItemSlot[] aenumitemslot = EnumItemSlot.values();
- int j = aenumitemslot.length; - int k = aenumitemslot.length;
- -
- for (int k = 0; k < j; ++k) { - for (int l = 0; l < k; ++l) {
- EnumItemSlot enumitemslot = aenumitemslot[k]; - EnumItemSlot enumitemslot = aenumitemslot[l];
- ItemStack itemstack; - ItemStack itemstack;
- -
- switch (enumitemslot.a()) { - switch (enumitemslot.a()) {
- case HAND: - case HAND:
- itemstack = (ItemStack) this.bw.get(enumitemslot.b()); - itemstack = (ItemStack) this.bu.get(enumitemslot.b());
- break; - break;
- case ARMOR: - case ARMOR:
- itemstack = (ItemStack) this.bx.get(enumitemslot.b()); - itemstack = (ItemStack) this.bv.get(enumitemslot.b());
- break; - break;
- default: - default:
- continue; - continue;
@ -188,10 +188,10 @@ index e1972f793..dbf42f882 100644
- -
- switch (enumitemslot.a()) { - switch (enumitemslot.a()) {
- case HAND: - case HAND:
- this.bw.set(enumitemslot.b(), itemstack1.isEmpty() ? ItemStack.a : itemstack1.cloneItemStack()); - this.bu.set(enumitemslot.b(), itemstack1.cloneItemStack());
- break; - break;
- case ARMOR: - case ARMOR:
- this.bx.set(enumitemslot.b(), itemstack1.isEmpty() ? ItemStack.a : itemstack1.cloneItemStack()); - this.bv.set(enumitemslot.b(), itemstack1.cloneItemStack());
- } - }
- } - }
- } - }
@ -199,25 +199,24 @@ index e1972f793..dbf42f882 100644
if (this.ticksLived % 20 == 0) { if (this.ticksLived % 20 == 0) {
this.getCombatTracker().g(); this.getCombatTracker().g();
@@ -2412,6 +2367,57 @@ public abstract class EntityLiving extends Entity { @@ -2470,6 +2425,55 @@ public abstract class EntityLiving extends Entity {
} }
} }
+ // Paper start - split into own method from above + // Paper start - split into own method from above
+ public void updateEntityEquipment() { + public void updateEntityEquipment() {
+ EnumItemSlot[] aenumitemslot = EnumItemSlot.values(); + EnumItemSlot[] aenumitemslot = EnumItemSlot.values();
+ int j = aenumitemslot.length; + int k = aenumitemslot.length;
+ + for (int l = 0; l < k; ++l) {
+ for (int k = 0; k < j; ++k) { + EnumItemSlot enumitemslot = aenumitemslot[l];
+ EnumItemSlot enumitemslot = aenumitemslot[k];
+ ItemStack itemstack; + ItemStack itemstack;
+ +
+ switch (enumitemslot.a()) { + switch (enumitemslot.a()) {
+ case HAND: + case HAND:
+ itemstack = (ItemStack) this.bw.get(enumitemslot.b()); + itemstack = (ItemStack) this.bu.get(enumitemslot.b());
+ break; + break;
+ case ARMOR: + case ARMOR:
+ itemstack = (ItemStack) this.bx.get(enumitemslot.b()); + itemstack = (ItemStack) this.bv.get(enumitemslot.b());
+ break; + break;
+ default: + default:
+ continue; + continue;
@ -244,21 +243,20 @@ index e1972f793..dbf42f882 100644
+ +
+ switch (enumitemslot.a()) { + switch (enumitemslot.a()) {
+ case HAND: + case HAND:
+ this.bw.set(enumitemslot.b(), itemstack1.isEmpty() ? ItemStack.a : itemstack1.cloneItemStack()); + this.bu.set(enumitemslot.b(), itemstack1.cloneItemStack());
+ break; + break;
+ case ARMOR: + case ARMOR:
+ this.bx.set(enumitemslot.b(), itemstack1.isEmpty() ? ItemStack.a : itemstack1.cloneItemStack()); + this.bv.set(enumitemslot.b(), itemstack1.cloneItemStack());
+ } + }
+ } + }
+ } + }
+ } + }
+ // Paper end
+ +
protected float e(float f, float f1) { protected float f(float f, float f1) {
float f2 = MathHelper.g(f - this.aK); float f2 = MathHelper.g(f - this.aI);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftArmorStand.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftArmorStand.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftArmorStand.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftArmorStand.java
index 9f5c3b92e..73714d71a 100644 index d1d689e5d..ac105270d 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftArmorStand.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftArmorStand.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftArmorStand.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftArmorStand.java
@@ -297,5 +297,16 @@ public class CraftArmorStand extends CraftLivingEntity implements ArmorStand { @@ -297,5 +297,16 @@ public class CraftArmorStand extends CraftLivingEntity implements ArmorStand {
@ -279,5 +277,5 @@ index 9f5c3b92e..73714d71a 100644
// Paper end // Paper end
} }
-- --
2.23.0 2.24.0

View file

@ -1,4 +1,4 @@
From bc08ff9417570d7df849e53f35df454caab58231 Mon Sep 17 00:00:00 2001 From 358d0fc1ce9cb5ce91e52c5dcaa89c7ebae35ac8 Mon Sep 17 00:00:00 2001
From: Spottedleaf <Spottedleaf@users.noreply.github.com> From: Spottedleaf <Spottedleaf@users.noreply.github.com>
Date: Wed, 15 Aug 2018 12:05:12 -0700 Date: Wed, 15 Aug 2018 12:05:12 -0700
Subject: [PATCH] Optimize BlockPosition helper methods Subject: [PATCH] Optimize BlockPosition helper methods
@ -6,14 +6,14 @@ Subject: [PATCH] Optimize BlockPosition helper methods
Resolves #1338 Resolves #1338
diff --git a/src/main/java/net/minecraft/server/BlockPosition.java b/src/main/java/net/minecraft/server/BlockPosition.java diff --git a/src/main/java/net/minecraft/server/BlockPosition.java b/src/main/java/net/minecraft/server/BlockPosition.java
index 04f754d2c1..16f0930404 100644 index 5a505b753..142476395 100644
--- a/src/main/java/net/minecraft/server/BlockPosition.java --- a/src/main/java/net/minecraft/server/BlockPosition.java
+++ b/src/main/java/net/minecraft/server/BlockPosition.java +++ b/src/main/java/net/minecraft/server/BlockPosition.java
@@ -134,55 +134,72 @@ public class BlockPosition extends BaseBlockPosition implements MinecraftSeriali @@ -134,57 +134,74 @@ public class BlockPosition extends BaseBlockPosition implements MinecraftSeriali
} }
public BlockPosition up() { public BlockPosition up() {
- return this.up(1); - return this.shift(EnumDirection.UP);
+ return new BlockPosition(this.getX(), this.getY() + 1, this.getZ()); // Paper - Optimize BlockPosition + return new BlockPosition(this.getX(), this.getY() + 1, this.getZ()); // Paper - Optimize BlockPosition
} }
@ -22,18 +22,20 @@ index 04f754d2c1..16f0930404 100644
+ return i == 0 ? this : new BlockPosition(this.getX(), this.getY() + i, this.getZ()); // Paper - Optimize BlockPosition + return i == 0 ? this : new BlockPosition(this.getX(), this.getY() + i, this.getZ()); // Paper - Optimize BlockPosition
} }
@Override
public BlockPosition down() { public BlockPosition down() {
- return this.down(1); - return this.shift(EnumDirection.DOWN);
+ return new BlockPosition(this.getX(), this.getY() - 1, this.getZ()); // Paper - Optimize BlockPosition + return new BlockPosition(this.getX(), this.getY() - 1, this.getZ()); // Paper - Optimize BlockPosition
} }
@Override
public BlockPosition down(int i) { public BlockPosition down(int i) {
- return this.shift(EnumDirection.DOWN, i); - return this.shift(EnumDirection.DOWN, i);
+ return i == 0 ? this : new BlockPosition(this.getX(), this.getY() - i, this.getZ()); // Paper - Optimize BlockPosition + return i == 0 ? this : new BlockPosition(this.getX(), this.getY() - i, this.getZ()); // Paper - Optimize BlockPosition
} }
public BlockPosition north() { public BlockPosition north() {
- return this.north(1); - return this.shift(EnumDirection.NORTH);
+ return new BlockPosition(this.getX(), this.getY(), this.getZ() - 1); // Paper - Optimize BlockPosition + return new BlockPosition(this.getX(), this.getY(), this.getZ() - 1); // Paper - Optimize BlockPosition
} }
@ -43,7 +45,7 @@ index 04f754d2c1..16f0930404 100644
} }
public BlockPosition south() { public BlockPosition south() {
- return this.south(1); - return this.shift(EnumDirection.SOUTH);
+ return new BlockPosition(this.getX(), this.getY(), this.getZ() + 1); // Paper - Optimize BlockPosition + return new BlockPosition(this.getX(), this.getY(), this.getZ() + 1); // Paper - Optimize BlockPosition
} }
@ -53,7 +55,7 @@ index 04f754d2c1..16f0930404 100644
} }
public BlockPosition west() { public BlockPosition west() {
- return this.west(1); - return this.shift(EnumDirection.WEST);
+ return new BlockPosition(this.getX() - 1, this.getY(), this.getZ()); // Paper - Optimize BlockPosition + return new BlockPosition(this.getX() - 1, this.getY(), this.getZ()); // Paper - Optimize BlockPosition
} }
@ -63,7 +65,7 @@ index 04f754d2c1..16f0930404 100644
} }
public BlockPosition east() { public BlockPosition east() {
- return this.east(1); - return this.shift(EnumDirection.EAST);
+ return new BlockPosition(this.getX() + 1, this.getY(), this.getZ()); // Paper - Optimize BlockPosition + return new BlockPosition(this.getX() + 1, this.getY(), this.getZ()); // Paper - Optimize BlockPosition
} }
@ -73,7 +75,7 @@ index 04f754d2c1..16f0930404 100644
} }
public BlockPosition shift(EnumDirection enumdirection) { public BlockPosition shift(EnumDirection enumdirection) {
- return this.shift(enumdirection, 1); - return new BlockPosition(this.getX() + enumdirection.getAdjacentX(), this.getY() + enumdirection.getAdjacentY(), this.getZ() + enumdirection.getAdjacentZ());
+ // Paper Start - Optimize BlockPosition + // Paper Start - Optimize BlockPosition
+ switch(enumdirection) { + switch(enumdirection) {
+ case UP: + case UP:
@ -94,7 +96,7 @@ index 04f754d2c1..16f0930404 100644
+ // Paper End + // Paper End
} }
public BlockPosition shift(EnumDirection enumdirection, int i) { @Override
-- --
2.22.0 2.24.0

View file

@ -1,14 +1,14 @@
From ca03c7262701704ccf28cc21a909c752ca1b9c19 Mon Sep 17 00:00:00 2001 From 8994b45d4f74697c2e8d62bae6ff636740fef2ea Mon Sep 17 00:00:00 2001
From: Mystiflow <mystiflow@gmail.com> From: Mystiflow <mystiflow@gmail.com>
Date: Fri, 6 Jul 2018 13:21:30 +0100 Date: Fri, 6 Jul 2018 13:21:30 +0100
Subject: [PATCH] Send nearby packets from world player list not server list Subject: [PATCH] Send nearby packets from world player list not server list
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 9e5cd22d7d..049d702cb9 100644 index fd0f5c6f2..e46436623 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
@@ -922,8 +922,25 @@ public abstract class PlayerList { @@ -923,8 +923,25 @@ public abstract class PlayerList {
} }
public void sendPacketNearby(@Nullable EntityHuman entityhuman, double d0, double d1, double d2, double d3, DimensionManager dimensionmanager, Packet<?> packet) { public void sendPacketNearby(@Nullable EntityHuman entityhuman, double d0, double d1, double d2, double d3, DimensionManager dimensionmanager, Packet<?> packet) {
@ -36,29 +36,29 @@ index 9e5cd22d7d..049d702cb9 100644
// CraftBukkit start - Test if player receiving packet can see the source of the packet // CraftBukkit start - Test if player receiving packet can see the source of the packet
if (entityhuman != null && entityhuman instanceof EntityPlayer && !entityplayer.getBukkitEntity().canSee(((EntityPlayer) entityhuman).getBukkitEntity())) { if (entityhuman != null && entityhuman instanceof EntityPlayer && !entityplayer.getBukkitEntity().canSee(((EntityPlayer) entityhuman).getBukkitEntity())) {
@@ -931,7 +948,7 @@ public abstract class PlayerList { @@ -932,7 +949,7 @@ public abstract class PlayerList {
} }
// CraftBukkit end // CraftBukkit end
- if (entityplayer != entityhuman && entityplayer.dimension == dimensionmanager) { - if (entityplayer != entityhuman && entityplayer.dimension == dimensionmanager) {
+ if (entityplayer != entityhuman && (world != null || entityplayer.dimension == dimensionmanager)) { // Paper + if (entityplayer != entityhuman && (world != null || entityplayer.dimension == dimensionmanager)) { // Paper
double d4 = d0 - entityplayer.locX; double d4 = d0 - entityplayer.locX();
double d5 = d1 - entityplayer.locY; double d5 = d1 - entityplayer.locY();
double d6 = d2 - entityplayer.locZ; double d6 = d2 - entityplayer.locZ();
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index 6c55ae1a9f..8b55879c64 100644 index afae55973..640e40ef8 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java --- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -1251,7 +1251,7 @@ public class WorldServer extends World { @@ -1259,7 +1259,7 @@ public class WorldServer extends World {
} }
// CraftBukkit end // CraftBukkit end
this.globalEntityList.add(entitylightning); this.globalEntityList.add(entitylightning);
- this.server.getPlayerList().sendPacketNearby((EntityHuman) null, entitylightning.locX, entitylightning.locY, entitylightning.locZ, 512.0D, this.worldProvider.getDimensionManager(), new PacketPlayOutSpawnEntityWeather(entitylightning)); - this.server.getPlayerList().sendPacketNearby((EntityHuman) null, entitylightning.locX(), entitylightning.locY(), entitylightning.locZ(), 512.0D, this.worldProvider.getDimensionManager(), new PacketPlayOutSpawnEntityWeather(entitylightning));
+ this.server.getPlayerList().sendPacketNearby((EntityHuman) null, entitylightning.locX, entitylightning.locY, entitylightning.locZ, 512.0D, this, new PacketPlayOutSpawnEntityWeather(entitylightning)); // Paper - use world instead of dimension + this.server.getPlayerList().sendPacketNearby((EntityHuman) null, entitylightning.locX(), entitylightning.locY(), entitylightning.locZ(), 512.0D, this, new PacketPlayOutSpawnEntityWeather(entitylightning)); // Paper - use world instead of dimension
} }
@Override @Override
@@ -1383,7 +1383,7 @@ public class WorldServer extends World { @@ -1391,7 +1391,7 @@ public class WorldServer extends World {
BlockActionData blockactiondata = (BlockActionData) this.I.removeFirst(); BlockActionData blockactiondata = (BlockActionData) this.I.removeFirst();
if (this.a(blockactiondata)) { if (this.a(blockactiondata)) {
@ -68,10 +68,10 @@ index 6c55ae1a9f..8b55879c64 100644
} }
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 01b869a06f..f57023529d 100644 index cc4788c96..a2739b887 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
@@ -2034,7 +2034,7 @@ public class CraftWorld implements World { @@ -2044,7 +2044,7 @@ public class CraftWorld implements World {
double z = loc.getZ(); double z = loc.getZ();
PacketPlayOutCustomSoundEffect packet = new PacketPlayOutCustomSoundEffect(new MinecraftKey(sound), SoundCategory.valueOf(category.name()), new Vec3D(x, y, z), volume, pitch); PacketPlayOutCustomSoundEffect packet = new PacketPlayOutCustomSoundEffect(new MinecraftKey(sound), SoundCategory.valueOf(category.name()), new Vec3D(x, y, z), volume, pitch);
@ -81,5 +81,5 @@ index 01b869a06f..f57023529d 100644
private static Map<String, GameRules.GameRuleKey<?>> gamerules; private static Map<String, GameRules.GameRuleKey<?>> gamerules;
-- --
2.22.1 2.24.0

View file

@ -1,11 +1,11 @@
From a72924bfa010ce50f8a5a40414decbe42c15d22e Mon Sep 17 00:00:00 2001 From fe176073abc6d42b34160371c9766ed78ebcf57e Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Sat, 18 Aug 2018 12:43:16 -0400 Date: Sat, 18 Aug 2018 12:43:16 -0400
Subject: [PATCH] Restore vanlla default mob-spawn-range Subject: [PATCH] Restore vanlla default mob-spawn-range
diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java
index 8c7dd013..4feea10d 100644 index 8c7dd0133..4feea10de 100644
--- a/src/main/java/org/spigotmc/SpigotWorldConfig.java --- a/src/main/java/org/spigotmc/SpigotWorldConfig.java
+++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java +++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java
@@ -165,7 +165,7 @@ public class SpigotWorldConfig @@ -165,7 +165,7 @@ public class SpigotWorldConfig
@ -18,5 +18,5 @@ index 8c7dd013..4feea10d 100644
} }
-- --
2.22.0 2.24.0

View file

@ -1,4 +1,4 @@
From aedcb2249752ae04d77f953d837e2af692ef756f Mon Sep 17 00:00:00 2001 From 41595f03900fb5abaeedd14a6da858d95f423937 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Wed, 27 Apr 2016 22:09:52 -0400 Date: Wed, 27 Apr 2016 22:09:52 -0400
Subject: [PATCH] Optimize Hoppers Subject: [PATCH] Optimize Hoppers
@ -11,13 +11,14 @@ Subject: [PATCH] Optimize Hoppers
* Skip subsequent InventoryMoveItemEvents if a plugin does not use the item after first event fire for an iteration * Skip subsequent InventoryMoveItemEvents if a plugin does not use the item after first event fire for an iteration
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 9ee27f638..269c1ace4 100644 index 42d14fac2..80d66c647 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
@@ -360,6 +360,15 @@ public class PaperWorldConfig { @@ -397,4 +397,13 @@ public class PaperWorldConfig {
squidMaxSpawnHeight = getDouble("squid-spawn-height.maximum", 0.0D); this.armorStandTick = this.getBoolean("armor-stands-tick", this.armorStandTick);
log("ArmorStand ticking is " + (this.armorStandTick ? "enabled" : "disabled") + " by default");
} }
+
+ public boolean cooldownHopperWhenFull = true; + public boolean cooldownHopperWhenFull = true;
+ public boolean disableHopperMoveEvents = false; + public boolean disableHopperMoveEvents = false;
+ private void hopperOptimizations() { + private void hopperOptimizations() {
@ -26,31 +27,31 @@ index 9ee27f638..269c1ace4 100644
+ disableHopperMoveEvents = getBoolean("hopper.disable-move-event", disableHopperMoveEvents); + disableHopperMoveEvents = getBoolean("hopper.disable-move-event", disableHopperMoveEvents);
+ log("Hopper Move Item Events: " + (disableHopperMoveEvents ? "disabled" : "enabled")); + log("Hopper Move Item Events: " + (disableHopperMoveEvents ? "disabled" : "enabled"));
+ } + }
+ }
public boolean disableSprintInterruptionOnAttack;
private void disableSprintInterruptionOnAttack() {
disableSprintInterruptionOnAttack = getBoolean("game-mechanics.disable-sprint-interruption-on-attack", false);
diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java
index c69a067ef..1e23d77e7 100644 index 33d9cac4d..627fa465c 100644
--- a/src/main/java/net/minecraft/server/ItemStack.java --- a/src/main/java/net/minecraft/server/ItemStack.java
+++ b/src/main/java/net/minecraft/server/ItemStack.java +++ b/src/main/java/net/minecraft/server/ItemStack.java
@@ -482,8 +482,9 @@ public final class ItemStack { @@ -481,11 +481,12 @@ public final class ItemStack {
return this.getItem().a(this, entityhuman, entityliving, enumhand); return this.getItem().a(this, entityhuman, entityliving, enumhand);
} }
- public ItemStack cloneItemStack() { - public ItemStack cloneItemStack() {
- ItemStack itemstack = new ItemStack(this.getItem(), this.count);
+ public ItemStack cloneItemStack() { return cloneItemStack(false); } // Paper + public ItemStack cloneItemStack() { return cloneItemStack(false); } // Paper
+ public ItemStack cloneItemStack(boolean origItem) { // Paper + public ItemStack cloneItemStack(boolean origItem) { // Paper
+ ItemStack itemstack = new ItemStack(origItem ? this.item : this.getItem(), this.count); // Paper if (this.isEmpty()) {
return ItemStack.a;
} else {
- ItemStack itemstack = new ItemStack(this.getItem(), this.count);
+ ItemStack itemstack = new ItemStack(origItem ? this.item : this.getItem(), this.count); // Paper
itemstack.d(this.C()); itemstack.d(this.C());
if (this.tag != null) { if (this.tag != null) {
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 6f410ca92..c07578067 100644 index dd2d8712e..206a4ad64 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1160,6 +1160,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas @@ -1168,6 +1168,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
WorldServer worldserver = (WorldServer) iterator.next(); WorldServer worldserver = (WorldServer) iterator.next();
worldserver.hasPhysicsEvent = org.bukkit.event.block.BlockPhysicsEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper worldserver.hasPhysicsEvent = org.bukkit.event.block.BlockPhysicsEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper
@ -59,7 +60,7 @@ index 6f410ca92..c07578067 100644
this.methodProfiler.a(() -> { this.methodProfiler.a(() -> {
return worldserver.getWorldData().getName() + " " + IRegistry.DIMENSION_TYPE.getKey(worldserver.worldProvider.getDimensionManager()); return worldserver.getWorldData().getName() + " " + IRegistry.DIMENSION_TYPE.getKey(worldserver.worldProvider.getDimensionManager());
diff --git a/src/main/java/net/minecraft/server/TileEntity.java b/src/main/java/net/minecraft/server/TileEntity.java diff --git a/src/main/java/net/minecraft/server/TileEntity.java b/src/main/java/net/minecraft/server/TileEntity.java
index c72b01386..b8ddb99fa 100644 index 958279249..a8e64dfda 100644
--- a/src/main/java/net/minecraft/server/TileEntity.java --- a/src/main/java/net/minecraft/server/TileEntity.java
+++ b/src/main/java/net/minecraft/server/TileEntity.java +++ b/src/main/java/net/minecraft/server/TileEntity.java
@@ -62,6 +62,7 @@ public abstract class TileEntity implements KeyedObject { // Paper @@ -62,6 +62,7 @@ public abstract class TileEntity implements KeyedObject { // Paper
@ -70,7 +71,7 @@ index c72b01386..b8ddb99fa 100644
// Paper end // Paper end
@Nullable @Nullable
@@ -139,6 +140,7 @@ public abstract class TileEntity implements KeyedObject { // Paper @@ -140,6 +141,7 @@ public abstract class TileEntity implements KeyedObject { // Paper
public void update() { public void update() {
if (this.world != null) { if (this.world != null) {
@ -79,10 +80,10 @@ index c72b01386..b8ddb99fa 100644
this.world.b(this.position, this); this.world.b(this.position, this);
if (!this.c.isAir()) { if (!this.c.isAir()) {
diff --git a/src/main/java/net/minecraft/server/TileEntityHopper.java b/src/main/java/net/minecraft/server/TileEntityHopper.java diff --git a/src/main/java/net/minecraft/server/TileEntityHopper.java b/src/main/java/net/minecraft/server/TileEntityHopper.java
index 1ba98bf73..6f6519f6c 100644 index e08faf538..15588103b 100644
--- a/src/main/java/net/minecraft/server/TileEntityHopper.java --- a/src/main/java/net/minecraft/server/TileEntityHopper.java
+++ b/src/main/java/net/minecraft/server/TileEntityHopper.java +++ b/src/main/java/net/minecraft/server/TileEntityHopper.java
@@ -189,6 +189,154 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi @@ -168,6 +168,154 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi
return false; return false;
} }
@ -234,10 +235,10 @@ index 1ba98bf73..6f6519f6c 100644
+ } + }
+ // Paper end + // Paper end
+ +
private boolean t() { private boolean j() {
IInventory iinventory = this.u(); IInventory iinventory = this.k();
@@ -200,6 +348,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi @@ -179,6 +327,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi
if (this.b(iinventory, enumdirection)) { if (this.b(iinventory, enumdirection)) {
return false; return false;
} else { } else {
@ -245,7 +246,7 @@ index 1ba98bf73..6f6519f6c 100644
for (int i = 0; i < this.getSize(); ++i) { for (int i = 0; i < this.getSize(); ++i) {
if (!this.getItem(i).isEmpty()) { if (!this.getItem(i).isEmpty()) {
ItemStack itemstack = this.getItem(i).cloneItemStack(); ItemStack itemstack = this.getItem(i).cloneItemStack();
@@ -237,7 +386,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi @@ -216,7 +365,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi
} }
} }
@ -254,7 +255,7 @@ index 1ba98bf73..6f6519f6c 100644
} }
} }
} }
@@ -267,6 +416,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi @@ -246,6 +395,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi
EnumDirection enumdirection = EnumDirection.DOWN; EnumDirection enumdirection = EnumDirection.DOWN;
return c(iinventory, enumdirection) ? false : a(iinventory, enumdirection).anyMatch((i) -> { return c(iinventory, enumdirection) ? false : a(iinventory, enumdirection).anyMatch((i) -> {
@ -262,7 +263,7 @@ index 1ba98bf73..6f6519f6c 100644
return a(ihopper, iinventory, i, enumdirection); return a(ihopper, iinventory, i, enumdirection);
}); });
} else { } else {
@@ -290,6 +440,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi @@ -269,6 +419,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi
ItemStack itemstack = iinventory.getItem(i); ItemStack itemstack = iinventory.getItem(i);
if (!itemstack.isEmpty() && b(iinventory, itemstack, i, enumdirection)) { if (!itemstack.isEmpty() && b(iinventory, itemstack, i, enumdirection)) {
@ -270,7 +271,7 @@ index 1ba98bf73..6f6519f6c 100644
ItemStack itemstack1 = itemstack.cloneItemStack(); ItemStack itemstack1 = itemstack.cloneItemStack();
// ItemStack itemstack2 = addItem(iinventory, ihopper, iinventory.splitStack(i, 1), (EnumDirection) null); // ItemStack itemstack2 = addItem(iinventory, ihopper, iinventory.splitStack(i, 1), (EnumDirection) null);
// CraftBukkit start - Call event on collection of items from inventories into the hopper // CraftBukkit start - Call event on collection of items from inventories into the hopper
@@ -326,7 +477,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi @@ -305,7 +456,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi
} }
itemstack1.subtract(origCount - itemstack2.getCount()); // Spigot itemstack1.subtract(origCount - itemstack2.getCount()); // Spigot
@ -279,7 +280,7 @@ index 1ba98bf73..6f6519f6c 100644
} }
return false; return false;
@@ -335,7 +486,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi @@ -314,7 +465,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi
public static boolean a(IInventory iinventory, EntityItem entityitem) { public static boolean a(IInventory iinventory, EntityItem entityitem) {
boolean flag = false; boolean flag = false;
// CraftBukkit start // CraftBukkit start
@ -288,7 +289,7 @@ index 1ba98bf73..6f6519f6c 100644
entityitem.world.getServer().getPluginManager().callEvent(event); entityitem.world.getServer().getPluginManager().callEvent(event);
if (event.isCancelled()) { if (event.isCancelled()) {
return false; return false;
@@ -389,7 +540,9 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi @@ -368,7 +519,9 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi
boolean flag1 = iinventory1.isNotEmpty(); boolean flag1 = iinventory1.isNotEmpty();
if (itemstack1.isEmpty()) { if (itemstack1.isEmpty()) {
@ -299,5 +300,5 @@ index 1ba98bf73..6f6519f6c 100644
flag = true; flag = true;
} else if (a(itemstack1, itemstack)) { } else if (a(itemstack1, itemstack)) {
-- --
2.23.0 2.24.0

View file

@ -1,4 +1,4 @@
From 0dc7fe61b11f27da089ec80669932ea398a42d97 Mon Sep 17 00:00:00 2001 From 3fc1c76a17b253d86af5396c7df7bad5a945abad Mon Sep 17 00:00:00 2001
From: miclebrick <miclebrick@outlook.com> From: miclebrick <miclebrick@outlook.com>
Date: Thu, 23 Aug 2018 11:45:32 -0400 Date: Thu, 23 Aug 2018 11:45:32 -0400
Subject: [PATCH] Optimize CraftBlockData Creation Subject: [PATCH] Optimize CraftBlockData Creation
@ -7,7 +7,7 @@ Avoids a hashmap lookup by cacheing a reference to the CraftBlockData
and cloning it when one is needed. and cloning it when one is needed.
diff --git a/src/main/java/net/minecraft/server/IBlockData.java b/src/main/java/net/minecraft/server/IBlockData.java diff --git a/src/main/java/net/minecraft/server/IBlockData.java b/src/main/java/net/minecraft/server/IBlockData.java
index 367b02800a..9fd1b4915f 100644 index 08d884649..8fb0b5af0 100644
--- a/src/main/java/net/minecraft/server/IBlockData.java --- a/src/main/java/net/minecraft/server/IBlockData.java
+++ b/src/main/java/net/minecraft/server/IBlockData.java +++ b/src/main/java/net/minecraft/server/IBlockData.java
@@ -4,6 +4,8 @@ import com.google.common.collect.ImmutableMap; @@ -4,6 +4,8 @@ import com.google.common.collect.ImmutableMap;
@ -33,13 +33,13 @@ index 367b02800a..9fd1b4915f 100644
+ // Paper end + // Paper end
+ +
public Material getMaterial() { public Material getMaterial() {
return this.getBlock().l(this); return this.getBlock().k(this);
} }
diff --git a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java diff --git a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java
index 99c361dc69..839e645b69 100644 index e371e7f6d..32e1e7e20 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java --- a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java +++ b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java
@@ -548,7 +548,17 @@ public class CraftBlockData implements BlockData { @@ -549,7 +549,17 @@ public class CraftBlockData implements BlockData {
return craft; return craft;
} }
@ -58,5 +58,5 @@ index 99c361dc69..839e645b69 100644
} }
} }
-- --
2.22.0 2.24.0

View file

@ -1,14 +1,14 @@
From 655ce6a322e71a7650745e2f2af7ff76300e2e31 Mon Sep 17 00:00:00 2001 From c9add3dc1b55a0e314d5666f92048780391543e4 Mon Sep 17 00:00:00 2001
From: BillyGalbreath <Blake.Galbreath@GMail.com> From: BillyGalbreath <Blake.Galbreath@GMail.com>
Date: Thu, 23 Aug 2018 09:25:30 -0500 Date: Thu, 23 Aug 2018 09:25:30 -0500
Subject: [PATCH] Fix MC-124320 Subject: [PATCH] Fix MC-124320
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 2c0e59c60d..3aa4cb6401 100644 index 3e4fc4ee5..2262a8253 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
@@ -167,6 +167,7 @@ public class Block implements IMaterial { @@ -170,6 +170,7 @@ public class Block implements IMaterial {
return tag.isTagged(this); return tag.isTagged(this);
} }
@ -17,10 +17,10 @@ index 2c0e59c60d..3aa4cb6401 100644
IBlockData iblockdata1 = iblockdata; IBlockData iblockdata1 = iblockdata;
BlockPosition.MutableBlockPosition blockposition_mutableblockposition = new BlockPosition.MutableBlockPosition(); BlockPosition.MutableBlockPosition blockposition_mutableblockposition = new BlockPosition.MutableBlockPosition();
diff --git a/src/main/java/net/minecraft/server/EntityEnderman.java b/src/main/java/net/minecraft/server/EntityEnderman.java diff --git a/src/main/java/net/minecraft/server/EntityEnderman.java b/src/main/java/net/minecraft/server/EntityEnderman.java
index 639f55ed98..2d29da8560 100644 index 607d6da6a..9783576e3 100644
--- a/src/main/java/net/minecraft/server/EntityEnderman.java --- a/src/main/java/net/minecraft/server/EntityEnderman.java
+++ b/src/main/java/net/minecraft/server/EntityEnderman.java +++ b/src/main/java/net/minecraft/server/EntityEnderman.java
@@ -335,8 +335,9 @@ public class EntityEnderman extends EntityMonster { @@ -354,8 +354,9 @@ public class EntityEnderman extends EntityMonster {
if (block.a(TagsBlock.ENDERMAN_HOLDABLE) && flag) { if (block.a(TagsBlock.ENDERMAN_HOLDABLE) && flag) {
// CraftBukkit start - Pickup event // CraftBukkit start - Pickup event
if (!org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(this.enderman, blockposition, Blocks.AIR.getBlockData()).isCancelled()) { if (!org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(this.enderman, blockposition, Blocks.AIR.getBlockData()).isCancelled()) {
@ -31,7 +31,7 @@ index 639f55ed98..2d29da8560 100644
} }
// CraftBukkit end // CraftBukkit end
} }
@@ -346,6 +347,7 @@ public class EntityEnderman extends EntityMonster { @@ -365,6 +366,7 @@ public class EntityEnderman extends EntityMonster {
static class PathfinderGoalEndermanPlaceBlock extends PathfinderGoal { static class PathfinderGoalEndermanPlaceBlock extends PathfinderGoal {
@ -39,7 +39,7 @@ index 639f55ed98..2d29da8560 100644
private final EntityEnderman a; private final EntityEnderman a;
public PathfinderGoalEndermanPlaceBlock(EntityEnderman entityenderman) { public PathfinderGoalEndermanPlaceBlock(EntityEnderman entityenderman) {
@@ -368,7 +370,7 @@ public class EntityEnderman extends EntityMonster { @@ -387,7 +389,7 @@ public class EntityEnderman extends EntityMonster {
IBlockData iblockdata = world.getType(blockposition); IBlockData iblockdata = world.getType(blockposition);
BlockPosition blockposition1 = blockposition.down(); BlockPosition blockposition1 = blockposition.down();
IBlockData iblockdata1 = world.getType(blockposition1); IBlockData iblockdata1 = world.getType(blockposition1);
@ -49,5 +49,5 @@ index 639f55ed98..2d29da8560 100644
if (iblockdata2 != null && this.a(world, blockposition, iblockdata2, iblockdata, iblockdata1, blockposition1)) { if (iblockdata2 != null && this.a(world, blockposition, iblockdata2, iblockdata, iblockdata1, blockposition1)) {
// CraftBukkit start - Place event // CraftBukkit start - Place event
-- --
2.22.0 2.24.0

View file

@ -1,11 +1,11 @@
From c1aebef600be981587f5720b073036ed868e11ff Mon Sep 17 00:00:00 2001 From 38d41c92cdf00860969c77be56035d6ca584ff2c Mon Sep 17 00:00:00 2001
From: BillyGalbreath <Blake.Galbreath@GMail.com> From: BillyGalbreath <Blake.Galbreath@GMail.com>
Date: Fri, 24 Aug 2018 08:18:42 -0500 Date: Fri, 24 Aug 2018 08:18:42 -0500
Subject: [PATCH] Slime Pathfinder Events Subject: [PATCH] Slime Pathfinder Events
diff --git a/src/main/java/net/minecraft/server/EntitySlime.java b/src/main/java/net/minecraft/server/EntitySlime.java diff --git a/src/main/java/net/minecraft/server/EntitySlime.java b/src/main/java/net/minecraft/server/EntitySlime.java
index a5238c6734..253ff9594c 100644 index 3ecf73219..2efc18df9 100644
--- a/src/main/java/net/minecraft/server/EntitySlime.java --- a/src/main/java/net/minecraft/server/EntitySlime.java
+++ b/src/main/java/net/minecraft/server/EntitySlime.java +++ b/src/main/java/net/minecraft/server/EntitySlime.java
@@ -3,6 +3,14 @@ package net.minecraft.server; @@ -3,6 +3,14 @@ package net.minecraft.server;
@ -23,18 +23,18 @@ index a5238c6734..253ff9594c 100644
// CraftBukkit start // CraftBukkit start
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -64,6 +72,7 @@ public class EntitySlime extends EntityInsentient implements IMonster { @@ -71,6 +79,7 @@ public class EntitySlime extends EntityInsentient implements IMonster {
super.b(nbttagcompound); super.b(nbttagcompound);
nbttagcompound.setInt("Size", this.getSize() - 1); nbttagcompound.setInt("Size", this.getSize() - 1);
nbttagcompound.setBoolean("wasOnGround", this.bA); nbttagcompound.setBoolean("wasOnGround", this.bx);
+ nbttagcompound.setBoolean("Paper.canWander", this.canWander); // Paper + nbttagcompound.setBoolean("Paper.canWander", this.canWander); // Paper
} }
@Override @Override
@@ -77,6 +86,11 @@ public class EntitySlime extends EntityInsentient implements IMonster { @@ -84,6 +93,11 @@ public class EntitySlime extends EntityInsentient implements IMonster {
this.setSize(i + 1, false); this.setSize(i + 1, false);
this.bA = nbttagcompound.getBoolean("wasOnGround"); super.a(nbttagcompound);
this.bx = nbttagcompound.getBoolean("wasOnGround");
+ // Paper start - check exists before loading or this will be loaded as false + // Paper start - check exists before loading or this will be loaded as false
+ if (nbttagcompound.hasKey("Paper.canWander")) { + if (nbttagcompound.hasKey("Paper.canWander")) {
+ this.canWander = nbttagcompound.getBoolean("Paper.canWander"); + this.canWander = nbttagcompound.getBoolean("Paper.canWander");
@ -42,8 +42,8 @@ index a5238c6734..253ff9594c 100644
+ // Paper end + // Paper end
} }
public boolean ea() { public boolean ev() {
@@ -342,7 +356,7 @@ public class EntitySlime extends EntityInsentient implements IMonster { @@ -357,7 +371,7 @@ public class EntitySlime extends EntityInsentient implements IMonster {
@Override @Override
public boolean a() { public boolean a() {
@ -52,21 +52,21 @@ index a5238c6734..253ff9594c 100644
} }
@Override @Override
@@ -363,7 +377,7 @@ public class EntitySlime extends EntityInsentient implements IMonster { @@ -378,7 +392,7 @@ public class EntitySlime extends EntityInsentient implements IMonster {
@Override @Override
public boolean a() { public boolean a() {
- return (this.a.isInWater() || this.a.aD()) && this.a.getControllerMove() instanceof EntitySlime.ControllerMoveSlime; - return (this.a.isInWater() || this.a.aH()) && this.a.getControllerMove() instanceof EntitySlime.ControllerMoveSlime;
+ return (this.a.isInWater() || this.a.aD()) && this.a.getControllerMove() instanceof EntitySlime.ControllerMoveSlime && this.a.canWander && new SlimeSwimEvent((Slime) this.a.getBukkitEntity()).callEvent(); // Paper + return (this.a.isInWater() || this.a.aH()) && this.a.getControllerMove() instanceof EntitySlime.ControllerMoveSlime && this.a.canWander && new SlimeSwimEvent((Slime) this.a.getBukkitEntity()).callEvent(); // Paper
} }
@Override @Override
@@ -389,14 +403,18 @@ public class EntitySlime extends EntityInsentient implements IMonster { @@ -404,14 +418,18 @@ public class EntitySlime extends EntityInsentient implements IMonster {
@Override @Override
public boolean a() { public boolean a() {
- return this.a.getGoalTarget() == null && (this.a.onGround || this.a.isInWater() || this.a.aD() || this.a.hasEffect(MobEffects.LEVITATION)) && this.a.getControllerMove() instanceof EntitySlime.ControllerMoveSlime; - return this.a.getGoalTarget() == null && (this.a.onGround || this.a.isInWater() || this.a.aH() || this.a.hasEffect(MobEffects.LEVITATION)) && this.a.getControllerMove() instanceof EntitySlime.ControllerMoveSlime;
+ return this.a.canWander && this.a.getGoalTarget() == null && (this.a.onGround || this.a.isInWater() || this.a.aD() || this.a.hasEffect(MobEffects.LEVITATION)) && this.a.getControllerMove() instanceof EntitySlime.ControllerMoveSlime; + return this.a.canWander && this.a.getGoalTarget() == null && (this.a.onGround || this.a.isInWater() || this.a.aH() || this.a.hasEffect(MobEffects.LEVITATION)) && this.a.getControllerMove() instanceof EntitySlime.ControllerMoveSlime;
} }
@Override @Override
@ -82,7 +82,7 @@ index a5238c6734..253ff9594c 100644
} }
((EntitySlime.ControllerMoveSlime) this.a.getControllerMove()).a(this.b, false); ((EntitySlime.ControllerMoveSlime) this.a.getControllerMove()).a(this.b, false);
@@ -417,7 +435,15 @@ public class EntitySlime extends EntityInsentient implements IMonster { @@ -432,7 +450,15 @@ public class EntitySlime extends EntityInsentient implements IMonster {
public boolean a() { public boolean a() {
EntityLiving entityliving = this.a.getGoalTarget(); EntityLiving entityliving = this.a.getGoalTarget();
@ -99,7 +99,7 @@ index a5238c6734..253ff9594c 100644
} }
@Override @Override
@@ -430,7 +456,15 @@ public class EntitySlime extends EntityInsentient implements IMonster { @@ -445,7 +471,15 @@ public class EntitySlime extends EntityInsentient implements IMonster {
public boolean b() { public boolean b() {
EntityLiving entityliving = this.a.getGoalTarget(); EntityLiving entityliving = this.a.getGoalTarget();
@ -116,9 +116,9 @@ index a5238c6734..253ff9594c 100644
} }
@Override @Override
@@ -438,6 +472,13 @@ public class EntitySlime extends EntityInsentient implements IMonster { @@ -453,6 +487,13 @@ public class EntitySlime extends EntityInsentient implements IMonster {
this.a.a((Entity) this.a.getGoalTarget(), 10.0F, 10.0F); this.a.a((Entity) this.a.getGoalTarget(), 10.0F, 10.0F);
((EntitySlime.ControllerMoveSlime) this.a.getControllerMove()).a(this.a.yaw, this.a.dV()); ((EntitySlime.ControllerMoveSlime) this.a.getControllerMove()).a(this.a.yaw, this.a.eq());
} }
+ +
+ // Paper start - clear timer and target when goal resets + // Paper start - clear timer and target when goal resets
@ -130,7 +130,7 @@ index a5238c6734..253ff9594c 100644
} }
static class ControllerMoveSlime extends ControllerMove { static class ControllerMoveSlime extends ControllerMove {
@@ -496,4 +537,15 @@ public class EntitySlime extends EntityInsentient implements IMonster { @@ -511,4 +552,15 @@ public class EntitySlime extends EntityInsentient implements IMonster {
} }
} }
} }
@ -147,7 +147,7 @@ index a5238c6734..253ff9594c 100644
+ // Paper end + // Paper end
} }
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSlime.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSlime.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSlime.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSlime.java
index ce6ed6e890..6e9f1b66df 100644 index ce6ed6e89..6e9f1b66d 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSlime.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSlime.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftSlime.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftSlime.java
@@ -35,4 +35,14 @@ public class CraftSlime extends CraftMob implements Slime { @@ -35,4 +35,14 @@ public class CraftSlime extends CraftMob implements Slime {
@ -166,5 +166,5 @@ index ce6ed6e890..6e9f1b66df 100644
+ // Paper end + // Paper end
} }
-- --
2.22.0 2.24.0

View file

@ -1,36 +1,34 @@
From d9f6102addc1d6c4361c79f61a40d7edba63ce4b Mon Sep 17 00:00:00 2001 From 2dbf414e34fd7e66b41f5a61ba339066334b96bc Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net> From: Byteflux <byte@byteflux.net>
Date: Wed, 8 Aug 2018 16:33:21 -0600 Date: Wed, 8 Aug 2018 16:33:21 -0600
Subject: [PATCH] Configurable speed for water flowing over lava Subject: [PATCH] Configurable speed for water flowing over lava
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 269c1ace4..4a4e9d715 100644 index 80d66c647..e49318a19 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
@@ -401,6 +401,12 @@ public class PaperWorldConfig { @@ -406,4 +406,10 @@ public class PaperWorldConfig {
} disableHopperMoveEvents = getBoolean("hopper.disable-move-event", disableHopperMoveEvents);
log("Hopper Move Item Events: " + (disableHopperMoveEvents ? "disabled" : "enabled"));
} }
+
+ public int waterOverLavaFlowSpeed; + public int waterOverLavaFlowSpeed;
+ private void waterOverLavaFlowSpeed() { + private void waterOverLavaFlowSpeed() {
+ waterOverLavaFlowSpeed = getInt("water-over-lava-flow-speed", 5); + waterOverLavaFlowSpeed = getInt("water-over-lava-flow-speed", 5);
+ log("Water over lava flow speed: " + waterOverLavaFlowSpeed); + log("Water over lava flow speed: " + waterOverLavaFlowSpeed);
+ } + }
+ }
public boolean armorStandTick = true;
private void armorStandTick() {
this.armorStandTick = this.getBoolean("armor-stands-tick", this.armorStandTick);
diff --git a/src/main/java/net/minecraft/server/BlockFluids.java b/src/main/java/net/minecraft/server/BlockFluids.java diff --git a/src/main/java/net/minecraft/server/BlockFluids.java b/src/main/java/net/minecraft/server/BlockFluids.java
index cccdd1398..56bf0b1d8 100644 index f56e14e1e..6d351f097 100644
--- a/src/main/java/net/minecraft/server/BlockFluids.java --- a/src/main/java/net/minecraft/server/BlockFluids.java
+++ b/src/main/java/net/minecraft/server/BlockFluids.java +++ b/src/main/java/net/minecraft/server/BlockFluids.java
@@ -70,11 +70,27 @@ public class BlockFluids extends Block implements IFluidSource { @@ -70,11 +70,28 @@ public class BlockFluids extends Block implements IFluidSource {
@Override @Override
public void onPlace(IBlockData iblockdata, World world, BlockPosition blockposition, IBlockData iblockdata1, boolean flag) { public void onPlace(IBlockData iblockdata, World world, BlockPosition blockposition, IBlockData iblockdata1, boolean flag) {
if (this.a(world, blockposition, iblockdata)) { if (this.a(world, blockposition, iblockdata)) {
- world.getFluidTickList().a(blockposition, iblockdata.p().getType(), this.a((IWorldReader) world)); - world.getFluidTickList().a(blockposition, iblockdata.getFluid().getType(), this.a((IWorldReader) world));
+ world.getFluidTickList().a(blockposition, iblockdata.p().getType(), this.getFlowSpeed(world, blockposition)); // Paper + world.getFluidTickList().a(blockposition, iblockdata.getFluid().getType(), this.getFlowSpeed(world, blockposition)); // Paper
} }
} }
@ -50,19 +48,20 @@ index cccdd1398..56bf0b1d8 100644
+ return this.a(world); + return this.a(world);
+ } + }
+ // Paper end + // Paper end
+
+ +
@Override @Override
public IBlockData updateState(IBlockData iblockdata, EnumDirection enumdirection, IBlockData iblockdata1, GeneratorAccess generatoraccess, BlockPosition blockposition, BlockPosition blockposition1) { public IBlockData updateState(IBlockData iblockdata, EnumDirection enumdirection, IBlockData iblockdata1, GeneratorAccess generatoraccess, BlockPosition blockposition, BlockPosition blockposition1) {
if (iblockdata.p().isSource() || iblockdata1.p().isSource()) { if (iblockdata.getFluid().isSource() || iblockdata1.getFluid().isSource()) {
@@ -87,7 +103,7 @@ public class BlockFluids extends Block implements IFluidSource { @@ -87,7 +104,7 @@ public class BlockFluids extends Block implements IFluidSource {
@Override @Override
public void doPhysics(IBlockData iblockdata, World world, BlockPosition blockposition, Block block, BlockPosition blockposition1, boolean flag) { public void doPhysics(IBlockData iblockdata, World world, BlockPosition blockposition, Block block, BlockPosition blockposition1, boolean flag) {
if (this.a(world, blockposition, iblockdata)) { if (this.a(world, blockposition, iblockdata)) {
- world.getFluidTickList().a(blockposition, iblockdata.p().getType(), this.a((IWorldReader) world)); - world.getFluidTickList().a(blockposition, iblockdata.getFluid().getType(), this.a((IWorldReader) world));
+ world.getFluidTickList().a(blockposition, iblockdata.p().getType(), this.getFlowSpeed(world, blockposition)); // Paper + world.getFluidTickList().a(blockposition, iblockdata.getFluid().getType(), this.getFlowSpeed(world, blockposition)); // Paper
} }
} }
-- --
2.23.0 2.24.0

View file

@ -1,4 +1,4 @@
From 291b4375927c5222ac23894c0a96013055bce0bc Mon Sep 17 00:00:00 2001 From 968d20619e07b3799919f9e99e7cc45ea49648df Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Sun, 26 Aug 2018 20:49:50 -0400 Date: Sun, 26 Aug 2018 20:49:50 -0400
Subject: [PATCH] Optimize RegistryMaterials Subject: [PATCH] Optimize RegistryMaterials
@ -8,31 +8,28 @@ Use larger initial sizes to increase bucket capacity on the BiMap
BiMap.get was seen to be using a good bit of CPU time. BiMap.get was seen to be using a good bit of CPU time.
diff --git a/src/main/java/net/minecraft/server/RegistryMaterials.java b/src/main/java/net/minecraft/server/RegistryMaterials.java diff --git a/src/main/java/net/minecraft/server/RegistryMaterials.java b/src/main/java/net/minecraft/server/RegistryMaterials.java
index f291e05b26..fed38e6ef0 100644 index 2d6a7b3a4..8477febca 100644
--- a/src/main/java/net/minecraft/server/RegistryMaterials.java --- a/src/main/java/net/minecraft/server/RegistryMaterials.java
+++ b/src/main/java/net/minecraft/server/RegistryMaterials.java +++ b/src/main/java/net/minecraft/server/RegistryMaterials.java
@@ -16,9 +16,9 @@ import org.apache.logging.log4j.Logger; @@ -16,8 +16,8 @@ import org.apache.logging.log4j.Logger;
public class RegistryMaterials<T> extends IRegistryWritable<T> { public class RegistryMaterials<T> extends IRegistryWritable<T> {
protected static final Logger LOGGER = LogManager.getLogger(); protected static final Logger LOGGER = LogManager.getLogger();
- protected final RegistryID<T> b = new RegistryID<>(256); - protected final RegistryID<T> b = new RegistryID<>(256);
- protected final BiMap<MinecraftKey, T> c = HashBiMap.create(); - protected final BiMap<MinecraftKey, T> c = HashBiMap.create();
- protected Object[] d;
+ protected final RegistryID<T> b = new RegistryID<>(2048); // Paper - use bigger expected size to reduce collisions + protected final RegistryID<T> b = new RegistryID<>(2048); // Paper - use bigger expected size to reduce collisions
+ protected final BiMap<MinecraftKey, T> c = HashBiMap.create(2048); // Paper - use bigger expected size to reduce collisions + protected final BiMap<MinecraftKey, T> c = HashBiMap.create(2048); // Paper - use bigger expected size to reduce collisions
+ protected T[] d; // Paper - Decompile fix protected Object[] d;
private int R; private int V;
public RegistryMaterials() {} @@ -101,6 +101,6 @@ public class RegistryMaterials<T> extends IRegistryWritable<T> {
@@ -98,7 +98,7 @@ public class RegistryMaterials<T> extends IRegistryWritable<T> { this.d = collection.toArray(new Object[collection.size()]);
return null;
}
- this.d = collection.toArray(new Object[collection.size()]);
+ this.d = (T[]) collection.toArray(new Object[collection.size()]); // Paper - Decompile fix
} }
return this.d[random.nextInt(this.d.length)]; - return this.d[random.nextInt(this.d.length)];
+ return (T) this.d[random.nextInt(this.d.length)]; // Paper - Decompile fix
}
}
-- --
2.22.0 2.24.0

View file

@ -1,14 +1,14 @@
From 2fc3d48ca08142a405b1d5f0e9ecfc0b257a7a3d Mon Sep 17 00:00:00 2001 From 77e9c04db07f462dcd19bc601c80389a3f560a90 Mon Sep 17 00:00:00 2001
From: BillyGalbreath <Blake.Galbreath@GMail.com> From: BillyGalbreath <Blake.Galbreath@GMail.com>
Date: Sat, 25 Aug 2018 19:56:51 -0500 Date: Sat, 25 Aug 2018 19:56:51 -0500
Subject: [PATCH] Add PhantomPreSpawnEvent Subject: [PATCH] Add PhantomPreSpawnEvent
diff --git a/src/main/java/net/minecraft/server/EntityPhantom.java b/src/main/java/net/minecraft/server/EntityPhantom.java diff --git a/src/main/java/net/minecraft/server/EntityPhantom.java b/src/main/java/net/minecraft/server/EntityPhantom.java
index e5ed5a3dcc..e5d032d02b 100644 index b62a8227b..82323bf4a 100644
--- a/src/main/java/net/minecraft/server/EntityPhantom.java --- a/src/main/java/net/minecraft/server/EntityPhantom.java
+++ b/src/main/java/net/minecraft/server/EntityPhantom.java +++ b/src/main/java/net/minecraft/server/EntityPhantom.java
@@ -129,6 +129,11 @@ public class EntityPhantom extends EntityFlying implements IMonster { @@ -130,6 +130,11 @@ public class EntityPhantom extends EntityFlying implements IMonster {
} }
this.setSize(nbttagcompound.getInt("Size")); this.setSize(nbttagcompound.getInt("Size"));
@ -20,7 +20,7 @@ index e5ed5a3dcc..e5d032d02b 100644
} }
@Override @Override
@@ -138,6 +143,11 @@ public class EntityPhantom extends EntityFlying implements IMonster { @@ -139,6 +144,11 @@ public class EntityPhantom extends EntityFlying implements IMonster {
nbttagcompound.setInt("AY", this.d.getY()); nbttagcompound.setInt("AY", this.d.getY());
nbttagcompound.setInt("AZ", this.d.getZ()); nbttagcompound.setInt("AZ", this.d.getZ());
nbttagcompound.setInt("Size", this.getSize()); nbttagcompound.setInt("Size", this.getSize());
@ -32,7 +32,7 @@ index e5ed5a3dcc..e5d032d02b 100644
} }
@Override @Override
@@ -184,6 +194,14 @@ public class EntityPhantom extends EntityFlying implements IMonster { @@ -185,6 +195,14 @@ public class EntityPhantom extends EntityFlying implements IMonster {
return entitysize.a(f); return entitysize.a(f);
} }
@ -48,10 +48,10 @@ index e5ed5a3dcc..e5d032d02b 100644
private final PathfinderTargetCondition b; private final PathfinderTargetCondition b;
diff --git a/src/main/java/net/minecraft/server/MobSpawnerPhantom.java b/src/main/java/net/minecraft/server/MobSpawnerPhantom.java diff --git a/src/main/java/net/minecraft/server/MobSpawnerPhantom.java b/src/main/java/net/minecraft/server/MobSpawnerPhantom.java
index 9f64d81c64..1818e7c384 100644 index add566ea4..f488c22ed 100644
--- a/src/main/java/net/minecraft/server/MobSpawnerPhantom.java --- a/src/main/java/net/minecraft/server/MobSpawnerPhantom.java
+++ b/src/main/java/net/minecraft/server/MobSpawnerPhantom.java +++ b/src/main/java/net/minecraft/server/MobSpawnerPhantom.java
@@ -50,8 +50,17 @@ public class MobSpawnerPhantom { @@ -52,8 +52,17 @@ public class MobSpawnerPhantom {
int k = 1 + random.nextInt(difficultydamagescaler.a().a() + 1); int k = 1 + random.nextInt(difficultydamagescaler.a().a() + 1);
for (int l = 0; l < k; ++l) { for (int l = 0; l < k; ++l) {
@ -71,7 +71,7 @@ index 9f64d81c64..1818e7c384 100644
groupdataentity = entityphantom.prepare(worldserver, difficultydamagescaler, EnumMobSpawn.NATURAL, groupdataentity, (NBTTagCompound) null); groupdataentity = entityphantom.prepare(worldserver, difficultydamagescaler, EnumMobSpawn.NATURAL, groupdataentity, (NBTTagCompound) null);
worldserver.addEntity(entityphantom, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.NATURAL); // CraftBukkit worldserver.addEntity(entityphantom, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.NATURAL); // CraftBukkit
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPhantom.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPhantom.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPhantom.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPhantom.java
index 9f9ee92390..2b97313694 100644 index 9f9ee9239..2b9731369 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPhantom.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPhantom.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPhantom.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPhantom.java
@@ -35,4 +35,10 @@ public class CraftPhantom extends CraftFlying implements Phantom { @@ -35,4 +35,10 @@ public class CraftPhantom extends CraftFlying implements Phantom {
@ -86,5 +86,5 @@ index 9f9ee92390..2b97313694 100644
+ // Paper end + // Paper end
} }
-- --
2.22.0 2.24.0

View file

@ -1,23 +1,23 @@
From 57b5375c57af7f8abc4f1071d3a284a8a0f07e5f Mon Sep 17 00:00:00 2001 From f350506afab5cb76e7871cd45098cc006fac77a1 Mon Sep 17 00:00:00 2001
From: BillyGalbreath <Blake.Galbreath@GMail.com> From: BillyGalbreath <Blake.Galbreath@GMail.com>
Date: Fri, 24 Aug 2018 11:50:26 -0500 Date: Fri, 24 Aug 2018 11:50:26 -0500
Subject: [PATCH] Add More Creeper API Subject: [PATCH] Add More Creeper API
diff --git a/src/main/java/net/minecraft/server/EntityCreeper.java b/src/main/java/net/minecraft/server/EntityCreeper.java diff --git a/src/main/java/net/minecraft/server/EntityCreeper.java b/src/main/java/net/minecraft/server/EntityCreeper.java
index ae4dd98ee1..bcb7276308 100644 index 317c1998e..77ba92333 100644
--- a/src/main/java/net/minecraft/server/EntityCreeper.java --- a/src/main/java/net/minecraft/server/EntityCreeper.java
+++ b/src/main/java/net/minecraft/server/EntityCreeper.java +++ b/src/main/java/net/minecraft/server/EntityCreeper.java
@@ -14,7 +14,7 @@ public class EntityCreeper extends EntityMonster { @@ -14,7 +14,7 @@ public class EntityCreeper extends EntityMonster {
private static final DataWatcherObject<Boolean> POWERED = DataWatcher.a(EntityCreeper.class, DataWatcherRegistry.i); private static final DataWatcherObject<Boolean> POWERED = DataWatcher.a(EntityCreeper.class, DataWatcherRegistry.i);
private static final DataWatcherObject<Boolean> d = DataWatcher.a(EntityCreeper.class, DataWatcherRegistry.i); private static final DataWatcherObject<Boolean> isIgnitedDW = d; // Paper OBFHELPER private static final DataWatcherObject<Boolean> d = DataWatcher.a(EntityCreeper.class, DataWatcherRegistry.i); private static final DataWatcherObject<Boolean> isIgnitedDW = d; // Paper OBFHELPER
private int bz; private int bw;
- private int fuseTicks; - private int fuseTicks;
+ public int fuseTicks; // Paper - public + public int fuseTicks; // Paper - public
public int maxFuseTicks = 30; public int maxFuseTicks = 30;
public int explosionRadius = 3; public int explosionRadius = 3;
private int bD; private int bA;
@@ -254,7 +254,18 @@ public class EntityCreeper extends EntityMonster { @@ -256,7 +256,18 @@ public class EntityCreeper extends EntityMonster {
} }
public void ignite() { public void ignite() {
@ -38,7 +38,7 @@ index ae4dd98ee1..bcb7276308 100644
public boolean canCauseHeadDrop() { public boolean canCauseHeadDrop() {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftCreeper.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftCreeper.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftCreeper.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftCreeper.java
index 896405148c..075a5e77e2 100644 index 896405148..075a5e77e 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftCreeper.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftCreeper.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftCreeper.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftCreeper.java
@@ -88,4 +88,18 @@ public class CraftCreeper extends CraftMonster implements Creeper { @@ -88,4 +88,18 @@ public class CraftCreeper extends CraftMonster implements Creeper {
@ -61,5 +61,5 @@ index 896405148c..075a5e77e2 100644
+ // Paper end + // Paper end
} }
-- --
2.22.0 2.24.0

View file

@ -1,11 +1,11 @@
From 4aeb1c452c1fe8329a31d85d903d476da96af48a Mon Sep 17 00:00:00 2001 From 0718f5b18ce70b42ab6d89c685e9b8e3e8fc12fb Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com> From: Zach Brown <zach.brown@destroystokyo.com>
Date: Tue, 28 Aug 2018 23:04:15 -0400 Date: Tue, 28 Aug 2018 23:04:15 -0400
Subject: [PATCH] Inventory#removeItemAnySlot Subject: [PATCH] Inventory#removeItemAnySlot
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
index 0d637e207e..026a0c3995 100644 index 0d637e207..026a0c399 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
@@ -223,10 +223,16 @@ public class CraftInventory implements Inventory { @@ -223,10 +223,16 @@ public class CraftInventory implements Inventory {
@ -57,5 +57,5 @@ index 0d637e207e..026a0c3995 100644
// Drat! we don't have this type in the inventory // Drat! we don't have this type in the inventory
if (first == -1) { if (first == -1) {
-- --
2.22.0 2.24.0

View file

@ -1,4 +1,4 @@
From 07d2c1580badd47e46be14fd4d9f1cad5704b3fd Mon Sep 17 00:00:00 2001 From d22280bd39cada40b9408cb5ec86efad549829f0 Mon Sep 17 00:00:00 2001
From: Spottedleaf <Spottedleaf@users.noreply.github.com> From: Spottedleaf <Spottedleaf@users.noreply.github.com>
Date: Sun, 2 Sep 2018 19:34:33 -0700 Date: Sun, 2 Sep 2018 19:34:33 -0700
Subject: [PATCH] Make CraftWorld#loadChunk(int, int, false) load unconverted Subject: [PATCH] Make CraftWorld#loadChunk(int, int, false) load unconverted
@ -6,10 +6,10 @@ Subject: [PATCH] Make CraftWorld#loadChunk(int, int, false) load unconverted
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 f57023529d..dc0a07c7cd 100644 index a2739b887..182322752 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
@@ -499,7 +499,7 @@ public class CraftWorld implements World { @@ -500,7 +500,7 @@ public class CraftWorld implements World {
@Override @Override
public boolean loadChunk(int x, int z, boolean generate) { public boolean loadChunk(int x, int z, boolean generate) {
org.spigotmc.AsyncCatcher.catchOp("chunk load"); // Spigot org.spigotmc.AsyncCatcher.catchOp("chunk load"); // Spigot
@ -19,5 +19,5 @@ index f57023529d..dc0a07c7cd 100644
// If generate = false, but the chunk already exists, we will get this back. // If generate = false, but the chunk already exists, we will get this back.
if (chunk instanceof ProtoChunkExtension) { if (chunk instanceof ProtoChunkExtension) {
-- --
2.23.0 2.24.0

View file

@ -1,14 +1,14 @@
From 80d0aefd27b4ddcde79903d48826b3366fa64d4a Mon Sep 17 00:00:00 2001 From 1cff7748d9053fd2e109b2ec39eeecc5bb0bc371 Mon Sep 17 00:00:00 2001
From: BillyGalbreath <Blake.Galbreath@GMail.com> From: BillyGalbreath <Blake.Galbreath@GMail.com>
Date: Mon, 3 Sep 2018 18:20:03 -0500 Date: Mon, 3 Sep 2018 18:20:03 -0500
Subject: [PATCH] Add ray tracing methods to LivingEntity Subject: [PATCH] Add ray tracing methods to LivingEntity
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 dbf42f882..b09712ca9 100644 index 91b6d6878..ac85a5d23 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
@@ -3177,6 +3177,23 @@ public abstract class EntityLiving extends Entity { @@ -3252,6 +3252,23 @@ public abstract class EntityLiving extends Entity {
this.c(enumhand == EnumHand.MAIN_HAND ? EnumItemSlot.MAINHAND : EnumItemSlot.OFFHAND); this.c(enumhand == EnumHand.MAIN_HAND ? EnumItemSlot.MAINHAND : EnumItemSlot.OFFHAND);
} }
// Paper start // Paper start
@ -66,5 +66,5 @@ index 379239567..6f4c6c589 100644
public List<Block> getLastTwoTargetBlocks(Set<Material> transparent, int maxDistance) { public List<Block> getLastTwoTargetBlocks(Set<Material> transparent, int maxDistance) {
return getLineOfSight(transparent, maxDistance, 2); return getLineOfSight(transparent, maxDistance, 2);
-- --
2.22.1 2.24.0

View file

@ -1,40 +1,40 @@
From fbeb62a3e4fe1b9a23b2181e90e611fdbc767dfc Mon Sep 17 00:00:00 2001 From 20af10901efba6851ec582004bb968ff7405c197 Mon Sep 17 00:00:00 2001
From: BillyGalbreath <Blake.Galbreath@GMail.com> From: BillyGalbreath <Blake.Galbreath@GMail.com>
Date: Tue, 4 Sep 2018 15:02:00 -0500 Date: Tue, 4 Sep 2018 15:02:00 -0500
Subject: [PATCH] Expose attack cooldown methods for Player Subject: [PATCH] Expose attack cooldown methods for Player
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
index 9544039ab..2342ea481 100644 index 007934d8c..78e48f478 100644
--- a/src/main/java/net/minecraft/server/EntityHuman.java --- a/src/main/java/net/minecraft/server/EntityHuman.java
+++ b/src/main/java/net/minecraft/server/EntityHuman.java +++ b/src/main/java/net/minecraft/server/EntityHuman.java
@@ -2023,14 +2023,17 @@ public abstract class EntityHuman extends EntityLiving { @@ -2115,14 +2115,17 @@ public abstract class EntityHuman extends EntityLiving {
this.datawatcher.set(EntityHuman.bw, nbttagcompound); this.datawatcher.set(EntityHuman.bt, nbttagcompound);
} }
+ public float getCooldownPeriod() { return this.dY(); } // Paper - OBFHELPER + public float getCooldownPeriod() { return this.ex(); } // Paper - OBFHELPER
public float dY() { public float ex() {
return (float) (1.0D / this.getAttributeInstance(GenericAttributes.ATTACK_SPEED).getValue() * 20.0D); return (float) (1.0D / this.getAttributeInstance(GenericAttributes.ATTACK_SPEED).getValue() * 20.0D);
} }
+ public float getCooledAttackStrength(float adjustTicks) { return s(adjustTicks); } // Paper - OBFHELPER + public float getCooledAttackStrength(float adjustTicks) { return s(adjustTicks); } // Paper - OBFHELPER
public float s(float f) { public float s(float f) {
return MathHelper.a(((float) this.aD + f) / this.dY(), 0.0F, 1.0F); return MathHelper.a(((float) this.aB + f) / this.ex(), 0.0F, 1.0F);
} }
+ public void resetCooldown() { this.dZ(); } // Paper - OBFHELPER + public void resetCooldown() { this.ey(); } // Paper - OBFHELPER
public void dZ() { public void ey() {
this.aD = 0; this.aB = 0;
} }
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 ce35e6bbc..2c99a1e9d 100644 index e45dd6cd4..9e0be10d7 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
@@ -1929,6 +1929,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -1913,6 +1913,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
getInventory().setItemInMainHand(hand); getInventory().setItemInMainHand(hand);
} }
+ //Paper start + // Paper start
+ public float getCooldownPeriod() { + public float getCooldownPeriod() {
+ return getHandle().getCooldownPeriod(); + return getHandle().getCooldownPeriod();
+ } + }
@ -46,11 +46,11 @@ index ce35e6bbc..2c99a1e9d 100644
+ public void resetCooldown() { + public void resetCooldown() {
+ getHandle().resetCooldown(); + getHandle().resetCooldown();
+ } + }
+ //Paper end + // Paper end
+ +
// Spigot start // Spigot start
private final Player.Spigot spigot = new Player.Spigot() private final Player.Spigot spigot = new Player.Spigot()
{ {
-- --
2.23.0 2.24.0