diff --git a/Spigot-Server-Patches/0547-Brand-support.patch b/Spigot-Server-Patches/0547-Brand-support.patch index 4772afa475..93b631e8b3 100644 --- a/Spigot-Server-Patches/0547-Brand-support.patch +++ b/Spigot-Server-Patches/0547-Brand-support.patch @@ -16,6 +16,14 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 import io.netty.util.concurrent.Future; import io.netty.util.concurrent.GenericFutureListener; import it.unimi.dsi.fastutil.ints.Int2ShortMap; +@@ -0,0 +0,0 @@ import net.minecraft.nbt.NBTTagCompound; + import net.minecraft.nbt.NBTTagList; + import net.minecraft.nbt.NBTTagString; + import net.minecraft.network.NetworkManager; ++import net.minecraft.network.PacketDataSerializer; + import net.minecraft.network.chat.ChatComponentText; + import net.minecraft.network.chat.ChatMessage; + import net.minecraft.network.chat.ChatMessageType; @@ -0,0 +0,0 @@ public class PlayerConnection implements PacketListenerPlayIn { private static final int MAX_SIGN_LINE_LENGTH = Integer.getInteger("Paper.maxSignLength", 80); private static final long KEEPALIVE_LIMIT = Long.getLong("paper.playerconnection.keepalive", 30) * 1000; // Paper - provide property to set keepalive limit @@ -75,7 +83,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + // Paper start - brand support + @Override + public String getClientBrandName() { -+ return getHandle().playerConnection.getClientBrandName(); ++ return getHandle().playerConnection != null ? getHandle().playerConnection.getClientBrandName() : null; + } + // Paper end + diff --git a/Spigot-Server-Patches/0557-Brand-support.patch b/Spigot-Server-Patches/0557-Brand-support.patch deleted file mode 100644 index 87a3a77701..0000000000 --- a/Spigot-Server-Patches/0557-Brand-support.patch +++ /dev/null @@ -1,20 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: DigitalRegent -Date: Sat, 11 Apr 2020 13:10:58 +0200 -Subject: [PATCH] Brand support - -TODO(Proximyst): Fixup this into the other brand support patch - -diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -0,0 +0,0 @@ public class CraftPlayer extends CraftHumanEntity implements Player { - // Paper start - brand support - @Override - public String getClientBrandName() { -- return getHandle().playerConnection.getClientBrandName(); -+ return getHandle().playerConnection != null ? getHandle().playerConnection.getClientBrandName() : null; - } - // Paper end - diff --git a/Spigot-Server-Patches/Add-API-methods-to-control-if-armour-stands-can-move.patch b/Spigot-Server-Patches/Add-API-methods-to-control-if-armour-stands-can-move.patch index 59f5dfcc27..4cf77321e6 100644 --- a/Spigot-Server-Patches/Add-API-methods-to-control-if-armour-stands-can-move.patch +++ b/Spigot-Server-Patches/Add-API-methods-to-control-if-armour-stands-can-move.patch @@ -4,10 +4,39 @@ Date: Wed, 21 Dec 2016 11:47:25 -0600 Subject: [PATCH] Add API methods to control if armour stands can move +diff --git a/src/main/java/net/minecraft/world/entity/EntityInsentient.java b/src/main/java/net/minecraft/world/entity/EntityInsentient.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/net/minecraft/world/entity/EntityInsentient.java ++++ b/src/main/java/net/minecraft/world/entity/EntityInsentient.java +@@ -0,0 +0,0 @@ import net.minecraft.world.entity.ai.control.ControllerLook; + import net.minecraft.world.entity.ai.control.ControllerMove; + import net.minecraft.world.entity.ai.control.EntityAIBodyControl; + import net.minecraft.world.entity.ai.goal.PathfinderGoal; ++import net.minecraft.world.entity.ai.goal.PathfinderGoalFloat; + import net.minecraft.world.entity.ai.goal.PathfinderGoalSelector; + import net.minecraft.world.entity.ai.navigation.Navigation; + import net.minecraft.world.entity.ai.navigation.NavigationAbstract; +@@ -0,0 +0,0 @@ import net.minecraft.world.entity.ai.sensing.EntitySenses; + import net.minecraft.world.entity.decoration.EntityHanging; + import net.minecraft.world.entity.decoration.EntityLeash; + import net.minecraft.world.entity.item.EntityItem; ++import net.minecraft.world.entity.monster.EntityBlaze; ++import net.minecraft.world.entity.monster.EntityEnderman; + import net.minecraft.world.entity.monster.IMonster; + import net.minecraft.world.entity.player.EntityHuman; + import net.minecraft.world.entity.vehicle.EntityBoat; diff --git a/src/main/java/net/minecraft/world/entity/decoration/EntityArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/EntityArmorStand.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/EntityArmorStand.java +++ b/src/main/java/net/minecraft/world/entity/decoration/EntityArmorStand.java +@@ -0,0 +0,0 @@ import net.minecraft.world.entity.EntitySize; + import net.minecraft.world.entity.EntityTypes; + import net.minecraft.world.entity.EnumItemSlot; + import net.minecraft.world.entity.EnumMainHand; ++import net.minecraft.world.entity.EnumMoveType; + import net.minecraft.world.entity.player.EntityHuman; + import net.minecraft.world.entity.projectile.EntityArrow; + import net.minecraft.world.entity.vehicle.EntityMinecartAbstract; @@ -0,0 +0,0 @@ public class EntityArmorStand extends EntityLiving { public Vector3f rightArmPose; public Vector3f leftLegPose; diff --git a/Spigot-Server-Patches/Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch b/Spigot-Server-Patches/Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch index aec3825530..0fa32aa370 100644 --- a/Spigot-Server-Patches/Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch +++ b/Spigot-Server-Patches/Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch @@ -33,7 +33,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 @@ -0,0 +0,0 @@ public class WorldServer extends World implements GeneratorAccessSeed { public final Convertable.ConversionSession convertable; public final UUID uuid; - boolean hasPhysicsEvent = true; // Paper + public boolean hasPhysicsEvent = true; // Paper + private static Throwable getAddToWorldStackTrace(Entity entity) { + return new Throwable(entity + " Added to world at " + new java.util.Date()); + } @@ -100,12 +100,20 @@ diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/jav index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java +@@ -0,0 +0,0 @@ import net.minecraft.resources.MinecraftKey; + import net.minecraft.resources.ResourceKey; + import net.minecraft.server.MinecraftServer; + import net.minecraft.server.level.EntityPlayer; ++import net.minecraft.server.level.PlayerChunkMap; + import net.minecraft.server.level.TicketType; + import net.minecraft.server.level.WorldServer; + import net.minecraft.sounds.SoundCategory; @@ -0,0 +0,0 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne public com.destroystokyo.paper.loottable.PaperLootableInventoryData lootableData; // Paper private CraftEntity bukkitEntity; + PlayerChunkMap.EntityTracker tracker; // Paper -+ Throwable addedToWorldStack; // Paper - entity debug ++ public Throwable addedToWorldStack; // Paper - entity debug public CraftEntity getBukkitEntity() { if (bukkitEntity == null) { bukkitEntity = CraftEntity.getEntity(world.getServer(), this); diff --git a/Spigot-Server-Patches/Add-LivingEntity-getTargetEntity.patch b/Spigot-Server-Patches/Add-LivingEntity-getTargetEntity.patch index 92f3f5a9de..d28faf0a3b 100644 --- a/Spigot-Server-Patches/Add-LivingEntity-getTargetEntity.patch +++ b/Spigot-Server-Patches/Add-LivingEntity-getTargetEntity.patch @@ -28,6 +28,14 @@ diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/ma index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java +@@ -0,0 +0,0 @@ import net.minecraft.world.level.storage.loot.parameters.LootContextParameterSet + import net.minecraft.world.level.storage.loot.parameters.LootContextParameters; + import net.minecraft.world.phys.AxisAlignedBB; + import net.minecraft.world.phys.MovingObjectPosition; ++import net.minecraft.world.phys.MovingObjectPositionEntity; + import net.minecraft.world.phys.Vec3D; + import net.minecraft.world.scores.ScoreboardTeam; + import org.apache.logging.log4j.Logger; @@ -0,0 +0,0 @@ public abstract class EntityLiving extends Entity { return world.rayTrace(raytrace); } @@ -123,30 +131,50 @@ diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +@@ -0,0 +0,0 @@ + package org.bukkit.craftbukkit.entity; + + import com.destroystokyo.paper.block.TargetBlockInfo; ++import com.destroystokyo.paper.entity.TargetEntityInfo; + import com.google.common.base.Preconditions; + import com.google.common.collect.Sets; + import java.util.ArrayList; +@@ -0,0 +0,0 @@ import net.minecraft.world.entity.projectile.EntityThrownExpBottle; + import net.minecraft.world.entity.projectile.EntityThrownTrident; + import net.minecraft.world.entity.projectile.EntityTippedArrow; + import net.minecraft.world.entity.projectile.EntityWitherSkull; ++import net.minecraft.world.level.RayTrace; + import net.minecraft.world.phys.MovingObjectPosition; + import net.minecraft.world.phys.MovingObjectPositionBlock; ++import net.minecraft.world.phys.MovingObjectPositionEntity; ++import net.minecraft.world.phys.Vec3D; + import org.apache.commons.lang.Validate; + import org.bukkit.FluidCollisionMode; + import org.bukkit.Location; @@ -0,0 +0,0 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { - new com.destroystokyo.paper.block.TargetBlockInfo(org.bukkit.craftbukkit.block.CraftBlock.at(getHandle().world, ((net.minecraft.server.MovingObjectPositionBlock)rayTrace).getBlockPosition()), - net.minecraft.server.MCUtil.toBukkitBlockFace(((net.minecraft.server.MovingObjectPositionBlock)rayTrace).getDirection())); + new TargetBlockInfo(CraftBlock.at(getHandle().world, ((MovingObjectPositionBlock)rayTrace).getBlockPosition()), + MCUtil.toBukkitBlockFace(((MovingObjectPositionBlock)rayTrace).getDirection())); } + + public Entity getTargetEntity(int maxDistance, boolean ignoreBlocks) { -+ net.minecraft.server.MovingObjectPositionEntity rayTrace = rayTraceEntity(maxDistance, ignoreBlocks); ++ MovingObjectPositionEntity rayTrace = rayTraceEntity(maxDistance, ignoreBlocks); + return rayTrace == null ? null : rayTrace.getEntity().getBukkitEntity(); + } + -+ public com.destroystokyo.paper.entity.TargetEntityInfo getTargetEntityInfo(int maxDistance, boolean ignoreBlocks) { -+ net.minecraft.server.MovingObjectPositionEntity rayTrace = rayTraceEntity(maxDistance, ignoreBlocks); -+ return rayTrace == null ? null : new com.destroystokyo.paper.entity.TargetEntityInfo(rayTrace.getEntity().getBukkitEntity(), new org.bukkit.util.Vector(rayTrace.getPos().x, rayTrace.getPos().y, rayTrace.getPos().z)); ++ public TargetEntityInfo getTargetEntityInfo(int maxDistance, boolean ignoreBlocks) { ++ MovingObjectPositionEntity rayTrace = rayTraceEntity(maxDistance, ignoreBlocks); ++ return rayTrace == null ? null : new TargetEntityInfo(rayTrace.getEntity().getBukkitEntity(), new org.bukkit.util.Vector(rayTrace.getPos().x, rayTrace.getPos().y, rayTrace.getPos().z)); + } + -+ public net.minecraft.server.MovingObjectPositionEntity rayTraceEntity(int maxDistance, boolean ignoreBlocks) { -+ net.minecraft.server.MovingObjectPositionEntity rayTrace = getHandle().getTargetEntity(maxDistance); ++ public MovingObjectPositionEntity rayTraceEntity(int maxDistance, boolean ignoreBlocks) { ++ MovingObjectPositionEntity rayTrace = getHandle().getTargetEntity(maxDistance); + if (rayTrace == null) { + return null; + } + if (!ignoreBlocks) { -+ net.minecraft.server.MovingObjectPosition rayTraceBlocks = getHandle().getRayTrace(maxDistance, net.minecraft.server.RayTrace.FluidCollisionOption.NONE); ++ MovingObjectPosition rayTraceBlocks = getHandle().getRayTrace(maxDistance, RayTrace.FluidCollisionOption.NONE); + if (rayTraceBlocks != null) { -+ net.minecraft.server.Vec3D eye = getHandle().getEyePosition(1.0F); ++ Vec3D eye = getHandle().getEyePosition(1.0F); + if (eye.distanceSquared(rayTraceBlocks.getPos()) <= eye.distanceSquared(rayTrace.getPos())) { + return null; + } diff --git a/Spigot-Server-Patches/Add-PlayerConnectionCloseEvent.patch b/Spigot-Server-Patches/Add-PlayerConnectionCloseEvent.patch index 66acaf0105..6acea9bc30 100644 --- a/Spigot-Server-Patches/Add-PlayerConnectionCloseEvent.patch +++ b/Spigot-Server-Patches/Add-PlayerConnectionCloseEvent.patch @@ -46,7 +46,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + if (packetListener instanceof PlayerConnection) { + /* Player was logged in */ + final PlayerConnection playerConnection = (PlayerConnection) packetListener; -+ new com.destroystokyo.paper.event.player.PlayerConnectionCloseEvent(playerConnection.player.uniqueID, ++ new com.destroystokyo.paper.event.player.PlayerConnectionCloseEvent(playerConnection.player.getUniqueID(), + playerConnection.player.getName(), ((java.net.InetSocketAddress)socketAddress).getAddress(), false).callEvent(); + } else if (packetListener instanceof LoginListener) { + /* Player is login stage */ diff --git a/Spigot-Server-Patches/Add-PrepareResultEvent.patch b/Spigot-Server-Patches/Add-PrepareResultEvent.patch index d597f09950..ab9b98ed6a 100644 --- a/Spigot-Server-Patches/Add-PrepareResultEvent.patch +++ b/Spigot-Server-Patches/Add-PrepareResultEvent.patch @@ -140,7 +140,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + // Paper end + + // Paper start - support specific overrides for prepare result -+ public static void callPrepareResultEvent(net.minecraft.server.Container container, int resultSlot) { ++ public static void callPrepareResultEvent(Container container, int resultSlot) { + com.destroystokyo.paper.event.inventory.PrepareResultEvent event; + InventoryView view = container.getBukkitView(); + org.bukkit.inventory.ItemStack origItem = view.getTopInventory().getItem(resultSlot); diff --git a/Spigot-Server-Patches/Add-TNTPrimeEvent.patch b/Spigot-Server-Patches/Add-TNTPrimeEvent.patch index 053a677db9..e3519a82b6 100644 --- a/Spigot-Server-Patches/Add-TNTPrimeEvent.patch +++ b/Spigot-Server-Patches/Add-TNTPrimeEvent.patch @@ -40,6 +40,14 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 import java.util.Map; import java.util.Random; import java.util.function.Function; +@@ -0,0 +0,0 @@ import net.minecraft.SystemUtils; + import net.minecraft.core.BaseBlockPosition; + import net.minecraft.core.BlockPosition; + import net.minecraft.core.EnumDirection; ++import net.minecraft.server.MCUtil; + import net.minecraft.server.level.WorldServer; + import net.minecraft.world.item.context.BlockActionContext; + import net.minecraft.world.level.GameRules; @@ -0,0 +0,0 @@ public class BlockFire extends BlockFireAbstract { world.setTypeAndData(blockposition, this.a(world, blockposition, l), 3); diff --git a/Spigot-Server-Patches/Add-Velocity-IP-Forwarding-Support.patch b/Spigot-Server-Patches/Add-Velocity-IP-Forwarding-Support.patch index 98cd7878c9..f06769b490 100644 --- a/Spigot-Server-Patches/Add-Velocity-IP-Forwarding-Support.patch +++ b/Spigot-Server-Patches/Add-Velocity-IP-Forwarding-Support.patch @@ -65,8 +65,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 +import com.google.common.net.InetAddresses; +import com.mojang.authlib.GameProfile; +import com.mojang.authlib.properties.Property; -+import net.minecraft.server.MinecraftKey; -+import net.minecraft.network.protocol.game.PacketDataSerializer; ++import net.minecraft.network.PacketDataSerializer; ++import net.minecraft.resources.MinecraftKey; + +import java.net.InetAddress; +import java.security.InvalidKeyException; @@ -192,6 +192,21 @@ diff --git a/src/main/java/net/minecraft/server/network/LoginListener.java b/src index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/network/LoginListener.java +++ b/src/main/java/net/minecraft/server/network/LoginListener.java +@@ -0,0 +0,0 @@ import javax.crypto.Cipher; + import javax.crypto.SecretKey; + import net.minecraft.DefaultUncaughtExceptionHandler; + import net.minecraft.network.NetworkManager; ++import net.minecraft.network.PacketDataSerializer; + import net.minecraft.network.chat.ChatMessage; + import net.minecraft.network.chat.IChatBaseComponent; + import net.minecraft.network.protocol.login.PacketLoginInCustomPayload; + import net.minecraft.network.protocol.login.PacketLoginInEncryptionBegin; + import net.minecraft.network.protocol.login.PacketLoginInListener; + import net.minecraft.network.protocol.login.PacketLoginInStart; ++import net.minecraft.network.protocol.login.PacketLoginOutCustomPayload; + import net.minecraft.network.protocol.login.PacketLoginOutDisconnect; + import net.minecraft.network.protocol.login.PacketLoginOutEncryptionBegin; + import net.minecraft.network.protocol.login.PacketLoginOutSetCompression; @@ -0,0 +0,0 @@ import org.bukkit.craftbukkit.util.Waitable; import org.bukkit.event.player.AsyncPlayerPreLoginEvent; import org.bukkit.event.player.PlayerPreLoginEvent; diff --git a/Spigot-Server-Patches/Add-exception-reporting-event.patch b/Spigot-Server-Patches/Add-exception-reporting-event.patch index d7b92cf591..79a7d8a796 100644 --- a/Spigot-Server-Patches/Add-exception-reporting-event.patch +++ b/Spigot-Server-Patches/Add-exception-reporting-event.patch @@ -147,7 +147,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 } catch (Throwable throwable) { // Paper start - Prevent tile entity and entity crashes - System.err.println("TileEntity threw exception at " + tileentity.world.getWorld().getName() + ":" + tileentity.position.getX() + "," + tileentity.position.getY() + "," + tileentity.position.getZ()); -+ String msg = "TileEntity threw exception at " + tileentity.world.getWorld().getName() + ":" + tileentity.position.getX() + "," + tileentity.position.getY() + "," + tileentity.position.getZ(); ++ String msg = "TileEntity threw exception at " + tileentity.getWorld().getWorld().getName() + ":" + tileentity.getPosition().getX() + "," + tileentity.getPosition().getY() + "," + tileentity.getPosition().getZ(); + System.err.println(msg); throwable.printStackTrace(); + getServer().getPluginManager().callEvent(new ServerExceptionEvent(new ServerInternalException(msg, throwable))); diff --git a/Spigot-Server-Patches/Add-option-for-console-having-all-permissions.patch b/Spigot-Server-Patches/Add-option-for-console-having-all-permissions.patch index 04bfb9f787..50b1dad655 100644 --- a/Spigot-Server-Patches/Add-option-for-console-having-all-permissions.patch +++ b/Spigot-Server-Patches/Add-option-for-console-having-all-permissions.patch @@ -18,6 +18,19 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + } + } +diff --git a/src/main/java/net/minecraft/world/entity/player/EntityHuman.java b/src/main/java/net/minecraft/world/entity/player/EntityHuman.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/net/minecraft/world/entity/player/EntityHuman.java ++++ b/src/main/java/net/minecraft/world/entity/player/EntityHuman.java +@@ -0,0 +0,0 @@ public abstract class EntityHuman extends EntityLiving { + } + } + +- protected void releaseShoulderEntities() { ++ public void releaseShoulderEntities() { // Paper - protected -> public + if (this.e + 20L < this.world.getTime()) { + // CraftBukkit start + if (this.spawnEntityFromShoulder(this.getShoulderEntityLeft())) { diff --git a/src/main/java/org/bukkit/craftbukkit/command/CraftConsoleCommandSender.java b/src/main/java/org/bukkit/craftbukkit/command/CraftConsoleCommandSender.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/craftbukkit/command/CraftConsoleCommandSender.java diff --git a/Spigot-Server-Patches/Add-ray-tracing-methods-to-LivingEntity.patch b/Spigot-Server-Patches/Add-ray-tracing-methods-to-LivingEntity.patch index d36b1e9f90..63503b9a4f 100644 --- a/Spigot-Server-Patches/Add-ray-tracing-methods-to-LivingEntity.patch +++ b/Spigot-Server-Patches/Add-ray-tracing-methods-to-LivingEntity.patch @@ -36,29 +36,61 @@ diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +@@ -0,0 +0,0 @@ + package org.bukkit.craftbukkit.entity; + ++import com.destroystokyo.paper.block.TargetBlockInfo; + import com.google.common.base.Preconditions; + import com.google.common.collect.Sets; + import java.util.ArrayList; +@@ -0,0 +0,0 @@ import java.util.Iterator; + import java.util.List; + import java.util.Set; + import java.util.UUID; ++import net.minecraft.server.MCUtil; + import net.minecraft.server.level.EntityPlayer; + import net.minecraft.world.EnumHand; + import net.minecraft.world.damagesource.DamageSource; +@@ -0,0 +0,0 @@ import net.minecraft.world.entity.projectile.EntityThrownExpBottle; + import net.minecraft.world.entity.projectile.EntityThrownTrident; + import net.minecraft.world.entity.projectile.EntityTippedArrow; + import net.minecraft.world.entity.projectile.EntityWitherSkull; ++import net.minecraft.world.phys.MovingObjectPosition; ++import net.minecraft.world.phys.MovingObjectPositionBlock; + import org.apache.commons.lang.Validate; + import org.bukkit.FluidCollisionMode; + import org.bukkit.Location; +@@ -0,0 +0,0 @@ import org.bukkit.attribute.AttributeInstance; + import org.bukkit.block.Block; + import org.bukkit.craftbukkit.CraftServer; + import org.bukkit.craftbukkit.CraftWorld; ++import org.bukkit.craftbukkit.block.CraftBlock; + import org.bukkit.craftbukkit.entity.memory.CraftMemoryKey; + import org.bukkit.craftbukkit.entity.memory.CraftMemoryMapper; + import org.bukkit.craftbukkit.inventory.CraftEntityEquipment; @@ -0,0 +0,0 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { return blocks.get(0); } + // Paper start + @Override -+ public Block getTargetBlock(int maxDistance, com.destroystokyo.paper.block.TargetBlockInfo.FluidMode fluidMode) { -+ net.minecraft.server.MovingObjectPosition rayTrace = getHandle().getRayTrace(maxDistance, net.minecraft.server.MCUtil.getNMSFluidCollisionOption(fluidMode)); -+ return !(rayTrace instanceof net.minecraft.server.MovingObjectPositionBlock) ? null : org.bukkit.craftbukkit.block.CraftBlock.at(getHandle().world, ((net.minecraft.server.MovingObjectPositionBlock)rayTrace).getBlockPosition()); ++ public Block getTargetBlock(int maxDistance, TargetBlockInfo.FluidMode fluidMode) { ++ MovingObjectPosition rayTrace = getHandle().getRayTrace(maxDistance, MCUtil.getNMSFluidCollisionOption(fluidMode)); ++ return !(rayTrace instanceof MovingObjectPositionBlock) ? null : CraftBlock.at(getHandle().world, ((MovingObjectPositionBlock)rayTrace).getBlockPosition()); + } + + @Override -+ public org.bukkit.block.BlockFace getTargetBlockFace(int maxDistance, com.destroystokyo.paper.block.TargetBlockInfo.FluidMode fluidMode) { -+ net.minecraft.server.MovingObjectPosition rayTrace = getHandle().getRayTrace(maxDistance, net.minecraft.server.MCUtil.getNMSFluidCollisionOption(fluidMode)); -+ return !(rayTrace instanceof net.minecraft.server.MovingObjectPositionBlock) ? null : net.minecraft.server.MCUtil.toBukkitBlockFace(((net.minecraft.server.MovingObjectPositionBlock)rayTrace).getDirection()); ++ public org.bukkit.block.BlockFace getTargetBlockFace(int maxDistance, TargetBlockInfo.FluidMode fluidMode) { ++ MovingObjectPosition rayTrace = getHandle().getRayTrace(maxDistance, MCUtil.getNMSFluidCollisionOption(fluidMode)); ++ return !(rayTrace instanceof MovingObjectPositionBlock) ? null : MCUtil.toBukkitBlockFace(((MovingObjectPositionBlock)rayTrace).getDirection()); + } + + @Override -+ public com.destroystokyo.paper.block.TargetBlockInfo getTargetBlockInfo(int maxDistance, com.destroystokyo.paper.block.TargetBlockInfo.FluidMode fluidMode) { -+ net.minecraft.server.MovingObjectPosition rayTrace = getHandle().getRayTrace(maxDistance, net.minecraft.server.MCUtil.getNMSFluidCollisionOption(fluidMode)); -+ return !(rayTrace instanceof net.minecraft.server.MovingObjectPositionBlock) ? null : -+ new com.destroystokyo.paper.block.TargetBlockInfo(org.bukkit.craftbukkit.block.CraftBlock.at(getHandle().world, ((net.minecraft.server.MovingObjectPositionBlock)rayTrace).getBlockPosition()), -+ net.minecraft.server.MCUtil.toBukkitBlockFace(((net.minecraft.server.MovingObjectPositionBlock)rayTrace).getDirection())); ++ public TargetBlockInfo getTargetBlockInfo(int maxDistance, TargetBlockInfo.FluidMode fluidMode) { ++ MovingObjectPosition rayTrace = getHandle().getRayTrace(maxDistance, MCUtil.getNMSFluidCollisionOption(fluidMode)); ++ return !(rayTrace instanceof MovingObjectPositionBlock) ? null : ++ new TargetBlockInfo(CraftBlock.at(getHandle().world, ((MovingObjectPositionBlock)rayTrace).getBlockPosition()), ++ MCUtil.toBukkitBlockFace(((MovingObjectPositionBlock)rayTrace).getDirection())); + } + // Paper end + diff --git a/Spigot-Server-Patches/Allow-Saving-of-Oversized-Chunks.patch b/Spigot-Server-Patches/Allow-Saving-of-Oversized-Chunks.patch index 151990de04..03a45e81d4 100644 --- a/Spigot-Server-Patches/Allow-Saving-of-Oversized-Chunks.patch +++ b/Spigot-Server-Patches/Allow-Saving-of-Oversized-Chunks.patch @@ -62,7 +62,11 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + import javax.annotation.Nullable; import net.minecraft.SystemUtils; ++import net.minecraft.nbt.NBTCompressedStreamTools; ++import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.level.ChunkCoordIntPair; + import org.apache.logging.log4j.LogManager; + import org.apache.logging.log4j.Logger; @@ -0,0 +0,0 @@ public class RegionFile implements AutoCloseable { private final IntBuffer i; @VisibleForTesting @@ -75,7 +79,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 public RegionFile(Path path, Path path1, RegionFileCompression regionfilecompression, boolean flag) throws IOException { this.g = ByteBuffer.allocateDirect(8192); -+ this.file = java_nio_file_path.toFile(); // Paper ++ this.file = path.toFile(); // Paper + initOversizedState(); // Paper this.freeSectors = new RegionFileBitSet(); this.f = regionfilecompression; @@ -159,6 +163,17 @@ diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileCac index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileCache.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileCache.java +@@ -0,0 +0,0 @@ import java.io.DataOutputStream; + import java.io.File; + import java.io.IOException; + import javax.annotation.Nullable; ++import net.minecraft.nbt.NBTBase; + import net.minecraft.nbt.NBTCompressedStreamTools; + import net.minecraft.nbt.NBTTagCompound; ++import net.minecraft.nbt.NBTTagList; + import net.minecraft.server.MinecraftServer; + import net.minecraft.util.ExceptionSuppressor; + import net.minecraft.world.level.ChunkCoordIntPair; @@ -0,0 +0,0 @@ public final class RegionFileCache implements AutoCloseable { } } diff --git a/Spigot-Server-Patches/Allow-using-signs-inside-spawn-protection.patch b/Spigot-Server-Patches/Allow-using-signs-inside-spawn-protection.patch index 6054fb69cf..91e5ab0b69 100644 --- a/Spigot-Server-Patches/Allow-using-signs-inside-spawn-protection.patch +++ b/Spigot-Server-Patches/Allow-using-signs-inside-spawn-protection.patch @@ -22,12 +22,20 @@ diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/ index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java +@@ -0,0 +0,0 @@ import net.minecraft.world.level.GameRules; + import net.minecraft.world.level.IWorldReader; + import net.minecraft.world.level.World; + import net.minecraft.world.level.block.BlockCommand; ++import net.minecraft.world.level.block.BlockSign; + import net.minecraft.world.level.block.Blocks; + import net.minecraft.world.level.block.entity.TileEntity; + import net.minecraft.world.level.block.entity.TileEntityCommand; @@ -0,0 +0,0 @@ public class PlayerConnection implements PacketListenerPlayIn { this.player.resetIdleTimer(); if (blockposition.getY() < this.minecraftServer.getMaxBuildHeight()) { - if (this.teleportPos == null && this.player.h((double) blockposition.getX() + 0.5D, (double) blockposition.getY() + 0.5D, (double) blockposition.getZ() + 0.5D) < 64.0D && worldserver.a((EntityHuman) this.player, blockposition)) { -+ if (this.teleportPos == null && this.player.h((double) blockposition.getX() + 0.5D, (double) blockposition.getY() + 0.5D, (double) blockposition.getZ() + 0.5D) < 64.0D && (worldserver.a((EntityHuman) this.player, blockposition) || (worldserver.getType(blockposition).getBlock() instanceof net.minecraft.server.BlockSign && worldserver.paperConfig.allowUsingSignsInsideSpawnProtection))) { // Paper ++ if (this.teleportPos == null && this.player.h((double) blockposition.getX() + 0.5D, (double) blockposition.getY() + 0.5D, (double) blockposition.getZ() + 0.5D) < 64.0D && (worldserver.a((EntityHuman) this.player, blockposition) || (worldserver.getType(blockposition).getBlock() instanceof BlockSign && worldserver.paperConfig.allowUsingSignsInsideSpawnProtection))) { // Paper // CraftBukkit start - Check if we can actually do something over this large a distance // Paper - move check up this.player.clearActiveItem(); // SPIGOT-4706 diff --git a/Spigot-Server-Patches/Anti-Xray.patch b/Spigot-Server-Patches/Anti-Xray.patch index 0c4cee1478..1cd90adb9c 100644 --- a/Spigot-Server-Patches/Anti-Xray.patch +++ b/Spigot-Server-Patches/Anti-Xray.patch @@ -65,16 +65,16 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 @@ -0,0 +0,0 @@ +package com.destroystokyo.paper.antixray; + -+import net.minecraft.server.BlockPosition; -+import net.minecraft.server.Chunk; -+import net.minecraft.server.ChunkSection; -+import net.minecraft.server.EntityPlayer; -+import net.minecraft.server.EnumDirection; -+import net.minecraft.server.IBlockData; -+import net.minecraft.server.IChunkAccess; ++import net.minecraft.core.BlockPosition; ++import net.minecraft.core.EnumDirection; +import net.minecraft.network.protocol.game.PacketPlayOutMapChunk; -+import net.minecraft.server.PlayerInteractManager; -+import net.minecraft.server.World; ++import net.minecraft.server.level.EntityPlayer; ++import net.minecraft.server.level.PlayerInteractManager; ++import net.minecraft.world.level.World; ++import net.minecraft.world.level.block.state.IBlockData; ++import net.minecraft.world.level.chunk.Chunk; ++import net.minecraft.world.level.chunk.ChunkSection; ++import net.minecraft.world.level.chunk.IChunkAccess; + +public class ChunkPacketBlockController { + @@ -125,7 +125,25 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 +import java.util.concurrent.ThreadLocalRandom; +import java.util.function.IntSupplier; + -+import net.minecraft.server.*; ++import net.minecraft.core.BlockPosition; ++import net.minecraft.core.EnumDirection; ++import net.minecraft.core.IRegistry; ++import net.minecraft.network.protocol.game.PacketPlayOutMapChunk; ++import net.minecraft.resources.MinecraftKey; ++import net.minecraft.server.MinecraftServer; ++import net.minecraft.server.level.EntityPlayer; ++import net.minecraft.server.level.PlayerInteractManager; ++import net.minecraft.server.level.WorldServer; ++import net.minecraft.world.level.ChunkCoordIntPair; ++import net.minecraft.world.level.World; ++import net.minecraft.world.level.block.Block; ++import net.minecraft.world.level.block.Blocks; ++import net.minecraft.world.level.block.state.IBlockData; ++import net.minecraft.world.level.chunk.Chunk; ++import net.minecraft.world.level.chunk.ChunkEmpty; ++import net.minecraft.world.level.chunk.ChunkSection; ++import net.minecraft.world.level.chunk.DataPalette; ++import net.minecraft.world.level.chunk.IChunkAccess; +import org.bukkit.Bukkit; +import org.bukkit.World.Environment; + @@ -754,9 +772,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 @@ -0,0 +0,0 @@ +package com.destroystokyo.paper.antixray; + -+import net.minecraft.server.Chunk; -+import net.minecraft.server.DataPalette; +import net.minecraft.network.protocol.game.PacketPlayOutMapChunk; ++import net.minecraft.world.level.chunk.Chunk; ++import net.minecraft.world.level.chunk.DataPalette; + +public class ChunkPacketInfo { + @@ -841,9 +859,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 @@ -0,0 +0,0 @@ +package com.destroystokyo.paper.antixray; + -+import net.minecraft.server.Chunk; -+import net.minecraft.server.IBlockData; +import net.minecraft.network.protocol.game.PacketPlayOutMapChunk; ++import net.minecraft.world.level.block.state.IBlockData; ++import net.minecraft.world.level.chunk.Chunk; + +public final class ChunkPacketInfoAntiXray extends ChunkPacketInfo implements Runnable { + @@ -1022,6 +1040,14 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 import com.google.common.collect.Lists; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; +@@ -0,0 +0,0 @@ import net.minecraft.network.protocol.Packet; + import net.minecraft.world.level.ChunkCoordIntPair; + import net.minecraft.world.level.block.entity.TileEntity; + import net.minecraft.world.level.block.entity.TileEntitySkull; ++import net.minecraft.world.level.block.state.IBlockData; + import net.minecraft.world.level.chunk.BiomeStorage; + import net.minecraft.world.level.chunk.Chunk; + import net.minecraft.world.level.chunk.ChunkSection; @@ -0,0 +0,0 @@ public class PacketPlayOutMapChunk implements Packet { private List g; private boolean h; @@ -1238,6 +1264,10 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 import javax.annotation.Nullable; import net.minecraft.nbt.GameProfileSerializer; import net.minecraft.network.PacketDataSerializer; ++import net.minecraft.world.level.World; + import net.minecraft.world.level.block.Block; + import net.minecraft.world.level.block.Blocks; + import net.minecraft.world.level.block.state.IBlockData; @@ -0,0 +0,0 @@ public class ChunkSection { private short e; final DataPaletteBlock blockIds; // Paper - package-private diff --git a/Spigot-Server-Patches/Asynchronous-chunk-IO-and-loading.patch b/Spigot-Server-Patches/Asynchronous-chunk-IO-and-loading.patch index 5be203836d..0a1e530a19 100644 --- a/Spigot-Server-Patches/Asynchronous-chunk-IO-and-loading.patch +++ b/Spigot-Server-Patches/Asynchronous-chunk-IO-and-loading.patch @@ -332,11 +332,11 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 @@ -0,0 +0,0 @@ +package com.destroystokyo.paper.io; + -+import net.minecraft.server.ChunkCoordIntPair; ++import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; -+import net.minecraft.server.NBTTagCompound; -+import net.minecraft.server.RegionFile; -+import net.minecraft.server.WorldServer; ++import net.minecraft.server.level.WorldServer; ++import net.minecraft.world.level.ChunkCoordIntPair; ++import net.minecraft.world.level.chunk.storage.RegionFile; +import org.apache.logging.log4j.Logger; + +import java.io.IOException; @@ -1477,10 +1477,10 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 +import co.aikar.timings.Timing; +import com.destroystokyo.paper.io.PaperFileIOThread; +import com.destroystokyo.paper.io.IOUtil; -+import net.minecraft.server.ChunkCoordIntPair; -+import net.minecraft.server.ChunkRegionLoader; -+import net.minecraft.server.PlayerChunkMap; -+import net.minecraft.server.WorldServer; ++import net.minecraft.server.level.PlayerChunkMap; ++import net.minecraft.server.level.WorldServer; ++import net.minecraft.world.level.ChunkCoordIntPair; ++import net.minecraft.world.level.chunk.storage.ChunkRegionLoader; + +import java.util.ArrayDeque; +import java.util.function.Consumer; @@ -1630,14 +1630,13 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 +import com.destroystokyo.paper.io.PaperFileIOThread; +import com.destroystokyo.paper.io.IOUtil; +import com.destroystokyo.paper.io.PrioritizedTaskQueue; -+import net.minecraft.server.ChunkRegionLoader; -+import net.minecraft.server.IAsyncTaskHandler; -+import net.minecraft.server.IChunkAccess; -+import net.minecraft.server.NBTTagCompound; -+import net.minecraft.server.WorldServer; + +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.atomic.AtomicInteger; ++import net.minecraft.nbt.NBTTagCompound; ++import net.minecraft.server.level.WorldServer; ++import net.minecraft.world.level.chunk.IChunkAccess; ++import net.minecraft.world.level.chunk.storage.ChunkRegionLoader; + +public final class ChunkSaveTask extends ChunkTask { + @@ -1746,7 +1745,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + +import com.destroystokyo.paper.io.PaperFileIOThread; +import com.destroystokyo.paper.io.PrioritizedTaskQueue; -+import net.minecraft.server.WorldServer; ++import net.minecraft.server.level.WorldServer; + +abstract class ChunkTask extends PrioritizedTaskQueue.PrioritizedTask implements Runnable { + @@ -1794,13 +1793,15 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 +import com.destroystokyo.paper.io.IOUtil; +import com.destroystokyo.paper.io.PrioritizedTaskQueue; +import com.destroystokyo.paper.io.QueueExecutorThread; -+import net.minecraft.server.ChunkRegionLoader; -+import net.minecraft.server.IAsyncTaskHandler; -+import net.minecraft.server.IChunkAccess; ++import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; -+import net.minecraft.server.NBTTagCompound; -+import net.minecraft.server.PlayerChunk; -+import net.minecraft.server.WorldServer; ++import net.minecraft.server.level.ChunkProviderServer; ++import net.minecraft.server.level.PlayerChunk; ++import net.minecraft.server.level.WorldServer; ++import net.minecraft.util.thread.IAsyncTaskHandler; ++import net.minecraft.world.level.chunk.ChunkStatus; ++import net.minecraft.world.level.chunk.IChunkAccess; ++import net.minecraft.world.level.chunk.storage.ChunkRegionLoader; +import org.apache.commons.lang.StringUtils; +import org.apache.logging.log4j.Level; +import org.bukkit.Bukkit; @@ -1888,7 +1889,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + PaperFileIOThread.LOGGER.log(Level.ERROR, "Load Task - " + (loadTask == null ? "none" : loadTask.toString())); + PaperFileIOThread.LOGGER.log(Level.ERROR, "Save Task - " + (saveTask == null ? "none" : saveTask.toString())); + // log current status of chunk to indicate whether we're waiting on generation or loading -+ net.minecraft.server.PlayerChunk chunkHolder = chunkInfo.world.getChunkProvider().playerChunkMap.getVisibleChunk(key); ++ PlayerChunk chunkHolder = chunkInfo.world.getChunkProvider().playerChunkMap.getVisibleChunk(key); + + dumpChunkInfo(new HashSet<>(), chunkHolder, chunkInfo.chunkX, chunkInfo.chunkZ); + } @@ -1912,7 +1913,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + PaperFileIOThread.LOGGER.log(Level.ERROR, indentStr + "Chunk Holder - null for (" + x +"," + z +")"); + } else { + IChunkAccess chunk = chunkHolder.getAvailableChunkNow(); -+ net.minecraft.server.ChunkStatus holderStatus = chunkHolder.getChunkHolderStatus(); ++ ChunkStatus holderStatus = chunkHolder.getChunkHolderStatus(); + PaperFileIOThread.LOGGER.log(Level.ERROR, indentStr + "Chunk Holder - non-null"); + PaperFileIOThread.LOGGER.log(Level.ERROR, indentStr + "Chunk Status - " + ((chunk == null) ? "null chunk" : chunk.getChunkStatus().toString())); + PaperFileIOThread.LOGGER.log(Level.ERROR, indentStr + "Chunk Ticket Status - " + PlayerChunk.getChunkStatus(chunkHolder.getTicketLevel())); @@ -1955,7 +1956,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + * less-than or equal to 0, then this chunk task manager will operate off of the world's chunk task queue. + * @param world Specified world. + * @param threads Specified number of threads. -+ * @see net.minecraft.server.ChunkProviderServer#serverThreadQueue ++ * @see ChunkProviderServer#serverThreadQueue + */ + public ChunkTaskManager(final WorldServer world, final int threads) { + this.world = world; @@ -1980,7 +1981,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + * the global queue is not shutdown. If the global workers is configured to be disabled or use 0 threads, then + * this chunk task manager will operate off of the world's chunk task queue. + * @param world The world that this task manager is responsible for -+ * @see net.minecraft.server.ChunkProviderServer#serverThreadQueue ++ * @see ChunkProviderServer#serverThreadQueue + */ + public ChunkTaskManager(final WorldServer world) { + this.world = world; @@ -2088,7 +2089,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + * @param chunkX Chunk's x coordinate + * @param chunkZ Chunk's z coordinate + * @param priority Priority for this task -+ * @param onComplete The consumer to invoke with the {@link net.minecraft.server.ChunkRegionLoader.InProgressChunkHolder} object once this task is complete ++ * @param onComplete The consumer to invoke with the {@link ChunkRegionLoader.InProgressChunkHolder} object once this task is complete + * @param intendingToBlock Whether the caller is intending to block on this task completing (this is a performance tune, and has no adverse side-effects) + * @return The {@link ChunkLoadTask} associated with + */ @@ -2355,6 +2356,14 @@ diff --git a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java b index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java +@@ -0,0 +0,0 @@ import net.minecraft.world.level.chunk.ChunkGenerator; + import net.minecraft.world.level.chunk.ChunkStatus; + import net.minecraft.world.level.chunk.IChunkAccess; + import net.minecraft.world.level.chunk.IChunkProvider; ++import net.minecraft.world.level.chunk.ProtoChunkExtension; + import net.minecraft.world.level.levelgen.structure.templatesystem.DefinedStructureManager; + import net.minecraft.world.level.storage.Convertable; + import net.minecraft.world.level.storage.WorldData; @@ -0,0 +0,0 @@ public class ChunkProviderServer extends IChunkProvider { return playerChunk.getAvailableChunkNow(); @@ -2417,7 +2426,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + + IChunkAccess current = this.getChunkAtImmediately(x, z); // we want to bypass ticket restrictions + if (current != null) { -+ if (!(current instanceof ProtoChunkExtension) && !(current instanceof net.minecraft.server.Chunk)) { ++ if (!(current instanceof ProtoChunkExtension) && !(current instanceof Chunk)) { + return CompletableFuture.completedFuture(PlayerChunk.UNLOADED_CHUNK_ACCESS); + } + // we know the chunk is at full status here (either in read-only mode or the real thing) @@ -2587,6 +2596,14 @@ diff --git a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java b/src/ index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java +@@ -0,0 +0,0 @@ import net.minecraft.world.level.chunk.ProtoChunk; + import net.minecraft.world.level.chunk.ProtoChunkExtension; + import net.minecraft.world.level.chunk.storage.ChunkRegionLoader; + import net.minecraft.world.level.chunk.storage.IChunkLoader; ++import net.minecraft.world.level.chunk.storage.RegionFile; + import net.minecraft.world.level.levelgen.structure.StructureStart; + import net.minecraft.world.level.levelgen.structure.templatesystem.DefinedStructureManager; + import net.minecraft.world.level.storage.Convertable; @@ -0,0 +0,0 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { private final LightEngineThreaded lightEngine; private final IAsyncTaskHandler executor; @@ -3001,17 +3018,17 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + } + // Paper end + // Paper start - async io -+ net.minecraft.server.NBTTagCompound inProgressWrite = com.destroystokyo.paper.io.PaperFileIOThread.Holder.INSTANCE ++ NBTTagCompound inProgressWrite = com.destroystokyo.paper.io.PaperFileIOThread.Holder.INSTANCE + .getPendingWrite(this.world, x, z, false); + + if (inProgressWrite != null) { -+ return net.minecraft.server.ChunkRegionLoader.getStatus(inProgressWrite); ++ return ChunkRegionLoader.getStatus(inProgressWrite); + } + // Paper end + // variant of PlayerChunkMap#getChunkStatusOnDisk that does not load data off disk, but loads the region file + ChunkCoordIntPair chunkPos = new ChunkCoordIntPair(x, z); + synchronized (world.getChunkProvider().playerChunkMap) { -+ net.minecraft.server.RegionFile file; ++ RegionFile file; + try { + file = world.getChunkProvider().playerChunkMap.regionFileCache.getFile(chunkPos, false); + } catch (IOException ex) { @@ -3049,6 +3066,22 @@ diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/mai index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java +@@ -0,0 +0,0 @@ import net.minecraft.core.IRegistry; + import net.minecraft.core.IRegistryCustom; + import net.minecraft.core.SectionPosition; + import net.minecraft.core.particles.ParticleParam; ++import net.minecraft.nbt.NBTTagCompound; + import net.minecraft.network.chat.ChatMessage; + import net.minecraft.network.chat.IChatBaseComponent; + import net.minecraft.network.protocol.Packet; +@@ -0,0 +0,0 @@ import net.minecraft.world.level.chunk.ChunkGenerator; + import net.minecraft.world.level.chunk.ChunkSection; + import net.minecraft.world.level.chunk.ChunkStatus; + import net.minecraft.world.level.chunk.IChunkAccess; ++import net.minecraft.world.level.chunk.storage.RegionFile; + import net.minecraft.world.level.dimension.DimensionManager; + import net.minecraft.world.level.dimension.end.EnderDragonBattle; + import net.minecraft.world.level.levelgen.HeightMap; @@ -0,0 +0,0 @@ public class WorldServer extends World implements GeneratorAccessSeed { return this.chunkProvider.getChunkAt(x, z, false); } @@ -3185,6 +3218,16 @@ diff --git a/src/main/java/net/minecraft/world/entity/ai/village/poi/VillagePlac index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/entity/ai/village/poi/VillagePlace.java +++ b/src/main/java/net/minecraft/world/entity/ai/village/poi/VillagePlace.java +@@ -0,0 +0,0 @@ import java.util.stream.Stream; + import net.minecraft.SystemUtils; + import net.minecraft.core.BlockPosition; + import net.minecraft.core.SectionPosition; ++import net.minecraft.nbt.NBTTagCompound; + import net.minecraft.server.level.LightEngineGraphSection; ++import net.minecraft.server.level.WorldServer; + import net.minecraft.util.datafix.DataFixTypes; + import net.minecraft.world.level.ChunkCoordIntPair; + import net.minecraft.world.level.IWorldReader; @@ -0,0 +0,0 @@ public class VillagePlace extends RegionFileSection { private final VillagePlace.a a = new VillagePlace.a(); private final LongSet b = new LongOpenHashSet(); @@ -3630,7 +3673,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + private volatile PersistentStructureLegacy c; // Paper - async chunk loading + + private final Object persistentDataLock = new Object(); // Paper -+ protected final RegionFileCache regionFileCache; ++ public final RegionFileCache regionFileCache; public IChunkLoader(File file, DataFixer datafixer, boolean flag) { + this.regionFileCache = new RegionFileCache(file, flag); // Paper - nuke IOWorker @@ -3764,7 +3807,7 @@ diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileCac index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileCache.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileCache.java -@@ -0,0 +0,0 @@ import net.minecraft.nbt.NBTTagCompound; +@@ -0,0 +0,0 @@ import net.minecraft.server.MinecraftServer; import net.minecraft.util.ExceptionSuppressor; import net.minecraft.world.level.ChunkCoordIntPair; @@ -3889,7 +3932,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + // Paper - nuke IOWorker private final Long2ObjectMap> c = new Long2ObjectOpenHashMap(); - private final LongLinkedOpenHashSet d = new LongLinkedOpenHashSet(); -+ protected final LongLinkedOpenHashSet d = new LongLinkedOpenHashSet(); // Paper - private -> protected ++ public final LongLinkedOpenHashSet d = new LongLinkedOpenHashSet(); // Paper - private -> public private final Function> e; private final Function f; private final DataFixer g; diff --git a/Spigot-Server-Patches/Basic-PlayerProfile-API.patch b/Spigot-Server-Patches/Basic-PlayerProfile-API.patch index 36c474e6ea..86524f0681 100644 --- a/Spigot-Server-Patches/Basic-PlayerProfile-API.patch +++ b/Spigot-Server-Patches/Basic-PlayerProfile-API.patch @@ -19,7 +19,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 +import com.mojang.authlib.properties.Property; +import com.mojang.authlib.properties.PropertyMap; +import net.minecraft.server.MinecraftServer; -+import net.minecraft.server.UserCache; ++import net.minecraft.server.players.UserCache; +import org.apache.commons.lang3.Validate; +import org.bukkit.craftbukkit.entity.CraftPlayer; +import org.spigotmc.SpigotConfig; diff --git a/Spigot-Server-Patches/BlockDestroyEvent.patch b/Spigot-Server-Patches/BlockDestroyEvent.patch index 64b19cc8a9..a7158f3a75 100644 --- a/Spigot-Server-Patches/BlockDestroyEvent.patch +++ b/Spigot-Server-Patches/BlockDestroyEvent.patch @@ -14,6 +14,14 @@ diff --git a/src/main/java/net/minecraft/world/level/World.java b/src/main/java/ index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/level/World.java +++ b/src/main/java/net/minecraft/world/level/World.java +@@ -0,0 +0,0 @@ import net.minecraft.core.particles.ParticleParam; + import net.minecraft.network.protocol.Packet; + import net.minecraft.resources.MinecraftKey; + import net.minecraft.resources.ResourceKey; ++import net.minecraft.server.MCUtil; + import net.minecraft.server.MinecraftServer; + import net.minecraft.server.level.EntityPlayer; + import net.minecraft.server.level.PlayerChunk; @@ -0,0 +0,0 @@ public abstract class World implements GeneratorAccess, AutoCloseable { return false; } else { diff --git a/Spigot-Server-Patches/Buffer-joins-to-world.patch b/Spigot-Server-Patches/Buffer-joins-to-world.patch index 0e072e7de6..4463c2b384 100644 --- a/Spigot-Server-Patches/Buffer-joins-to-world.patch +++ b/Spigot-Server-Patches/Buffer-joins-to-world.patch @@ -25,6 +25,14 @@ diff --git a/src/main/java/net/minecraft/network/NetworkManager.java b/src/main/ index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/network/NetworkManager.java +++ b/src/main/java/net/minecraft/network/NetworkManager.java +@@ -0,0 +0,0 @@ import net.minecraft.network.protocol.game.PacketPlayOutTabComplete; + import net.minecraft.network.protocol.game.PacketPlayOutTitle; + import net.minecraft.server.CancelledPacketHandleException; + import net.minecraft.server.MCUtil; ++import net.minecraft.server.MinecraftServer; + import net.minecraft.server.level.EntityPlayer; + import net.minecraft.server.network.LoginListener; + import net.minecraft.server.network.PlayerConnection; @@ -0,0 +0,0 @@ public class NetworkManager extends SimpleChannelInboundHandler> { } // Paper end @@ -48,3 +56,16 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 } if (this.packetListener instanceof PlayerConnection) { +diff --git a/src/main/java/net/minecraft/server/network/LoginListener.java b/src/main/java/net/minecraft/server/network/LoginListener.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/net/minecraft/server/network/LoginListener.java ++++ b/src/main/java/net/minecraft/server/network/LoginListener.java +@@ -0,0 +0,0 @@ public class LoginListener implements PacketLoginInListener { + return new GameProfile(uuid, gameprofile.getName()); + } + +- static enum EnumProtocolState { ++ public enum EnumProtocolState { // Paper - package private -> public + + HELLO, KEY, AUTHENTICATING, NEGOTIATING, READY_TO_ACCEPT, DELAY_ACCEPT, ACCEPTED; + diff --git a/Spigot-Server-Patches/Catch-JsonParseException-in-Entity-and-TE-names.patch b/Spigot-Server-Patches/Catch-JsonParseException-in-Entity-and-TE-names.patch index ab1085ab3d..0285ecc840 100644 --- a/Spigot-Server-Patches/Catch-JsonParseException-in-Entity-and-TE-names.patch +++ b/Spigot-Server-Patches/Catch-JsonParseException-in-Entity-and-TE-names.patch @@ -16,6 +16,15 @@ diff --git a/src/main/java/net/minecraft/server/MCUtil.java b/src/main/java/net/ index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/MCUtil.java +++ b/src/main/java/net/minecraft/server/MCUtil.java +@@ -0,0 +0,0 @@ import com.google.common.util.concurrent.ThreadFactoryBuilder; + import it.unimi.dsi.fastutil.objects.ObjectRBTreeSet; + import net.minecraft.core.BlockPosition; + import net.minecraft.core.EnumDirection; ++import net.minecraft.nbt.NBTTagCompound; ++import net.minecraft.network.chat.IChatBaseComponent; + import net.minecraft.server.level.WorldServer; + import net.minecraft.world.entity.Entity; + import net.minecraft.world.level.ChunkCoordIntPair; @@ -0,0 +0,0 @@ public final class MCUtil { return null; } diff --git a/Spigot-Server-Patches/Chunk-Save-Reattempt.patch b/Spigot-Server-Patches/Chunk-Save-Reattempt.patch index 76a074ecc0..fd72511ff3 100644 --- a/Spigot-Server-Patches/Chunk-Save-Reattempt.patch +++ b/Spigot-Server-Patches/Chunk-Save-Reattempt.patch @@ -22,6 +22,14 @@ diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileCac index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileCache.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileCache.java +@@ -0,0 +0,0 @@ import java.io.IOException; + import javax.annotation.Nullable; + import net.minecraft.nbt.NBTCompressedStreamTools; + import net.minecraft.nbt.NBTTagCompound; ++import net.minecraft.server.MinecraftServer; + import net.minecraft.util.ExceptionSuppressor; + import net.minecraft.world.level.ChunkCoordIntPair; + @@ -0,0 +0,0 @@ public final class RegionFileCache implements AutoCloseable { protected void write(ChunkCoordIntPair chunkcoordintpair, NBTTagCompound nbttagcompound) throws IOException { diff --git a/Spigot-Server-Patches/Chunk-debug-command.patch b/Spigot-Server-Patches/Chunk-debug-command.patch index 9488ec7029..cfe98045b6 100644 --- a/Spigot-Server-Patches/Chunk-debug-command.patch +++ b/Spigot-Server-Patches/Chunk-debug-command.patch @@ -211,9 +211,23 @@ diff --git a/src/main/java/net/minecraft/server/MCUtil.java b/src/main/java/net/ index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/MCUtil.java +++ b/src/main/java/net/minecraft/server/MCUtil.java -@@ -0,0 +0,0 @@ import net.minecraft.world.level.ChunkCoordIntPair; +@@ -0,0 +0,0 @@ import net.minecraft.core.BlockPosition; + import net.minecraft.core.EnumDirection; + import net.minecraft.nbt.NBTTagCompound; + import net.minecraft.network.chat.IChatBaseComponent; ++import net.minecraft.server.level.ChunkMapDistance; ++import net.minecraft.server.level.ChunkProviderServer; ++import net.minecraft.server.level.EntityPlayer; ++import net.minecraft.server.level.PlayerChunk; ++import net.minecraft.server.level.PlayerChunkMap; ++import net.minecraft.server.level.Ticket; + import net.minecraft.server.level.WorldServer; + import net.minecraft.world.entity.Entity; + import net.minecraft.world.level.ChunkCoordIntPair; import net.minecraft.world.level.RayTrace; import net.minecraft.world.level.World; ++import net.minecraft.world.level.chunk.ChunkStatus; ++import net.minecraft.world.level.chunk.IChunkAccess; import org.apache.commons.lang.exception.ExceptionUtils; +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; @@ -417,7 +431,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 public class ChunkProviderServer extends IChunkProvider { - private static final List b = ChunkStatus.a(); -+ private static final List b = ChunkStatus.a(); static final List getPossibleChunkStatuses() { return ChunkProviderServer.b; } // Paper - OBFHELPER ++ private static final List b = ChunkStatus.a(); public static final List getPossibleChunkStatuses() { return ChunkProviderServer.b; } // Paper - OBFHELPER private final ChunkMapDistance chunkMapDistance; public final ChunkGenerator chunkGenerator; private final WorldServer world; @@ -443,7 +457,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 public volatile Long2ObjectLinkedOpenHashMap visibleChunks; private final Long2ObjectLinkedOpenHashMap pendingUnload; - private final LongSet loadedChunks; -+ final LongSet loadedChunks; // Paper - private -> package ++ public final LongSet loadedChunks; // Paper - private -> public public final WorldServer world; private final LightEngineThreaded lightEngine; private final IAsyncTaskHandler executor; diff --git a/Spigot-Server-Patches/Configurable-Keep-Spawn-Loaded-range-per-world.patch b/Spigot-Server-Patches/Configurable-Keep-Spawn-Loaded-range-per-world.patch index 0d03fbd5e4..6ff1aeda9c 100644 --- a/Spigot-Server-Patches/Configurable-Keep-Spawn-Loaded-range-per-world.patch +++ b/Spigot-Server-Patches/Configurable-Keep-Spawn-Loaded-range-per-world.patch @@ -78,6 +78,14 @@ diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/mai index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java +@@ -0,0 +0,0 @@ import net.minecraft.network.protocol.game.PacketPlayOutWorldEvent; + import net.minecraft.network.protocol.game.PacketPlayOutWorldParticles; + import net.minecraft.resources.MinecraftKey; + import net.minecraft.resources.ResourceKey; ++import net.minecraft.server.MCUtil; + import net.minecraft.server.MinecraftServer; + import net.minecraft.server.ScoreboardServer; + import net.minecraft.server.level.progress.WorldLoadListener; @@ -0,0 +0,0 @@ public class WorldServer extends World implements GeneratorAccessSeed { return ((PersistentIdCounts) this.getMinecraftServer().E().getWorldPersistentData().a(PersistentIdCounts::new, "idcounts")).a(); } diff --git a/Spigot-Server-Patches/Configurable-Player-Collision.patch b/Spigot-Server-Patches/Configurable-Player-Collision.patch index fc40d51729..03c7fd0bfd 100644 --- a/Spigot-Server-Patches/Configurable-Player-Collision.patch +++ b/Spigot-Server-Patches/Configurable-Player-Collision.patch @@ -60,6 +60,14 @@ diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/ma index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java +@@ -0,0 +0,0 @@ import net.minecraft.world.level.storage.SavedFile; + import net.minecraft.world.level.storage.WorldData; + import net.minecraft.world.level.storage.WorldNBTStorage; + import net.minecraft.world.phys.Vec3D; ++import net.minecraft.world.scores.Scoreboard; + import net.minecraft.world.scores.ScoreboardObjective; + import net.minecraft.world.scores.ScoreboardTeam; + import net.minecraft.world.scores.ScoreboardTeamBase; @@ -0,0 +0,0 @@ public abstract class PlayerList { // CraftBukkit start private CraftServer cserver; diff --git a/Spigot-Server-Patches/Configurable-door-breaking-difficulty.patch b/Spigot-Server-Patches/Configurable-door-breaking-difficulty.patch index bdbd1fa723..07939e1a35 100644 --- a/Spigot-Server-Patches/Configurable-door-breaking-difficulty.patch +++ b/Spigot-Server-Patches/Configurable-door-breaking-difficulty.patch @@ -15,9 +15,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 +import java.util.stream.Collectors; import com.destroystokyo.paper.antixray.ChunkPacketBlockControllerAntiXray.EngineMode; -+import net.minecraft.server.EntityVindicator; -+import net.minecraft.server.EntityZombie; -+import net.minecraft.server.EnumDifficulty; ++import net.minecraft.world.EnumDifficulty; ++import net.minecraft.world.entity.monster.EntityVindicator; ++import net.minecraft.world.entity.monster.EntityZombie; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.configuration.ConfigurationSection; diff --git a/Spigot-Server-Patches/Duplicate-UUID-Resolve-Option.patch b/Spigot-Server-Patches/Duplicate-UUID-Resolve-Option.patch index 5942feaaf0..e40622e946 100644 --- a/Spigot-Server-Patches/Duplicate-UUID-Resolve-Option.patch +++ b/Spigot-Server-Patches/Duplicate-UUID-Resolve-Option.patch @@ -110,6 +110,14 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletionException; import java.util.concurrent.Executor; +@@ -0,0 +0,0 @@ import net.minecraft.world.entity.boss.EntityComplexPart; + import net.minecraft.world.entity.player.EntityHuman; + import net.minecraft.world.level.ChunkCoordIntPair; + import net.minecraft.world.level.GameRules; ++import net.minecraft.world.level.World; + import net.minecraft.world.level.chunk.Chunk; + import net.minecraft.world.level.chunk.ChunkConverter; + import net.minecraft.world.level.chunk.ChunkGenerator; @@ -0,0 +0,0 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { // CraftBukkit start - these are spawned serialized (DefinedStructure) and we don't call an add event below at the moment due to ordering complexities boolean needsRemoval = false; @@ -139,7 +147,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + && mode != PaperWorldConfig.DuplicateUUIDMode.SAFE_REGEN) { + return; + } -+ Entity other = world.getEntity(entity.uniqueID); ++ Entity other = world.getEntity(entity.getUniqueID()); + + if (mode == PaperWorldConfig.DuplicateUUIDMode.SAFE_REGEN && other != null && !other.dead + && Objects.equals(other.getSaveID(), entity.getSaveID()) diff --git a/Spigot-Server-Patches/Ensure-Entity-AABB-s-are-never-invalid.patch b/Spigot-Server-Patches/Ensure-Entity-AABB-s-are-never-invalid.patch index 9f12d6cfde..ccd8e7ef53 100644 --- a/Spigot-Server-Patches/Ensure-Entity-AABB-s-are-never-invalid.patch +++ b/Spigot-Server-Patches/Ensure-Entity-AABB-s-are-never-invalid.patch @@ -8,6 +8,14 @@ diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/jav index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java +@@ -0,0 +0,0 @@ import net.minecraft.world.INamableTileEntity; + import net.minecraft.world.damagesource.DamageSource; + import net.minecraft.world.entity.animal.EntityAnimal; + import net.minecraft.world.entity.animal.EntityFish; ++import net.minecraft.world.entity.decoration.EntityHanging; + import net.minecraft.world.entity.item.EntityItem; + import net.minecraft.world.entity.player.EntityHuman; + import net.minecraft.world.entity.vehicle.EntityBoat; @@ -0,0 +0,0 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne public void setPosition(double d0, double d1, double d2) { diff --git a/Spigot-Server-Patches/Ensure-Entity-is-never-double-registered.patch b/Spigot-Server-Patches/Ensure-Entity-is-never-double-registered.patch index 769658188b..f17b592600 100644 --- a/Spigot-Server-Patches/Ensure-Entity-is-never-double-registered.patch +++ b/Spigot-Server-Patches/Ensure-Entity-is-never-double-registered.patch @@ -73,7 +73,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 } // Paper start -+ boolean isQueuedForRegister = false; ++ public boolean isQueuedForRegister = false; public static Random SHARED_RANDOM = new Random() { private boolean locked = false; @Override diff --git a/Spigot-Server-Patches/Entity-Activation-Range-2.0.patch b/Spigot-Server-Patches/Entity-Activation-Range-2.0.patch index c72771920a..ae6c74636f 100644 --- a/Spigot-Server-Patches/Entity-Activation-Range-2.0.patch +++ b/Spigot-Server-Patches/Entity-Activation-Range-2.0.patch @@ -108,6 +108,14 @@ diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/jav index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java +@@ -0,0 +0,0 @@ import net.minecraft.world.entity.animal.EntityFish; + import net.minecraft.world.entity.item.EntityItem; + import net.minecraft.world.entity.player.EntityHuman; + import net.minecraft.world.entity.vehicle.EntityBoat; ++import net.minecraft.world.entity.vehicle.EntityMinecartAbstract; + import net.minecraft.world.item.ItemStack; + import net.minecraft.world.item.enchantment.EnchantmentManager; + import net.minecraft.world.item.enchantment.EnchantmentProtection; @@ -0,0 +0,0 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne public boolean Y; public boolean impulse; diff --git a/Spigot-Server-Patches/Entity-getEntitySpawnReason.patch b/Spigot-Server-Patches/Entity-getEntitySpawnReason.patch index a18254c5ad..295d0546f6 100644 --- a/Spigot-Server-Patches/Entity-getEntitySpawnReason.patch +++ b/Spigot-Server-Patches/Entity-getEntitySpawnReason.patch @@ -38,6 +38,15 @@ diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/jav index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java +@@ -0,0 +0,0 @@ import net.minecraft.world.EnumHand; + import net.minecraft.world.EnumInteractionResult; + import net.minecraft.world.INamableTileEntity; + import net.minecraft.world.damagesource.DamageSource; ++import net.minecraft.world.entity.animal.EntityAnimal; ++import net.minecraft.world.entity.animal.EntityFish; + import net.minecraft.world.entity.item.EntityItem; + import net.minecraft.world.entity.player.EntityHuman; + import net.minecraft.world.entity.vehicle.EntityBoat; @@ -0,0 +0,0 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne } }; diff --git a/Spigot-Server-Patches/Entity-isTicking.patch b/Spigot-Server-Patches/Entity-isTicking.patch index dfc9015d1b..85834c6b36 100644 --- a/Spigot-Server-Patches/Entity-isTicking.patch +++ b/Spigot-Server-Patches/Entity-isTicking.patch @@ -8,6 +8,14 @@ diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/jav index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java +@@ -0,0 +0,0 @@ import net.minecraft.resources.MinecraftKey; + import net.minecraft.resources.ResourceKey; + import net.minecraft.server.MCUtil; + import net.minecraft.server.MinecraftServer; ++import net.minecraft.server.level.ChunkProviderServer; + import net.minecraft.server.level.EntityPlayer; + import net.minecraft.server.level.PlayerChunkMap; + import net.minecraft.server.level.TicketType; @@ -0,0 +0,0 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne public static int nextEntityId() { return entityCount.incrementAndGet(); diff --git a/Spigot-Server-Patches/Entity-load-save-limit-per-chunk.patch b/Spigot-Server-Patches/Entity-load-save-limit-per-chunk.patch index 229cf90e9c..8692fa5174 100644 --- a/Spigot-Server-Patches/Entity-load-save-limit-per-chunk.patch +++ b/Spigot-Server-Patches/Entity-load-save-limit-per-chunk.patch @@ -12,14 +12,14 @@ diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/m index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -@@ -0,0 +0,0 @@ import com.destroystokyo.paper.antixray.ChunkPacketBlockControllerAntiXray.Engin - import net.minecraft.server.EntityVindicator; - import net.minecraft.server.EntityZombie; - import net.minecraft.server.EnumDifficulty; -+import net.minecraft.server.EntityTypes; +@@ -0,0 +0,0 @@ import java.util.stream.Collectors; + + import com.destroystokyo.paper.antixray.ChunkPacketBlockControllerAntiXray.EngineMode; + import net.minecraft.world.EnumDifficulty; ++import net.minecraft.world.entity.EntityTypes; + import net.minecraft.world.entity.monster.EntityVindicator; + import net.minecraft.world.entity.monster.EntityZombie; import org.bukkit.Bukkit; - import org.bukkit.Material; - import org.bukkit.configuration.ConfigurationSection; @@ -0,0 +0,0 @@ public class PaperWorldConfig { EnumDifficulty.class ); diff --git a/Spigot-Server-Patches/EntityMoveEvent.patch b/Spigot-Server-Patches/EntityMoveEvent.patch index ba216703a2..433ba97efd 100644 --- a/Spigot-Server-Patches/EntityMoveEvent.patch +++ b/Spigot-Server-Patches/EntityMoveEvent.patch @@ -31,8 +31,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 @@ -0,0 +0,0 @@ public class WorldServer extends World implements GeneratorAccessSeed { public final Convertable.ConversionSession convertable; public final UUID uuid; - boolean hasPhysicsEvent = true; // Paper -+ boolean hasEntityMoveEvent = false; // Paper + public boolean hasPhysicsEvent = true; // Paper ++ public boolean hasEntityMoveEvent = false; // Paper private static Throwable getAddToWorldStackTrace(Entity entity) { return new Throwable(entity + " Added to world at " + new java.util.Date()); } diff --git a/Spigot-Server-Patches/Expose-Tracked-Players.patch b/Spigot-Server-Patches/Expose-Tracked-Players.patch index 5227b17327..54493beb19 100644 --- a/Spigot-Server-Patches/Expose-Tracked-Players.patch +++ b/Spigot-Server-Patches/Expose-Tracked-Players.patch @@ -14,8 +14,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 - PlayerChunkMap.EntityTracker tracker; // Paper + public PlayerChunkMap.EntityTracker tracker; // Paper package private -> public - boolean collisionLoadChunks = false; // Paper - Throwable addedToWorldStack; // Paper - entity debug + public boolean collisionLoadChunks = false; // Paper + public Throwable addedToWorldStack; // Paper - entity debug public CraftEntity getBukkitEntity() { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 diff --git a/Spigot-Server-Patches/Expose-client-protocol-version-and-virtual-host.patch b/Spigot-Server-Patches/Expose-client-protocol-version-and-virtual-host.patch index 87b6f94d4c..14d625af67 100644 --- a/Spigot-Server-Patches/Expose-client-protocol-version-and-virtual-host.patch +++ b/Spigot-Server-Patches/Expose-client-protocol-version-and-virtual-host.patch @@ -12,7 +12,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 @@ -0,0 +0,0 @@ +package com.destroystokyo.paper.network; + -+import net.minecraft.server.NetworkManager; ++import net.minecraft.network.NetworkManager; + +import java.net.InetSocketAddress; + diff --git a/Spigot-Server-Patches/Extend-block-drop-capture-to-capture-all-items-added.patch b/Spigot-Server-Patches/Extend-block-drop-capture-to-capture-all-items-added.patch index a3b392ef6a..a00d020df7 100644 --- a/Spigot-Server-Patches/Extend-block-drop-capture-to-capture-all-items-added.patch +++ b/Spigot-Server-Patches/Extend-block-drop-capture-to-capture-all-items-added.patch @@ -28,6 +28,14 @@ diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/mai index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/level/WorldServer.java +++ b/src/main/java/net/minecraft/server/level/WorldServer.java +@@ -0,0 +0,0 @@ import net.minecraft.world.entity.animal.EntityWaterAnimal; + import net.minecraft.world.entity.animal.horse.EntityHorseSkeleton; + import net.minecraft.world.entity.boss.EntityComplexPart; + import net.minecraft.world.entity.boss.enderdragon.EntityEnderDragon; ++import net.minecraft.world.entity.item.EntityItem; + import net.minecraft.world.entity.npc.NPC; + import net.minecraft.world.entity.player.EntityHuman; + import net.minecraft.world.entity.raid.PersistentRaid; @@ -0,0 +0,0 @@ public class WorldServer extends World implements GeneratorAccessSeed { } else if (this.isUUIDTaken(entity)) { return false; diff --git a/Spigot-Server-Patches/Faster-redstone-torch-rapid-clock-removal.patch b/Spigot-Server-Patches/Faster-redstone-torch-rapid-clock-removal.patch index c2156cc673..8cada105dd 100644 --- a/Spigot-Server-Patches/Faster-redstone-torch-rapid-clock-removal.patch +++ b/Spigot-Server-Patches/Faster-redstone-torch-rapid-clock-removal.patch @@ -9,6 +9,14 @@ diff --git a/src/main/java/net/minecraft/world/level/World.java b/src/main/java/ index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/level/World.java +++ b/src/main/java/net/minecraft/world/level/World.java +@@ -0,0 +0,0 @@ import net.minecraft.world.level.biome.BiomeBase; + import net.minecraft.world.level.biome.BiomeManager; + import net.minecraft.world.level.block.Block; + import net.minecraft.world.level.block.BlockFireAbstract; ++import net.minecraft.world.level.block.BlockRedstoneTorch; + import net.minecraft.world.level.block.Blocks; + import net.minecraft.world.level.block.entity.ITickable; + import net.minecraft.world.level.block.entity.TileEntity; @@ -0,0 +0,0 @@ public abstract class World implements GeneratorAccess, AutoCloseable { private org.spigotmc.TickLimiter tileLimiter; private int tileTickPosition; diff --git a/Spigot-Server-Patches/Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch b/Spigot-Server-Patches/Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch index 2862ac62e2..bfd07555c7 100644 --- a/Spigot-Server-Patches/Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch +++ b/Spigot-Server-Patches/Fix-AdvancementDataPlayer-leak-due-from-quitting-ear.patch @@ -73,6 +73,14 @@ diff --git a/src/main/java/net/minecraft/server/AdvancementDataPlayer.java b/src index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/AdvancementDataPlayer.java +++ b/src/main/java/net/minecraft/server/AdvancementDataPlayer.java +@@ -0,0 +0,0 @@ import net.minecraft.advancements.CriterionInstance; + import net.minecraft.advancements.CriterionProgress; + import net.minecraft.advancements.CriterionTrigger; + import net.minecraft.advancements.CriterionTriggers; ++import net.minecraft.advancements.critereon.CriterionTriggerAbstract; + import net.minecraft.network.chat.ChatMessage; + import net.minecraft.network.chat.ChatMessageType; + import net.minecraft.network.protocol.game.PacketPlayOutAdvancements; @@ -0,0 +0,0 @@ public class AdvancementDataPlayer { private Advancement l; private boolean m = true; diff --git a/Spigot-Server-Patches/Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch b/Spigot-Server-Patches/Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch index e511abd2fb..2b9771e2e0 100644 --- a/Spigot-Server-Patches/Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch +++ b/Spigot-Server-Patches/Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch @@ -43,6 +43,15 @@ diff --git a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java b/src/ index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java +@@ -0,0 +0,0 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { + }); + } + +- protected void addEntity(Entity entity) { ++ public void addEntity(Entity entity) { // Paper - protected -> public + org.spigotmc.AsyncCatcher.catchOp("entity track"); // Spigot + // Paper start - ignore and warn about illegal addEntity calls instead of crashing server + if (!entity.valid || entity.world != this.world || this.trackedEntities.containsKey(entity.getId())) { @@ -0,0 +0,0 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { .printStackTrace(); return; diff --git a/Spigot-Server-Patches/Fix-SPIGOT-5989.patch b/Spigot-Server-Patches/Fix-SPIGOT-5989.patch index 94c1e96a76..d6f885d86c 100644 --- a/Spigot-Server-Patches/Fix-SPIGOT-5989.patch +++ b/Spigot-Server-Patches/Fix-SPIGOT-5989.patch @@ -13,6 +13,14 @@ diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/ma index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java +@@ -0,0 +0,0 @@ import net.minecraft.world.level.EnumGamemode; + import net.minecraft.world.level.GameRules; + import net.minecraft.world.level.World; + import net.minecraft.world.level.biome.BiomeManager; ++import net.minecraft.world.level.block.BlockRespawnAnchor; + import net.minecraft.world.level.block.Blocks; + import net.minecraft.world.level.block.state.IBlockData; + import net.minecraft.world.level.border.IWorldBorderListener; @@ -0,0 +0,0 @@ public abstract class PlayerList { // Paper start boolean isBedSpawn = false; @@ -59,3 +67,5783 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 } // Added from changeDimension updateClient(entityplayer); // Update health, etc... +diff --git a/t b/t +new file mode 100644 +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 +--- /dev/null ++++ b/t +@@ -0,0 +0,0 @@ ++* 3255b7a34 - (HEAD -> master) fixup! Optimize Collision to not load chunks (2021-03-16)  ++* 68c9202e1 - fixup! Fix villager boat exploit (2021-03-16)  ++* 65f1c1c27 - fixup! Configurable Player Collision (2021-03-16)  ++* 093b6fd70 - fixup! Fix Longstanding Broken behavior of PlayerJoinEvent (2021-03-16)  ++* f239bffc0 - fixup! Add PlayerConnectionCloseEvent (2021-03-16)  ++* 9e1089648 - fixup! Add Velocity IP Forwarding Support (2021-03-16)  ++* 51b459db9 - fixup! Load chunks asynchronously for players. (2021-03-16)  ++* a13e4afaa - Item Rarity API (2021-03-12)  ++* d2055a40f - Add fast alternative constructor for Vector3f (2021-03-10)  ++* f288684f2 - Implement Keyed on World (2021-01-06)  ++* 8702e6b74 - Allow using signs inside spawn protection (2020-04-15)  ++* 4bb15783c - Add Block#isValidTool (2020-07-06)  ++* 8e035c211 - Add recipe to cook events (2021-01-06)  ++* 00fb3334e - Prevent grindstones from overstacking items (2021-02-16)  ++* 7b10593b8 - added PlayerNameEntityEvent (2020-07-05)  ++* 8bd80e86d - Add worldborder events (2021-01-04)  ++* 795fb6af4 - fix converting txt to json file (2021-01-04)  ++* eb25d96b8 - stop firing pressure plate EntityInteractEvent for ignored entities (2021-02-02)  ++* 2da7e2f16 - Improve ServerGUI (2020-10-03)  ++* 6d99da98b - Throw proper exception on empty JsonList file (2020-11-01)  ++* 42f817d9c - MC-29274: Fix Wither hostility towards players (2020-10-01)  ++* 85097b62f - do not create unnecessary copies of passenger list (2020-12-13)  ++* ac2d642c1 - Remove streams from SensorNearest (2021-03-03)  ++* 185883ceb - Expose Tracked Players (2021-02-26)  ++* 0ebb65161 - Clear SyncLoadInfo (2021-02-26)  ++* 6e04a50b4 - Add support for hex color codes in console (2021-02-20)  ++* 41825d077 - misc debugging dumps (2021-02-18)  ++* af2c251be - Merchant#getRecipes should return an immutable list (2021-02-10)  ++* 72cdb72f5 - fix dead slime setSize invincibility (2021-02-05)  ++* 3735f7581 - living entity allow attribute registration (2020-10-24)  ++* a3c2172ea - Add getMainThreadExecutor to BukkitScheduler (2021-01-24)  ++* b4ec53b29 - Allow adding items to BlockDropItemEvent (2021-01-20)  ++* 991af986e - Inline shift direction fields (2021-01-18)  ++* 29fddb635 - added option to disable pathfinding updates on block changes (2021-01-25)  ++* b1719f5dc - EntityMoveEvent (2020-02-11)  ++* 6b0587b12 - add DragonEggFormEvent (2021-01-25)  ++* fe5cd2e8d - Reset shield blocking on dimension change (2021-01-24)  ++* 45c189cc6 - Skip distance map update when spawning disabled. (2020-02-14)  ++* 2ff69d70a - Add dropLeash variable to EntityUnleashEvent (2021-01-29)  ++* 7bf03002d - Added PlayerStonecutterRecipeSelectEvent (2020-11-27)  ++* 7da2a9ffb - Add toggle for always placing the dragon egg (2020-11-26)  ++* 91c24633e - Fix console spam when removing chests in water (2020-11-19)  ++* 7b33a4204 - Added firing of PlayerChangeBeaconEffectEvent (2020-06-24)  ++* 7c96598aa - added Wither API (2020-07-05)  ++* 171f638f7 - Added Vanilla Entity Tags (2021-01-03)  ++* 6071c10e6 - Implement BlockPreDispenseEvent (2021-01-17)  ++* f2d7afd9e - Configurable max leash distance (2021-01-03)  ++* 264eee5e7 - Make schedule command per-world (2021-01-04)  ++* b39b53a22 - Return chat component with empty text instead of throwing exception (2020-07-07)  ++* 0fb2f2222 - Make ProjectileHitEvent Cancellable (2021-01-16)  ++* bf85b6e89 - Collision option for requiring a player participant (2020-11-14)  ++* f1bf635b6 - Add StructureLocateEvent (2020-09-16)  ++* 8e1b7e250 - Add sendOpLevel API (2020-12-29)  ++* 9ad6d04c5 - Entity load/save limit per chunk (2020-11-18)  ++* e81b58c86 - Fix villager boat exploit (2021-01-11)  ++* f3d7213aa - Remove stale POIs (2021-01-09)  ++* 03e3adaf8 - Implement API to expose exact interaction point (2021-01-04)  ++* 83d2dced3 - Empty commands shall not be dispatched (2021-01-06)  ++* c4b9b0b42 - Configurable door breaking difficulty (2021-01-03)  ++* 9871652a0 - Added PlayerLoomPatternSelectEvent (2020-11-25)  ++* b78846cba - Fire event on GS4 query (2019-03-17)  ++* 87ba99287 - Added PlayerLecternPageChangeEvent (2020-11-23)  ++* 90b680af5 - Implemented BlockFailedDispenseEvent (2020-04-22)  ++* 4674e4452 - Added world settings for mobs picking up loot (2020-11-28)  ++* be5113ecf - Added ServerResourcesReloadedEvent (2020-12-02)  ++* 2f89f2cd6 - Added WorldGameRuleChangeEvent (2020-12-20)  ++* 65b5cc70d - Guardian beam workaround (2016-03-19)  ++* 0840fd475 - Add EntityLoadCrossbowEvent (2020-10-07)  ++* 2dd8be578 - Fix nerfed slime when splitting (2020-08-24)  ++* 76f7152e2 - Zombie API - breaking doors (2020-11-18)  ++* 1e709b111 - Fix interact event not being called in adventure (2020-06-21)  ++* 8ea6a35fc - Implement PlayerFlowerPotManipulateEvent (2019-08-13)  ++* caeecc228 - Allow disabling mob spawner spawn egg transformation (2020-10-09)  ++* e6f08bd44 - Cache burn durations (2020-12-27)  ++* 103701da6 - Optimized tick ready check (2020-12-27)  ++* f622307db - Implement API to get Material from Boats and Minecarts (2020-12-31)  ++* bf62ced17 - Fix harming potion dupe (2020-07-23)  ++* 527cb8991 - Additional Block Material API's (2020-12-30)  ++* 91b6565e4 - Implement TargetHitEvent (2020-11-25)  ++* 952cc4a61 - added PlayerTradeEvent (2020-07-02)  ++* 4a7292141 - Do not crash from invalid ingredient lists in VillagerAcquireTradeEvent (2020-12-27)  ++* 7c6f3822d - Add OBSTRUCTED reason to BedEnterResult (2020-12-24)  ++* 0fe5a2cd3 - Expose LivingEntity hurt direction (2020-12-13)  ++* 9c4efd78f - Optimize Dynamic#get Missing Keys (2020-12-21)  ++* b403fdfbd - Player Chunk Load/Unload Events (2020-10-05)  ++* b4c43ab4e - MC-4: Fix item position desync (2020-12-08)  ++* 4014f8aed - Fix CraftSound backwards compatibility (2020-12-17)  ++* 0e2abe833 - Limit recipe packets (2020-12-12)  ++* 8b6995c81 - Fix curing villager makes equipment disappear (2020-12-08)  ++* bd621e9cc - Fix curing zombie villager discount exploit (2020-12-08)  ++* 7e3221f99 - Set spigots verbose world setting to false by def (2020-12-02)  ++* 012e6419f - Add warning for servers not running on Java 11 (2020-12-02)  ++* 5c460eddb - Add PlayerShearBlockEvent (2020-08-27)  ++* b126998d4 - Added missing default perms for commands (2020-11-16)  ++* 69f0197cf - Climbing should not bypass cramming gamerule (2020-08-23)  ++* 9aef51ce8 - More lightning API (2020-07-26)  ++* 69491e525 - Add PlayerItemCooldownEvent (2020-08-25)  ++* 1519a9b9b - Add LivingEntity#clearActiveItem (2020-07-15)  ++* 771e76ab8 - Fix Player spawnParticle x/y/z precision loss (2020-10-03)  ++* 901b36701 - Add Destroy Speed API (2020-10-26)  ++* 0363e79c2 - Expose world spawn angle (2020-11-17)  ++* b8513e617 - Significantly improve performance of the end generation (2020-11-03)  ++* fc295e5d6 - Add Wandering Trader spawn rate config options (2020-08-20)  ++* fcedae0e6 - Seed based feature search (2020-01-13)  ++* a4d20d668 - Add API for quit reason (2020-11-14)  ++* 64248e0b2 - Beacon API - custom effect ranges (2020-06-24)  ++* 61c473692 - Item no age & no player pickup (2020-11-07)  ++* 39ae60610 - Fix client lag on advancement loading (2020-10-31)  ++* 4c4b9ce7a - Toggle for removing existing dragon (2020-09-30)  ++* e35bffd0b - Add ignore discounts API (2020-11-09)  ++* 5c560753e - Add getOfflinePlayerIfCached(String) (2020-10-25)  ++* 0cf39481e - Avoid error bubbling up when item stack is empty in fishing loot (2020-10-23)  ++* 1235efd37 - Fixed TileEntityBell memory leak (2020-10-10)  ++* f098ef07c - Player elytra boost API (2020-04-14)  ++* 0ff85a09b - Fix item locations dropped from campfires (2020-10-03)  ++* 275216c7b - Reduce blockpos allocation from pathfinding (2020-04-25)  ++* 2b03c08f8 - Retain block place order when capturing blockstates (2020-08-07)  ++* 3665995e2 - Improve inlinig for some hot IBlockData methods (2020-07-06)  ++* 582128a82 - Villager#resetOffers (2019-10-07)  ++* e53e96cd2 - Optimise getType calls (2020-06-03)  ++* 16ac12d5c - Fix for large move vectors crashing server (2020-05-17)  ++* dad6ba37c - Reset Ender Crystals on Dragon Spawn (2016-06-01)  ++* 46306e754 - MC-147729: Drop items that are extra from a crafting recipe (2020-03-18)  ++* 6637813b4 - Fix CME on adding a passenger in CreatureSpawnEvent (2020-10-04)  ++* a2222c69d - Fix "Not a string" Map Conversion spam (2020-10-08)  ++* 011ae8100 - Fix deop kicking non-whitelisted player when white list is not enabled (2020-10-03)  ++* d2f2ba26f - Entity#isTicking (2020-10-03)  ++* 9c8d252d4 - Lazily track plugin scoreboards by default (2020-10-03)  ++* 549f95f9a - Expose the Entity Counter to allow plugins to use valid and non-conflicting Entity Ids (2020-08-28)  ++* 1e6ff11ab - Don't mark dirty in invalid locations (SPIGOT-6086) (2020-09-27)  ++* db629c8eb - Extend block drop capture to capture all items added to the world (2020-09-17)  ++* 93c5e5491 - Cache DataFixerUpper Rewrite Rules on demand (2020-09-12)  ++* 8a9981d30 - Add additional open container api to HumanEntity (2020-08-26)  ++* d9578f366 - Fix Entity Teleportation and cancel velocity if teleported (2020-08-25)  ++* 76efe9175 - Cache block data strings (2018-12-06)  ++* 9bdcd16e0 - Create HoverEvent from ItemStack Entity (2020-07-06)  ++* 8a4927e0b - Add a way to get translation keys for blocks, entities and materials (2020-08-11)  ++* 2476438d8 - Add more Evoker API (2020-08-23)  ++* 9bfa5cc42 - Fix CraftTeam null check (2020-08-30)  ++* e1b8f0f83 - PortalCreateEvent needs to know its entity (2020-08-21)  ++* 600cc312c - Fix hex colors not working in some kick messages (2020-08-27)  ++* 486e2f870 - Optimize redstone algorithm (2018-09-27)  ++* b7ab21927 - Buffer joins to world (2020-08-19)  ++* 8fa3d9fec - Add zombie targets turtle egg config (2020-08-23)  ++* 2c0f7759d - Add BellRingEvent (2020-08-23)  ++* 60a1b0e95 - Brand support (2020-04-11)  ++* d1d0e3b02 - Prevent headless pistons from being created (2020-08-14)  ++* d633907e9 - Add moon phase API (2020-08-23)  ++* 1cf1b28bd - Fix SpawnChangeEvent not firing for all use-cases (2020-08-22)  ++* 2adce8771 - Don't require FACING data (2020-08-23)  ++* 8fbcaa7d1 - Add playPickupItemAnimation to LivingEntity (2020-08-23)  ++* 70a40721b - Add #setMaxPlayers API (2020-08-22)  ++* a6385db64 - MC-197883: Bandaid decode issue (2020-08-21)  ++* b3c0e0208 - Fix MC-197271 (2020-08-23)  ++* db243fb3d - Fix MC-99259 Wither Boss Bar doesn't update until invulnerability period is over (2020-08-20)  ++* 6ba082ebe - Brand support (2020-04-11)  ++* 039aba557 - Do not let the server load chunks from newer versions (2019-07-23)  ++* 9b5ab209e - Fix regex mistake in CB NBT int deserialization (2020-08-17)  ++* 68c18544b - Fix MC-187716 Use configured height (2020-08-15)  ++* bd8a71895 - Remove armour stand double add to world (2020-08-14)  ++* ad05a8ffd - Don't mark null chunk sections for block updates (2020-08-14)  ++* 5d0f3e6ef - Import fastutil classes (2020-08-12)  ++* 8862678a9 - Incremental player saving (2020-08-09)  ++* bc8b4361f - Optimize Pathfinder - Remove Streams / Optimized collections (2020-08-04)  ++* dfd745112 - Fix some rails connecting improperly (2020-07-24)  ++* 2c6129cf7 - Add missing strikeLighting call to World#spigot()#strikeLightningEffect (2020-07-26)  ++* 02941fa59 - Fix AdvancementDataPlayer leak due from quitting early in login (2020-07-13)  ++* 2f9ac7374 - Fix SPIGOT-5885 Unable to disable advancements (2020-07-10)  ++* 793573a46 - Fix SPIGOT-5824 Bukkit world-container is not used (2020-07-10)  ++* dde6610c6 - Fix SPIGOT-5989 (2020-07-15)  ++* f2fc6ea21 - Move range check for block placing up (2020-07-15)  ++* 17ac5ad48 - Thread Safe Vanilla Command permission checking (2020-07-11)  ++* c889e96dd - Fix arrows never despawning MC-125757 (2020-07-08)  ++* 41a727199 - Optimize the advancement data player iteration to be O(N) rather than O(N^2) (2020-07-04)  ++* a0900ca67 - Fix Concurrency issue in WeightedList (2020-07-06)  ++* 21832617b - Optimize NetworkManager Exception Handling (2020-07-05)  ++* de608b314 - Don't check chunk for portal on world gen entity add (2020-07-05)  ++* d9c8762cf - Allow delegation to vanilla chunk gen (2020-04-29)  ++* e1e26220d - Add PrepareResultEvent (2020-07-03)  ++* b93e156a5 - Spawn player in correct world on login (2020-07-03)  ++* f7b66188d - Update itemstack legacy name and lore (2020-07-01)  ++* 819390482 - Add entity liquid API (2020-07-02)  ++* 4c0d453f9 - Improve EntityTargetLivingEntityEvent for 1.16 mobs (2020-07-03)  ++* b1e7704f5 - Support components in ItemMeta (2020-06-06)  ++* 1ee860bca - Remove streams from classes related villager gossip (2020-07-01)  ++* 35c528d69 - Remove some streams from structures (2020-06-29)  ++* 121be5d8f - Convert legacy attributes in Item Meta (2020-07-01)  ++* c384c7167 - Clean up duplicated GameProfile Properties (2020-07-01)  ++* 8f9e99a2f - Support old UUID format for NBT (2020-06-29)  ++* 9c1e5e669 - Improve Legacy Component serialization size (2020-06-28)  ++* 0eb57bee7 - Don't allow null UUID's for chat (2020-06-28)  ++* 63fe52362 - Paper dumpitem command (2020-06-28)  ++* 7c565e474 - Fix Per World Difficulty / Remembering Difficulty (2020-06-28)  ++* 2082a343d - Optimize WorldBorder collision checks and air (2020-05-10)  ++* b2d484554 - Ensure Entity AABB's are never invalid (2020-05-10)  ++* 4635675c9 - Add permission for command blocks (2020-05-16)  ++* 06f6a8f10 - Limit lightning strike effect distance (2018-09-14)  ++* 06c442a8f - Hide sync chunk writes behind flag (2020-06-26)  ++* 20dd8f02f - Add and implement PlayerRecipeBookClickEvent (2020-06-05)  ++* ec8d7b6f6 - Expose Arrow getItemStack (2020-05-23)  ++* 97c9dbe64 - Inventory getHolder method without block snapshot (2020-06-10)  ++* d80a3f7fe - Fix enderdragon exp dupe (2020-06-12)  ++* 573f83e0d - Prevent position desync in playerconnection causing tp exploit (2020-06-12)  ++* 577f453d1 - Fix sand duping (2020-06-12)  ++* 93f413181 - Fix piston physics inconsistency - MC-188840 (2020-06-11)  ++* 32737ae98 - Fix CraftScheduler#runTaskTimerAsynchronously(Plugin, Consumer, long, long) scheduling a non-repeating task instead of a repeating one. (2020-06-12)  ++* 6b7945087 - Fix missing chunks due to integer overflow (2020-06-09)  ++* f23a16e35 - Add Plugin Tickets to API Chunk Methods (2020-06-09)  ++* e487b7b6e - Delay Chunk Unloads based on Player Movement (2016-06-18)  ++* ddcfff197 - Optimize Light Engine (2020-06-04)  ++* cca9c4ad4 - Optimize Bit Operations by inlining (2020-06-04)  ++* 9b529b3cc - Use seed based lookup for Treasure Maps - Fixes lag from carto/sunken maps (2020-06-07)  ++* a3075dd8e - Maps shouldn't load chunks (2020-06-07)  ++* b4393f3d1 - Fix villager trading demand - MC-163962 (2020-06-05)  ++* e5b277d69 - Improve Chunk Status Transition Speed (2020-05-29)  ++* 0f2c35518 - Optimize sending packets to nearby locations (sounds/effects) (2020-05-23)  ++* 71c5def48 - Implement Chunk Priority / Urgency System for Chunks (2020-04-11)  ++* 094114acb - Workaround for Client Lag Spikes (MC-162253) (2020-05-12)  ++* de38a7c13 - Fix Non Full Status Chunk NBT Memory Leak (2020-05-23)  ++* b898019bd - Add option for console having all permissions (2020-05-16)  ++* 6693a6ff7 - Ensure safe gateway teleport (2020-05-15)  ++* 61bec6ee4 - Reduce allocation of Vec3D by entity tracker (2020-04-27)  ++* 3f1258fb4 - Reduce MutableInt allocations from light engine (2020-04-27)  ++* b88e1f634 - Optimize NibbleArray to use pooled buffers (2020-05-06)  ++* 8593b37fe - Protect Bedrock and End Portal/Frames from being destroyed (2020-05-13)  ++* 72d7fafea - Ensure EntityRaider respects game and entity rules for picking up items (2020-05-09)  ++* e8b791914 - Wait for Async Tasks during shutdown (2020-05-10)  ++* 5c9e712be - Potential bed API (2020-05-10)  ++* e1f5ddf92 - Optimize brigadier child sorting performance (2020-04-16)  ++* 930f38f1a - Fix PotionEffect ignores icon flag (2020-05-08)  ++* c2de4917a - Fix Light Command (2020-05-07)  ++* 25708f233 - Add villager reputation API (2020-04-22)  ++* 6e28264ed - No-Tick view distance implementation (2020-05-05)  ++* a778945ec - Stop copy-on-write operations for updating light data (2020-04-27)  ++* 59a172ea3 - Optimize isOutsideRange to use distance maps (2020-05-05)  ++* 25dbe1592 - Use distance map to optimise entity tracker (2020-05-05)  ++* 22dfebc5b - Implement Mob Goal API (2020-01-03)  ++* 2adb22ccb - Set cap on JDK per-thread native byte buffer cache (2020-05-04)  ++* b8dd44535 - Optimize Voxel Shape Merging (2020-05-03)  ++* 99117c015 - Expose game version (2020-05-01)  ++* 7058d7d45 - Validate PickItem Packet and kick for invalid (2020-05-02)  ++* f7beec4b4 - Villager Restocks API (2020-04-26)  ++* f9b97228f - Implement Brigadier Mojang API (2020-04-19)  ++* 1b95125c0 - Fix numerous item duplication issues and teleport issues (2020-04-25)  ++* eb9f7d730 - Add phantom creative and insomniac controls (2020-04-25)  ++* c7e3b6a97 - Don't fire BlockFade on worldgen threads (2020-04-23)  ++* 4743aac28 - Allow multiple callbacks to schedule for Callback Executor (2020-04-21)  ++* 80d25a9df - Add PlayerAttackEntityCooldownResetEvent (2020-03-26)  ++* f3598c131 - Move player to spawn point if spawn in unloaded world (2020-03-31) <2277> ++* 73edbe5e7 - Load Chunks for Login Asynchronously (2020-04-19)  ++* 78b2653fb - Fix Longstanding Broken behavior of PlayerJoinEvent (2020-04-19)  ++* 8a8db2ef2 - Broadcast join message to console (2020-04-17)  ++* 153935b69 - Don't crash if player is attempted to be removed from untracked chunk. (2020-04-18)  ++* 1541fbfd3 - Fix Chunk Post Processing deadlock risk (2020-04-18)  ++* 5fde78a0b - Implement Player Client Options API (2020-01-20)  ++* 22af1b3c3 - Restrict vanilla teleport command to valid locations (2020-04-16)  ++* cd9c1c57a - Optimize ChunkProviderServer's chunk level checking helper methods (2020-04-16)  ++* 40cf1ee8e - Don't run entity collision code if not needed (2020-04-15)  ++* 6b4f22c09 - Optimise ArraySetSorted#removeIf (2020-04-15)  ++* 60e7059a5 - Prevent opening inventories when frozen (2020-04-13)  ++* 0ba481d6a - Reduce memory footprint of NBTTagCompound (2020-04-06)  ++* 026984b55 - Remove streams from PairedQueue (2020-04-06)  ++* eb4920be9 - Reduce Either Optional allocation (2020-04-06)  ++* 8c8311a81 - Optimize Pathfinding (2016-03-03)  ++* 0154d98bb - Improved Watchdog Support (2020-04-12)  ++* 7c4a38fa8 - Async command map building (2020-04-08)  ++* 3c0a08875 - Delay unsafe actions until after entity ticking is done (2020-04-11)  ++* 69c24198a - Remove streams from Mob AI System (2020-04-06)  ++* 03b74d471 - Add Raw Byte ItemStack Serialization (2020-04-30)  ++* 59cd4bb23 - Expose MinecraftServer#isRunning (2020-04-10)  ++* a67357e7a - Add tick times API and /mspt command (2020-04-05)  ++* e3d756450 - Don't move existing players to world spawn (2020-04-09)  ++* a090c79f3 - Mid Tick Chunk Tasks - Speed up processing of chunk loads and generation (2020-04-09)  ++* 6a0752e1a - Increase Light Queue Size (2020-04-08)  ++* 6fcbafa3b - Optimize PlayerChunkMap memory use for visibleChunks (2020-04-08)  ++* 4f12b1c19 - Dead Player's shouldn't be able to move (2020-04-02)  ++* c7b602a59 - Don't tick dead players (2020-04-02)  ++* b8d64cc9a - Optimize Collision to not load chunks (2020-04-02)  ++* 66e6238f1 - Prevent Double PlayerChunkMap adds crashing server (2020-04-02)  ++* f9ae9d756 - Do not allow bees to load chunks for beehives (2020-03-17)  ++* def250cb3 - Remote Connections shouldn't hold up shutdown (2020-03-31)  ++* f5d9af8c1 - Fix unregistering entities from unloading chunks (2020-03-31)  ++* 885ea185f - Ensure Entity is never double registered (2020-03-29)  ++* 49fe49ad4 - Pillager patrol spawn settings and per player options (2020-02-01)  ++* 72dbf3979 - Optimise TickListServer by rewriting it (2020-02-14)  ++* 1e0158d55 - Optimise Chunk#getFluid (2020-01-14)  ++* bba1a750a - Configurable chance of villager zombie infection (2020-02-22)  ++* 1c2568a37 - Add option to allow iron golems to spawn in air (2019-04-13)  ++* eaeb3186e - Validate tripwire hook placement before update (2020-03-07)  ++* 69f7d4a21 - Prevent teleporting dead entities (2020-03-03)  ++* bd0633008 - add hand to BlockMultiPlaceEvent (2020-03-01)  ++* 22d4d2168 - Make the GUI graph fancier (2020-02-02)  ++* f78d6480d - Add option to nerf pigmen from nether portals (2020-02-07)  ++* dcf6b7112 - Entity Jump API (2020-02-08)  ++* 67d60616d - Optimise random block ticking (2020-01-27)  ++* ccb8a1b64 - Add ThrownEggHatchEvent (2020-02-09)  ++* f1b5b07e8 - Allow overriding the java version check (2020-02-08)  ++* cdc3fe676 - Optimise getChunkAt calls for loaded chunks (2020-01-25)  ++* f256659e1 - Bees get gravity in void. Fixes MC-167279 (2020-01-26)  ++* 6c8957da3 - Fix items vanishing through end portal (2020-01-22)  ++* bd1df87cf - Entity Activation Range 2.0 (2016-05-13)  ++* a05fa42e9 - Tracking Range Improvements (2019-12-21)  ++* edeca2874 - Add effect to block break naturally (2020-01-02)  ++* ee2255de0 - Fix last firework in stack not having effects when dispensed - #2871 (2020-01-17)  ++* a7490a422 - Optimize call to getFluid for explosions (2020-01-14)  ++* a0345560d - Lag compensate eating (2020-01-14)  ++* b41ab4bf1 - Fix items not falling correctly (2020-01-17)  ++* aaf6a539a - Optimise IEntityAccess#getPlayerByUUID (2020-01-11)  ++* 0816bbf75 - Guard against serializing mismatching chunk coordinate (2019-12-27)  ++* 2a099760c - Don't load Chunks from Hoppers and other things (2016-11-03)  ++* 5f7b766b6 - Prevent bees loading chunks checking hive position (2020-01-05)  ++* f4c1aa9d0 - PlayerDeathEvent#shouldDropExperience (2019-12-24)  ++* 98ff6807c - Optimize Hoppers (2016-04-27)  ++* 0780e96e2 - MC-145656 Fix Follow Range Initial Target (2019-12-18)  ++* 0008bade1 - Prevent sync chunk loads when villagers try to find beds (2020-01-13)  ++* f3d11de65 - Add CraftMagicNumbers.isSupportedApiVersion() (2019-12-15)  ++* ebdea2a26 - PlayerLaunchProjectileEvent (2018-07-21)  ++* c49616f6b - Fix AssertionError when player hand set to empty type (2019-11-11)  ++* e4032da83 - Add option to disable pillager patrols (2019-10-09)  ++* d05e657eb - Fix stuck in sneak when changing worlds (MC-10657) (2019-10-09)  ++* e89e2a81e - Expose the internal current tick (2019-04-20)  ++* c8893bd57 - Fix spawning of hanging entities that are not ItemFrames and can not face UP or DOWN (2019-10-30)  ++* 3b942ad1b - Performance improvement for Chunk.getEntities (2019-10-10)  ++* f6aa2fd7a - Fix MC-161754 (2019-09-24)  ++* 9260d6f9c - Generator Settings (2016-03-02)  ++* c83f9039e - Fix nether portal creation (2019-09-09)  ++* 96621271a - Prevent consuming the wrong itemstack (2019-08-19)  ++* dc931489e - implement optional per player mob spawns (2019-08-19)  ++* 10e192818 - Fix MC-158900 (2019-08-13)  ++* 14d8529cd - Do less work if we have a custom Bukkit generator (2019-07-14)  ++* dd5c1f691 - Implement alternative item-despawn-rate (2019-06-03)  ++* 439d2f434 - Reduce sync loads (2019-07-19)  ++* ac01b5d89 - Use getChunkIfLoadedImmediately in places (2019-07-08)  ++* a5e2ae13d - Asynchronous chunk IO and loading (2019-07-13)  ++* 4691e7733 - Avoid hopper searches if there are no items (2016-03-03)  ++* 1ff62135d - offset item frame ticking (2019-07-30)  ++* d4d35837b - Mark entities as being ticked when notifying navigation (2019-07-28)  ++* 790ef0b4e - Configurable projectile relative velocity (2019-07-23)  ++* 617b092bf - Only count Natural Spawned mobs towards natural spawn mob limit (2019-03-24)  ++* a6fe50312 - Anti-Xray (2018-08-20)  ++* 9f7d3f737 - incremental chunk saving (2019-06-09)  ++* bb54e82c5 - Synchronize DataPaletteBlock instead of ReentrantLock (2020-05-29)  ++* 17e9078e5 - Show blockstate location if we failed to read it (2019-06-15)  ++* adb0bea67 - Fix World#isChunkGenerated calls (2019-06-15)  ++* 97f05a7c4 - Catch exceptions from dispenser entity spawns (2019-06-10)  ++* e9731ce36 - Chunk debug command (2019-06-01)  ++* 004f18e60 - Implement CraftBlockSoundGroup (2019-05-28)  ++* 0d6a9a8a7 - ChunkMapDistance CME (2019-05-29)  ++* 62b48a70a - MC-114618 - Fix EntityAreaEffectCloud from going negative size (2019-05-27)  ++* 8fa234289 - Configurable Keep Spawn Loaded range per world (2014-09-13)  ++* 192a238de - improve CraftWorld#isChunkLoaded (2019-05-21)  ++* 1aa421b00 - Duplicate UUID Resolve Option (2018-07-21)  ++* a11e1bc84 - Fix issues with entity loss due to unloaded chunks (2018-09-28)  ++* fc244fabb - Fix CraftServer#isPrimaryThread and MinecraftServer isMainThread (2019-05-13)  ++* 871023133 - Fix sounds when item frames are modified (MC-123450) (2019-04-27)  ++* ee1a31909 - Fix CB call to changed postToMainThread method (2019-05-10)  ++* 9f0e024c2 - Per-Player View Distance API placeholders (2019-05-06)  ++* a861697d7 - Mob Spawner API Enhancements (2019-04-19)  ++* 9b1b88f6e - Add Heightmap API (2019-01-01)  ++* 4d45befae - Optimize Captured TileEntity Lookup (2019-04-06)  ++* 3ad1dc382 - PlayerDeathEvent#getItemsToKeep (2019-03-27)  ++* 72cbe0ea2 - Server Tick Events (2019-03-27)  ++* 05b1941a8 - don't go below 0 for pickupDelay, breaks picking up items (2019-03-24)  ++* ec0c2f05d - Implement PlayerPostRespawnEvent (2018-10-26)  ++* aa39a70e4 - Update entity Metadata for all tracked players (2019-03-22)  ++* 14667427a - Entity#getEntitySpawnReason (2019-03-24)  ++* 1a1a83299 - Use proper max length when serialising BungeeCord text component (2019-03-20)  ++* 1fa4cd95c - Add LivingEntity#getTargetEntity (2018-09-22)  ++* 402fab7d9 - Call WhitelistToggleEvent when whitelist is toggled (2019-03-13)  ++* 12a51f301 - Allow Saving of Oversized Chunks (2019-02-15)  ++* 3ec88040a - Set Zombie last tick at start of drowning process (2019-03-04)  ++* ef97c03fb - MC-145260: Fix Whitelist On/Off inconsistency (2019-03-02)  ++* af22e6682 - Handle Oversized Tile Entities in chunks (2020-05-06)  ++* a6b960d51 - Optimize Network Manager and add advanced packet support (2020-05-06)  ++* 64debc597 - Don't check ConvertSigns boolean every sign save (2019-03-02)  ++* 3f45fdf55 - Limit Client Sign length more (2019-02-27)  ++* e9561d39f - Fix sign edit memory leak (2019-02-28)  ++* 1b838d4a8 - Fix Custom Shapeless Custom Crafting Recipes (2019-01-18)  ++* 7af55b12d - BlockDestroyEvent (2019-02-06)  ++* 1ccb42dac - Block Entity#remove from being called on Players (2019-02-04)  ++* 66c6bac03 - Fire BlockPistonRetractEvent for all empty pistons (2019-01-31)  ++* 1d195ee37 - Workaround for vehicle tracking issue on disconnect (2019-01-07)  ++* e63d673bd - Add APIs to replace OfflinePlayer#getLastPlayed (2019-01-02)  ++* f4fe6bee5 - Prevent Enderman from loading chunks (2018-12-18)  ++* ab4f6c7a8 - Add PlayerConnectionCloseEvent (2018-10-07)  ++* 28be8f707 - Add more Zombie API (2018-10-07)  ++* d777b872d - force entity dismount during teleportation (2018-11-15)  ++* b22568684 - Handle Large Packets disconnecting client (2018-11-27)  ++* a6158fbf2 - Prevent rayTrace from loading chunks (2018-11-26)  ++* 185a66759 - Make the default permission message configurable (2018-11-18)  ++* e136bc51b - Book Size Limits (2018-11-16)  ++* 1b96c4233 - Don't allow digging into unloaded chunks (2018-11-11)  ++* c642e6334 - Fix SpongeAbsortEvent handling (2018-11-10)  ++* c36400a5a - Use Vanilla Minecart Speeds (2018-11-08)  ++* 82a89eebe - Restore custom InventoryHolder support (2018-11-05)  ++* 0f326dbf7 - Optimize World Time Updates (2018-11-02)  ++* f6ffc5169 - Improve Server Thread Pool and Thread Priorities (2018-10-23)  ++* 597b1ae6d - Don't sleep after profile lookups if not needed (2018-10-23)  ++* 92a9f5a3f - Reset players airTicks on respawn (2018-10-20)  ++* eae2e3f35 - Add option to prevent players from moving into unloaded chunks #1551 (2018-10-22)  ++* 45fe1e518 - Here's Johnny! (2018-10-12)  ++* 44f5fc1e7 - Check Drowned for Villager Aggression Config (2018-10-10)  ++* b1ea8555b - Add more Witch API (2018-10-12)  ++* feaad5f84 - Add Velocity IP Forwarding Support (2018-10-08)  ++* 1b3b82c74 - Call player spectator target events and improve implementation (2018-09-28)  ++* 67676b079 - MC-50319: Check other worlds for shooter of projectiles (2018-10-17)  ++* 3bdb5771f - Turtle API (2018-09-29)  ++* 7e4cee4ae - Add sun related API (2018-10-07)  ++* 6c9478f7a - Allow setting the vex's summoner (2018-10-06)  ++* e98700ec9 - Hook into CB plugin rewrites (2018-10-03)  ++* 64b758e30 - Configurable connection throttle kick message (2018-10-02)  ++* 5c7dbffe2 - Honor EntityAgeable.ageLock (2018-09-23)  ++* 89743658a - Catch JsonParseException in Entity and TE names (2018-09-22)  ++* 547f68298 - PreSpawnerSpawnEvent (2018-09-18)  ++* 633a96fa5 - Implement furnace cook speed multiplier API (2018-09-13)  ++* 4e7a34707 - Optimize Biome Mob Lookups for Mob Spawning (2018-09-12)  ++* 072bb80bc - Prevent mob spawning from loading/generating chunks (2018-09-12)  ++* a4d28704b - Prevent Mob AI Rules from Loading Chunks (2018-09-10)  ++* b3adbbec7 - Implement an API for CanPlaceOn and CanDestroy NBT values (2018-09-12)  ++* bc8146233 - Prevent chunk loading from Fluid Flowing (2018-09-10)  ++* c9301197e - Mob Pathfinding API (2018-09-09)  ++* 0b8a2f873 - Allow chests to be placed with NBT data (2018-09-08)  ++* 59c4f1446 - Improve death events (2018-08-21)  ++* c1f82b716 - Expose attack cooldown methods for Player (2018-09-04)  ++* f745eb074 - Add ray tracing methods to LivingEntity (2018-09-03)  ++* 8e9bc77f1 - Make CraftWorld#loadChunk(int, int, false) load unconverted chunks (2018-09-02)  ++* 744ab7d2f - Inventory#removeItemAnySlot (2018-08-28)  ++* 33b1cf247 - Add More Creeper API (2018-08-24)  ++* 32b20a188 - Add PhantomPreSpawnEvent (2018-08-25)  ++* 681d4c7e6 - Optimize RegistryMaterials (2018-08-26)  ++* ac70eeb55 - Optimize CraftBlockData Creation (2018-08-23)  ++* 97971198c - Configurable speed for water flowing over lava (2018-08-08)  ++* 7bf677ae5 - Slime Pathfinder Events (2018-08-24)  ++* d36e1c933 - Restore vanlla default mob-spawn-range (2018-08-18)  ++* b02af4446 - Optimize BlockPosition helper methods (2018-08-15)  ++* 460afc7fa - Allow disabling armour stand ticking (2018-08-15)  ++* f79d3f360 - Ability to get Tile Entities from a chunk without snapshots (2018-08-15)  ++* 852fc73fe - Use a Queue for Queueing Commands (2018-08-12)  ++* 60455a494 - Use ConcurrentHashMap in JsonList (2018-08-07)  ++* 694fd54d5 - Make EnderDragon implement Mob (2018-08-10)  ++* 59a19ff54 - Add Early Warning Feature to WatchDog (2018-08-08)  ++* d6ec79293 - Fix client rendering skulls from same user (2016-11-22)  ++* 43f01c5c6 - MC-135506: Experience should save as Integers (2018-08-03)  ++* 38c993d54 - Add hand to bucket events (2018-08-02)  ++* 6703bcb91 - Break up and make tab spam limits configurable (2018-07-29)  ++* 147f441d7 - Add TNTPrimeEvent (2018-07-16)  ++* e664ca248 - AnvilDamageEvent (2018-07-20)  ++* 161577ada - Implement Expanded ArmorStand API (2018-07-26)  ++* 692ed8e2e - Ignore Dead Entities in entityList iteration (2018-07-28)  ++* 80b17da7d - Don't call getItemMeta on hasItemMeta (2018-07-26)  ++* 2c15fce4b - Prevent Saving Bad entities to chunks (2018-07-26)  ++* a59328418 - SkeletonHorse Additions (2018-07-27)  ++* f52fd86e0 - Add some Debug to Chunk Entity slices (2018-07-23)  ++* bd7f86f0f - Mark chunk dirty anytime entities change to guarantee it saves (2018-07-23)  ++* a0756d544 - Vanished players don't have rights (2018-07-23)  ++* c402208b7 - Option to prevent armor stands from doing entity lookups (2018-07-23)  ++* 05639ed52 - Optimize RegistryID.c() (2018-07-23)  ++* c78ee4c96 - Improve BlockPosition inlining (2016-11-30)  ++* a14f11e65 - PlayerElytraBoostEvent (2018-07-21)  ++* bc72b21f2 - EnderDragon Events (2018-07-21)  ++* 47e869801 - Add Debug Entities option to debug dupe uuid issues (2018-07-21)  ++* 1597dc0f0 - add more information to Entity.toString() (2018-07-19)  ++* 894fcf978 - Use asynchronous Log4j 2 loggers (2018-07-17)  ++* 3bdfaa1f6 - Avoid item merge if stack size above max stack size (2018-07-16)  ++* 526b4d3cf - Re-add vanilla entity warnings for duplicates (2018-07-19)  ++* 6ac1452b9 - Don't change the Entity Random seed for squids (2018-07-19)  ++* 0164dcf17 - Refresh player inventory when cancelling PlayerInteractEntityEvent (2018-07-13)  ++* d7b35d1dd - Vex#getSummoner API (2018-07-04)  ++* 32a7f0096 - InventoryCloseEvent Reason API (2018-07-03)  ++* 3a94adb49 - Implement World.getEntity(UUID) API (2018-07-03)  ++* 4a8710ebf - Add config to disable ender dragon legacy check (2018-06-22)  ++* 44d45df43 - RangedEntity API (2018-06-26)  ++* 1943089af - LivingEntity Hand Raised/Item Use API (2018-06-29)  ++* c34d27cb4 - Expand Explosions API (2018-06-20)  ++* ae44f51a8 - Implement EntityKnockbackByEntityEvent (2018-06-18)  ++* 61c259501 - PlayerReadyArrowEvent (2018-06-18)  ++* 76171ba7c - Improve EntityShootBowEvent (2013-06-15)  ++* 5a9d6388d - Make shield blocking delay configurable (2018-06-16)  ++* 26e5f0dfa - Print Error details when failing to save player data (2018-06-15)  ++* ba8a178b9 - Configurable Alternative LootPool Luck Formula (2018-06-15)  ++* dd3f20d28 - Fix CraftEntity hashCode (2018-06-10)  ++* 65924e308 - Unset Ignited flag on cancel of Explosion Event (2018-06-10)  ++* ded1ebc3d - Implement EntityTeleportEndGatewayEvent (2018-06-09)  ++* 4e0191e3f - ItemStack#getMaxItemUseDuration (2018-06-05)  ++* e3071978c - WitchReadyPotionEvent (2018-06-05)  ++* c78545636 - Allow spawning Item entities with World.spawnEntity (2018-06-04)  ++* e1c4363c4 - WitchThrowPotionEvent (2018-05-16)  ++* 62987c3bf - WitchConsumePotionEvent (2018-05-16)  ++* bbfe647ff - EndermanAttackPlayerEvent (2018-05-01)  ++* 314c768c9 - Expand World.spawnParticle API and add Builder (2017-08-15)  ++* 5ad1dffff - Block Enderpearl Travel Exploit (2018-04-30)  ++* 51200eb64 - Enderman.teleportRandomly() (2018-04-30)  ++* e82728ae2 - EndermanEscapeEvent (2018-04-30)  ++* 50ceb26a2 - Fix exploit that allowed colored signs to be created (2018-04-26) <0x22> ++* 41c6fb4a9 - Configurable sprint interruption on attack (2018-04-14)  ++* c7f8b9fe0 - Add method to open already placed sign (2018-04-01)  ++* 0f0d9e439 - Flag to disable the channel limit (2018-03-31)  ++* 129cb82fa - Call PaperServerListPingEvent for legacy pings (2017-10-11)  ++* a03b20e95 - Make legacy ping handler more reliable (2017-10-11)  ++* c9d4ac7a8 - Make player data saving configurable (2018-03-26)  ++* 47c810c1e - getPlayerUniqueId API (2018-03-22)  ++* 230333a31 - Fix Dragon Server Crashes (2018-03-21)  ++* 9bf16307b - Player.setPlayerProfile API (2018-03-18)  ++* bf605ef01 - Ability to change PlayerProfile in AsyncPreLoginEvent (2018-03-18)  ++* 119ba19f9 - Improved Async Task Scheduler (2018-03-16)  ++* e641b17f1 - Implement extended PaperServerListPingEvent (2017-10-11)  ++* 75b981bf7 - Disable Explicit Network Manager Flushing (2018-03-11)  ++* 6d21d6c79 - Prevent Frosted Ice from loading/holding chunks (2018-03-10)  ++* 765f95cc5 - Toggleable player crits, helps mitigate hacked clients. (2018-03-10)  ++* d9809b578 - Tameable#getOwnerUniqueId API (2018-02-24)  ++* 463bd4108 - Extend Player Interact cancellation (2018-02-11)  ++* 096af9231 - Add ArmorStand Item Meta (2018-01-27)  ++* 8ba791a63 - PlayerAdvancementCriterionGrantEvent (2018-01-19)  ++* 0abc7292b - Fill Profile Property Events (2018-01-02)  ++* cfff5f27f - Add setPlayerProfile API for Skulls (2018-01-19)  ++* 0cf55570c - PlayerNaturallySpawnCreaturesEvent (2018-01-14)  ++* f8dd40b6c - PreCreatureSpawnEvent (2018-01-14)  ++* 692f46b3b - Make max squid spawn height configurable (2018-01-11)  ++* 936a139c1 - Ability to apply mending to XP API (2017-12-20)  ++* 972530524 - ExperienceOrbMergeEvent (2017-12-19)  ++* b0c55683a - PlayerPickupExperienceEvent (2017-12-19)  ++* 879f0b6fd - Avoid NPE in PathfinderGoalTempt (2017-11-29)  ++* 620b55816 - AsyncTabCompleteEvent (2017-11-26)  ++* 85ee21688 - API to get a BlockState without a snapshot (2017-11-06)  ++* dc5eabfd0 - use CB BlockState implementations for captured blocks (2017-11-16)  ++* 1ef3d7299 - Prevent logins from being processed when the player has disconnected (2017-11-12)  ++* 912e70912 - Add PlayerArmorChangeEvent (2017-11-10)  ++* d9c45a93f - Option for maximum exp value when merging orbs (2017-11-10)  ++* dde3f7fb9 - Send attack SoundEffects only to players who can see the attacker (2017-10-31)  ++* 7c5e33d99 - revert serverside behavior of keepalives (2017-10-15)  ++* fb996a870 - Expose client protocol version and virtual host (2017-10-10)  ++* e3cc1362e - handle PacketPlayInKeepAlive async (2017-10-05)  ++* b1d66eb10 - Add PlayerJumpEvent (2017-09-28)  ++* b1764dff6 - Improve Log4J Configuration / Plugin Loggers (2017-09-23)  ++* 25f2cee85 - Include Log4J2 SLF4J implementation (2017-09-21)  ++* e78754a3f - Handle plugin prefixes using Log4J configuration (2017-09-21)  ++* e5e741216 - LivingEntity#setKiller (2017-07-31)  ++* 6f2997df1 - Allow specifying a custom "authentication servers down" kick message (2017-08-17)  ++* b5410750c - Fix MC-117075: TE Unload Lag Spike (2017-08-09)  ++* f24bc28a8 - Reset spawner timer when spawner event is cancelled (2017-07-31)  ++* 1eeeed892 - Ocelot despawns should honor nametags and leash (2017-07-31)  ++* dd5abb3cd - Fix this stupid bullshit (2017-08-06)  ++* f9be34b7d - ProfileWhitelistVerifyEvent (2017-07-03)  ++* cf92faf57 - Implement getI18NDisplayName (2016-05-04)  ++* a63f08f53 - Implement ensureServerConversions API (2016-05-04)  ++* 67d87da44 - Improve the Saddle API for Horses (2016-12-10)  ++* f5e7edb77 - Entity#fromMobSpawner() (2017-06-18)  ++* f95bfd343 - Block player logins during server shutdown (2017-07-02)  ++* a3a573595 - Profile Lookup Events (2017-06-17)  ++* fa18b016c - Shoulder Entities Release API (2017-06-17)  ++* f3d943a2b - Basic PlayerProfile API (2018-01-15)  ++* b989c613f - Add UnknownCommandEvent (2017-06-17)  ++* 8395faee8 - PlayerAttemptPickupItemEvent (2017-06-11)  ++* 63f3ee1cb - PlayerPickupItemEvent#setFlyAtPlayer (2017-05-07)  ++* 8d3deae75 - Item#canEntityPickup (2017-05-05)  ++* 4a33906b0 - provide a configurable option to disable creeper lingering effect spawns (2017-06-11)  ++* 49e74e6c5 - Use TerminalConsoleAppender for console improvements (2017-06-09)  ++* 2ab02694b - Add configuration option to prevent player names from being suggested (2017-06-09)  ++* 4daba27b6 - Add option to make parrots stay on shoulders despite movement (2017-05-16)  ++* 5c5eb2c4a - Add system property to disable book size limits (2017-05-13)  ++* 1148669d8 - Properly handle async calls to restart the server (2017-05-12)  ++* e731e982d - Do not let armorstands drown (2017-02-18)  ++* 89da754aa - Make targetSize more aggressive in the chunk unload queue (2017-02-07)  ++* f7b6da784 - Remove CraftScheduler Async Task Debugger (2017-02-05)  ++* f4c408594 - Cap Entity Collisions (2017-01-22)  ++* ead636a5b - ExperienceOrbs API for Reason/Source/Triggering player (2017-12-19)  ++* e7d423a73 - Don't allow entities to ride themselves - #572 (2017-01-08)  ++* 478e37758 - Enforce Sync Player Saves (2017-01-07)  ++* 3bc5a490f - Provide E/TE/Chunk count stat methods (2017-01-07)  ++* 83322db4c - PlayerTeleportEndGatewayEvent (2016-12-31)  ++* c6cf358e9 - Firework API's (2016-12-28)  ++* c3da17ea2 - String based Action Bar API (2016-12-27)  ++* 8216e2029 - Properly fix item duplication bug (2016-12-27)  ++* 144c47696 - Add API methods to control if armour stands can move (2016-12-21)  ++* 610917027 - Optimize ItemStack.isEmpty() (2016-12-21)  ++* 2b6e17609 - Configurable Cartographer Treasure Maps (2016-12-20)  ++* 205ad959f - Bound Treasure Maps to World Border (2016-12-20)  ++* 2fbcc0215 - Optimize World.isLoaded(BlockPosition)Z (2016-12-02)  ++* 5be30b559 - Prevent Pathfinding out of World Border (2016-12-19)  ++* bfede7a43 - Add ProjectileCollideEvent (2016-12-16)  ++* de4607ddf - Don't let fishinghooks use portals (2016-12-16)  ++* ed8718602 - Add source to PlayerExpChangeEvent (2016-09-08)  ++* 1422220b8 - Allow Reloading of Command Aliases (2016-11-28)  ++* d83bd846f - Optimise removeQueue (2016-11-25)  ++* c2b590959 - Cache user authenticator threads (2016-11-23)  ++* f47f22653 - Filter bad data from ArmorStand and SpawnEgg items (2016-11-12)  ++* 0b9443bf3 - Add EntityZapEvent (2016-10-16)  ++* 758e25d76 - Option to remove corrupt tile entities (2016-10-05)  ++* 10b0165ac - Auto fix bad Y levels on player login (2016-09-21)  ++* 2dc4bea67 - Remove FishingHook reference on Craft Entity removal (2016-06-16)  ++* 991253c5c - Chunk registration fixes (2016-09-21)  ++* 119922584 - Configurable flying kick messages (2016-09-20)  ++* e0dae6a49 - Configurable packet in spam threshold (2016-09-11)  ++* 33f20e20d - Optimise BlockState's hashCode/equals (2016-08-19)  ++* 814a0da42 - Add setting for proxy online mode status (2016-08-05)  ++* 8633d7c1d - Don't lookup game profiles that have no UUID and no name (2016-07-16)  ++* 057fae17f - Fix Old Sign Conversion (2016-06-17)  ++* d05030e29 - Fix Double World Add issues (2016-06-21)  ++* 91c1ee3dd - Only send Dragon/Wither Death sounds to same world (2016-05-31)  ++* e864c9d40 - Add server-name parameter (2016-05-28)  ++* ea144b399 - Faster redstone torch rapid clock removal (2016-05-23)  ++* 02ab91cbc - Optional TNT doesn't move in water (2016-05-22)  ++* 1b4426aac - Avoid blocking on Network Manager creation (2016-05-16)  ++* 6a5648649 - Optimize UserCache / Thread Safe (2016-05-16)  ++* 3d4df6b2e - System property for disabling watchdoge (2016-05-12)  ++* 22ccb5456 - Don't save empty scoreboard teams to scoreboard.dat (2016-05-07)  ++* a5713fd67 - LootTable API & Replenishable Lootables Feature (2016-05-01)  ++* 14306089a - Improve Maps (in item frames) performance and bug fixes (2016-04-29)  ++* 30523ea3b - remove null possibility for getServer singleton (2016-04-28)  ++* 4acd33d89 - Add ability to configure frosted_ice properties (2016-04-21)  ++* 0fd43307a - EntityRegainHealthEvent isFastRegen API (2016-04-22)  ++* ee259b154 - Implement PlayerLocaleChangeEvent (2016-04-19)  ++* dd63bcfb8 - Prevent Fire from loading chunks & wrongly spread (2016-04-17)  ++* 13b1db908 - Configurable RCON IP address (2016-04-16)  ++* e9e4c76aa - Add handshake event to allow plugins to handle client handshaking logic themselves (2016-04-13)  ++* b3b2ba60f - Configurable Player Collision (2016-04-13)  ++* 5138e9057 - Don't tick Skulls - unused code (2016-04-13)  ++* 48b5e09a9 - Remove unused World Tile Entity List (2016-04-13)  ++* 3337ae3f9 - Workaround for setting passengers on players (2016-04-10)  ++* 9f2aa4ba4 - Option to use vanilla per-world scoreboard coloring on names (2016-04-06)  ++* 3142b6f3f - Optimize DataBits (2016-04-05)  ++* 5ba36dbaa - Fix Cancelling BlockPlaceEvent triggering physics (2016-04-03)  ++* 7d008b753 - Configurable Grass Spread Tick Rate (2016-04-03)  ++* 3678d8392 - Fix reducedDebugInfo not initialized on client (2016-04-02)  ++* b5bd255b9 - Add PlayerUseUnknownEntityEvent (2016-04-02)  ++* 7a28aee33 - Do not load chunks for Pathfinding (2016-03-31)  ++* 4c650a23e - Sanitise RegionFileCache and make configurable. (2016-03-29)  ++* 0e3eb65bc - EntityPathfindEvent (2016-03-28)  ++* f7cbc6347 - Configurable Chunk Inhabited Time (2016-03-28)  ++* c2ca3980f - Entity AddTo/RemoveFrom World Events (2016-03-28)  ++* 014384a26 - Only process BlockPhysicsEvent if a plugin has a listener (2016-03-28)  ++* 2fb316b41 - Optimize isValidLocation, getType and getBlockData for inlining (2016-03-03)  ++* f9165d3e1 - Configurable spawn chances for skeleton horses (2016-03-22)  ++* e04d60d87 - Use a Shared Random for Entities (2016-03-22)  ++* 284d70f91 - handle NaN health/absorb values and repair bad data (2015-09-27)  ++* 45daaf47b - Custom replacement for eaten items (2015-06-21)  ++* df169e102 - Add World Util Methods (2016-03-18)  ++* 374e4f93c - Configurable Non Player Arrow Despawn Rate (2016-03-18)  ++* 83542657b - Handle Item Meta Inconsistencies (2015-05-28)  ++* 5d843cb66 - Remove Metadata on reload (2016-03-18)  ++* 90cdc2184 - Allow Reloading of Custom Permissions (2016-03-18)  ++* fda1a014c - Default loading permissions.yml before plugins (2016-03-18)  ++* 8a316a10d - Chunk Save Reattempt (2013-03-04)  ++* 734359b55 - Complete resource pack API (2015-04-04)  ++* 1137468db - Add methods for working with arrows stuck in living entities (2012-11-25)  ++* be0200c8a - Disable Scoreboards for non players by default (2016-03-08)  ++* e80489b33 - Don't nest if we don't need to when cerealising text components (2016-03-08)  ++* 1cb403e7d - Add exception reporting event (2016-03-03)  ++* 0efbb8c1c - Configurable inter-world teleportation safety (2016-03-03)  ++* 4f5da4616 - Add velocity warnings (2016-03-03)  ++* 0709e393d - Add configurable portal search radius (2016-03-03)  ++* f8c2a7d9c - Change implementation of (tile)entity removal list (2016-03-03)  ++* 4ecbaff92 - Ensure inv drag is in bounds (2016-03-03)  ++* 48bc70f73 - Player Tab List and Title APIs (2016-03-03)  ++* e3a413d30 - Be a bit more informative in maxHealth exception (2016-03-03)  ++* c367f58a3 - Expose server CommandMap (2016-03-03)  ++* 4117813b0 - All chunks are slime spawn chunks toggle (2016-03-03)  ++* add14f1c0 - Ensure commands are not ran async (2016-03-03)  ++* 6b3607ca6 - Configurable Disabling Cat Chest Detection (2016-03-03)  ++* ec98c1823 - Add PlayerInitialSpawnEvent (2016-03-03)  ++* 396f4ea22 - Disable spigot tick limiters (2016-03-02)  ++* 17605a1fc - Use UserCache for player heads (2016-03-02)  ++* bf8a1e01a - Configurable container update tick rate (2016-03-02)  ++* dca2d56ca - Add BeaconEffectEvent (2016-03-02)  ++* 753cc4429 - Send absolute position the first time an entity is seen (2016-03-02)  ++* 11f55e4b5 - Configurable mob spawner tick rate (2016-03-02)  ++* fc25fa5d8 - Disable ice and snow (2016-03-02)  ++* 6fc808f38 - Disable thunder (2016-03-02)  ++* f6e28e4c9 - Disable explosion knockback (2016-03-02)  ++* be2bc53cf - Optimize explosions (2016-03-02)  ++* 10dfdb50a - Fix lag from explosions processing dead entities (2016-03-02)  ++* 07ae6b09d - Configurable end credits (2016-03-16)  ++* 5a849c24c - Always tick falling blocks (2016-03-02)  ++* bd4c53c4f - Check online mode before converting and renaming player data (2016-03-02)  ++* e9502ac87 - Configurable top of nether void damage (2016-03-01)  ++* 068dd37d4 - Prevent tile entity and entity crashes (2016-03-01)  ++* 095fe6b0a - Entity Origin API (2016-03-01)  ++* ac0ded0b4 - Only refresh abilities if needed (2016-03-01)  ++* 71fd80b86 - Further improve server tick loop (2016-03-01)  ++* ad704e5d7 - Optimize TileEntity Ticking (2015-03-08)  ++* 9491c8771 - Remove invalid mob spawner tile entities (2016-03-01)  ++* 341854905 - Player affects spawning API (2016-03-01)  ++* b6343b941 - Add version history to version command (2018-03-01)  ++* 200e936b9 - Implement Paper VersionChecker (2019-05-27)  ++* fa81706ab - Show 'Paper' in client crashes, server lists, and Mojang stats (2016-03-01)  ++* f31cd20c4 - Drop falling block and tnt entities at the specified height (2016-03-01)  ++* fc1a61ff6 - Allow for toggling of spawn chunks (2016-03-03)  ++* 95d7eddd7 - Add configurable despawn distances for living entities (2016-03-01)  ++* febbcc7df - Allow nerfed mobs to jump and take water damage (2016-03-01)  ++* 34bbecef9 - Configurable fishing time ranges (2016-03-01)  ++* d78266d7e - Configurable baby zombie movement speed (2016-03-01)  ++* 135e1ae90 - Configurable cactus bamboo and reed growth heights (2016-03-01)  ++* 6fdbc2988 - Adventure (2021-01-29)  ++* 6a1511417 - Timings v2 (2016-03-03)  ++* 239dd0192 - Store counts for each Entity/Block Entity Type (2018-07-04)  ++* 90dc7f6e3 - Store reference to current Chunk for Entity and Block Entities (2018-07-04)  ++* a6d1e7682 - Add MinecraftKey Information to Objects (2018-07-04)  ++* 0bed8c4cc - Paper Metrics (2017-03-24)  ++* ca97b135a - MC Utils (2016-03-28)  ++* 718895d68 - MC Dev fixes (2016-03-30)  ++* 140889b3b - Paper config files (2016-02-29)  ++* 12156c165 - POM Changes (2016-02-29)  ++* eb38e916e - (upstream/upstream, upstream/master, origin/upstream, origin/master, origin/HEAD) mc-dev Imports (2021-03-16)  ++* a14887ede - Allow Disabling Player Data Saving (2020-11-07)  ++* f3d5f0d18 - Add log-villager-deaths option (2019-12-14)  ++* 69c632846 - Allow Reading Old Large Chunks (2019-02-19)  ++* 94b30ac23 - Remove DataWatcher Locking (2019-07-09)  ++* 62b97a3a7 - Add creative mode NBT permissions (2019-02-25)  ++* a30d12923 - Allow changing minimum squid spawn range (2018-01-11)  ++* 36ec5d835 - Configurable Advancement Disabling (2017-06-09)  ++* 28cfd3b32 - Replace chunk loading / unloading rate throttling. (2017-01-26)  ++* 80125e62e - Branchless NibbleArray (2016-07-30)  ++* 8bea1b39e - Implement SpawnerSpawnEvent. (2016-03-03)  ++* f5b55219e - Clear Packet Queue on Disconnect (2015-07-22)  ++* 9eaa5a2d8 - Use Map for getPlayer(String) lookup. (2015-07-13)  ++* b7cf44933 - Use Standard List for EntitySlices. (2015-02-20)  ++* 68a1e536e - Allow Capping (Tile)Entity Tick Time. (2015-02-20)  ++* e3572f162 - BungeeCord Chat API (2014-12-13)  ++* 10973cc13 - Configurable Hanging Tick (2014-08-09)  ++* 10290957c - Limit TNT Detonations per tick (2014-08-20)  ++* a3d80298e - Make debug logging togglable. (2014-08-17)  ++* 796f870a2 - Add Hunger Config Values (2014-08-17)  ++* 8fe942516 - Remove uneeded validation (2014-08-15)  ++* b497980d3 - Plug WorldMap Memory Leak (2014-08-08)  ++* 8b0fa46eb - Only fetch an online UUID in online mode (2014-07-30)  ++* 287122f25 - Allow Attribute Capping. (2014-07-28)  ++* 96926b914 - Apply NBTReadLimiter to more things. (2014-07-27)  ++* 785787eef - Make "moved too quickly" limit configurable (2014-07-22)  ++* a7a1dd80d - Make "moved wrongly" limit configurable (2014-07-04)  ++* c9c976321 - Prevent a crash involving attributes (2014-07-19)  ++* 66e7821bf - Add CommandLine EULA Flag (2014-07-09)  ++* 4734c6e37 - Safer JSON Loading (2014-07-08)  ++* 685053c1f - Further Seed Customisation (2014-07-04)  ++* 4b957d526 - Better item validation (2014-07-02)  ++* 2c5d8ecb7 - Limit block placement/interaction packets (2014-06-29)  ++* b02b5c4f5 - Configurable save-on-stop-only for UserCache (2014-05-23)  ++* c128d0211 - Implement PlayerSpawnLocationEvent. (2014-04-08)  ++* f9f0b5c9c - Configurable UserCache cap (2014-04-25)  ++* 79695744b - Fix race condition that could kill connections before they were initiated (2014-04-25)  ++* 5aee5603b - Prevent NoClassDefError crash and notify on crash (2014-04-21)  ++* d3741d4cf - Convert player skulls async (2014-04-20)  ++* d4273b136 - Log null TileEntity Owner (2014-04-20)  ++* b7d9e38e8 - Correct Ban Expiration (2014-04-16)  ++* 52d575ce1 - Fix Player Banning (2014-04-15)  ++* a79f9ab9e - Use Provided Case for Non Existent Offline Players (2014-04-14)  ++* b7c4bd004 - Use Offline Player Data Once if Required. (2014-04-13)  ++* d34694b8f - Print Stack on InternalException (2014-04-13)  ++* c04da313c - Treat Bungee as Online Mode (2014-04-12)  ++* 536f86f75 - Display 'Spigot' in client crashes, server lists and Mojang stats (2014-04-11)  ++* 9caf9a0e0 - Configurable dragon death and wither spawn sounds (2014-03-29)  ++* b32200319 - Prevent hoppers from loading chunks (2014-03-05)  ++* b32e698d9 - Use one PermissibleBase for all Command Blocks (2014-03-02)  ++* eefd041ac - Implement Silenceable Lightning API (2014-02-23)  ++* 4e695146f - Allow vanilla commands to be the main version of a command (2014-02-12)  ++* aabae601f - Add support for fetching hidden players (2014-02-09)  ++* 87b286f78 - Add Option to Silence CommandBlock Console (2014-02-09)  ++* e4d4906c9 - Spam Filter Exclusions (2014-02-08)  ++* 2d7559e39 - Add Optional Tick Shuffling (2014-01-27)  ++* 3991f37c2 - Configurable Ping Sample Size (2014-01-26)  ++* 3f7b30693 - Highly Optimized Tick Loop (2017-01-26)  ++* 01467a6ed - Allow toggling of ZombiePigmen spawning in portal blocks (2014-01-20)  ++* 5cf544dac - Catch stalling on corrupted map data / NBT arrays. (2014-01-20)  ++* b66683ded - Try and Debug Crash Reports Crashing (2014-01-12)  ++* b6237d24f - Allow statistics to be disabled/forced (2014-01-07)  ++* 398f7b378 - Disable Connected Check on setScoreboard (2013-12-23)  ++* 0f6768501 - Add Option to Nerf Mobs from Spawners (2014-02-02)  ++* 935a69c77 - Save ticks lived to nbttag (2013-07-09)  ++* de009f4be - Log Cause of Unexpected Exceptions (2013-12-18)  ++* b1f02bb0d - Configurable Amount of Netty Threads (2013-12-13)  ++* 002980820 - Allow Disabling Zombie Villager Aggression (2013-12-12)  ++* 39df1d468 - BungeeCord Support (2013-12-01)  ++* 3807efab3 - Fire PreLogin Events in Offline Mode (2013-12-18)  ++* 26a872eb2 - Fix Broken Async Chat (2013-12-05)  ++* 09789cfcc - Watchdog Thread. (2014-08-05)  ++* 61ab5a9c5 - Arrow Despawn Rate (2013-10-14)  ++* 3e74544a9 - Implement respawn API. (2013-10-08)  ++* 968c8c131 - Don't Special Case X Move Value (2013-10-06)  ++* b6ae90bfd - Fully Disable Snooper When Not Required (2013-08-03)  ++* cc3cbd541 - Player Collision API (2016-03-27)  ++* 22f5acdff - Prevent Ghost Players Caused by Plugins (2013-06-11)  ++* d5c63f729 - Entity Mount and Dismount Events (2016-02-27)  ++* ec852fb6b - Disallow Interaction With Self (2013-06-28)  ++* d02c2d128 - Properly Close Inventories (2013-06-27)  ++* 258e8d2fc - Configurable Messages (2013-06-21)  ++* 16ed02923 - Allow Disabling of Command TabComplete (2013-06-21)  ++* fe12c3ef4 - Allow Disabling of Command Logging (2013-06-21)  ++* 619d93b67 - Hopper Customisations (2013-09-08)  ++* fbc0baa61 - Remove -o Option (2013-05-19)  ++* 0933a5a49 - Entity Tracking Ranges (2013-02-20)  ++* a68129d77 - Metrics (2013-02-23)  ++* 4bf3a4acb - Entity Activation Range (2013-02-03)  ++* 24b4400ba - Item Despawn Rate (2013-09-22)  ++* e6ac385f0 - Handle Null Tile Entities (2013-02-03)  ++* b362b0b35 - Fix Mob Spawning Relative to View Distance (2013-06-21)  ++* 3de1df9c2 - Spigot Timings (2013-01-10)  ++* b90c78976 - View Distance (2013-03-23)  ++* 9d33e5018 - Async Operation Catching (2014-03-25)  ++* c7f001bc9 - Merge tweaks and configuration (2013-03-23)  ++* f34232371 - Crop Growth Rates (2016-03-07)  ++* 168f2c5c5 - Spigot Configuration (2013-07-07)  ++* 73a05fe01 - mc-dev imports (2013-12-01)  ++* 70c2792a1 - Skeleton API Implementations (2013-06-02)  ++* ca111195c - POM Changes (2013-07-02)  ++* bacc347f5 - CraftBukkit $ Tue 16 Mar 09:37:35 CET 2021 (2021-03-16)  ++* f9849abab - Minecraft $ Tue 16 Mar 09:37:32 CET 2021 (2021-03-16)  ++* 90d6905b1 - Repackage NMS (2021-03-16)  ++* 69cf961d8 - Repackage patches (2021-03-16)  ++* 2ffdb31ec - Use upstream plexus-compiler-eclipse (2021-03-15)  ++* ee5006d18 - #810: Add option for a consumer before spawning an item (2021-03-09)  ++* f6a39d3cc - #809: Add spawn and transform reasons for piglin zombification. (2021-03-09)  ++* 0c24068ad - Organise imports (2021-03-09)  ++* a021e334a - #795: Add methods to modify the rate of regeneration and starvation (2021-03-04)  ++* 509e523c5 - #792: Add EntityExhaustionEvent (2021-03-04)  ++* ea050e6e9 - #807: Add Player#sendBlockDamage() (2021-02-24)  ++* b7eed2546 - SPIGOT-6307: Allow chest locks with legacy color codes to match against items with json colors (2021-02-21)  ++* 0cd8f19fb - #802: Add methods to modify despawn delay for wandering villagers (2021-02-15)  ++* d5c5d998a - SPIGOT-6362: ConcurrentModificationException: null --> Server Crash (2021-02-14)  ++* 8c7d69fef - SPIGOT-5228: Entities that are removed during chunk unloads are not properly removed from the chunk. (2021-02-14)  ++* d97d91871 - SPIGOT-6347: Nether Portals Default to Nether, even in Nether (2021-02-13)  ++* 8aa6a953f - SPIGOT-5778: Added World.getGameTime method (2021-02-13)  ++* a82b21297 - BUILDTOOLS-569: development maven profile fails build on windows (2021-02-08)  ++* b9b0c4e4a - EntityDropItemEvent for cats should continue to next stack if cancelled (2021-02-07)  ++* e5cb519d6 - #793: Don't unnecessarily toString block in CraftBlockEntityState constructor (2021-02-06)  ++* c631fe557 - #797: The copy constructor of CraftMetaTropicalFishBucket did not copy its entityTag field (2021-02-06)  ++* ed4d4cd65 - SPIGOT-6342: TROPICAL_FISH_BUCKET isSimilar returns true when it should not (2021-02-06)  ++* 085fe67aa - SPIGOT-6208: Throwing ender pearl into end portal causes NPE (2021-01-31)  ++* aeb95e3a3 - Add more checkstyle checks (2021-01-31)  ++* 804914622 - Re-add missing StriderTemperatureChangeEvent (2021-01-29)  ++* 058b4df95 - SPIGOT-6316: PlayerBedLeaveEvent implements Cancellable (2021-01-29)  ++* 08de4679f - #789: Call EntityDropItemEvent when a wither rose is dropped (2021-01-29)  ++* c3e684ef7 - SPIGOT-3789: Can't Remove Entity Equipment in Same Tick Spawned without using Consumer (2021-01-27)  ++* 0bad58f1e - #783: Expand the FishHook API (2021-01-23)  ++* 3636fb515 - SPIGOT-6318: Fix smoke effect directions (2021-01-23)  ++* b5eb2f57c - SPIGOT-6315: Cats gifts dont call EntityDropItemEvent (2021-01-21)  ++* f3f30947e - Update to Minecraft 1.16.5 (2021-01-16)  ++* 7a6c3c9aa - Remove outdated build delay. (2021-01-15)  ++* 7029c0a8f - SPIGOT-6311: Don't calculate portal shapes for up/down directions (2021-01-08)  ++* ff2b9440f - SPIGOT-6304: Removed the detection of legacy text based on color codes (2021-01-03)  ++* 24c79a144 - SPIGOT-6303: Interpret text that Gson considers to be an empty JSON document as legacy text. (2021-01-02)  ++* f1187a24c - #778: Added get/set ItemStack methods to trident (2021-01-02)  ++* fa6d549d9 - Update SQLite for Mac M1 support (2021-01-02)  ++* 560b65c4f - #707, SPIGOT-5063, SPIGOT-5304, SPIGOT-5656, SPIGOT-3206, SPIGOT-5350, SPIGOT-5980, SPIGOT-4672: Persist the exact internal text representation where possible. (2021-01-01)  ++* b5e5adc42 - SPIGOT-6296: Server crashes when burning something at y-level 0 (2020-12-29)  ++* 72c5e7477 - SPIGOT-6273: Expose ItemFrame ItemDropChance through API (2020-12-28)  ++* 9f2b92e58 - SPIGOT-6292: LivingEntity.setNoDamageTicks no longer functions (2020-12-28)  ++* 6917945f0 - SPIGOT-6289: Fix setting entity equipment (2020-12-23)  ++* 878b43758 - #772: Add API to set equipment silently (2020-12-21)  ++* 22d7fcc98 - SPIGOT-6256: Add method to check if the entity is in water (2020-12-21)  ++* 768d7fc2d - #773: Add method to get max world size (2020-12-13)  ++* 5b747147e - Increase outdated build delay (2020-12-03)  ++* e1ebdd927 - #771: Add clear weather World API (2020-11-26)  ++* 424598d29 - #752: Add the ability to retrieve hit, step, fall, and other sounds from blocks. (2020-11-26)  ++* 167ff5917 - #770: Send messages without sender with SYSTEM type again (2020-11-19)  ++* 4475707d7 - SPIGOT-6244: /spawnpoint ignores angle (2020-11-18)  ++* 8b3b096d1 - SPIGOT-6242: Fix some file line endings (2020-11-18)  ++* 4b33c7499 - SPIGOT-6186: Canceling a CreatureSpawnEvent​ results in a "Unable to summon entity due to duplicate UUIDs" error (2020-11-17)  ++* 2b3ca7264 - SPIGOT-6236: Vehicle passenger portal cooldown does not change (2020-11-17)  ++* 23618b2cb - SPIGOT-6240: Use correct portal search radius (2020-11-13)  ++* 009f0ba0e - #769: Fix FishHook.maxWaitTime (2020-11-09)  ++* bc6a175ef - #767: Add wait time modification for FishHook (2020-11-06)  ++* 2fc37bcc0 - SPIGOT-6197: Prevent world loading from updating spawn settings of all worlds (2020-11-06)  ++* 3eb7236e4 - SPIGOT-6217: Missed PlayerEditBookEvent when editing books (2020-11-04)  ++* 6fd677caf - SPIGOT-6206: Use correct sender UUID for chat messages (2020-11-03)  ++* a489dd4ac - Revert "Downgrade NMS revision" (2020-11-03)  ++* ce64c84ca - SPIGOT-6205: Rewrite enum to/from NMS type methods (2020-11-03)  ++* dd10b375c - Downgrade NMS revision (2020-11-03)  ++* 3af81c717 - Update to Minecraft 1.16.4 (2020-11-03)  ++* dea413890 - Remove outdated build delay. (2020-10-25)  ++* 9da3b5bff - #762: Add TNTPrimed#setSource method (2020-10-25)  ++* 55a78ffbd - SPIGOT-6193: Allow small fireballs to ignite players when MobGriefing is disabled (2020-10-23)  ++* b8dd5ec21 - Rename Chunk "BukkitValues" key to "ChunkBukkitValues" (2020-10-18)  ++* 9e91bcabf - SPIGOT-6194: Read correct nbt compound into chunk pdc (2020-10-18)  ++* 4ef13f94d - Misc maven build updates (2020-10-17)  ++* 04639f5a2 - #759: Allow sending messages from specific UUIDs (2020-10-17)  ++* 77c894a2a - #672: Add PersistentDataHolder to Chunk (2020-10-17)  ++* 055870c4b - #758: Item - add getters/setters for owner/thrower (2020-10-14)  ++* 29dd68eb9 - #757: PoweredMinecart - add getter/setter for fuel (2020-10-13)  ++* 2a3ca137e - SPIGOT-6175: Fix generating loot tables for entities (2020-10-11)  ++* 1f4693a8c - SPIGOT-6168: Fix error with Player.getBedSpawnLocation when world is unloaded while server running (2020-10-06)  ++* aa8206a85 - SPIGOT-6130: Fix API loot table generation with certain contexts (2020-10-03)  ++* 5c77bd281 - SPIGOT-6147: InventoryCloseEvent does not fire after closing player inventory (2020-10-01)  ++* 5da21f87d - SPIGOT-6152: End exit gates in custom ends do not send back to overworld (2020-09-30)  ++* 1ee373fe2 - SPIGOT-6157: Crash when PortalCreateEvent cancelled (2020-09-29)  ++* a339310c4 - #755: Fix NPE when calling getInventory() for virtual EnderChests (2020-09-27)  ++* 2577f9bfb - Increase outdated build delay (2020-09-25)  ++* 1dabfdc82 - #754: Fix pre-1.16 serialized SkullMeta being broken on 1.16+, losing textures (2020-09-25)  ++* f8d4da08e - #743: LivingEntity - add methods for getting/setting invisibility (2020-09-19)  ++* da9bb3ea9 - #753: RecipeIterator#hasNext will now accurately represent if the current iterator has a next item. (2020-09-18)  ++* 890130b46 - #746: Add Fluid types / tags (2020-09-14)  ++* d5a729600 - SPIGOT-6063: ConsoleSender sending extra lines in Java 13+ (2020-09-12)  ++* 6f55306c4 - SPIGOT-5794: Only skip interact event if position, hand and itemstack are equal (2020-09-12)  ++* bf3d72071 - Update to Minecraft 1.16.3 (2020-09-11)  ++* 0d8350af4 - Remove outdated build delay. (2020-09-11)  ++* b8ee6a89f - SPIGOT-6125: Grass path should only fade when it is invalid at that location (2020-09-08)  ++* a939fbdf0 - SPIGOT-6123: Call EntityDamageEvent when a shulker bullet gets damaged (2020-09-06)  ++* a05df28a7 - SPIGOT-6122: Revert "SPIGOT-5794: Do not skip PlayerInteractEvent" (2020-09-04)  ++* 1d7440332 - #745: Fix getLocation for Cartography Table and Stonecutter (2020-09-03)  ++* 13fc33f73 - #744: Add ability to get location from smithing inventory (2020-09-03)  ++* 39806409e - #697: Add ArrowBodyCountChangeEvent (2020-09-02)  ++* 927200a96 - #718: Add consumed item, hand and consumeItem boolean to EntityShootBowEvent (2020-08-31)  ++* 6008e6660 - SPIGOT-6025: Do not NPE when target world of a compass no longer exists (2020-08-31)  ++* 00bff0270 - SPIGOT-5794: Do not skip PlayerInteractEvent (2020-08-29)  ++* 3f572834a - #740: Fix EntityDamageEvent not being called for non EntityDamageSource for End Crystals (2020-08-28)  ++* 3c7143e7b - SPIGOT-5953, SPIGOT-5914: Use LinkedHashMap to keep captured block states in order (2020-08-28)  ++* 7d31adb5f - #734: Add EnderSignal ItemStack API (2020-08-28)  ++* e14c9acbe - SPIGOT-6113: Ender Pearls thrown into portals that lead to disabled dimensions crash the server (2020-08-28)  ++* 97da39889 - SPIGOT-6114: PlayerRespawnEvent player's location changed before event called (2020-08-28)  ++* 3b5c36769 - SPIGOT-6115: Items being deleted on pick up with full inventory (2020-08-28)  ++* bf451617f - SPIGOT-6109: Improve loot handling (2020-08-27)  ++* bfea45596 - SPIGOT-6111: NPE in CraftHumanEntity#openWorkbench & CraftHumanEntity#openEnchanting (2020-08-27)  ++* ee7116b4c - Add note to CONTRIBUTING.md to suggest keeping commit messages / titles the same (2020-08-27)  ++* eae159435 - #721: Add EntityCategory API to LivingEntity (2020-08-27)  ++* 8c6115604 - #702: Add Block#applyBoneMeal() (2020-08-27)  ++* 8408de02d - #716: Fix barrel open API playing sound twice (2020-08-27)  ++* 74b6982b0 - #711: Add Full RGB support to the console (2020-08-27)  ++* 049120068 - SPIGOT-6101: Store persist state of entities (2020-08-26)  ++* 0de8365dd - SPIGOT-6103: Summoning an Eye of Ender throw an Error (2020-08-26)  ++* 9aafdc9a7 - SPIGOT-6099: PlayerPortalEvent.setTo ignores world for end portal travel (2020-08-26)  ++* bad55dbb5 - SPIGOT-6097: Zoglins not attacking mobs (2020-08-23)  ++* 850e7b140 - SPIGOT-974: Add ArmorStand locking API (2020-08-23)  ++* 7d8884b26 - Also make field volatile (2020-08-22)  ++* 50da2cdec - SPIGOT-6094: Error loading datapack functions (2020-08-22)  ++* 8b52a7666 - SPIGOT-6092: Player#setBedSpawnLocation - NullPointerException (2020-08-22)  ++* fe4efd19f - SPIGOT-6093: Can't change ItemStack in EntityPickupItemEvent (2020-08-21)  ++* eaf0bace2 - Increase outdated build delay (2020-08-20)  ++* 8abed406c - SPIGOT-6086: Twisting vines growing at top of world crashes server (2020-08-20)  ++* 59a0bafa4 - SPIGOT-6091: End platform does not generate (2020-08-20)  ++* 9a9c2234a - SPIGOT-6087: Revert "SPIGOT-6086: Twisting vines growing at top of world crashes server" (2020-08-18)  ++* 2e178b09c - #730: Let World#setSpawnLocation() support an angle (2020-08-18)  ++* fad5fb9e8 - SPIGOT-6086: Twisting vines growing at top of world crashes server (2020-08-18)  ++* 419018f5d - SPIGOT-6075: Snowballs don't destroy Ender Crystals (2020-08-17)  ++* fa917c472 - Don't create custom registry for custom worlds (2020-08-17)  ++* e354566ec - SPIGOT-6076: Crash when updating blocks in uninitialized chunk sections (2020-08-16)  ++* 5a66916c0 - Cleanup sendBlockChange (2020-08-16)  ++* e850144b0 - #726: Add Inventory#isEmpty() (2020-08-16)  ++* 13945b768 - #725: HumanEntity - add a method to make the entity drop the item they're holding (2020-08-16)  ++* 82542d01d - #723: Implement EntitySpellCastEvent for spellcaster illager (2020-08-15)  ++* 1e76d09fa - #724: Re-implement player portal event search radius and creation API (2020-08-14)  ++* f26d8e84c - SPIGOT-4705: Revamp Ageable interface and add Breedable interface (2020-08-13)  ++* 43c7ff9d7 - Fix nether portal ignition (2020-08-12)  ++* 2ee7318ae - SPIGOT-6064: world.getBiome() null Error (2020-08-12)  ++* 9f12e29b7 - Fix crash with composters (2020-08-12)  ++* 22c3a2f9a - Fix crash growing saplings (2020-08-12)  ++* 62761be29 - SPIGOT-6061: NPE in CraftBlockTag.getHandle() (2020-08-12)  ++* 9c9fb593f - Update to Minecraft 1.16.2 (2020-08-12)  ++* 4b9bc9daa - Remove outdated build delay. (2020-08-11)  ++* c3184f875 - SPIGOT-6053: World#setHardcore() cannot be set to false (2020-08-11)  ++* f6227934a - SPIGOT-3020: Fix issue with BlockBreakEvent throwing AssertionError when setting a player's tool to AIR/NULL (2020-08-09)  ++* 8fb65851f - #660: Add support to change block's lid state (2020-07-29)  ++* c3a22e785 - SPIGOT-6032: Add best effort target events for new entities (2020-07-28)  ++* 52fd29c0d - SPIGOT-6033: Bukkit.getUnsafe().getMaterial() won't match renamed block materials (2020-07-28)  ++* 29cce6714 - SPIGOT-6034: World.getWorldFolder() includes the dot in the path (2020-07-28)  ++* 0458f6000 - SPIGOT-6029: RGB Hex colors not respected with custom kick messages (2020-07-27)  ++* 7c03d257d - SPIGOT-6011: End Gateways do not work on Non-Main End Worlds (2020-07-22)  ++* d492e363b - SPIGOT-6015: Small Armor Stand doesn't drop items (2020-07-22)  ++* 5db13eea6 - SPIGOT-5950: Add PrepareSmithingEvent event (2020-07-22)  ++* 8b831a965 - #714: Added getRecipe() method to retrieve a Recipe by it's NamespacedKey (2020-07-22)  ++* 6b95d595c - SPIGOT-6001: Hex colors format differently to traditional colours (2020-07-19)  ++* 2361cb8a8 - Increase outdated build delay to 3 weeks (2020-07-18)  ++* 75a2fb8e0 - SPIGOT-5901: Improve multiworld support (2020-07-17)  ++* b0c6dfe1a - SPIGOT-5976: Bees do not exit naturally spawned hives (2020-07-11)  ++* 93cfb195c - #704: Added explicit API to stop a Jukebox from playing (2020-07-10)  ++* dba91d2ab - SPIGOT-5972: PlayerPortalEvent.setTo() when returning through an End Portal Crashes Server (2020-07-09)  ++* 72f368909 - SPIGOT-5965: BlockRedstoneEvent.setNewCurrent(0) crashes server (2020-07-09)  ++* 60f8a29d1 - SPIGOT-5968: Killer rabbits can't be set to the non-killer rabbit behavior (2020-07-09)  ++* 69fddc725 - #705: Improve implementation of furnace related block states (2020-07-09)  ++* f222b5bd4 - SPIGOT-5969: Update maximum structure block size (2020-07-09)  ++* 2f1810812 - Improve physics code (2020-07-07)  ++* 7a9e4f7ae - SPIGOT-5951: Projectile#getShooter() returns null (2020-07-06)  ++* 0fa2eecff - SPIGOT-5948: EntityDropItemEvent does not fire when piglins drop an item (2020-07-06)  ++* 38a66b656 - Fix crash involving fireballs (2020-07-06)  ++* 430956639 - SPIGOT-5943: Calling get BlockStateMeta#getBlockState causes NPE with shield with banner (2020-07-05)  ++* 567e245ff - Fix end portals in custom ends (2020-07-05)  ++* e58a08876 - SPIGOT-5939: EntityPortalEnterEvent not fired for end portal if end disabled (2020-07-05)  ++* 833047174 - Increase outdated build delay to 7 days (2020-07-05)  ++* 5209a4f73 - SPIGOT-5940: EntityChangeBlockEvent is not called for villager emptying composter (2020-07-05)  ++* b6a876bc3 - SPIGOT-5936: BlockPlaceEvent does not fire for lily_pad (2020-07-04)  ++* 145921e2a - #676: Add PlayerHarvestBlockEvent (2020-07-03)  ++* 47abffa21 - SPIGOT-5929: Angered zombified piglins do not inherit killed_by_player status (2020-07-03)  ++* 7f6b4f587 - SPIGOT-5930: Add PlayerRespawnEvent#isAnchorSpawn (2020-07-03)  ++* 94eff632f - SPIGOT-5867, MC-193339: NPE during shutdown when rcon enabled with no password (2020-07-03)  ++* 068618eb5 - SPIGOT-5927: Some items NBT data disappears (2020-07-03)  ++* dc7c3c61f - SPIGOT-5921: Improve setNoDamageTicks for Players (2020-07-02)  ++* 53849f57f - SPIGOT-5922: Smithing recipes not registering (2020-07-02)  ++* 551e770f5 - SPIGOT-5900: Add test for the order of Material enum entries (2020-07-02)  ++* 8297676c2 - #682: Add hasDiscoveredRecipe() and getDiscoveredRecipes() (2020-07-02)  ++* d9bd43b06 - Change outdated build delay to 3 days (2020-07-02)  ++* 3b9cf0f80 - Improve code formatting (2020-07-01)  ++* 008f039f3 - SPIGOT-5913: MOTD no longer supports new line character (2020-07-01)  ++* b8b65eb74 - SPIGOT-5908: CompassMeta for new lodestone compass data (2020-07-01)  ++* a13b8cfc7 - SPIGOT-5907: Item Frame NBT data disappears (2020-07-01)  ++* 5a6c52983 - SPIGOT-5906: Huge Fungi tree generation (2020-07-01)  ++* fdf6017fa - Fix event for unlucky composts (2020-07-01)  ++* b567cb433 - SPIGOT-5910: loadAdvancement does not work (2020-07-01)  ++* 7560f5f5a - SPIGOT-5905: Fix hex colours not being allowed in MOTD (2020-06-30)  ++* d47c47ee5 - SPIGOT-5889: Villager using composter should call EntityChangeBlockEvent (2020-06-30)  ++* 2fe6b4a32 - SPIGOT-5899: Hoglins API similar to Piglins (2020-06-30)  ++* e09dbecab - SPIGOT-5887: ClickType doesn't include off hand swaps (2020-06-30)  ++* 23aac2a53 - SPIGOT-5903: EntityDismountEvent cannot be triggered asynchronously (2020-06-30)  ++* 92cbf6564 - SPIGOT-5884: Tab completions lost on reloadData / minecraft:reload (2020-06-30)  ++* fb4e54ad7 - SPIGOT-5902: PlayerRespawnEvent places player at spawn before event is called (2020-06-30)  ++* aa8f3d5a4 - SPIGOT-5901: Structures are generated in all worlds based on the setting for the main world (2020-06-30)  ++* a0c35937f - SPIGOT-5895: PlayerChangedWorldEvent#getFrom is incorrect (2020-06-30)  ++* 89c0a5c34 - SPIGOT-5886: Missing BlockData (2020-06-30)  ++* 32acc2621 - #686: Expand Strider and Steerable entity API (2020-06-30)  ++* e2403a3d2 - SPIGOT-5882: NPE when emptying bucket on already waterlogged blocks (2020-06-29)  ++* 44109b726 - SPIGOT-5803: Implement the missing methods for the Piglin API. (2020-06-29)  ++* cf01fd9d7 - #696: Respect the NotNull annotation of getChargedProjectiles in CraftMetaCrossbow (2020-06-29)  ++* 1a3363dbe - SPIGOT-5849: Constantly Raining in World 1.16 (2020-06-29)  ++* d77f4d9bf - SPIGOT-5810, SPIGOT-5835: 'Better' handling of Player.isOnGround (2020-06-28)  ++* 53c956277 - SPIGOT-5865: Piglin does not trigger EntityPickupItemEvent (2020-06-28)  ++* 2ab04d248 - Update ECJ version (2020-06-28)  ++* 7884e0793 - SPIGOT-5868: Blocks do not tick in custom nether / end (2020-06-28)  ++* 2a8482869 - SPIGOT-5863: Don't check colour in scoreboard length validation (2020-06-28)  ++* f2cbce30d - SPIGOT-5866: Beehive unknown TargetReason (2020-06-28)  ++* 983305bb4 - SPIGOT-5856: Soul Campfire BlockState cannot be cast to Campfire (2020-06-27)  ++* d42435101 - SPIGOT-5853: DragonBattle#getEndPortalLocation() throws NPE on new world (2020-06-27)  ++* 1601ec31e - SPIGOT-5845: ChatColor.RESET does not work in ItemMeta to reset italics (2020-06-27)  ++* 4d92db6f0 - CraftChatMessageTest does not need AbstractTestingBase (2020-06-27)  ++* 71045d3dd - SPIGOT-5828: Unlock worlds on unload (2020-06-27)  ++* dbc347b93 - SPIGOT-5841: New map colours broken (2020-06-27)  ++* 14053c708 - SPIGOT-5847: BlockFadeEvent cannot be triggered asynchronously from another thread (2020-06-27)  ++* 4ff609e60 - SPIGOT-5836: PotionEffect HEALTH_BOOST never expires (2020-06-26)  ++* c99846cc7 - Add configuration options for water_ambient spawning (2020-06-26)  ++* baadbf3f7 - SPIGOT-5833: Player#setWalkSpeed not working (2020-06-26)  ++* 709b003fe - Re-add default bukkit datapack (2020-06-26)  ++* d1fb662ec - SPIGOT-5735: Add EntityEnterLoveModeEvent (2020-06-26)  ++* a1d23114f - #687: Add visibility and fixed API for ItemFrames (2020-06-26)  ++* c49b67ac9 - #685: Implement support for PersistentDataContainer arrays (2020-06-26)  ++* b90051303 - #671: Implement PersistentDataContainer#getKeys() (2020-06-26)  ++* 50484a657 - SPIGOT-5820: Fix migration of Vanilla nether / end (2020-06-26)  ++* 174a2ee53 - SPIGOT-5829: RGB hex colours not supported in several places (2020-06-26)  ++* 6b20d04c7 - SPIGOT-5826: Don't store chunk in block states (2020-06-26)  ++* 6abb4398b - SPIGOT-5830: Server crash when campfire lit via dispenser. (2020-06-25)  ++* 4b67fed7f - Better handling of custom end/nether teleports (2020-06-26)  ++* 2b5f172cb - SPIGOT-5816: PlayerTeleportEvent not called when using netherportals and allow-nether=false (2020-06-26)  ++* 9233a7fb0 - SPIGOT-5827: Player.getLocale always returns en_us (2020-06-26)  ++* 72c080cca - SPIGOT-5812: ProjectileHitEvent fires twice if projectile is an Egg (2020-06-26)  ++* 614fbae9d - Shorten build expiry to 1 day (2020-06-26)  ++* 3f0c33387 - SPIGOT-5809: block.getState() wall signs too (2020-06-25)  ++* 68b98b3d2 - Fix 1.16 binary mappings not applying to modern plugins (2020-06-25)  ++* f7ff58c6c - SPIGOT-5803: Add Piglin/Zoglin Baby API (2020-06-25)  ++* b5db08bea - SPIGOT-5809: block.getState() instanceof Sign for crimson_sign missed (2020-06-25)  ++* 9a3bd97f6 - SPIGOT-5809: block.getState() instanceof Sign for warped_sign missed (2020-06-25)  ++* 8dc1da156 - Misc bugfixes to multiworld support (2020-06-25)  ++* ca19c2f48 - SPIGOT-5806: Block#getDrops(ItemStack tool) does not work as it should (2020-06-25)  ++* 38de0b81e - SPIGOT-5805: NPE when getting an Attribute from a Player (2020-06-25)  ++* b136f8430 - SPIGOT-5804: Cannot launch Entity Firework (2020-06-25)  ++* 76d2add0b - SPIGOT-5802: Add SmithingRecipe API (2020-06-25)  ++* ab3875418 - SPIGOT-5801: End gateways crash server upon enderpearl use through them (2020-06-25)  ++* 2b00831c9 - SPIGOT-2106, SPIGOT-3942: Improve collidable API (2020-06-25)  ++* 847ad16ee - SPIGOT-5562: Entering a boat triggers VehicleExitEvent (2020-06-25)  ++* 7ea3c040b - Update to Minecraft 1.16.1 (2020-06-25)  ++* be6aaf046 - SPIGOT-5782: Set Arrow Launched From Crossbow (2020-06-24)  ++* 833da9c47 - SPIGOT-5799: InventoryCloseEvent fires after PlayerQuitEvent (2020-06-24)  ++* 26c0084f0 - SPIGOT-5675, SPIGOT-5798, MC-149563: Fix tracking of entities across dimensions (2020-06-24)  ++* 7f3e7c3fb - SPIGOT-5797: Zombie(Villagers) Instant Convert based on their lifetime (2020-06-24)  ++* 8ea9b1386 - Remove outdated build delay. (2020-06-20)  ++* ffc2b251a - Revert "#675: Fix redirected CommandNodes sometimes not being properly redirected" (2020-06-18)  ++* cb701f6b6 - #675: Fix redirected CommandNodes sometimes not being properly redirected (2020-06-17)  ++* c9d7c16b5 - SPIGOT-2623: Add EntityEquipment methods to get/set ItemStacks by slot. (2020-06-13)  ++* fad2494af - #673: Fix Craftworld#isChunkLoaded (2020-06-06)  ++* 8637ec008 - SPIGOT-5751: Made breakNaturally and getDrops returns the correct item if no argument is given (2020-06-03)  ++* 1b2830a3b - SPIGOT-4441: Fix serializing Components to and from Legacy (2020-06-01)  ++* aae46f82e - #665: Add test for Material#getCraftingRemainingItem() (2020-05-28)  ++* cfeef75cd - SPIGOT-5749: ItemMeta serializing to YAML not saving black colour code (2020-05-26)  ++* eb1b19d97 - SPIGOT-5748: Add instant effect potion break to the Effect enum (2020-05-26)  ++* d07a78b1f - SPIGOT-5716: Clarify documentation of MultipleFacing (2020-05-09)  ++* 46a138606 - SPIGOT-5718: Block.BreakBlockNaturally does not reflect tool used (2020-05-09)  ++* 214ffea95 - SPIGOT-5727: GameRule doImmediateRespawn cannot be set per-world (2020-05-09)  ++* 933e9094b - #664: Add methods to get/set ItemStacks in EquipmentSlots (2020-05-05)  ++* 187223123 - #662: Expose ItemStack and hand used in PlayerShearEntityEvent (2020-05-02)  ++* 77fd87e4d - SPIGOT-2304: Implement LootGenerateEvent (2020-04-30)  ++* a1a705ee9 - SPIGOT-5566: Doused campfires & fires should call EntityChangeBlockEvent (2020-04-29)  ++* 41712edde - SPIGOT-5707: PersistentDataHolder not Persistent on API dropped Item (2020-04-29)  ++* 893ad93b3 - #650: Add method to get player's attack cooldown (2020-04-23)  ++* ef706b064 - #655: Added support for the VM tag jansi.passthrough when processing messages sent to a ColouredConsoleSender. (2020-04-23)  ++* e0cfb3474 - SPIGOT-5689: Fireball.setDirection increases velocity too much (2020-04-23)  ++* 94cb030fb - SPIGOT-5673: swingHand API does not show to self (2020-04-22)  ++* b331a0550 - SPIGOT-5680: isChunkGenerated creates empty region files (2020-04-22)  ++* e1335932a - Improve build process (2020-04-22)  ++* a8ec1d60f - Add a couple of method null checks to CraftWorld (2020-04-17)  ++* ce66f6937 - Misc checkstyle fixes (2020-04-14)  ++* 8bd0e9ab0 - SPIGOT-5669: Fix Beehive.isSedated (2020-04-13)  ++* 183139d41 - SPIGOT-5665: Improve loading spawn egg NBT (2020-04-10)  ++* dec5df263 - SPIGOT-5667: Can't add recipe without (vanilla) datapack (2020-04-10)  ++* f7d6ad53e - SPIGOT-5603: Use LootContext#lootingModifier in CraftLootTable (2020-04-08)  ++* 5838285d6 - SPIGOT-5657: BlockPlaceEvent not cancelling for tripwire hooks (2020-04-05)  ++* f325b9bea - SPIGOT-5641: Add Block.getDrops(ItemStack, Entity) (2020-04-05)  ++* e25a2272f - Fix some formatting in CraftHumanEntity (2020-04-05)  ++* 498540e08 - Add Merchant slot delegate (2020-04-05)  ++* b2de47d58 - SPIGOT-5621: Add missing container types for opening InventoryView (2020-04-05)  ++* aa3a2f276 - #645: Allow statistics to be accessed for offline players (2020-04-05)  ++* 2122c0b12 - #649: CraftBell should implement Bell (2020-04-04)  ++* bbe3d58ef - SPIGOT-5650: Lectern.setPage(int) causes a NullPointerException (2020-04-01)  ++* 3075579f6 - Add FaceAttachable interface to handle Grindstone facing in common with Switches (2020-04-01)  ++* 95bd4238f - SPIGOT-5647: ZombieVillager entity should have getVillagerType() (2020-03-30)  ++* 4d975ac3b - SPIGOT-5617: setBlockData does not work when NotPlayEvent is called by redstone current (2020-03-29)  ++* fc318cc10 - #642: Add a DragonBattle API to manipulate respawn phases etc (2020-03-24)  ++* 796eb15a5 - #644: Fix ChunkMapDistance#removeAllTicketsFor not propagating ticket level updates (2020-03-22)  ++* a6f809378 - SPIGOT-5606: call BlockRedstoneEvent for fence gates (2020-03-15)  ++* fc2493409 - SPIGOT-5484: Add more spawn tick settings (2020-03-07)  ++* 7f61a2526 - #640: Fix chunk load/unload callbacks for chunk load cancellations (2020-03-02)  ++* 13ed05dec - Prepare for Java 14 (2020-03-02)  ++* 6b00b1453 - #639: Deep clone itemmetas persistent container on clone (2020-03-01)  ++* 3d61a853e - Fix formatting in CraftLivingEntity (2020-02-23)  ++* f7ab30557 - #633: Add LivingEntity#attack, LivingEntity#swingMainHand, LivingEntity#swingOffHand (2020-02-19)  ++* d5ef2eab9 - SPIGOT-5591: Allow concurrent potion effects (2020-02-23)  ++* 25a9a9ff6 - SPIGOT-5592: Custom ChunkGenerator can cause bugged dirt (2020-02-23)  ++* 3f6d0de98 - Make it clear in error messages that api-version above 1.13 is also supported (2020-02-23)  ++* fba9f4876 - Improve legacy conversion of some materials that changed post flattening (2020-02-21)  ++* b1ba87491 - Move Bukkit.Aware loading/saving to correct location (2020-02-21)  ++* f7cdb53c0 - SPIGOT-5311: Add API to get/set item associated with throwable projectiles (2020-02-21)  ++* 689f429c5 - #634: Cross platform patch scripts (2020-02-19)  ++* ab85433d7 - Add set/isAware to disable Vanilla AI components of a Mob (2020-02-19)  ++* 918061b75 - SPIGOT-5468: Beehive TileEntity was not loaded for BlockStateMeta (2020-02-17)  ++* 37f32da8f - SPIGOT-5573, SPIGOT-5574: Move CustomChunkGenerator generation code back to buildBase() (2020-02-12)  ++* d171d7eb8 - SPIGOT-5572: Fix console/API completion of Vanilla commands (2020-02-11)  ++* 880190573 - SPIGOT-5571: Beehive MaxEntities cannot be set back to 3 (2020-02-09)  ++* 708be6953 - SPIGOT-5468: Improve Beehive TileEntity API (2020-02-09)  ++* 2d151f4c3 - #624: Add an API for passing the heightmap to getHighestBlockAt* method (2020-02-09)  ++* c98538940 - MC-135989, SPIGOT-5564: Don't kick players for flight while riptiding (2020-02-07)  ++* 807a677e9 - SPIGOT-5558: Fix World#getHighestBlockAt, previously off by +1 (2020-02-03)  ++* d70084e53 - Remove unused seed in CustomChunkGenerator (2020-02-02)  ++* 8a66d4c7a - #619: Allow delegation of certain elements to Vanilla when using a custom ChunkGenerator (2020-02-02)  ++* c2dc19d38 - Craftbukkit -> CraftBukkit (2020-02-02)  ++* ae45e0922 - SPIGOT-5559: Add EntityPotionEffectEvent causes for bee, raiders and wither rose (2020-02-02)  ++* 009803764 - #618: Add method to remove a recipe by its key (2020-02-02)  ++* e82b5477a - SPIGOT-5556: Some biome methods use incorrect positions (2020-02-01)  ++* 544ccdc58 - Update checkstyle (2020-02-01)  ++* 512ff7a52 - Print legacy load reason in debug mode (2020-01-31)  ++* df371c1b6 - SPIGOT-5554: Clear error message when BossBar is used for not fully joined players (2020-01-31)  ++* 18168500e - Update scriptus (2020-01-29)  ++* 6bbb4e734 - Clean up CraftBlockData.toString (2020-01-29)  ++* b1e96bd5c - SPIGOT-5551: BlockState.setData fails when used by legacy plugin (2020-01-29)  ++* ab13a117a - SPIGOT-5550: Cancelled ProjectileLaunchEvent still plays sound for eggs (2020-01-28)  ++* 44016b1df - SPIGOT-5538: Using javaw to run GUI prints input error (2020-01-28)  ++* e653ae766 - SPIGOT-5526: Call EntityEnterBlockEvent for bees trying to enter hives (2020-01-22)  ++* 6515ea495 - SPIGOT-5537: Bee nests generated by growing trees near flower have no bees (2020-01-28)  ++* d82b31494 - Remove unused CraftWorld.getId method (2020-01-27)  ++* 10763a88b - Change some block == AIR checks to isAir to catch CAVE_AIR (2020-01-27)  ++* e911c70f8 - SPIGOT-5542: Cancelling EntityToggleGlideEvent doesn't stop client from gliding (2020-01-25)  ++* 596b0b2d0 - SPIGOT-5514: VehicleEntityCollisionEvent triggered by passengers (2020-01-24)  ++* a0e88fb36 - SPIGOT-5536: Material.values() causes legacy data init (2020-01-23)  ++* a81f6ed39 - SPIGOT-5532: Material.values() yields an exception (2020-01-22)  ++* efd6cf55f - Only load legacy support data if something uses it (2020-01-22)  ++* 29737ccbd - SPIGOT-5531: Fix --universe option (2020-01-22)  ++* 8160e299d - Strip ANSI colours from ServerGUI (2020-01-22)  ++* dad61762f - Fix log messages being split across GUI and terminal (2020-01-22)  ++* 3c9a4a3ba - SPIGOT-5529: BiomeGrid uses incorrect indexing (2020-01-22)  ++* 6881a1080 - Update to Minecraft 1.15.2 (2020-01-22)  ++* 5c6b0dc6e - SPIGOT-5526: Call EntityChangeBlockEvent for bees triggering crop growth (2020-01-21)  ++* b91ce1192 - #601: Implement Player#sendExperienceChange (2019-12-23)  ++* 661bebc64 - Remove outdated build delay. (2020-01-19)  ++* 752cf95e3 - SPIGOT-5510: VehicleBlockCollisionEvent returns the wrong block (2020-01-15)  ++* ec4b2b5ef - SPIGOT-5516: Correct EnchantmentTarget values (2020-01-15)  ++* 01334e7dc - #616: Fix exception on entity portal teleport attempt (2020-01-14)  ++* e8cb2f513 - SPIGOT-5252: Nether portal fixes and additions (2020-01-12)  ++* fde78ef39 - SPIGOT-5477: Server not shutting down (2020-01-12)  ++* d208733e7 - SPIGOT-5509: Sleeping player does not eject bed when teleported (2020-01-11)  ++* 99cf10e4c - SPIGOT-5504: cancelling InventoryMoveItemEvent on composter doesn't properly cancel (2020-01-10)  ++* 108b44ca2 - SPIGOT-5506: CustomChunkGenerator is processing Phantoms in the Nether and The End (2020-01-10)  ++* b98e2defc - SPIGOT-5502: Fix command block successcount being set to return value rather than actual count (2020-01-06)  ++* 2fd796458 - SPIGOT-5500: Lectern cannot be replaced using /setblock and other commands (2020-01-06)  ++* c727dc2a8 - Fix checkstyle.xml formatting (2020-01-05)  ++* e7202cd44 - SPIGOT-5496: API to create and manipulate hardcore worlds (2020-01-04)  ++* 9820cd2db - MC-151364, SPIGOT-5494: Feeding dolphin hangs if generate-structures=false (2020-01-03)  ++* 731e819c9 - SPIGOT-5486: Raider CanJoinRaid (2019-12-29)  ++* 4e4a9b200 - SPIGOT-5487: Increase outdated build delay (2019-12-29)  ++* 83af86dba - SPIGOT-5457: Downgrade 'Mismatch in destroy block pos' message to debug (2019-12-25)  ++* d641927fc - SPIGOT-5481: PlayerBedLeaveEvent returns wrong bed location (2019-12-25)  ++* edcb0a4b6 - SPIGOT-5482: Structure Block setUsageMode encounters NullpointerException (2019-12-25)  ++* 82322fe06 - SPIGOT-5426: isSimilar for player heads fails (2019-12-25)  ++* 4b34472ee - SPIGOT-5478: XP not dropping when a player dies (2019-12-24)  ++* 297ff4000 - SPIGOT-5467: Don't play sound or increase honey level if bee leaving hive is cancelled (2019-12-23)  ++* 7d677e7b1 - SPIGOT-5476: Fix trading empty items (2019-12-24)  ++* 8073dbec7 - SPIGOT-5474: Just ignore bugged fireball data (2019-12-23)  ++* 817116de0 - SPIGOT-5413: Add TrustedPlayer API for foxes (2019-12-23)  ++* 062680a82 - SPIGOT-5467: Calm down bees that cannot exit hive (2019-12-23)  ++* 75fac431c - SPIGOT-5472: Spurious warning when using clone command on tile entities (2019-12-23)  ++* 85106731b - SPIGOT-5471: Allow empty title/author for books (2019-12-22)  ++* 2d9db47fb - Add TimeSkipEvent (2019-12-20)  ++* 384225c28 - Add thread name to TerminalConsoleWriterThread (2019-12-21)  ++* 90ef74efb - SPIGOT-794: Add boats to EntityPlaceEvent (2019-12-19)  ++* fb7abcb37 - SPIGOT-5466: Bees still get angry even if damage event cancelled (2019-12-19)  ++* 4499fec56 - SPIGOT-5464: Add BEEHIVE SpawnReason for when a bee leaves a beehive (2019-12-18)  ++* d31f05fbc - SPIGOT-5462: Cancelling EntitySpawnEvent takes Ender Eye from inventory (2019-12-18)  ++* 30a1b6911 - Update to Minecraft 1.15.1 (2019-12-18)  ++* e2790ae2e - Remove outdated build delay. (2019-12-18)  ++* e631456c7 - SPIGOT-5458: Riptide tridents don't lose durability (2019-12-17)  ++* e43416a34 - SPIGOT-5455: Mobs do not ignite due to sun in extra worlds (2019-12-15)  ++* 61d4b0902 - SPIGOT-5428: Better handling of some ItemMeta (2019-12-14)  ++* 16dc5758a - SPIGOT-5449: Fix issue with projectiles (2019-12-13)  ++* fd25653f1 - SPIGOT-5448: Shulker Boxes collapse empty slots when picked up (2019-12-13)  ++* b97d581af - SPIGOT-5443: BEE_NEST BlockState (2019-12-11)  ++* 73698cf88 - SPIGOT-5442: Fix issue with fire charges (2019-12-12)  ++* beff9fb9d - SPIGOT-5437: Fix CustomChunkGenerator.CustomBiomeGrid ignoring the y value for biomes (2019-12-11)  ++* f777640e4 - SPIGOT-5425: Prevent empty/air loot (again?) (2019-12-11)  ++* db0dafb17 - SPIGOT-5422: Add support for 3-dimensional biomes (2019-12-11)  ++* 4633e6c5c - Fix crash with disabled worlds (2019-12-11)  ++* de42aa13f - Update to Minecraft 1.15 (2019-12-11)  ++* 656701746 - SPIGOT-5417: Campfire should implement Directional (2019-12-09)  ++* eeae942e4 - SPIGOT-5416: Block.getDrops gives drops even when tool should not give drops (2019-12-08)  ++* 43183eabc - SPIGOT-5399: spawn-npcs ignored during world generation (2019-12-05)  ++* e9bb2f15a - SPIGOT-5403: isSimilar returns true for different skulls (2019-12-05)  ++* 5c9e72369 - SPIGOT-5409: Remove unnecessary defaulting in CraftMetaBookSigned (2019-12-05)  ++* 821238b64 - SPIGOT-5412: Use SpawnReason.NATURAL for wandering traders and trader llamas (2019-12-04)  ++* eafd74240 - SPIGOT-5405: Use correct damage source for HangingBreakByEntityEvent (2019-11-28)  ++* ccd47a503 - SPIGOT-5395: Call BlockFadeEvent for Scaffolding (2019-11-14)  ++* 56118c676 - Increase outdated build delay to 4 weeks (2019-11-08)  ++* 7554e08e4 - Add UUID support to CraftProfileBanList (2019-10-19)  ++* 3fe374601 - SPIGOT-5378: Fix TileEntity fixer deadlock (2019-10-20)  ++* 12386dd44 - SPIGOT-5375: Add spaces to coordinates from tile fixer (2019-10-20)  ++* 606c19e26 - SPIGOT-5373: Simultaneous left+right click in creative mode does not work (2019-10-19)  ++* 13caf8485 - SPIGOT-5370: Fix Block#rayTrace considering other blocks. (2019-10-18)  ++* e2dd6555e - SPIGOT-5372: Re-add tile entity fixer due to MC-163945 (2019-10-18)  ++* 1e7a197f7 - Fix incorrect inequality in 683bae0670c (2019-10-17)  ++* db98d54df - SPIGOT-5362: Suspicious stews fail isSimilar check (2019-10-14)  ++* d6b3eddf6 - SPIGOT-5355: Double Chests still open after InventoryOpenEvent cancelled (2019-10-09)  ++* 7deb3728e - SPIGOT-5309: Call cancelled EntityDamageEvent when damaging invisible armor stands (2019-10-05)  ++* 46351e178 - SPIGOT-5341: Add Material.isAir (2019-10-06)  ++* 683bae067 - SPIGOT-5342: Lore lost when deserializing items with no version stored (2019-10-06)  ++* c2d120111 - SPIGOT-5353: Expand explosion API by adding source entity (2019-10-05)  ++* a3fdef8c3 - SPIGOT-5331: Add support for Java 13 (2019-09-18)  ++* 6ddeb980c - SPIGOT-5317: Create accessors for player absorption hearts (2019-09-13)  ++* 5d335e968 - SPIGOT-5315: Cannot serialize armor stand ItemMeta (2019-09-11)  ++* 03b145b30 - SPIGOT-5158: Add SuspiciousStewMeta (2019-09-08)  ++* 9aa743049 - SPIGOT-5310: Add Chunk.contains (2019-09-08)  ++* 7ef2b20d0 - SPIGOT-3308: RecipeIterator cannot longer remove recipes (2019-09-07)  ++* 023f438cc - Add API to get/set inhabited time of a Chunk (2019-09-07)  ++* b79a86ede - SPIGOT-5250: Add ChunkSnapshot.contains (2019-09-07)  ++* aa492e552 - SPIGOT-5255: Raid / patrol spawn reasons (2019-09-07)  ++* 763e56013 - SPIGOT-5294: Cancelled EntityPickupItemEvent and PlayerPickupItemEvent alter on-ground stacks (2019-09-02)  ++* 403ac1857 - SPIGOT-5301: BlockIgniteEvent for campfire + arrow (2019-09-02)  ++* 96bc85f0b - SPIGOT-5298: Remove unexplained 0.1 drop chance offset (2019-08-31)  ++* 6ed8a1896 - SPIGOT-5290: Invulnerable and/or Marker armor stand triggers EntityDamageEvent (2019-08-28)  ++* 631eaeb09 - SPIGOT-5297: PlayerBedLeaveEvent.getBed() returns player location (2019-08-30)  ++* 8d4bc5418 - SPIGOT-5293: Sponge behaviour differs from Vanilla (2019-08-28)  ++* e91fd75e1 - SPIGOT-5291: Missing event for ravagers trampling crops (2019-08-28)  ++* cbdd71390 - SPIGOT-5211: Add Raid API (2019-08-12)  ++* edd8fdfbe - SPIGOT-5287: Fix rare CME generating new chunks (2019-08-26)  ++* 3fc97f086 - SPIGOT-5265: FireworkExplodeEvent only fired when rockets explode in air (2019-08-26)  ++* b2bcde89d - SPIGOT-5258: TNT Not Moving Players in Creative Mode (2019-08-24)  ++* 44d675ad8 - SPIGOT-5263: Chests stay open after InventoryOpenEvent cancelled. (2019-08-24)  ++* 2439178ea - SPIGOT-5278: EntityDrowned memory leak (2019-08-24)  ++* 7055c9311 - SPIGOT-5264: Call event for experience orbs losing their target (2019-08-24)  ++* 491411723 - SPIGOT-5282: Improve bucket event API (2019-08-23)  ++* 6bbb3b04e - SPIGOT-5281: Clearer error messages for ChunkSnapshot misuse (2019-08-23)  ++* 2012f1e04 - SPIGOT-5269: Item attribute modifiers don't persist their order (2019-08-16)  ++* 7a806a3a4 - SPIGOT-5270: Call BlockSpreadEvent when bamboo saplings grow (2019-08-16)  ++* 368f4e994 - Increase outdated build delay to 3 weeks (2019-08-10)  ++* 660b6d19a - SPIGOT-5249: Do not add data to empty loot table (2019-08-09)  ++* 54f4e7f95 - SPIGOT-5257: Call EntityBreedEvent for foxes and set the child's spawn reason to BREEDING (2019-08-09)  ++* 1ec1b05e2 - SPIGOT-5245: Unneeded cast to WorldNBTStorage in CraftWorld#getWorldFolder (2019-08-05)  ++* e5e8eec2c - SPIGOT-5241: setAttributeModifiers does not work on untouched stack (2019-08-03)  ++* 803eaa316 - SPIGOT-5231: ShotAtAngle API for Fireworks (2019-08-02)  ++* 7881d2ae1 - SPIGOT-5237: Horses, pigs do not drop their inventory (2019-08-02)  ++* 06efc9ec1 - Don't accept connections until all plugins have enabled (2019-07-30)  ++* da62a66ab - SPIGOT-5225: World handle isn't closed if world is unloaded without saving (2019-07-29)  ++* 104b3831f - SPIGOT-5222: Cannot get Long values from Entity memory (2019-07-29)  ++* f0b3fe435 - SPIGOT-5220: Server CPU usage reaches 100% when stdin is null (2019-07-28)  ++* 3e7b3862c - SPIGOT-5195 (#2): Player loot table does not drop when keepInventory is on (2019-07-26)  ++* c88867e4f - SPIGOT-5208: Reset state on cancelled EntityTransformEvent to prevent event spam (2019-07-26)  ++* f744c09c0 - SPIGOT-5214: setCooldown not working (2019-07-26)  ++* 860b35401 - SPIGOT-5204: Typo in deprecated enchantment name (2019-07-24)  ++* 7f33c6a2f - SPIGOT-5196: Restore previous version behaviour regarding cancelled BlockBreakEvent (2019-07-23)  ++* 6a5fc9028 - Improve diff in EntityHanging (2019-07-23)  ++* c98d61bfc - SPIGOT-4712: Allow spawning of upwards or downwards facing item frames (2019-07-23)  ++* db9714772 - SPIGOT-5199: Fix NPE if setting the book of the ItemMeta of a lectern (2019-07-22)  ++* b0ef3996e - SPIGOT-4679 Fix black lines after book paragraphs (2019-07-22)  ++* 1215188ff - SPIGOT-5180: Add Villager#sleep() and #wakeup() methods (2019-07-22)  ++* c03b2befb - SPIGOT-4975: NPE on WorldGenStronghold When Using Multiple Worlds (2019-07-22)  ++* 65ea162ce - Ensure Bukkit data pack is always up to date (2019-07-22)  ++* 0b107b8de - MC-157395, SPIGOT-5193: Small armor stands do not drop loot (2019-07-22)  ++* 6da0abca0 - SPIGOT-5195: Player loot table does not drop when keepInventory is on (2019-07-22)  ++* 8b09d9831 - SPIGOT-5190: Superfluous EntityCombustEvent called when using fire aspect sword (2019-07-21)  ++* 9c887d4d8 - SPIGOT-5188: Player loot table drops an additional duplicate loot for each subsequent death (2019-07-20)  ++* e73aabd66 - Update to Minecraft 1.14.4 (2019-07-20)  ++* a77ba00b6 - Remove outdated build delay. (2019-07-20)  ++* eb2e65787 - SPIGOT-5116: Fix concurrent modification exception inside ChunkMapDistance (2019-07-13)  ++* 989f9b3da - SPIGOT-4849: Fix server crash when accessing chunks during chunk load/unload/populate events (2019-07-13)  ++* f554183c3 - SPIGOT-5171: Don't fire PlayerTeleportEvent if not actually moving (2019-07-16)  ++* 2349feb84 - SPIGOT-5163: Cancelling PlayerBucketFillEvent visually removes the targeted block (2019-07-13)  ++* 5f8893885 - Tweak build expiration to 7 days (2019-07-10)  ++* 572c02b06 - MC-155077, SPIGOT-5113: EntityTracker desync (2019-07-10)  ++* 7ad3a1f46 - SPIGOT-5146: BlockDataMeta does not work (2019-07-09)  ++* 608609835 - SPIGOT-5155: Setting EntityExplodeEvent yield to 0 still causes blocks to drop (2019-07-09)  ++* 087a2cf4d - Print number of force loaded chunks per plugin in crash reports (2019-07-08)  ++* 07b5b06d2 - Add Plugin Chunk Ticket API (2019-07-08)  ++* 7ffb2a273 - SPIGOT-5149: resetRecipes does nothing (2019-07-07)  ++* a2275f19e - SPIGOT-5141: World.generateTree() causes ClassCastException with huge mushrooms (2019-07-06)  ++* 31d4a777c - SPIGOT-5142: Ignore invalid firework effects (2019-07-06)  ++* fca41573a - SPIGOT-5136: EntityPortalEvent getting called on interdimensional entity teleports (2019-07-05)  ++* 604c8bf07 - SPIGOT-3102: Add EXPLOSION SpawnReason (2019-07-03)  ++* 375969a67 - Re-add chunk GC for plugin chunk loads (2019-07-03)  ++* 581513686 - SPIGOT-5123: Snapshot tile entities can end up with a non-null world (2019-07-03)  ++* 491c84821 - SPIGOT-5130: PersistentDataContainer not removing values on TileEntities (2019-07-03)  ++* bf3293348 - SPIGOT-5133: Throwing items into secondary end world portal causes crash (2019-07-02)  ++* a0e47473c - SPIGOT-5121: Method to set PierceLevel of arrows (2019-06-30)  ++* 7a0f61a6e - SPIGOT-5122: Skip world#notify if sign has no world. (2019-06-29)  ++* bf0ea33de - SPIGOT-5105: The EntityTag nbt tag disappears from preset armor_stand items. (2019-06-29)  ++* 63cde5caa - SPIGOT-5106: Config option to prevent plugins with incompatible API's from loading (2019-06-29)  ++* c69979247 - SPIGOT-5110: Zombies converting to drowned too quickly (2019-06-28)  ++* 0c5756033 - SPIGOT-5101: Raids crash (2019-06-28)  ++* e8b39d430 - SPIGOT-5103: World.save does not save gamerules (2019-06-25)  ++* 3164e5312 - Correct pom.xml version (2019-06-25)  ++* f1f33559f - Update to Minecraft 1.14.3 (2019-06-25)  ++* 8a3d3f498 - SPIGOT-5098: Add a method to allow colored sign changes (2019-06-22)  ++* 533290e29 - SPIGOT-5100: Console warning from pig zombie targeting (2019-06-23)  ++* 6dde4b9fd - SPIGOT-5094: Allow opening merchant for wandering traders and hide the xp bar for custom merchants (2019-06-21)  ++* 9af900778 - SPIGOT-5097: Bukkit.clearRecipes() no longer working (2019-06-22)  ++* 38fa220f6 - Fix setting game rules via the API (2019-06-21)  ++* fe3930ce0 - Update to Minecraft 1.14.3-pre4 (2019-06-21)  ++* da071ec5a - Remove outdated build delay. (2019-06-21)  ++* efd8a2b50 - SPIGOT-5089: UnsupportedOperationException on setting villager memory to null (2019-06-19)  ++* 8003ced58 - SPIGOT-5061: Add explode and ignite methods to Creeper (2019-06-14)  ++* f2757f95b - SPIGOT-5071: Player loot tables not triggered (2019-06-16)  ++* f42422267 - Optimize getEntitiesByClasses slightly (2019-06-16)  ++* e81013d78 - SPIGOT-5072: Process phantom, cat and patrol spawning in CustomChunkGenerator (2019-06-16)  ++* 30a633798 - SPIGOT-5010: World#getEntitiesByClass/es also return entities in border chunks. (2019-06-15)  ++* 43431ba65 - SPIGOT-5034: FoodLevelChangeEvent add getItem method (2019-06-14)  ++* 4090d01f6 - SPIGOT-5047: Correct slot types for 1.14 inventories (2019-06-13)  ++* e8c083621 - SPIGOT-5046: World#getLoadedChunks returning inaccessible cached chunks. (2019-06-12)  ++* d445af3b1 - SPIGOT-5067: Add item meta for 1.14 spawn eggs (2019-06-13)  ++* 9e95da121 - SPIGOT-5052: PlayerPortalEvent not called when nether is disabled (2019-06-12)  ++* 28ea3fd10 - SPIGOT-5062: end_portal on an non-default end world crashes the server (2019-06-12)  ++* 4a07dc69d - SPIGOT-5058: ClassCastException when getting InventoryHolder of lectern when it's destroyed (2019-06-12)  ++* 411609dc8 - SPIGOT-5053: Initialize beacon with stored levels where available (2019-06-10)  ++* b1c5fd681 - SPIGOT-5054: Prevent issue with invalid hanging entities (2019-06-10)  ++* 0309d17dc - Rebuild patches (2019-06-09)  ++* 649921e5b - Add Player#openBook(ItemStack) method (2019-06-06)  ++* b7db6fba1 - SPIGOT-2000: Picking up items to shield slot working inconsistently when inventory is full (2019-06-06)  ++* 7cc7719ff - SPIGOT-5037: Player.openMerchant does not show merchant level (2019-06-07)  ++* 123117bd3 - SPIGOT-5038: Inventory.getHolder returns null for wandering traders (2019-06-07)  ++* 17543ecfd - SPIGOT-5035: Error Using Virtual Merchant GUI (2019-06-06)  ++* 0fc6922bf - SPIGOT-5028: Villager#setVillagerExperience() doesn't work (2019-06-06)  ++* bdbdbe445 - SPIGOT-5024: Fox error - Unknown target reason (2019-06-06)  ++* 043d31deb - SPIGOT-5015: Players in spectator mode prevent block placement and block projectiles (2019-06-02)  ++* fa7171935 - Make bukkitEntity private to prevent incorrect usage (2019-06-02)  ++* b7fea4277 - SPIGOT-5010: World.getEntities returns entities in border chunks (2019-05-31)  ++* 455023c4b - Show incorrect size passed into createInventory (2019-05-29)  ++* ba575a5a4 - SPIGOT-4992: Various villager issues due to broken mapping (2019-05-28)  ++* cb3d14c5a - Update to Minecraft 1.14.2 (2019-05-28)  ++* fcb9f90bf - SPIGOT-4946: Add VillagerCareerChangeEvent (2019-05-25)  ++* a4a2f6794 - SPIGOT-4987: Shulkerbox does not save empty slots (2019-05-27)  ++* 17da34209 - Fix reading custom persistent entity data (2019-05-25)  ++* 837833573 - SPIGOT-4980: Shields will not be put on cooldown when hit with an axe (2019-05-25)  ++* 8d0f37228 - SPIGOT-4752: Fixed inconsistency between isChunkLoaded and chunk load/unload events (2019-05-16)  ++* 3f9f31c3c - SPIGOT-4982: Armor disappearing while breaking the armor stand (2019-05-25)  ++* c45c0a983 - SPIGOT-4972: Cannot add contextual data to loot table API (2019-05-23)  ++* 342194e39 - SPIGOT-4970: PlayerTeleportEvent event.setTo() has no effect on portal teleports (2019-05-21)  ++* 6984fc4f8 - SPIGOT-4968: Jukebox.setPlaying(null) causes error (2019-05-21)  ++* 0e4ca96e4 - SPIGOT-4966: Provide access to Entity in PortalCreateEvent (2019-05-21)  ++* 49e15b4d9 - SPIGOT-4964: EntityPickupItemEvent for pandas (2019-05-20)  ++* de9b85b8a - SPIGOT-4925: Uppercase world names no longer supported (2019-05-20)  ++* c5e09ceaa - SPIGOT-4961: Cannot open various inventories (2019-05-20)  ++* b114affb9 - SPIGOT-4958: API to set map trackingPosition (2019-05-20)  ++* 401432b99 - SPIGOT-4962: Bubble column blocks not classified as liquid (2019-05-20)  ++* f498aabe4 - SPIGOT-4898: Call EntityChangeBlockEvent / EntityPickupItemEvent for foxes (2019-05-20)  ++* eb99127a3 - SPIGOT-4833: Allow access to LivingEntity memories (2019-05-19)  ++* d06991d96 - SPIGOT-4953: Crafting table inventory returns player location, not block location (2019-05-19)  ++* 585b2ebdd - Tweak thresholds for can't keep up message (2019-05-19)  ++* 91ada5c2b - SPIGOT-4956: EntityTameEvent not triggered when taming a Cat (2019-05-19)  ++* 9bda41345 - SPIGOT-4943: Zombie villager conversion player API. (2019-05-17)  ++* 5a0270717 - SPIGOT-4947: Allow setting the content on a lectern (2019-05-17)  ++* 09d00e9f9 - SPIGOT-4938: Call EntityPickupItemEvent for dolphins (2019-05-17)  ++* a278e4453 - SPIGOT-4948: Lectern.getInventory should return a LecternInventory (2019-05-17)  ++* 02b466ccc - SPIGOT-4940: Fletcher villager gifts sometimes crash server (2019-05-16)  ++* f69095731 - SPIGOT-4935: Lore deserializes incorrectly from previous versions (2019-05-15)  ++* dd99c5bb4 - SPIGOT-4929: Beacon inventory getType() returns CHEST (2019-05-14)  ++* 89c52b7b0 - Update to Minecraft 1.14.1 (2019-05-14)  ++* 1fee35bef - Remove outdated build delay. (2019-05-14)  ++* 907de3f4c - SPIGOT-4921: Preserve entity compat with Vanilla (2019-05-13)  ++* 58db40301 - SPIGOT-4916: Fix loading legacy structure data (2019-05-12)  ++* a46ef53b7 - Load custom worlds from correct location (2019-05-12)  ++* 21dbe8ab2 - SPIGOT-4911: Cannot add firework rocket as charged projectile in crossbow (2019-05-12)  ++* 8ad02cd9c - SPIGOT-4900: Rearchitect multiworld support for better compat with new villager AI (2019-05-12)  ++* 8879c3148 - SPIGOT-4893: Don't reset angry state of wolves without target. (2019-05-08)  ++* 5c0d3b25e - SPIGOT-4889: Add PlayerTakeLecternBookEvent (2019-05-07)  ++* 7d29eb5e5 - SPIGOT-4899: Horse inventory title not set (2019-05-10)  ++* 6ceffb0d2 - SPIGOT-4895: Bed doesn't explode in Nether and The End (2019-05-09)  ++* ee8818473 - SPIGOT-4888: setSleepingIgnored resets the night even when there is no one in a bed (2019-05-08)  ++* 15e02b405 - SPIGOT-4890: EntityDeathEvent fires twice when breaking an armor stand in survival mode (2019-05-08)  ++* b38a3c338 - Add BlockShearEntityEvent for Dispensers shearing Sheep (2019-05-07)  ++* 70ebefca6 - SPIGOT-4891: LecternInventory.getType() should return InventoryType.LECTERN (2019-05-07)  ++* 0036d1b75 - SPIGOT-4887: Villager level minimum is 1 (2019-05-07)  ++* d20328368 - SPIGOT-4882: EntityExplodeEvent appears to fire every tick because of enderdragon (2019-05-07)  ++* 524facd24 - SPIGOT-4881: Worldborder for the End and Nether switch to default after restart (2019-05-07)  ++* 3057b72c7 - SPIGOT-4880: Potion effects with unknown names. (2019-05-07)  ++* fe1199caa - SPIGOT-4874: Use empty loot context (2019-05-06)  ++* 0d76f8658 - SPIGOT-4872: LootTables missing a few loot tables (2019-05-06)  ++* 40484a5fa - SPIGOT-4875: PlayerChangedWorldEvent does not fire on teleporting via portals (2019-05-06)  ++* 5f89a0e3c - SPIGOT-4877: No end platform generated (2019-05-06)  ++* 84400e66b - SPIGOT-4871: Manually opened double chest doesn't have close animation (2019-05-05)  ++* 8deeeec0a - SPIGOT-4870: Server crashes while charging crossbow (2019-05-05)  ++* c441dba81 - SPIGOT-4834: API for Villager levels and experience (2019-05-05)  ++* 78616513e - Rearchitect PortalCreateEvent to provide more information about the portal (2019-05-05)  ++* e8c929356 - SPIGOT-248: PortalCreateEvent not fired when exit portal is created automatically. (2019-05-04)  ++* 3be0bc1c5 - SPIGOT-4840: CartographyInventory not returned for InventoryClickEvent.getClickedInventory on result slot (2019-05-05)  ++* 8ad64c4f9 - SPIGOT-4867: Incorrect dimension ID for nether portal teleports (2019-05-05)  ++* 4e60dbe7e - SPIGOT-4868: Server deadlock on /stop command (2019-05-05)  ++* 68e72f630 - SPIGOT-4863: --eraseCache doesn't work (2019-05-04)  ++* df82e4f08 - SPIGOT-4860: Cancelling InventoryOpenEvent on MerchantInventory prevents re-opening (2019-05-04)  ++* 09a453aed - SPIGOT-4835: Manually opened chest doesn't have close animation (2019-05-03)  ++* 84c2f4d1a - SPIGOT-4842: Dummy recipes should not give AIR as result type (2019-05-03)  ++* 8ddb94da6 - SPIGOT-4831: setKeepSpawnInMemory to false does not work (2019-05-02)  ++* fac0eca52 - SPIGOT-4838: BlockDispenseEvent not called when shears dispensed from dispenser (2019-05-01)  ++* a58432012 - SPIGOT-4836: Breaking barrier block causes error (2019-05-02)  ++* 1fa9a8151 - SPIGOT-4802: Add CrossbowMeta (2019-05-01)  ++* d5c2e3ccb - SPIGOT-4714: Broadcasts can no longer be done from secondary threads (2019-05-01)  ++* deeecc7f0 - SPIGOT-4820: Villager Type API (2019-05-01)  ++* 3dcbf6b85 - Regular arrow spawn method should not have changed type (2019-05-01)  ++* 327c30812 - SPIGOT-4822: Existing world fails to load (2019-05-01)  ++* 4fa2ad7c6 - SPIGOT-4825: Clearly error on asynchronous tile access (2019-05-01)  ++* 4f420d827 - Revert "SPIGOT-4825: Clearly error on asynchronous tile access" (2019-05-01)  ++* 5a37f4305 - SPIGOT-4825: Clearly error on asynchronous tile access (2019-05-01)  ++* bbd66d204 - SPIGOT-4823: Crash picking up arrows (2019-05-01)  ++* dadc53921 - World#spawnArrow should return an AbstractArrow now (2019-04-30)  ++* 29b90d241 - SPIGOT-4819: Continue refactoring of Arrow-related APIs (2019-04-30)  ++* 9926d780c - SPIGOT-4816: Editing book causes glitchy behaviour (2019-04-30)  ++* d7d28b124 - SPIGOT-4818: Unit test banner patterns (2019-04-30)  ++* ea5d868cf - SPIGOT-4810: Call EntityChangeBlockEvent for Ravager destroying leaves (2019-04-29)  ++* 5193f762a - SPIGOT-4803: Fox related APIs (2019-04-28)  ++* ba2e5e7c7 - Add TradeSelectEvent (2019-04-28)  ++* e3df3d5cd - Add Override annotations where appropriate (2019-04-28)  ++* 3331dade5 - SPIGOT-4790: Secondary world data not saved (2019-04-28)  ++* f4f32958a - SPIGOT-4795: EntityPoseChangeEvent called every tick (2019-04-28)  ++* 5736cdc55 - Intermittent hang on /stop (2019-04-27)  ++* a875ee416 - Fix loading secondary worlds (2019-04-27)  ++* 5e0b63c1a - SPIGOT-4785: Experience etc lost returning from end (2019-04-27)  ++* c9fa596b9 - Add some missing goal targets (2019-04-27)  ++* 1fafd8f3f - Allow direct opening of another player's inventory (2019-04-27)  ++* 884028b23 - SPIGOT-4784: Collar colour API for Cats (2019-04-27)  ++* 6bb1f087e - Loosen restrictions on inventory sizing (2019-04-27)  ++* 6606cd88d - SPIGOT-4753: Add Pose API (2019-04-27)  ++* 86f149ff7 - SPIGOT-4783: CreatureSpawnEvent causes crash when getting block type (2019-04-27)  ++* 1949f5835 - SPIGOT-4778: Bell Attachment is missing (2019-04-27)  ++* 3a8616779 - Remove redundant cast (2019-04-27)  ++* 401641ea6 - SPIGOT-4774: Entities don't get marked 'invalid' after being removed (2019-04-27)  ++* 6de3aa179 - SPIGOT-4771: PlayerPortalEvent does not have correct cause when entering nether (2019-04-26)  ++* 112c84e1e - SPIGOT-4769: PlayerPortalEvent does not have correct cause when entering end (2019-04-26)  ++* f4dc98074 - SPIGOT-4767: Fire from lava persists after respawn (2019-04-26)  ++* f5285abf2 - SPIGOT-4768: ChunkUnloadEvent not called (2019-04-26)  ++* 735f4ea33 - SPIGOT-4760: BlockSpreadEvent for Bamboo growth (2019-04-26)  ++* 4b9b0f4d5 - Add variant API to MushroomCow (2019-04-26)  ++* abab38526 - SPIGOT-4765: WeatherChangeEvent occurs every tick (2019-04-26)  ++* 8f2a45bf3 - Clean diff in PlayerChunkMap (2019-04-26)  ++* e2bbf62bf - Don't concurrently execute ChunkGenerators by default (2019-04-26)  ++* b9a2a7410 - SPIGOT-4757: Server hangs after teleporting (2019-04-26)  ++* 3e700e04e - SPIGOT-4755: Client freeze when joining world (2019-04-26)  ++* a9ed33464 - SPIGOT-4758: --server-port argument does not work (2019-04-26)  ++* 28adbcff5 - SPIGOT-4751: Update mappings version (2019-04-26)  ++* e879c447b - SPIGOT-4737: Bukkit.createWorld causes the server to crash if run after startup (2019-04-25)  ++* aed901654 - SPIGOT-4744: Cannot spawn Cat entity (2019-04-25)  ++* 76a855c8c - SPIGOT-4742: Make Sign Colorable (2019-04-25)  ++* 42f88f72b - Replace ItemTag API with new API that also expands to Tiles and Entities (2019-04-25)  ++* 724ec10f3 - SPIGOT-4741: InventoryHolder no longer returns DoubleChest (2019-04-25)  ++* ed20842bc - Update to Minecraft 1.14 (2019-04-25)  ++* 2cc992e31 - Clean diff slightly in MinecraftServer (2019-04-25)  ++* 58c5c617d - SPIGOT-4736: Serialized ItemStack Lore Doesn't Deserialize (2019-04-25)  ++* c12460643 - SPIGOT-4734: Sign placement fails when looking at grass (2019-04-25)  ++* de6cdd036 - SPIGOT-4735: ProjectileHitEvent Fires Immediately (2019-04-25)  ++* 14df075f8 - SPIGOT-4728: Fix clicking on custom ender chests (2019-04-24)  ++* 331c43929 - SPIGOT-4720: Remove now unnecessary tile fixer (2019-04-24)  ++* 3ddaf665e - SPIGOT-4722: Cannot get title of player's inventory (2019-04-24)  ++* 6d504c2d4 - SPIGOT-4725: Virtual Merchant GUI crashes server (2019-04-24)  ++* c8d1e9420 - SPIGOT-4718: Fix creating odd inventory sizes (2019-04-24)  ++* 005e1bbc1 - SPIGOT-4726: Lore not being applied to new items (2019-04-24)  ++* bfec7c79c - Apply outdated build delay (2019-04-24)  ++* 93ad381a6 - SPIGOT-4727: Fix CraftEvil for legacy plugins (2019-04-24)  ++* 364b6fbb7 - Fix weird test import in EnderDragonPhaseTest (2019-04-23)  ++* c08813247 - Fix checkstyle on Windows (2019-04-23)  ++* c4af066cb - Move execution phase of checkstyle (2019-04-23)  ++* 0ec9b61de - SPIGOT-4717: Fix adding recipes after clearRecipes is called (2019-04-23)  ++* 5fea79039 - Apply import ordering rules to CraftBukkit classes (2019-04-23)  ++* 48c4c5ca8 - Begin implementation of CheckStyle style checking (2019-04-23)  ++* a2d787f6e - Update to Minecraft 1.14-pre5 (2019-04-23)  ++* a46fdbc62 - Remove outdated build delay. (2019-04-22)  ++* 3697519ba - SPIGOT-4708: Fix ExactChoice recipes neglecting material (2019-04-21)  ++* 9ead70095 - SPIGOT-4677: Add minecraft.admin.command_feedback permission (2019-04-20)  ++* c3749a235 - Remove the Damage tag from items when it is 0. (2019-04-18)  ++* f74c7b957 - SPIGOT-4706: Can't interact with active item (2019-04-20)  ++* 494eef45d - Mention requirement of JIRA ticket for bug fixes (2019-04-18)  ++* 51d62dece - SPIGOT-4702: Exception when middle clicking certain slots (2019-04-16)  ++* be557e69f - SPIGOT-4700: Add PlayerFishEvent.State.REEL_IN (2019-04-15)  ++* 7c395d429 - SPIGOT-4681: Note about additional world creation on STARTUP (2019-04-08)  ++* 812f66aa9 - SPIGOT-4684: Update persistence of converting zombie villagers (2019-04-08)  ++* f40143ef5 - SPIGOT-4691: Fix custom world generator when placing tiles (2019-04-05)  ++* 0e1cea5a4 - Added Entity#setRotation. (2019-03-26)  ++* 0bf75bbde - SPIGOT-4686: Enchantment ordering nondeterministic (2019-04-02)  ++* 4c8327f72 - SPIGOT-4673: EntitySpawnEvent should not be called for players (2019-03-26)  ++* 51100db82 - SPIGOT-4678: Fix placing signs in certain circumstances (2019-03-24)  ++* d65a2576e - SPIGOT-4674: Allow spawning hanging on top/bottom of block (2019-03-22)  ++* d3ed15162 - Fix dangerously threaded beacons (2019-03-17)  ++* 217a293d3 - Don't relocate joptsimple to allow --help to work. (2019-03-17)  ++* 1be05a214 - Prepare for imminent Java 12 release (2019-03-17)  ++* a49270b28 - Mappings Update (2019-03-17)  ++* 5259d80c4 - SPIGOT-4669: Fix PlayerTeleportEvent coordinates for relative teleports (2019-03-16)  ++* 8d8475fc4 - SPIGOT-4666: Force parameter in HumanEntity#sleep (2019-03-13)  ++* 8b1588e2f - Fix ExplosionPrimeEvent#setFire not working with EnderCrystals (2019-03-09)  ++* 39a287b7d - Don't ignore newlines in PlayerListHeader/Footer (2019-03-10)  ++* 77ca7ca07 - Rebuild patches (2019-03-06)  ++* 73597ed86 - Improve damage handling of dead entities (2019-03-06)  ++* 1dbe87c8c - SPIGOT-4646: Test + fix InventoryWrapper.getContents (2019-03-05)  ++* faa622695 - SPIGOT-4650: Charging API for Vex (2019-03-05)  ++* f102d8829 - SPIGOT-4647: Properly cancel VehicleDamageEvent (2019-03-05)  ++* ec17d07de - Use getBukkitEntity for ExplosionPrimeEvent instead of creating new one (2019-03-04)  ++* 0f708cbf5 - Add love mode API to Animals (2019-02-27)  ++* 40cbae42b - SPIGOT-4638: Give last registered recipe priority (2019-02-26)  ++* cb98c6eae - Fix line endings in CraftDefaultPermissions (2019-02-25)  ++* 822ff7293 - SPIGOT-4637: Add source block to BlockPhysicsEvent. (2019-02-24)  ++* acbba8bad - SPIGOT-4635: Restore shield damage sound (2019-02-25)  ++* 4e4cde481 - Fix experience reward flag gets lost during MerchantRecipe conversion (2019-02-22)  ++* 6430d9c0b - SPIGOT-4632: BlockState location is not fixed (2019-02-21)  ++* 14cd1688d - Fix CraftInventoryMerchant#getSelectedRecipe if there is no active merchant recipe. (2019-02-21)  ++* c24abab78 - Load custom permissions after default permissions. (2019-02-17)  ++* bc99dfe89 - Make tags Keyed (2019-02-17)  ++* 6fce004fa - Added a method to get a list of tags (2019-02-17)  ++* 51c118b1d - SPIGOT-4619: Incorrect packet order for villager inventories (2019-02-13)  ++* d158f2e99 - Fix EntityPickupItemEvent getRemaining / PlayerInventory#canHold (2019-02-12)  ++* a2dd0e303 - SPIGOT-4615: Missing target event for withers (2019-02-10)  ++* b26fb3742 - Update outdated spigot link (2019-02-09)  ++* 2b1940ae2 - Make AreaEffectCloudApplyEvent cancellable (2019-02-07)  ++* c7ba97906 - Fix incorrect method descriptor in previous commit (2019-02-06)  ++* 3d19f011e - SPIGOT-4608: Improve quality of MapMeta APIs (2019-02-05)  ++* 2ced02339 - Don't handle sync packets for kicked players (2019-02-03)  ++* d5e96882a - SPIGOT-4602: Cache reflection in decompile error workaround (2019-02-02)  ++* ad6070dff - SPIGOT-4193: API for selecting entities by strings (2019-01-31)  ++* ed274c517 - SPIGOT-4597: Make BlockDropItemEvent use a list (2019-01-30)  ++* 1734f378f - SPIGOT-4598: Shift click on custom workbench inventory causes crash (2019-01-30)  ++* a65b73ad9 - Add note about Maven repository usage to pom.xml (2019-01-29)  ++* 2aba349f1 - Need to update item in hand if fish bucket pickup cancelled (2019-01-27)  ++* b634e059e - SPIGOT-4591: Must mark itemstacks as dirty in case the handle itself changed (2019-01-25)  ++* 1748af891 - Consistent multiple choice APIs for RecipeChoice. (2019-01-25)  ++* 13f71402e - Update compiler (2019-01-23)  ++* 61c762f44 - Add CookTimeTotal API to Furnace (2019-01-23)  ++* 1a64d4ae2 - SPIGOT-4587: Enforce at least one valid choice for FurnaceRecipe (2019-01-21)  ++* 7fc66b28d - Fix minecraft.command.selector permission (2019-01-18)  ++* 47b06d5b4 - SPIGOT-4584: Call events for hatching turtle eggs (2019-01-17)  ++* 0c715b32b - SPIGOT-4579: Shulker boxes not dropping in creative (2019-01-14)  ++* 50fbc3f19 - SPIGOT-4576: Fix attributes in itemstack internal data being lost (2019-01-14)  ++* 8059a937e - SPIGOT-4577: Fix loss of int/double custom tags when serialized to yaml (2019-01-13)  ++* 07e504c37 - Clarify exception thrown when setting drop chance for player inventory (2019-01-13)  ++* 98b862ad8 - Fix duplicate iron golem add (2019-01-11)  ++* 843cee65f - Fix a bunch of duplicate EntityCombustEvent calls (2019-01-11)  ++* 438556243 - SPIGOT-4571: EntityCombustEvent not firing for phantoms (2019-01-09)  ++* 9dc56581e - SPIGOT-4570: Add FluidLevelChangeEvent (2019-01-08)  ++* b15abb12c - SPIGOT-4566: Don't special case NETHER_PORTAL teleport reason from plugins (2019-01-08)  ++* f17d591cc - Fix BlockDropItemEvent for Skulls and Shulker Boxes (2019-01-07)  ++* 5932f8a7d - Load default world spawn areas in consistent order (2019-01-05)  ++* 3a5dc78f4 - Fix confusing migration message appearing on fresh server (2019-01-05)  ++* 516a408f4 - Remove redundant CraftBukkit change for secondary world data (2019-01-05)  ++* 73a2c749b - Process conversation input on the main thread. (2019-01-05)  ++* 100c3f07e - Cap Objective Score Length (2019-01-05)  ++* 6e842759c - Cross World Entity Teleportation (2019-01-05)  ++* 7deba1c60 - Check for blank OfflinePlayer Names (2019-01-05)  ++* f2746a5eb - Descriptive kick reasons instead of Nope! (2019-01-05)  ++* b02123083 - Cap Channel Registrations (2019-01-05)  ++* a610dcd82 - Identify CraftScheduler threads with useful names (2019-01-05)  ++* 7560d3b5a - Skip tests on default builds (2019-01-04)  ++* d0a9130d2 - SPIGOT-4563: Fix regenerating chunks saved to disk already (2019-01-03)  ++* 917411fd8 - Remove redundant BlockPosition creation from sleep API (2019-01-02)  ++* 756c38d1e - Add RecipeChoice.ExactChoice API for NBT matches on ingredients (2019-01-02)  ++* 8e65d8df6 - SPIGOT-4560: Add HumanEntity.sleep and related APIs (2019-01-02)  ++* a83828623 - SPIGOT-4562: reducedDebugInfo not updated on world change (2019-01-02)  ++* c4a67eed9 - SPIGOT-4556: Fix plugins closing inventory during drop events (2018-12-31)  ++* 5be2ddcbd - Replace version constants with methods to prevent compiler inlining (2018-12-30)  ++* a5b9c7b3e - Use API method to create offset command completions (2018-12-28)  ++* 2bc7d1df2 - SPIGOT-3747: Add API for force loaded chunks (2018-12-27)  ++* a408f3751 - SPIGOT-3538: Add getHitBlockFace for ProjectileHitEvent (2018-12-27)  ++* b54b9409e - SPIGOT-2864: Make Arrow / Item setTicksLived behave like FallingBlock (2018-12-27)  ++* 79ded7a8c - SPIGOT-1811: Death message not shown on respawn screen (2018-12-27)  ++* b4a4f15db - SPIGOT-943: InventoryCloseEvent called on death regardless of open inventory (2018-12-27)  ++* 0afed5927 - SPIGOT-794: Call EntityPlaceEvent for Minecart placement (2018-12-27)  ++* 2b2d084ac - Add InventoryView#getSlotType (2018-12-26)  ++* 01a9959aa - Do not use deprecated ItemSpawnEvent constructor (2018-12-26)  ++* 9642498d2 - SPIGOT-4547: Call EntitySpawnEvent as general spawn fallback event (2018-12-26)  ++* 963f4a5fc - Add PlayerItemDamageEvent (2018-12-26)  ++* 63db04459 - Add API to get / set base arrow damage (2018-12-26)  ++* 531c25d73 - Add CraftMagicNumbers.MAPPINGS_VERSION for use by NMS plugins (2018-12-26)  ++* d05c8b148 - Mappings Update (2018-12-26)  ++* bd36e200d - SPIGOT-4551: Ignore invalid attribute modifier slots (2018-12-25)  ++* dff66dfcc - Reduce copying of positions from block states (2018-12-22)  ++* 91cae6efb - SPIGOT-4387: Durability looping from cancelled BlockPlaceEvent (2018-12-22)  ++* 24c5e68c5 - SPIGOT-4493: Allow burnt out furnaces to remain lit like Vanilla whilst retaining SPIGOT-844 API (2018-12-22)  ++* bc943daf9 - Fix Jukebox API not synchronizing playing data with state (2018-12-22)  ++* fe89a8c1b - SPIGOT-4503: Add API to insert complete ItemStack into Jukebox (2018-12-22)  ++* fc1024944 - Make CraftBlockState use BlockPosition (2018-12-22)  ++* 89ab48872 - SPIGOT-4543: Jukebox playing calls should not use legacy data (2018-12-22)  ++* 6ff5a64c2 - SPIGOT-4541: Cancelled bucket events require inventory update (2018-12-22)  ++* 1b982fd67 - Tweak Block.getTemperature to return actual block temperature (2018-12-19)  ++* f55c81918 - SPIGOT-2151: Add support for getting simple bounding box of a block (2018-12-17)  ++* 4b843638e - Add BlockData#getAsString(boolean) to hide unspecified states (2018-12-16)  ++* bb6f384a8 - SPIGOT-4534: Only call event for new chunks (2018-12-17)  ++* 38cf676e3 - SPIGOT-4534: CreatureSpawnEvent not being called for CHUNK_GEN (2018-12-17)  ++* b446cb5d7 - SPIGOT-4527: Fix sponges with waterlogged blocks (2018-12-13)  ++* 6ec8ea5cf - SPIGOT-4526: Add conversion time API for Zombie & subclasses (2018-12-13)  ++* c64fe5080 - Mappings Update (2018-12-13)  ++* a3c2ec031 - Fix missing ServerListPingEvent call for legacy pings (2018-12-12)  ++* 7fa173e6d - Remove unnecessary line in BlockMushroom (2018-12-10)  ++* cc1e3497d - Add PlayerSpawned API for Endermites (2018-12-10)  ++* 068dab5be - Enable optional source JAR shading via profile shadeSourcesJar (2018-12-05)  ++* ad7b00b76 - Use ImmutableList rather than AbstractList for CraftMetaBook (2018-12-05)  ++* 5f5a6767e - Fix setRecipes(List) not setting Knowledge Book recipes. (2018-12-05)  ++* aa36c8417 - Mappings Update (2018-12-06)  ++* 20fc5bea2 - Add list of entities to EntityTransformEvent & move die calls (2018-12-05)  ++* 38e4c013b - SPIGOT-4347: Add API to allow storing arbitrary values on ItemStacks (2018-12-01)  ++* a4c555b6b - Add Vanilla help to default permissions (2018-12-03)  ++* 6a398ac44 - SPIGOT-4511: Trident doesn't lose durability (2018-12-01)  ++* 282dad196 - Tweak outdated windows (2018-11-28)  ++* ee6684bba - SPIGOT-4507: BlockRedstoneEvent current flipped for levers (2018-11-28)  ++* 97b0057ad - SPIGOT-4500: callSyncMethod broken (2018-11-24)  ++* 8cd538e66 - SPIGOT-4498: Crash on startup (2018-11-23)  ++* b4ee04baa - SPIGOT-4496: Undeprecate MapView.getId and make int (2018-11-23)  ++* ec937d0e0 - SPIGOT-4472: Add Consumer scheduler methods (2018-11-23)  ++* f489f0f74 - SPIGOT-4494: Remove fix for SPIGOT-3864, better handled by SPIGOT-3879 fix (2018-11-20)  ++* e4183e706 - SPIGOT-4491: Fix InventoryMoveItemEvent causing repeated events (2018-11-19)  ++* 1cac9d4fc - Add Player to BlockCanBuildEvent (2018-11-18)  ++* b1d149cfd - SPIGOT-4489: NOTE_BLOCK incorrectly has BlockStateMeta (2018-11-16)  ++* c2035aa1d - Add some missing CreatureSpawnEvent.SpawnReason calls (2018-11-14)  ++* d2c422f13 - SPIGOT-4339: Add EntityTransformEvent (2018-11-14)  ++* 17ff1e046 - SPIGOT-4483: Missing EntityInteractEvent call for zombies on eggs (2018-11-12)  ++* 3a9118280 - SPIGOT-4477: Arrows only firing direction of boat (2018-11-10)  ++* 1663a63de - SPIGOT-4478: NPE during PlayerLoginEvent recipe manipulation (2018-11-10)  ++* 3697ec7a6 - Add API to manipulate boss bar of entities and those created by commands (2018-11-10)  ++* ca22de36a - SPIGOT-4469: Age API for EndGateway (2018-11-06)  ++* de547749e - SPIGOT-4471: Use wall time for zombie drowning & enhance checks (2018-11-06)  ++* e693496c1 - SPIGOT-4467: Improve ExpiringMap (2018-11-04)  ++* f0398e444 - SPIGOT-4438: Add choice API to furnace recipes (2018-11-03)  ++* 96c461b3a - API to get client side view distance. (2018-11-02)  ++* e2785f4ed - Remove note about development build (2018-11-02)  ++* a8000588c - SPIGOT-4395: Additions to PlayerBedEnterEvent. (2018-11-02)  ++* aed3aecba - Make natural item dropping mimic Vanilla (2018-10-31)  ++* 1057710a7 - SPIGOT-4376: Add draft BlockDropItemEvent (2018-10-31)  ++* f3f2fe579 - SPIGOT-4455: ChunkData.getType returns legacy material (2018-10-29)  ++* 72c3617df - SPIGOT-4433: Always generate ProtoChunk (2018-10-28)  ++* 5184216f2 - SPIGOT-4447: Clear error for people trying to set an item as a block (2018-10-27)  ++* d6b57bd96 - SPIGOT-4446: Legacy rotation methods don't work for wall mounted skulls (2018-10-27)  ++* 4a47be616 - Add ray tracing and bounding box API (2018-10-26)  ++* a835b0353 - SPIGOT-4443: Scoreboard RenderType API (2018-10-26)  ++* 3359cb199 - MC-137353: Don't go crazy on amount of bootstrap threads needed (2018-10-23)  ++* b4230a9a7 - Update to Minecraft 1.13.2 (2018-10-23)  ++* a639ae44d - Remove outdated build delay. (2018-10-23)  ++* db10914a9 - Improve minecart spawners (2018-10-19)  ++* cd6252a48 - Fixed missed diff in PathfinderGoalPanic. (2018-10-16)  ++* 0adc1b998 - SPIGOT-4428: Update Player CustomName (2018-10-15)  ++* e3d7b2fd9 - Add Block#isPassable (2018-10-12)  ++* e7ced970d - Catch plugins setting null Material or BlockData to blocks (2018-10-13)  ++* 8ab46ff7c - SPIGOT-4368: Tweak fish persistence (2018-10-07)  ++* 1ceee6334 - Implement maximum repair cost API to AnvilInventory (2018-10-05)  ++* 6a0c4e1cc - SPIGOT-4411: Document use of null for shulker colours (2018-10-06)  ++* 02518f92a - Make setPersistent also control player saving (2018-10-02)  ++* 68588dac4 - SPIGOT-4405: Chunk generation problem (2018-10-02)  ++* c8f68670f - Save server version (2018-10-02)  ++* 7a2f48676 - Implement PlayerRecipeDiscoverEvent and methods to (un/)discover recipes (2018-09-29)  ++* 1cf8b5dc1 - SPIGOT-4400: Populators running on existing chunks (2018-09-27)  ++* 116cb9a1b - SPIGOT-4399: Add attribute modifier equality test (2018-09-26)  ++* 5ee1c18a4 - SPIGOT-4398: Set ASM7_EXPERIMENTAL flag (2018-09-27)  ++* 4824655c8 - SPIGOT-4398: Upgrade to ASM 6.2.1 for better Java 11 support (2018-09-27)  ++* eea438703 - MC-134115: Fix issues converting tile entities (2018-09-27)  ++* 1a7f2d109 - SPIGOT-4397: isChunkGenerated API (2018-09-26)  ++* 40aed54d1 - SPIGOT-4396: Improve vehicle movement (2018-09-26)  ++* 020b49527 - SPIGOT-4392: Stem updates even if BlockGrowEvent cancelled (2018-09-25)  ++* c1ecaa2ff - API to generate filled explorer maps (2018-09-24)  ++* 5cffeca21 - SPIGOT-4391: Sign editable API (2018-09-24)  ++* dcb43ef83 - MC-136886: locate command loads chunks without needing to. (2018-09-23)  ++* 7d506c6cd - SPIGOT-4389: Fix empty custom inventory title (2018-09-23)  ++* fc10dec5f - Don't throw error on invalid data in CraftMetaItem. (2018-09-22)  ++* 65bb2d0f7 - Increase expiration time to 10 days (2018-09-22)  ++* 88a5346fe - Add API to locate structures. (2018-09-21)  ++* 8164f4b25 - SPIGOT-1916: Attribute modifiers for ItemStacks (2018-09-21)  ++* 26c89277c - SPIGOT-4385: Clearer error for invalid generator-settings (2018-09-19)  ++* a222e4a25 - Implement BatToggleSleepEvent (2018-09-16)  ++* 79ada744c - SPIGOT-4382: Fix damage_absorbed statistic (2018-09-17)  ++* 94b8708ac - SPIGOT-4373: Item display colours are white by default (2018-09-16)  ++* 616684369 - SPIGOT-4378: Fix mistakenly included code (2018-09-16)  ++* a4bdecff6 - SPIGOT-4372: LightningStrikeEvent cause API (2018-09-15)  ++* 34caaf6d6 - SPIGOT-4371: Trident damaged when event cancelled (2018-09-15)  ++* 97315374f - SPIGOT-4369: Handle cancelled trident event (2018-09-15)  ++* bf1c82731 - SPIGOT-4370: Remove vehicle if its passenger spawn event was cancelled (2018-09-15)  ++* 1cead6280 - SPIGOT-4363: Bad colours in leather armor (2018-09-11)  ++* 953e1d601 - SPIGOT-4314: Ability to change item in frame without playing sound (2018-09-11)  ++* b6bf6aa3b - Add option to suppress normal output of 'makePatches' so it only outputs when a patch is changed or created. (2018-09-10)  ++* 7033f180e - Hoist out synchronisation from ChunkRegionLoader (2018-09-10)  ++* 022b8c350 - SPIGOT-4361: BlockFadeEvent for regular coral (2018-09-10)  ++* 3123a069b - SPIGOT-4352: MoistureChangeEvent (2018-09-09)  ++* 226db0eae - Add BlockDispenseArmorEvent (2018-09-08)  ++* cd367fa4d - Fix bad thread safety in ChunkRegionLoader (2018-09-09)  ++* 3f5ca5f2a - SPIGOT-4355: Improve cancelling VehicleEnterEvent (2018-09-09)  ++* 19d654bd5 - Add ServerLoadEvent (2018-09-08)  ++* 228a5cd59 - Remove vanilla command ambiguity warning (2018-09-07)  ++* 0ddd67b0a - SPIGOT-4350: Expand EntityTeleportEvent to /teleport command (2018-09-07)  ++* 632449b6c - SPIGOT-4349: End portal has wrong TeleportCause (2018-09-07)  ++* 3eb8af234 - SPIGOT-4348: Use online player for setting skull owner if possible (2018-09-06)  ++* c88ae6b19 - SPIGOT-4342: Fix PlayerMoveEvent from pitch/yaw incorrect (2018-09-04)  ++* ee5efeb0d - Add getFacing method to get the current cardinal direction an entity is facing. (2018-09-02)  ++* 3037eb3e7 - BlockSpreadEvent for Kelp (2018-09-03)  ++* 6cf60193b - SPIGOT-4340: Improve client bug workaround (2018-09-03)  ++* 60d798202 - SPIGOT-4338: breedCause API (2018-09-01)  ++* dc69d2b3d - Fix unbound shaped recipe ingredients (2018-09-01)  ++* 4c219e2a1 - Expand Recipe API to allow multiple Materials per slot (2018-09-01)  ++* 6304ccd95 - SPIGOT-4116: Tweak tab complete spam since the client appears to be duplicating packets (2018-08-29)  ++* 1486c2951 - API to prevent PlayerBedLeaveEvent from changing a player's spawn location (2018-08-29)  ++* 3831ae621 - SPIGOT-4325: Validate coordinate arguments in Chunk/ChunkSnapshot (2018-08-29)  ++* a1ab86d8c - SPIGOT-4321: Team#getSuffix returns the prefix (2018-08-29)  ++* 9636bb8d7 - SPIGOT-4319: Conduit damage should be a block event (2018-08-28)  ++* 4228a56c0 - SPIGOT-4318: More missing spawn eggs (2018-08-27)  ++* 908516f10 - Fix some formatting in CraftLootable (2018-08-27)  ++* c2cbdc5ab - SPIGOT-4316: Do even less processing when block placement without physics requested (2018-08-27)  ++* f59857471 - SPIGOT-4313: Unsupported plugin should not crash server (2018-08-27)  ++* 479ec05e3 - SPIGOT-4310: Reset villager career level with trades (2018-08-27)  ++* 6dee81a6f - SPIGOT-4302: Use defaults when setting unplaced furnaces (2018-08-27)  ++* d0bb0a1d7 - Fix some tests randomly failing (2018-08-26)  ++* 997d378da - Fix client stall in specific teleportation scenarios (2018-08-26)  ++* b3dc23666 - SPIGOT-4307: Fix hacky API for banners on shields (2018-08-26)  ++* 2a271162a - SPIGOT-4301: Fix more invalid enchants (2018-08-26)  ++* 5d0d83bb9 - SPIGOT-4309: Add "forced" display of particles (2018-08-26)  ++* a67725788 - Add additional tests for CraftBlockData (2018-08-25)  ++* ce1af0c34 - Update to Minecraft 1.13.1 (2018-08-26)  ++* 162bda93f - Add note about 1.13.1 (2018-08-26)  ++* f41aae401 - Remove reflection from CraftBlockData (2018-08-25)  ++* 1bc24337d - SPIGOT-4304: Turtle helmet overrides water breathing potion (2018-08-24)  ++* 3418f8d7a - SPIGOT-4298: Block command sender returns wrong block (2018-08-22)  ++* ec86574b9 - README.md updates (2018-08-20)  ++* 903c0e30c - SPIGOT-4296: Ensure recipe group set in craft translation (2018-08-21)  ++* 89492315d - launchProjectile Fish -> FishHook (2018-08-20)  ++* 82f4b3b1d - SPIGOT-4292: Ignore itemstacks with invalid enchants (2018-08-20)  ++* bfb913149 - SPIGOT-4283: Allow setting recipe groups (2018-08-17)  ++* 06112946d - Fix whitespace issue in previous commit (2018-08-16)  ++* 375bc637b - SPIGOT-4276: Fix untyped statistics causing client errors (2018-08-15)  ++* 5bf0abb3a - SPIGOT-4281: Fix looting enchantment (2018-08-16)  ++* b865db3b2 - SPIGOT-4278: EntityChangeBlockEvent for turtles laying eggs (2018-08-16)  ++* 1728eb298 - SPIGOT-4279: Move turtle egg interact event (2018-08-16)  ++* 7c341e9be - Fix StructureGrowEvent originating from dispensers (2018-08-15)  ++* 452a17380 - SPIGOT-4271: Fix API error when enderman are not carrying a block (2018-08-15)  ++* 4a2410866 - SPIGOT-4261: Missing turtle / phantom spawn egg meta (2018-08-13)  ++* c0df4b82d - SPIGOT-1936: LootTable API (2018-08-12)  ++* 15da70670 - SPIGOT-4258: Add Player.updateCommands method (2018-08-12)  ++* b47946ff1 - Fix regression in item priority conversion (2018-08-12)  ++* a0a27e587 - Switch around item conversion code as well (2018-08-11)  ++* 96778caab - SPIGOT-4253: Add way to prioritise item conversion (2018-08-11)  ++* 29e756487 - Expand GameRule API (2018-08-11)  ++* 50e6858b7 - Improve entity hierarchy by adding Mob interface. (2018-08-10)  ++* 0e1d79b44 - Correct error in previous patch (2018-08-10)  ++* eb36029f1 - SPIGOT-2719: Comparator and Observer don't trigger BlockRedstoneEvent (2018-08-09)  ++* 4487c1f9d - SPIGOT-4245, MC-128441: use target world as teleport destination (2018-08-08)  ++* c4220dc24 - Add Unit Tests for geHardness and getBlastResistance (2018-08-08)  ++* 53d3ac0a9 - SPIGOT-4238: Sometimes buckets are leaky client side when empty event is cancelled (2018-08-07)  ++* 200b23981 - SPIGOT-4233: Fix some missing handled NBT tags (2018-08-06)  ++* cfc67965f - Add merging and matching of parsed BlockData (2018-08-06)  ++* a9c796f12 - SPIGOT-4184: Fix furnaces not matching Vanilla smelt or animations (2018-08-05)  ++* 195f071e3 - SPIGOT-4219: Event for PigZombies angering. (2018-08-05)  ++* 5e3082c7d - SPIGOT-4230: Improve legacy block types (2018-08-05)  ++* ec2095d9c - SPIGOT-4223: Fix inventories using the same TileEntity instance. (2018-08-03)  ++* 671581e33 - Fix gamerules in secondary worlds (2018-08-03)  ++* dabb1b930 - Potion particles should default to true (2018-08-03)  ++* 933115355 - SPIGOT-4217: Account for ShowIcon to allow custom tipped arrows to merge (2018-08-03)  ++* 69970127c - SPIGOT-4221: Update surrounding blocks for cancelled break/place (2018-08-03)  ++* 3006dee4c - Use CraftBlock.at helper (2018-08-03)  ++* 7dc473852 - SPIGOT-4212: EntityInteractEvent when an entity tries to interact with a door (2018-08-02)  ++* 2f17f677a - Tweak outdated windows (2018-08-03)  ++* 5d489ff4e - SPIGOT-3936: Add isInteractable to Material (2018-08-02)  ++* 391e018a7 - SPIGOT-4220: Player/Entity interact events when turtle eggs are stepped on (2018-08-02)  ++* 4587569c0 - Fix ChunkData material alone being treated as legacy (2018-08-03)  ++* 80c43fc1d - SPIGOT-4214: Catch attempts to create BlockData for items (2018-08-02)  ++* 272426acd - SPIGOT-4199: Riptide related APIs (2018-08-02)  ++* ab5599e8f - Pre size legacy hash tables (2018-08-02)  ++* 8e87d0314 - SPIGOT-4205: Cancelled damage should not anger pig zombie (2018-08-01)  ++* a0c7bcf02 - Fix merchant inventories with custom titles (2018-08-01)  ++* a3b7e3433 - SPIGOT-4204: Allow passing data to AreaEffectCloud particles (2018-08-01)  ++* d474030e1 - SPIGOT-4198: Pockets of darkness in the air (2018-07-31)  ++* 549d9b012 - SPIGOT-4029: Add event for commands being sent to client (2018-07-31)  ++* 5cfa68387 - SPIGOT-4194: Call BlockFadeEvent for coral (2018-07-31)  ++* e013bf432 - SPIGOT-3917: Add EntityDropItemEvent (2018-07-31)  ++* c79e28e62 - SPIGOT-4192: Fix cancelling dispensers removing water sources (2018-07-31)  ++* 03c1273b5 - SPIGOT-4197: Account for double trapped chests (2018-07-31)  ++* 8592585b9 - Fix ancient style event call in PlayerDropItemEvent (2018-07-30)  ++* 3f9d7f777 - Move persist flag check (2018-07-30)  ++* 98f429233 - SPIGOT-4190: Move ChunkLoadEvent call (2018-07-30)  ++* c3a8de037 - SPIGOT-227: Add entity persistent flag (2018-06-14)  ++* bef764020 - SPIGOT-4185: Bubble columns not working on mobs (2018-07-30)  ++* 23dc9a027 - Update default spawn-limits (2018-07-30)  ++* 0b274effb - SPIGOT-4188: Fish not dispensing from buckets (2018-07-30)  ++* b94fd7c7e - Include class path in legacy conversion errors. (2018-07-30)  ++* 3b8f5be77 - SPIGOT-1714: Draft API for player list header / footer (2018-07-29)  ++* 2ba567f29 - SPIGOT-4182: Implement cursor captions (2018-07-29)  ++* 4d0e2b7d8 - Give turtle eggs a spawn reason (2018-07-29)  ++* f68afdb0c - SPIGOT-4178: Add another BlockPhysicsEvent call site (2018-07-29)  ++* 6a1dc5bb7 - SPIGOT-4177: Change behaviour of item display names yet again (2018-07-29)  ++* ff9bab10b - Update default config links (2018-07-28)  ++* 212fd0f23 - SPIGOT-4166: Fix Tags being corrupted by early access (and not reflecting reloads) (2018-07-28)  ++* e3c21decb - SPIGOT-4171: Advancement description not showing (2018-07-28)  ++* 392108bf9 - SPIGOT-4168: Patch up some legacy calls (2018-07-28)  ++* 5c2585068 - SPIGOT-1588: Fix cancelling mount related events (2018-07-28)  ++* d5b95a283 - Fix growing large dark oak trees (2018-07-28)  ++* 4d3ef4821 - SPIGOT-4164: Treat new _AIR blocks as air (2018-07-28)  ++* 4b0082322 - Use SpawnReason.NATURAL for Phantom spawning (2018-07-27)  ++* 3d7f2f07d - SPIGOT-4161: Missing BlockDispenseEvent for Waterlogged (2018-07-27)  ++* 0891fc1c4 - SPIGOT-4160: StructureGrowEvent not triggering for giant trees (2018-07-27)  ++* 095239d4c - SPIGOT-4159: Fix Player.launchProjectile(Trident.class) (2018-07-27)  ++* 5d881a926 - Add SpawnReason.DROWNED (2018-07-26)  ++* e70d864f0 - SPIGOT-4140, SPIGOT-4157: World generation errors (2018-07-26)  ++* 420f5fa77 - Add draft BlockFertilizeEvent (2018-07-26)  ++* 1ef1ffd66 - SPIGOT-4137: Fix World.regenerateChunk (2018-07-25)  ++* 3599dbe3c - SPIGOT-3981: Make custom inventories return specialised types where practical. (2018-07-25)  ++* 9646d8d78 - SPIGOT-4147: Fix ItemFrames not able to be placed UP or DOWN (2018-07-24)  ++* 88d89792f - SPIGOT-4141: Untouched filled maps not saving (2018-07-25)  ++* 49a2604e1 - Fix scute dropping (2018-07-24)  ++* 9cfb0090d - SPIGOT-4135: Fix DOLPHINS_GRACE PotionEffectType Wrapper. (2018-07-24)  ++* 46e5eeb67 - SPIGOT-4128: Skip hopeless entity conversion (2018-07-24)  ++* 210001701 - SPIGOT-4132: Fix missing break in RedstoneWire.setFace (2018-07-24)  ++* ca75fead2 - SPIGOT-4131: Fix typo affecting setting BlockData (2018-07-24)  ++* 19ff43d9e - SPIGOT-4128: Greatly improve spawn egg deserialization (2018-07-24)  ++* 7357d7237 - SPIGOT-4123: Fix display names cleared by plugins / serialization (2018-07-24)  ++* f732acf24 - Add map ID API (2018-07-24)  ++* fbf903a1b - SPIGOT-4120: Store BlockData enum mappings per class (2018-07-24)  ++* ea7b61290 - SPIGOT-4122: Fix an instance of legacy item inequalities (2018-07-24)  ++* 38adf52b2 - SPIGOT-4119: Incorrect slot type in InventoryClickEvent (2018-07-24)  ++* 6a109cf6b - SPIGOT-4124: Fix misplaced PISTON_HEAD (2018-07-24)  ++* 587014503 - SPIGOT-4116: Increase command tab spam threshold (2018-07-23)  ++* 30ab12cf4 - SPIGOT-824: SpongeAbsorbEvent (2018-07-23)  ++* b50bb15f5 - SPIGOT-4110: Fix spawning withers (2018-07-23)  ++* 155b17305 - SPIGOT-4112: scoreboard display names are not nullable (2018-07-23)  ++* d4297cbe2 - Just throw section signs into components a la Mojang (2018-07-23)  ++* 11542134c - SPIGOT-4109: Wall skulls not dropping (2018-07-23)  ++* 5b93c39d4 - SPIGOT-4106: Fish from buckets despawn (2018-07-23)  ++* 1c7adf74e - Always return captured tiles from chunks as well. (2018-07-22)  ++* 4e2f57133 - Fix Player.playNote (2018-07-22)  ++* 1a6b4f539 - Update to Minecraft 1.13 (2018-07-22)  ++* 961295e43 - SPIGOT-4101: Turtle lightning strike causing crash (2018-07-21)  ++* e5d6f6b59 - SPIGOT-4024: Improve interactions of Vanilla tab completion, and also reloads (2018-07-21)  ++* dbc6c660e - Fix cancelling new effect events (2018-07-21)  ++* a8dc8d31d - SPIGOT-4099: Missing BlockFormEvent for concrete powder (2018-07-21)  ++* 889e17f99 - SPIGOT-4100: Ignore invalid item display names (2018-07-21)  ++* 7c0f69e44 - CraftBlock.toString shouldn't make legacy call (2018-07-20)  ++* 814c74255 - SPIGOT-840, SPIGOT-2522: [Draft] Add EntityPotionEffectChangeEvent (2018-07-20)  ++* fa6e97a8f - SPIGOT-4064: Fix BlockPistonRetractEvent for regular pistons (2018-07-20)  ++* 66b62a63b - Fix bad old API call in CraftBlockState (2018-07-20)  ++* ca1af9368 - Update EntityChangeBlockEvent to new BlockData API (2018-07-20)  ++* 49ac8a744 - SPIGOT-4074: Fix createBlockData succeeding on garbage (2018-07-20)  ++* c1d9f9422 - SPIGOT-4050: Snow erasing block below it (2018-07-19)  ++* 6c944b216 - Fix issues converting certain chunks (2018-07-19)  ++* 80fefcf5e - SPIGOT-4047: Ignore non-existent potions (2018-07-19)  ++* fc1b10757 - SPIGOT-4046: Fix selectors in tick functions (2018-07-19)  ++* 80f4c10c8 - SPIGOT-4044: Cannot load datapack functions on startup (2018-07-19)  ++* 40f15832b - SPIGOT-4048: Fish disappear when they cannot be picked up (2018-07-19)  ++* 595ec6472 - SPIGOT-4049: Books lose NBT data (2018-07-19)  ++* 92dceb827 - Revert "SPIGOT-4035: Enforce case-sensitivity for chat format code matching." (2018-07-19)  ++* 3e5fe3e40 - SPIGOT-4042: Fix emptying buckets onto slabs (2018-07-18)  ++* 65bc676ed - SPIGOT-4041: Fix regressed item naming (2018-07-18)  ++* 6fa4ae693 - SPIGOT-4040: Further increase team related limits (2018-07-18)  ++* 9c9800285 - Fix Block.setType alone being treated as legacy (2018-07-18)  ++* d48ecdeb4 - Delete Block.setData byte methods from API (2018-07-18)  ++* b9fd5c60e - SPIGOT-4020: Fix DustOptions colouring (2018-07-18)  ++* 15036eb75 - Fix changes that got lost late in development cycle (2018-07-18)  ++* f18d78282 - SPIGOT-4028: Improve legacy ItemStack conversion (2018-07-18)  ++* de019a35f - Tweak display of command completions when we have none (2018-07-18)  ++* e120b5d10 - Fix missing PlayerResourcePackStatusEvent (2018-07-18)  ++* 3e814e7b7 - SPIGOT-4034: Fix missed diff affecting canceled InventoryClickEvent (2018-07-18)  ++* 3791cf947 - SPIGOT-4037: Improve legacy BlockState.setData (2018-07-18)  ++* 404d6e776 - SPIGOT-4036: Handle regular/uncoloured shulker boxes (2018-07-18)  ++* a3b5ef2c3 - Amend previous unit test to use JSON rather than toString for validation (2018-07-18)  ++* d480dc74e - SPIGOT-4035: Enforce case-sensitivity for chat format code matching. (2018-07-17)  ++* a71d06a0c - SPIGOT-3998, MC-133373: Improve attributes (2018-07-17)  ++* 8c9dea83c - SPIGOT-4030: Improve CraftItemStack.hasItemMeta (2018-07-17)  ++* 1526726b5 - SPIGOT-4031: Improve bounds checking in CraftInventoryView. (2018-07-16)  ++* b4bff6fc3 - SPIGOT-4026: Clicking on command error suggestion should return verbatim input (2018-07-17)  ++* fa1340f7a - SPIGOT-4022: Improve utility of Entity.getName for non-players (2018-07-17)  ++* f03c10c18 - SPIGOT-4025: Fixed missed diff affecting PlayerLocaleChangeEvent (2018-07-17)  ++* 1fccb8950 - Fix completion of multiple arguments in Bukkit commands (2018-07-16)  ++* 926ea1045 - SPIGOT-4017: Increase Team related length limits (2018-07-16)  ++* e563bc00d - Command block names are not nullable (2018-07-16)  ++* 22e522923 - Standardise empty string as null / not set (2018-07-16)  ++* b6a757dec - SPIGOT-4016: Fix clearing custom names (2018-07-16)  ++* 84676f363 - Fix MapInitializeEvent firing every tick (2018-07-16)  ++* 8fbc72b71 - Add ignore-vanilla-permissions option to assist with disabling default commands (2018-07-16)  ++* 322f2f951 - CraftBanner also needs to use wool data (2018-07-16)  ++* 3890544e0 - SPIGOT-4015: Make CraftTeam tie into backing prefix/suffix (2018-07-16)  ++* ee3c26688 - SPIGOT-4008: Fix server-icon loading (2018-07-16)  ++* 00bba6e86 - SPIGOT-4010: Prefix / suffix compatibility should default to empty string (2018-07-16)  ++* 43eb8f312 - SPIGOT-4011: Clear error for plugin misusing ChunkData (2018-07-16)  ++* 82ca5c274 - SPIGOT-4006: ICE rather than SNOW forming in some biomes (2018-07-16)  ++* 10261f31d - Fish / Dolphin should be WaterMob, and WaterMob Creature (2018-07-16)  ++* b8ea9ec84 - SPIGOT-4004: Fix banner pattern colouring (2018-07-15)  ++* 60185a561 - Validate world in CraftServer.createChunkData (2018-07-15)  ++* 764b81ced - SPIGOT-4003: Fix TropicalFish.getType (2018-07-15)  ++* cfc30bb38 - Add javadocs to new CraftBlockData utility methods. (2018-07-15)  ++* fe7db9d53 - Add EntityToggleSwimEvent and isSwimming / setSwimming API (2018-07-15)  ++* 72cf620d4 - SPIGOT-4002: Fix usage of default: statements in 1.13 plugins compiled w/ Eclipse (2018-07-15)  ++* 421c1728c - Update to Minecraft 1.13-pre7 (2018-07-15)  ++* 57ab4cfc6 - Player metadata really should be keyed by UUID not name (2018-07-11)  ++* ca6d2cf9d - Add validation checks to CraftPlayer.teleport (2018-07-11)  ++* ab13683d8 - SPIGOT-3987: Preserve attributes when writing in books (2018-07-08)  ++* 6103339c0 - SPIGOT-3976: Add some additional toStrings to CraftEntity classes (2018-06-27)  ++* fbe304643 - SPIGOT-3619: Improve CraftScheduler#isCurrentlyRunning (2018-06-17)  ++* 2f3ed3b2d - Remove outdated build delay. (2018-06-17)  ++* 8cc5a7ecb - SPIGOT-3945: Remove RepairCost tag when cost is 0 (2018-05-23)  ++* d0a3620c2 - Implement Arrow tile methods (2018-05-01)  ++* 61ca7d92c - SPIGOT-3923: Defer PlayerInventory ItemStack change to 1.13 (2018-05-05)  ++* ca057a345 - SPIGOT-3920: Make player inventories consistently return null for empty stacks (2018-05-04)  ++* 1988d7f10 - Netty 4.1.24.Final (2018-04-30)  ++* 21d5f75d6 - SPIGOT-3908: Fix signed books incorrect defaulting to unresolved (2018-04-19)  ++* bea5a842b - SPIGOT-3904: Consolidate book handling code (2018-04-16)  ++* 4509a144d - SPIGOT-3899: Only load advancements from primary world (2018-04-15)  ++* 9060bfa9b - SPIGOT-3886: Plugin exceptions in map rendering should not crash server (2018-04-08)  ++* fb423b8f4 - SPIGOT-3883: Better reloading of pending unload chunks (2018-04-04)  ++* 68b4fb642 - SPIGOT-3882: Extra call site for VehicleEntityCollisionEvent (2018-04-02)  ++* 1daee5391 - SPIGOT-3879: Make end->overworld spawning more consistent with vanilla (2018-03-30)  ++* 2e210288d - SPIGOT-3875: Book selectors not resolving (2018-03-29)  ++* 9f49ad60e - Remove magic values in scheduler package (2018-03-07)  ++* aa255689c - SPIGOT-3869: More resurrect fixes (2018-03-24)  ++* 3fed09cc4 - SPIGOT-3869: Error when forcing EntityResurrectEvent (2018-03-23)  ++* 29705a0d4 - SPIGOT-3864: Protect against suffocation on world change (2018-03-22)  ++* 7e94e65a1 - SPIGOT-3845: Fix spawnRadius on respawn (2018-03-07)  ++* 3a482bdd4 - Add setTarget and getTarget to Slime. (2018-02-26)  ++* fb414fe10 - Add missing WEARABLE EnchantmentTarget (2018-02-19)  ++* 1bb523c4e - SPIGOT-3829: Apply some speed limits to all entities (2018-02-19)  ++* bacaf9274 - SPIGOT-3824: Return the direct vehicle of an entity, not the root vehicle (2018-02-16)  ++* fd702e4f4 - Fix incorrect unit test name (2018-02-16)  ++* f4ca1805d - Fix bad usage of setter in previous commit (2018-02-12)  ++* f8411ea1e - Expand Structure Block API (2018-02-12)  ++* 8bb4f6ccc - SPIGOT-3813: Player.setHealth not reliable in conjunction with attribute API (2018-02-12)  ++* 49ecc7c7a - SPIGOT-3812: Workbench from Bukkit.createInventory does not update (2018-02-12)  ++* 9ab298de7 - SPIGOT-3807: Improve getEyeHeight (2018-02-10)  ++* aa34e9bdd - SPIGOT-3805: Minecart does not teleport through Nether Portal (2018-02-09)  ++* e3b4cf5c2 - Netty 4.1.21.Final (2018-02-07)  ++* fe668ef73 - Update README.md (2018-02-07)  ++* 1c40a8182 - Expand EnderSignal API (2018-02-03)  ++* 015bda4b7 - SPIGOT-2911: Implement AbstractHorseInventory (2018-01-28)  ++* dac2a4a6a - SPIGOT-3784: Reset horse chests after event (2018-01-28)  ++* c7656468e - Expand CreatureSpawner API (2018-01-24)  ++* 4a030536c - SPIGOT-3775: ghost player list entry if kicked on join (2018-01-23)  ++* bdcc7c7b0 - Unit tests for Material.isItem (2018-01-16)  ++* bd308430b - SPIGOT-3751: BossBar flag methods reversed (2018-01-10)  ++* 67b763c5a - Fix Block PistonMoveReaction (2018-01-10)  ++* 1dced6a2c - Send complete metadata update to joining players (2018-01-08)  ++* 4119224ef - Fix opening shulker inventories (2018-01-08)  ++* c3e4382c3 - CauldronLevelChangeEvent does not use new level (2018-01-08)  ++* a3decfdca - Update Netty / MySQL / SQLite (2018-01-07)  ++* ab09b27ef - Remove a bunch of spurious _INVALID_ methods. (2018-01-05)  ++* dc7d31b00 - SPIGOT-3735: Missing call to BlockFadeEvent (2018-01-04)  ++* e40c9ef4b - print -> println in world start region preparation (2018-01-02)  ++* 360629ec5 - SPIGOT-3729: Add AreaEffectClouds to tracker (2018-01-02)  ++* 595eaaa8b - SPIGOT-3724: Make CraftMetaSkull work reliably for player skulls (2018-01-01)  ++* 950006003 - SPIGOT-355: API for Villager careers (2017-12-31)  ++* e1fb9cb64 - Send title timings before sending titles (2017-12-30)  ++* b5a10a9d6 - Remove unused private static final variable (2017-12-28)  ++* 8c37e2ebd - SPIGOT-3717: Fix some RCON commands (2017-12-26)  ++* 45c83860e - SPIGOT-3696: Clearing custom name of some blocks does not work (2017-12-16)  ++* 04595908e - Allow unloading all worlds except the main one (2017-12-16)  ++* fb4564cc3 - SPIGOT-2892: Fix some clone implementations and add unit test (2017-12-16)  ++* 2ee49b495 - Netty 4.1.18.Final (2017-12-12)  ++* 70cc3820c - SPIGOT-3686: Move entity event call earlier in method (2017-12-09)  ++* 6cb752ea0 - Add ChunkDataTest from PR #157 (2017-12-08)  ++* e46898a5e - SPIGOT-3684: Team#setColor does not trigger scoreboard update (2017-12-08)  ++* d063cd0d3 - Fix missing event call for BlockRedstoneLamp (2017-12-07)  ++* cfd693300 - SPIGOT-3664: Add Material getter to ChunkSnapshot (2017-12-07)  ++* 558c5a348 - SPIGOT-3663: Add plugin parameter to hidePlayer+showPlayer. (2017-12-02)  ++* 22564a917 - SPIGOT-3674: Take into account max stack size for PlayerDropItemEvent (2017-12-03)  ++* 809c399a6 - SPIGOT-3668: Missing EntityToggleGlideEvent in creative mode (2017-11-28)  ++* f46ccd763 - Fix some formatting in CraftEventFactory (2017-11-22)  ++* bdb882262 - SPIGOT-1505: PlayerItemMendEvent (2017-11-21)  ++* 19ed80cef - BUILDTOOLS-362: Downgrade surefire plugin to fix issues in Docker (2017-11-20)  ++* c432ecf86 - SQLite 3.21.0 (2017-11-18)  ++* dccd2763b - SPIGOT-690: Try to make force opened enchant tables work a bit better (2017-11-18)  ++* 74cd5fdfc - Add setSpawnLocation(Location) (2016-07-11)  ++* 6e0b0a1b5 - Don't special case 'invalid' usernames for UUIDs. (2014-04-20)  ++* c15d86944 - Use generics in health scaling methods (2017-11-17)  ++* b4c298d64 - Fix mismatched setArrowCount method (2017-11-17)  ++* 108fc362c - CraftMetaFirework: AssertionError -> IllegalArgumentException (2017-11-17)  ++* 685ed2eb9 - Fix dispensing bone meal not having the correct data value (2014-02-06)  ++* 9e23a80bc - Move animal-sniffer to development profile. (2017-11-17)  ++* 82f3b02c6 - SPIGOT-1891: Player.playNote should use RECORDS category (2017-11-14)  ++* adbfc1f98 - SPIGOT-3649: Backwards check in playEffect (2017-11-13)  ++* 61e0c69d5 - Netty 4.1.17.Final (2017-11-11)  ++* 25959fab2 - Add Score.isScoreSet()Z API. (2017-11-10)  ++* 353964045 - Catch all exceptions from plugin conversation handling (2017-11-10)  ++* 326c2e605 - SPIGOT-3644: Fix missed yaw callsite update (2017-11-09)  ++* 305df9035 - Implement max fuse tick & explosion radius methods to Creeper (2017-11-07)  ++* 3e3bbd427 - SPIGOT-3638: Don't process async chat on shutting down server (2017-11-08)  ++* c3047a5df - SPIGOT-3629: Greatly expand entity effect API (2017-11-07)  ++* 2fae23c25 - SPIGOT-3637: Adjust yaw yet again (2017-11-07)  ++* 53fccdf95 - Database drivers should be runtime depends (2017-10-29)  ++* 86fdf92ca - Update SQLite to 3.20.1 (2017-10-28)  ++* 1257322d1 - SPIGOT-3622: Issue in some combinations of spawn protection (2017-10-28)  ++* 31d3159f0 - SPIGOT-3613: Success count not reset for exceptions. (2017-10-17)  ++* b8f84f375 - Fix bad diff (2017-10-13)  ++* ef2f38267 - SPIGOT-3607: Bad yaw from armorstands treated as living (2017-10-13)  ++* 9ab758c7b - SPIGOT-3605: Spawn eggs not saving internal data (2017-10-09)  ++* 6733aa563 - SPIGOT-3603: Fix client timing out in scenarios where it sends no packets. (2017-10-09)  ++* 30da15647 - Fix zombie professions (2017-10-09)  ++* f8500c0a3 - SPIGOT-3598: Persist all beacon effects (2017-10-07)  ++* e8b6e4f29 - Temporarily shift L7 timeout value to L4 value of 30s. (2017-10-06)  ++* 362ed329f - Supress harmless teleport error (2017-10-01)  ++* 59fa98bfb - SPIGOT-3587: Set head rotation when spawning entity (2017-10-01)  ++* a3b3a421a - SPIGOT-3565: Head yaw is "more accurate" for living entities (2017-09-28)  ++* ee91bce15 - Fix active async tasks not cancelled by CraftScheduler#cancelTasks(Plugin) (2017-08-29)  ++* 94b098085 - SPIGOT-3571: Packet handling must be synchronous (2017-09-19)  ++* 9a1f5ee80 - Update to Minecraft 1.12.2 (2017-09-18)  ++* 8f472147b - Remove outdated build delay. (2017-09-14)  ++* 876d22cd5 - SPIGOT-3561: Fix selectors in SuccessCount (2017-09-09)  ++* 9e3636d82 - SPIGOT-3553: Add OfflinePlayer based methods to SkullMeta (2017-09-06)  ++* 178caf9ac - SPIGOT-3551: Recursively unrestrict advancements (2017-09-06)  ++* bde2a93cf - Add BukkitTask#isCancelled (2017-08-29)  ++* 8bf06d6cb - Upgrade to Netty 4.1.15.Final (2017-08-31)  ++* 79e55b6dc - SPIGOT-1107: Shift clicking and delegation for custom inventories (2017-08-18)  ++* 357b573a1 - SPIGOT-3513: Correctly set size for freshly spawned Minecarts (2017-08-16)  ++* 963b19c59 - Fix a few chunk saving race conditions (2017-08-11)  ++* 27b8bf911 - SPIGOT-3497: Cancelled EntityPortalEvent leads to incorrect behaviour (2017-08-08)  ++* 61a31ca0c - SPIGOT-3496, MC-92282: Set mob type of mob-spawner reverts after single spawn wave. (2017-08-08)  ++* e1f296d11 - Fix CraftBanner initialisation. (2017-08-07)  ++* b5878783a - SPIGOT-3491: Add option to bypass permissions in advancements (2017-08-06)  ++* 571760182 - Update misc depends (2017-08-05)  ++* 19507baf8 - Improvements to BlockStates (2017-08-05)  ++* 63029f4ff - SPIGOT-3492: Ensure player functionality uses their specific scoreboard (2017-08-05)  ++* 20ab5d3d1 - Add build delay back (2017-08-04)  ++* 2a927e863 - Update to Minecraft 1.12.1 (2017-08-03)  ++* 9a1fc1e2e - Remove outdated build delay. (2017-08-03)  ++* 57c323aad - SPIGOT-3486: Missing check in redstone placement (2017-08-03)  ++* b5dc294d3 - SPIGOT-3485: Launch shulker bullets as projectiles (2017-08-03)  ++* 2cfb85dae - SPIGOT-3487: Llama doesn't drop chest (2017-08-03)  ++* 86aa17fae - SPIGOT-3482: ProjectileHitEvent for shulker bullet and llama spit (2017-08-02)  ++* 2c5c611d0 - SPIGOT-3456: Expand calling of ServerCommandEvent (2017-07-28)  ++* d00c0574c - SPIGOT-3403: Add an EntityPickupItemEvent (2017-07-28)  ++* 5c4864398 - SPIGOT-3463: Spurious item drops from event (2017-07-28)  ++* d2aa6845f - Implement BroadcastMessageEvent (2017-07-16)  ++* b1b9ab0df - SPIGOT-3461: Standardise plugin load timing (2017-07-26)  ++* d35483b0e - Correct scheduler behaviour with intervals of >= Integer.MAX_VALUE (circa 3 years). (2017-07-25)  ++* 4670a84bd - SPIGOT-3432: Add playNote support for new sounds (2017-07-24)  ++* f078eed54 - SPIGOT-3440: Non player entities should not make new portals (2017-07-22)  ++* 5a12442f2 - SPIGOT-3433: Improve AreaEffectCloud#getSource (2017-07-22)  ++* 9a82fa778 - SPIGOT-3428: Recover from invalid firework data (2017-07-19)  ++* 3819f8dbe - Update Eclipse compiler. (2017-07-17)  ++* 49c2537fe - Fix memory leak in PlayerList (2017-07-17)  ++* c1b8cace2 - SPIGOT-3418: Packaging error causing wrong netty version to be used (2017-07-16)  ++* 70be90e16 - SPIGOT-3425: Correct slot type calculation (2017-07-16)  ++* b5df1f59f - SPIGOT-3423: Don't treat technical piston block as BlockStateMeta (2017-07-16)  ++* e03b1a556 - SPIGOT-3417: Event for shearing snowman (2017-07-15)  ++* 6659ddf11 - SPIGOT-3416: Cap team prefix / suffix at correct value of 16 (2017-07-13)  ++* af1c0139f - SPIGOT-3409: Improve performance of registering stupid amounts of permissions in plugin.yml (2017-07-10)  ++* 50b75cd65 - SPIGOT-3407: Set damager for evoker fangs (2017-07-08)  ++* 14b597f0c - Update to Netty 4.1.13.Final. (2017-07-07)  ++* 11323bf87 - Increase expiration time to two weeks. (2017-07-04)  ++* d60353984 - SPIGOT-3387: Prevent null enchantments in ItemMeta (2017-06-28)  ++* 0481ae963 - SPIGOT-3382: Ensure players can pickup stuff (2017-06-26)  ++* 9de5cb59a - SPIGOT-3377: Fix subspace bubble advancement (2017-06-26)  ++* 477fb2bb7 - SPIGOT-3381: Save older serialized enchants (2017-06-26)  ++* d7cd7275f - SPIGOT-3379: Generalise canPickupItems to other entities. (2017-06-26)  ++* de7608559 - SPIGOT-3376: Fix nested functions (2017-06-26)  ++* 258575110 - SPIGOT-3373: Fix /execute in gameloop functions (2017-06-25)  ++* 753a8e700 - SPIGOT-3324: Improve tameable damage handling (2017-06-24)  ++* 763827668 - SPIGOT-3368: Allow anvil level cost to be overwritten by properties (2017-06-23)  ++* 1314229dc - SPIGOT-3336: HideFlags will now serialize as a List rather than a Set. HideFlags will be serialized as a list and deserialized as an Iterable. This will allow maximum flexibility on both the formats it can be serialized into and formats it can be deserialized from. (2017-06-14)  ++* 5e2a23055 - SPIGOT-3364: Correct EntityResurrectEvent (2017-06-23)  ++* f3356f107 - Treat Vanilla commands as Bukkit Commands (2017-06-21)  ++* 03f1e37ae - Fix nether world border center not adjusting (2017-06-18)  ++* 4e27449ac - SPIGOT-3351: Replace bundled netty with 4.1.12.Final (2017-06-18)  ++* 6aa0fa320 - Increase expire time to 7 days (2017-06-17)  ++* a7d074c6c - SPIGOT-3329: Allow per world loot tables (2017-06-15)  ++* 885da4375 - SPIGOT-3342: Fix invalid usage of null in InventoryWrapper (2017-06-15)  ++* 732911efb - SPIGOT-3337: Use special data value to indicate multiple recipe choices (2017-06-15)  ++* f7d14f184 - Fix detection of missing or invalid tile entities for End portals and gateways (2017-06-12)  ++* 2a2d6d629 - Add PistonMoveReaction getters for Entity (2017-06-12)  ++* f85977ae6 - SPIGOT-3331: New map colours don't display (2017-06-12)  ++* ec47e791b - SPIGOT-3328: EntityTameEvent for Parrots (2017-06-12)  ++* 202da9777 - SPIGOT-3324: Best effort fix for shoulder Parrots + cancelled damage event (2017-06-11)  ++* 639aa0cf4 - SPIGOT-3320: Apply tile entity fixer to more types (2017-06-11)  ++* ed8c725d1 - SPIGOT-3304: Respect duration from Vanilla /weather (2017-06-09)  ++* 2c34c38d7 - SPIGOT-3303: Warn when attempting to grant non existent recipe (2017-06-09)  ++* 1b3122eef - SPIGOT-3302: Armor stands not dropping armor (2017-06-09)  ++* bb4ae3b3b - Update to Minecraft 1.12 (2017-06-08)  ++* fe3ca95c7 - Prevent NPE when setting tempt target to null (2017-06-03)  ++* 10daedccd - Add proper TeleportCause for /teleport (2017-06-04)  ++* 9a032b246 - SPIGOT-3290: /teleport command overrides player rotation (2017-06-04)  ++* 701b06494 - SPIGOT-3286: Call BlockFormEvent for Concrete Powder -> Concrete (2017-06-03)  ++* 921ba5355 - SPIGOT-3283: Don't allow plugin induced infinite velocity / position (2017-06-02)  ++* 9496c2dad - SPIGOT-3284: Allow TNTPrimed#getSource to return invalid entities (2017-06-02)  ++* e13d11968 - Update to Minecraft 1.12-pre6 (2017-05-30)  ++* c155d8dd3 - SPIGOT-3277: Fix Entity.eject() (2017-05-28)  ++* ccc420a95 - Add support for preventing block drops in BreakEvent (2017-05-27)  ++* c037fe3d4 - Add color API for Teams (2017-05-28)  ++* 44dd60ac2 - SPIGOT-3272: Fix duplicate creative inventory (2017-05-26)  ++* 274304b8c - SPIGOT-439: Add player locale related APIs. (2017-05-26)  ++* a479029a8 - Ensure gameLoop function gets selectors applied. (2017-05-26)  ++* c7920f430 - SPIGOT-3257: Issue with AdvancementRewards function (2017-05-21)  ++* 24147056e - SPIGOT-3258: VehicleBlockCollisionEvent only fires in certain directions (2017-05-21)  ++* cda27c992 - SPIGOT-3254: Check chunks are loaded before ticking entities as per previous versions. (2017-05-20)  ++* 4377dac13 - SPIGOT-3253: Fix entity yaw changes (2017-05-20)  ++* 100435299 - Update to Minecraft 1.12-pre5 (2017-05-19)  ++* 3ecbb59cb - SPIGOT-3248: Don't set shoulder compounds of EntityHuman to null (2017-05-17)  ++* 45102fcf2 - Misc advancement / recipe reload fixes including SPIGOT-3240 (2017-05-16)  ++* c41024056 - SPIGOT-3240: Temporarily stub out rarely used resetRecipes method to fix some issues. (2017-05-16)  ++* 240f16d1c - SPIGOT-3244: Downgrade MySQL driver to 5.1.42 - the current GA release (2017-05-15)  ++* 68b0515b5 - SPIGOT-3243: Remove recipe reset on world change / death (2017-05-15)  ++* 913c5a61f - SPIGOT-3242: Fix rain not showing client side (2017-05-15)  ++* 743252dbe - SPIGOT-3238: Add Server.advancementIterator (2017-05-15)  ++* 5195487ec - Update to Minecraft 1.12-pre2 (2017-05-14)  ++* 6e3cec8bc - Change book limit to allow for automatically generated colour codes (2017-05-14)  ++* 36e340281 - Remove outdated build delay. (2017-05-14)  ++* fcc5dcce5 - SPIGOT-3235: Disconnect for payload errors (2017-05-14)  ++* 2b6c9f40a - Set health before entity death. (2017-04-24)  ++* fbb47e838 - SPIGOT-3215: Call BlockPhysicsEvent for tall plants (2017-05-01)  ++* fecf4b413 - SPIGOT-3214: Allow book titles up to 32 even though they can't be created by a Vanilla client. (2017-04-30)  ++* d9d755226 - Implement getColor / setColor for Shulker entity (2017-04-29)  ++* a2af8f0a7 - SPIGOT-3207: Fix hiding players in a BukkitRunnable after joining (2017-04-27)  ++* 6194f6cc4 - Drop RegionFile.chunkExists() in favour of Mojang's own version (2017-01-31)  ++* 55a1f9ff1 - Implement getColor / setColor for TippedArrow (2017-04-26)  ++* 245383054 - Reset player arrow count on death (2017-04-26)  ++* 28d993cce - Skip invalid enchants in CraftMetaItem (2017-04-26)  ++* c19c2932b - Create NBT TypeId helper class (2017-04-21)  ++* 7b044defc - Remove players from vehicle when changing world via NMS methods. (2017-04-21)  ++* 0ab698655 - SPIGOT-3192: Return default value for invalid map icons (2017-04-21)  ++* 1c3428e53 - Add small throttle to book edits. (2017-04-20)  ++* 4acd0f49e - Enforce proper limits on books. (2017-04-20)  ++* be9ef980b - Implement cooldown API (2017-04-19)  ++* e04a1793a - Inventory getContents Cleanup (2017-04-17)  ++* e17c3d285 - Make CraftJukebox.isPlaying locally consistent (2017-04-16)  ++* 473febc73 - Add correct interfaces for comparator / daylight detector (2017-04-16)  ++* ac405c3cd - Fix some blockstate consistency issues. (2017-04-15)  ++* 1ac133ecc - SPIGOT-3182: Fix tab-completion in command blocks without leading slash (2017-04-13)  ++* d219213e2 - Fixes to mob equipment behaviour (2017-04-08)  ++* 1f6c04c0f - SPIGOT-3165: Only increment spawncount when mob spawn succeeds (2017-04-06)  ++* 41a7d14f8 - SPIGOT-3162: Experience ignored for custom recipes (2017-04-03)  ++* b5f7b6d69 - SPIGOT-3157: Use Vanilla gamemode change code (2017-03-31)  ++* 7dd77d734 - SPIGOT-3154: Sleeping players cannot change dimensions (2017-03-30)  ++* d09304e5d - SPIGOT-3144: Add missing PrepareAnvilEvent call. (2017-03-25)  ++* 186c351a3 - SPIGOT-3149: StructureGrowEvent for dispenser triggered growth (2017-03-24)  ++* f4822eb93 - Add additional methods sigs for binary compat (2017-03-24)  ++* 319013857 - Add Chunk.isSlimeChunk to check if a chunk can spawn slimes (2017-03-23)  ++* 4959e46f5 - Add TeleportCause.COMMAND for inbuilt /tp (2017-03-24)  ++* 7ea2fbb6e - Add Material.isFuel to check if a material is a furnace fuel. (2017-03-23)  ++* 31a852d61 - SPIGOT-3142: Plugin event changes not using TeleportCause.PLUGIN (2017-03-24)  ++* acf544e77 - SPIGOT-3141: Missing TeleportCause.SPECTATE when lift clicking spectate (2017-03-24)  ++* 91c315273 - Fix trailing whitespace in CraftChunk (2017-03-23)  ++* cf05cccd1 - SPIGOT-3143: Don't decrease item stack size if VehicleCreateEvent is cancelled (2017-03-21)  ++* 257d6cd04 - Process entity portalling towards the end of a tick. (2017-03-20)  ++* b80055abf - Properly validate player experience bar progress (2017-03-19)  ++* dfee3d9f9 - Add getWidth + getHeight for Entity (2017-03-18)  ++* 2aa5ac6c9 - SPIGOT-3128: Shift VehicleCreateEvent calling. (2017-03-15)  ++* 251e4c921 - SPIGOT-3126: Make fireballs do a better job of respecting mobGriefing (2017-03-15)  ++* 2ad21b87f - Ensure PlayerResourcePackStatusEvent is synchronous (2017-03-14)  ++* aa522c91a - Add getIgnitingBlock to BlockBurnEvent (2017-03-08)  ++* eac85911f - Don't call super update on unplaced command block metas (2017-03-10)  ++* 962ffda1a - Add more notch inventory conversions (2017-03-10)  ++* d6aa73d16 - SPIGOT-3114: Initialize custom SHULKER_BOX slots (2017-03-10)  ++* 4316a8c24 - SPIGOT-3110: SHULKER_BOX InventoryType (2017-03-08)  ++* 7a7c64714 - SPIGOT-3107: Try and improve shield knockback further (2017-03-08)  ++* 7fce67144 - SPIGOT-3108: Hack around mirroring empty item stacks (2017-03-08)  ++* cb44e932b - SPIGOT-3105: BlockFadeEvent for large snow blocks (2017-03-08)  ++* cb61ac040 - MC-111753, SPIGOT-2971: Brewing stand not reloading (2017-02-21)  ++* 64277ec9b - SPIGOT-3075: EntityTeleportEvent for Shulkers (2017-02-20)  ++* 4448a7efa - SPIGOT-3068: API for localized item names (2017-02-16)  ++* 1a710213d - SPIGOT-3067: Wither skeleton heads not dropping (2017-02-15)  ++* 4c8d89551 - SPIGOT-2152: Method to set resource pack + hash. (2017-02-14)  ++* 2683195ec - SPIGOT-3063: Call EntityAirChangeEvent (2017-02-14)  ++* a55211772 - SPIGOT-3054: Correct LLamaSpit launching (2017-02-09)  ++* 3c48711c0 - SPIGOT-3051: Set pitch/yaw for spawned boats (2017-02-06)  ++* a1d3777d8 - Update SQLite to 3.16 for performance improvements and architecture compat (2017-02-01)  ++* dfe4ed1c3 - Add implementation for LlamaSpit in ProjectileSource#launchProjectile (2017-01-31)  ++* 5ae629285 - Increase expiration time to two weeks. (2017-01-31)  ++* ed8a07329 - SPIGOT-3044: BlockDispenseEvent for shulker boxes (2017-01-31)  ++* 47c6a3685 - Update MySQL Driver Version to 5.1.40 (2017-01-31)  ++* c1aa85918 - SPIGOT-3040: Round health to float for validation (2017-01-28)  ++* 80dd971b5 - Make tile activeContainer assignment consistent. (2017-01-27)  ++* 16b5116c7 - SPIGOT-3033: Alter behaviour of cancelled hopper transfers (reverted from commit 334aa07e2fcadf347afa38196fd3ab09ca4dc3a7) (2017-01-26)  ++* dbf4ecf30 - SPIGOT-3037: WorldBorder#isInside(Location) (2017-01-26)  ++* 334aa07e2 - SPIGOT-3033: Alter behaviour of cancelled hopper transfers (2017-01-26)  ++* 46226d6a0 - SPIGOT-3031: Pigs are not dropping their saddle (2017-01-24)  ++* 4d3bf2015 - Re-enable the vanilla debug MethodProfiler and /debug command (2017-01-18)  ++* 7fdc749bf - Add API to set Arrow pickup status (2017-01-18)  ++* 775f1e1f7 - SPIGOT-3003: Fix custom dropper / beacons. (2017-01-11)  ++* f70936207 - SPIGOT-3002: Mob spawners are valid (2017-01-11)  ++* 27dd3ca45 - SPIGOT-2997: Explicitly disallow invalid tiles to be opened (2017-01-10)  ++* 270755dc0 - Fix crash if entities other than players (somehow?) consume their item. (2017-01-09)  ++* 730bb6ac8 - 10 day build expire (2017-01-09)  ++* d5e7885c2 - SPIGOT-2990: EntityTeleportEvent for tameable animals following owner (2017-01-05)  ++* c91863850 - SPIGOT-2989: Use existing horse inventory object. (2017-01-05)  ++* 059434ce9 - SPIGOT-826: Add method to retrieve entity by UUID (2017-01-04)  ++* 7e1932584 - SPIGOT-2640: API for multiple passengers per entity (2017-01-04)  ++* ce89845fd - SPIGOT-1915: Fix players seeing their own passengers (2017-01-04)  ++* 63b5f7d33 - More robust inventory handling (2017-01-04)  ++* 613be0d84 - SPIGOT-2980: Improve SpawnEgg NBT application and ItemStack conversion. (2017-01-02)  ++* a6d8fa2ea - Recover spawn egg data from UNSPECIFIC meta. (2017-01-02)  ++* bf8303f25 - Clear effectsToProccess after applying potion effects (2017-01-02)  ++* 5715b3a6d - SPIGOT-2977: Pass setAmount(0) through to wrapped ItemStack. (2017-01-02)  ++* e2a288c86 - SPIGOT-2969: Shulker box removal not updating comparators (2016-12-28)  ++* 70bc70b4e - SPIGOT-2966: Entirely remove problematic check (2016-12-28)  ++* f9e044059 - SPIGOT-2960: Fire HOTBAR_MOVE_AND_READD in more cases (2016-12-27)  ++* 056af8b9c - SPIGOT-2964: Correct number of shelve sin PrepareEnchantEvent (2016-12-27)  ++* 7c743ff64 - SPIGOT-2963: Endless loop in CraftHumanEntity#openMerchant (2016-12-27)  ++* 50acb4477 - Increase expire time to 7 days (2016-12-26)  ++* 1c7dfaebe - SPIGOT-2957 getSeaLevel() should return the real sea level, not a hard-coded value (2016-12-25)  ++* 0fb3f8b47 - Correct some code. (2016-12-24)  ++* 96f03d906 - SPIGOT-2127: Add DamageCause.ENTITY_SWEEP_ATTACK (2016-12-23)  ++* 746cf0f0d - Additional fireworks damage tracking. (2016-12-23)  ++* 622add845 - MC-88491: Fix projectile colliding with shooter (2016-12-22)  ++* e232e1519 - SPIGOT-2953: Set damager for fireworks (2016-12-22)  ++* 13a5b1220 - SPIGOT-2944: Just apply filtering to players (2016-12-22)  ++* a86731306 - Update to Minecraft 1.11.2 (2016-12-21)  ++* fb50a80d0 - SPIGOT-2948: Alter filtering logic (2016-12-21)  ++* 8ea0c87f5 - Update to Minecraft 1.11.1 (2016-12-21)  ++* c8ff65136 - SPIGOT-2936: Simplify WorldBorder diff (2016-12-19)  ++* 4602331b1 - SPIGOT-2930: Shift calling of PlayerItemBreakEvent to before break. (2016-12-18)  ++* 7f313269d - SPIGOT-2926: Check spawn-npcs setting for NPCs. (2016-12-17)  ++* 532457e41 - SPIGOT-2923: Added PotionEffectType#getColor() (2016-12-16)  ++* 217358e84 - SPIGOT-2924: Improve handling of Jukeboxes playing nothing. (2016-12-17)  ++* 0a6a5cb4a - SPIGOT-1036: Add API to manipulate sendTitle timings. (2016-12-16)  ++* 655d8407c - SPIGOT-2918: Always call EnchantItemEvent (2016-12-14)  ++* c6d684425 - SPIGOT-2913: Only one enchantment applied to items (2016-12-13)  ++* 4f479728e - SPIGOT-2912: Fix enchanting with ID of 0 (2016-12-12)  ++* c4baa9cdf - Add getLocation for InventoryEnderChest (2016-12-11)  ++* 0a81101bd - Add EnchantmentOffer to PrepareItemEnchantEvent (2016-12-11)  ++* 7e02867f0 - SPIGOT-2242: Handle changed item in PlayerPickupArrowEvent (2016-12-10)  ++* aa257534d - SPIGOT-2524: Update inventory for cancelled air right click (2016-12-10)  ++* 7dfa53039 - SPIGOT-2907: Improve EntityResurrectEvent handling (2016-12-10)  ++* 03c4bf224 - SPIGOT-2908: Correctly spawn LlamaSpit (2016-12-10)  ++* 622630c82 - Clean up BlockFlowing (2016-12-09)  ++* f9eddf3f6 - SPIGOT-2886: Call BlockFormEvent when Lava and Water collide (2016-12-09)  ++* caf86c88a - Use CraftEventFactory for BlockFormEvent (2016-12-09)  ++* 521b64741 - Add API to get default value of an Attribute (2016-12-09)  ++* 0fa1ad23e - SPIGOT-2894: Preserve unreadable spawn egg data in memory (2016-12-07)  ++* 58bff62b2 - SPIGOT-2891: Remove chunks if first check is false (2016-12-06)  ++* bfbd868a3 - Implement pre-spawn API to allow modifications to spawned entities. (2016-12-06)  ++* 04202c0ac - SPIGOT-1592: Implement ItemMeta for Spawn Eggs (2016-12-06)  ++* 9dee10873 - SPIGOT-2890: SetBiome not saving changes (2016-12-06)  ++* 8c4397207 - Implement EntityDeathEvent for ArmorStands (2016-12-03)  ++* a710176e4 - SPIGOT-2889: Error cancelling creative InventoryClickEvent (2016-12-05)  ++* b64d85249 - #326: Convert BlockMeta to handle older serialized items. (2016-12-03)  ++* 9beb0c996 - SPIGOT-2879: Change order of entity addition for ender pearls (2016-12-03)  ++* 1d5439747 - SPIGOT-911: Add hitBlock to PorjectileHitEvent (2016-12-02)  ++* b6ad714e8 - SPIGOT-2871: Improve BlockStates + BlockStateMeta (2016-12-02)  ++* 4d99feddd - Reduce outdated build delay further. (2016-12-01)  ++* eb6c1bf31 - Add some expansions to Anvil Inventory API (2016-11-30)  ++* 6d5a66f00 - SPIGOT-2867: Update inventory on cancelled interacts too (2016-11-30)  ++* fffaf0711 - Fangs degree => radians (and back) (2016-11-30)  ++* 8d7e4d17e - Expand definition of isFrozen (2016-11-30)  ++* ff324aabe - SPIGOT-2862: Cannot spawn evoker fangs (2016-11-30)  ++* 41ade2f29 - SPIGOT-2860: Don't create 0 exp orbs when breeding (2016-11-29)  ++* 1c07d5c78 - Add hitEntity to ProjectileHitEvent (2016-11-28)  ++* 2ba48b496 - SPIGOT-2855: Empty ItemStacks in PlayerDeathEvent drops (2016-11-28)  ++* c91ca4a54 - Build expiry is now 1 week (2016-11-28)  ++* 0a1e0455e - SPIGOT-1401: Issues placing blocks adjacent to eachother (2016-11-28)  ++* d7cce99f0 - Fix possible leaks in vanish API (2016-11-28)  ++* ad0e4b31b - SPIGOT-2850: NPE in CraftInventoryCrafting (2016-11-27)  ++* 27d625184 - SPIGOT-2695: Added BrewingStandFuelEvent and added fuel level to the BrewEvent (2016-11-24)  ++* 6e887cd94 - Added method for spawning a falling block with the BlockData (2016-11-26)  ++* 2b7808f41 - Fix banner color. Banners have inverted color bytes. (2016-11-25)  ++* 78c761434 - SPIGOT-2842: Improve item age handling (2016-11-25)  ++* c3d951ddc - Farmland is a pickable block (2016-11-24)  ++* 5245147d0 - SPIGOT-619: Force rotate head of entities when setting location. (2016-11-23)  ++* 281376dfb - SPIGOT-2833: Tile entities occasionally wiped after placement (2016-11-24)  ++* a0d5a841d - SPIGOT-2836: ProjectileHitEvent not always firing for FishHook (2016-11-23)  ++* 83fd16e45 - SPIGOT-2835: CraftBlock getDrops Returns Air (2016-11-23)  ++* c1462a24d - SPIGOT-2765: Special case entity triggered explosions for HangingBreakEvent (2016-11-23)  ++* 7691c87df - SPIGOT-2824: Llama Strength API (2016-11-23)  ++* b5b0a97d4 - SPIGOT-2822: Droppers are droppers (2016-11-22)  ++* a64b99c95 - Add Unbreakable to ItemMeta (2016-11-22)  ++* 7359112e8 - Implement default title for custom merchants (2016-11-22)  ++* 6220b5c54 - SPIGOT-2817: Custom Merchant title omits color (2016-11-22)  ++* 691628ab5 - Fix setCarryingChest not resizing horse inventory (2016-11-21)  ++* 0b154b185 - SPIGOT-2272: Add API for virtual Merchants (2016-11-21)  ++* 7fc4255d1 - SPIGOT-2810: Fix entity statistics (2016-11-20)  ++* ac99d7d47 - SPIGOT-2807: Update inventory when attack cancelled (2016-11-20)  ++* 95436219a - SPIGOT-2806: Fix PlayerDropItemEvent for disconnected players (2016-11-20)  ++* 221508dce - Fix cancelling PlayerEditBookEvent (2016-11-19)  ++* eed13ca54 - SPIGOT-2800: Can only smelt 63 stack (2016-11-19)  ++* 0f7c38594 - SPIGOT-2801: Missing break in CraftMetaBlockState (2016-11-19)  ++* 092243c35 - SPIGOT-2799: ItemFrame set null error (2016-11-19)  ++* 89e6712cd - Add additional APIs for Evoker / EvokerFangs (2016-11-19)  ++* bd2d7935c - Implement isCursed for new enchantments (2016-11-18)  ++* fa1a44ab5 - Change style of PAIL comments in README.md (2016-11-19)  ++* 1d01e4157 - SPIGOT-2798: Fix ShulkerBox BlockStateMeta (2016-11-19)  ++* ead445ec9 - Attempt to sync damage up again - golden apples this time (2016-11-19)  ++* 7564d6024 - Add stopSound for specific sound category & unit test for SoundCategory (2016-11-19)  ++* 63c13c5e6 - Implement SoundCategory for playing sounds. (2016-11-19)  ++* 32048c469 - SPIGOT-2795: InventoryClickEvent issues (2016-11-19)  ++* 26377b763 - Get Colors from ShulkerBox; Implement CustomName for Tiles. (2016-11-18)  ++* f15e07b1a - SPIGOT-2793: Revert Nameable changes (2016-11-19)  ++* 88eede85c - SPIGOT-2792: Return PIG for broken spawners (2016-11-18)  ++* 8095a750e - SPIGOT-2790: Remove negative item ID filtering again (2016-11-18)  ++* 0805f6044 - SPIGOT-2789: ShulkerBox missing override (2016-11-18)  ++* 5e51afde4 - Get Colors from ShulkerBox; Implement CustomName for Tiles. (2016-11-18)  ++* 93b824411 - SPIGOT-2787: Keep performing getter null conversion at call sites (2016-11-18)  ++* 0c3bb7648 - SPIGOT-2777: Mobs not being angered by snowballs (2016-11-18)  ++* 4bf2fc878 - SPIGOT-2786: Restore some fireworks code lost in update (2016-11-18)  ++* 486ba9f48 - Update to SQLite 3.15.x (2016-11-18)  ++* 4f63973eb - SPIGOT-2782: Custom Colors for Potions (2016-11-18)  ++* d8c6364c4 - Remove more redundant code (2016-11-18)  ++* 17e6e857b - SPIGOT-2779: NPE when spawning firework with plugin (2016-11-18)  ++* a0269d8e7 - SPIGOT-2784: Fix Withers not being built (2016-11-18)  ++* b2f82f0f7 - Remove now redundant code (2016-11-18)  ++* 64032adfd - Remove unit test based on now incorrect assumptions (2016-11-18)  ++* 162e96132 - SPIGOT-2772, SPIGOT-2780: Improve empty ItemStack handling (2016-11-18)  ++* 129efc132 - SPIGOT-2771: Safely execute command block commands (2016-11-18)  ++* 0dedba43d - SPIGOT-2773: More fully implement ShulkerBox meta (2016-11-18)  ++* 2dd38f2dc - SPIGOT-2785: Wrong effect ID for wither sounds (2016-11-18)  ++* a951a8839 - SPIGOT-2770: Can Place Structure Blocks Even When Not Op (2016-11-17)  ++* 54450b727 - SPIGOT-2768: Fully implement map color (2016-11-17)  ++* c25ddf063 - Update to Minecraft 1.11 (2016-11-17)  ++* 51263e971 - Implement Entity Scoreboard Tags (2016-11-06)  ++* cb2749768 - SPIGOT-2757: Player#stopSound Stops All Sounds (2016-11-06)  ++* 33071ecff - SPIGOT-2752: Fix resetMaxHealth (2016-11-04)  ++* 709783c13 - Add Enchantment#isTreasure()Z (2016-10-25)  ++* 251a5b638 - Explicitly log exception from asynchronous tasks. (2016-10-24)  ++* 2e39de698 - SPIGOT-1903, MC-98153: Portal Location Sync Issues (2016-10-23)  ++* d86d282f6 - SPIGOT-2738: Revert SPIGOT-1903 fix (2016-10-23)  ++* fd8d8cf40 - SPIGOT-2737: Implement Statistic.PICKUP (2016-10-22)  ++* b6490dada - SPIGOT-2706: Implement support for Lock NBT Tag (2016-10-21)  ++* 8e5e90d5e - SPIGOT-1903: Only issue player location update after tick (2016-10-19)  ++* e20928f7d - SPIGOT-2726: Fix duplicate UUID check not always running (2016-10-15)  ++* b5fb9a1cd - SPIGOT-2686: Vehicles cannot collide with air (2016-10-12)  ++* 744e1a177 - Fix looting enchant using wrong variable (2016-10-10)  ++* 70aace031 - SPIGOT-2694: Update other half of door on BlockBreakEvent (2016-10-10)  ++* 270a3a66c - SPIGOT-2717: /execute over RCON (2016-10-09)  ++* 1cce906e1 - MC-54738: Fix ocean biome spikes due to minHeight sign inversion. (2016-10-06)  ++* 9558f31eb - SPIGOT-2711: CraftPlayer.getPlayerListName removes black colour (2016-10-05)  ++* ae93d4fb4 - SPIGOT-2705: Portal cooldown getter / setter. (2016-10-01)  ++* c1b529edd - SPIGOT-2683: Missing BlockDispenseEvents (2016-09-19)  ++* 6af9f5b84 - SPIGOT-2679: Add meta for StructureBlock (2016-09-18)  ++* 75a8885d1 - Run sync tasks scheduled for the same tick FIFO (2016-09-10)  ++* bae15259e - Remove unneeded change (2016-09-11)  ++* 8788b79a4 - SPIGOT-2639: Better state validation (2016-09-05)  ++* 48b88ed20 - SPIGOT-2656: HumanEntity#isHandRaised()Z (2016-09-04)  ++* fafcfd752 - SPIGOT-2653: Better align combustion with vanilla behaviour (2016-09-03)  ++* 4d87c3422 - SPIGOT-2644: Clearer error for invalid hanging spawns (2016-08-31)  ++* 43ab2669d - SPIGOT-2634: Concurrency issue in FileIOThread (2016-08-27)  ++* 2f5bda8a6 - SPIGOT-2630: Console tab complete (2016-08-26)  ++* 60c171935 - SPIGOT-2618: Register permissions before plugin enabled. (2016-08-25)  ++* c74e2a730 - SPIGOT-215: Implement infrastructure for Location tab completes (2016-08-25)  ++* 4db0855e3 - SPIGOT-2622: Ensure all players are safely disconnected on shutdown (2016-08-23)  ++* 4507d99ae - SPIGOT-2616: Fix dispensers dispensing TNT making squid sounds (2016-08-20)  ++* 5e5cf84f2 - SPIGOT-2581: EntityAirChangeEvent (2016-08-08)  ++* 6053c5c8a - SPIGOT-2578: Method to get PotionEffect of specific type. (2016-08-07)  ++* 29e1d7289 - SPIGOT-2574: BlockPopulators added twice. (2016-08-06)  ++* 83a9dbdef - SPIGOT-2559: Kill all entities when called with setHealth(0) (2016-07-30)  ++* 8cc595840 - Deprecate and stop using Java15Compat class. (2016-07-29)  ++* 21e3b0552 - SPIGOT-2552: Aliases for Vanilla commands (2016-07-26)  ++* 09f1a1960 - Hook into World for light getters due to additional validation. (2016-07-25)  ++* 9ff3d7f51 - SPIGOT-2548: Don't special case spawn locations of falling blocks (2016-07-23)  ++* 2a5461deb - Enhance Beacon Block API (2016-07-23)  ++* 7655e38a4 - Implement basic Beacon Block API (2016-07-18)  ++* f5d891f60 - SPIGOT-2537: Relax skull check even for nominally invalid skulls. (2016-07-22)  ++* 7ae605218 - Fall back to name if skull has no uuid when getting player. (2016-07-22)  ++* 7f9fbe54b - Simplify a few diffs (2016-07-15)  ++* 301db84d3 - SPIGOT-2520: Better skull validation (2016-07-13)  ++* ca1bb1c44 - SPIGOT-2495: Better validation of Skulls. (2016-07-12)  ++* 0df416d67 - SPIGOT-113: Add save status to ChunkUnloadEvent (2016-07-11)  ++* a625e4567 - SPIGOT-2427: Fix missed diff in armor damage handling (2016-07-10)  ++* 54902261c - SPIGOT-1994: Revert collisions to Vanilla behaviour (2016-07-10)  ++* 02d704b55 - SPIGOT-2503: Optimize block set (2016-07-08)  ++* 9c02c1217 - SPIGOT-2481: Implement EnchantmentTarget.BREAKABLE (2016-07-08)  ++* e3b4dd3d9 - Call EntityChangeBlockEvent for Fire Arrows hitting TNT (2016-07-08)  ++* d7c257e12 - SPIGOT-2490: Villager farming event (2016-07-08)  ++* a327d9f1d - SPIGOT-2504: Save structure info for secondary worlds (2016-07-08)  ++* 2239ff0f9 - SPIGOT-2501: Remove period from default quit message (2016-07-07)  ++* 67b242440 - SPIGOT-1515: Use CUSTOM reason for GENERIC damage (2016-07-02)  ++* 1628ce624 - SPIGOT-2474: Use .die() to set entity remove status (2016-07-02)  ++* 56813c7ff - SPIGOT-1468: ENDER_PEARL SpawnReason (2016-07-01)  ++* 3804ba654 - SPIGOT-1373: Implement EntityTargetEvent for TEMPT. (2016-07-01)  ++* d3507d281 - SPIGOT-1364: sendMap should update entire map (2016-07-01)  ++* 45038571f - SPIGOT-1341: Cancelled cake interact decreases client hunger (2016-07-01)  ++* 8db0dbfc4 - SPIGOT-1405: Call EntityChangeBlockEvent for Rabbits eating Carrots (2016-06-30)  ++* 121dfc098 - SPIGOT-1288: Sounds played for cancelled BlockPlaceEvent (2016-06-30)  ++* 6b843d995 - SPIGOT-1284: Run scheduler consistently within a tick (2016-06-30)  ++* 1faaa340e - SPIGOT-1283: Copy data directory on world import in case it's required (2016-06-30)  ++* 647056048 - SPIGOT-1264: Spurious BlockFadeEvent (2016-06-30)  ++* 37d08c52c - SPIGOT-1224: InventoryClickEvent issues for containers opened during event (2016-06-30)  ++* 939423a8f - SPIGOT-1181: Ensure Minecart command updates visually (2016-06-30)  ++* 5f61739cb - SPIGOT-1132: Duplicate Minecart interact event (2016-06-30)  ++* 1fe19a83f - SPIGOT-1129: Fix spawning leash hitch without adjacent block (2016-06-30)  ++* 4c4385662 - SPIGOT-1599: Allow teleporting disconnected players (2016-06-30)  ++* 287ef7889 - SPIGOT-2461: Call player tick specifically (2016-06-28)  ++* 00359a18f - SPIGOT-2456: Don't wipe tiles if type is still the same (2016-06-27)  ++* 0ebb9c7af - BUILDTOOLS-251: Make much of Bukkit locale independent (2016-06-26)  ++* 568e27fbd - Fix air setting block updates (2016-06-26)  ++* 4c1e9342c - SPIGOT-1039: Improve DoubleChest semantics (2016-06-25)  ++* f068c5e84 - MC-100524: Fix log files getting overwritten (2016-06-22)  ++* df75eebc2 - MC-80966 / SPIGOT-957: Send additional lighting data (2016-06-25)  ++* ecf4b4238 - SPIGOT-924: Compute attributes one last time after quitting (2016-06-25)  ++* 341da0730 - SPIGOT-611: Improve setBlock for tile->tile transitions (2016-06-25)  ++* 504735476 - Bump MC version (2016-06-25)  ++* 75f99ec7c - Update to Minecraft 1.10.2 (2016-06-25)  ++* 1953f52da - SPIGOT-2439: Consistently fire Chunk(Load|Unload)Event (2016-06-21)  ++* 9af379fc4 - SPIGOT-1319: Add EntityBreedEvent (2016-06-18)  ++* 63839165b - Fix infinite loop when saving chunks (2016-06-18)  ++* 9856d8a18 - Improvements to BookMeta API (2016-06-14)  ++* 02f4218da - SPIGOT-2414: Repeated disconnects (2016-06-15)  ++* 71cd505d4 - SPIGOT-2405: Better event for combust due to fire (2016-06-15)  ++* fb568fdc7 - SPIGOT-2408: setTicksLived does not properly affect FallingSand (2016-06-13)  ++* 7f1a32252 - SPIGOT-2385: RegionFileCache synchronization issues (2016-06-12)  ++* 7964365c8 - SPIGOT-2398: Armor stands still need to be treated special for gravity (2016-06-12)  ++* ac58f3840 - SPIGOT-2348: EntityTeleportEvent cancellation (2016-06-12)  ++* 1f507256e - SPIGOT-2322: Chunks generating with missing / corrupted data. (2016-06-12)  ++* f642d4bcc - SPIGOT-2397: More calls to VehicleEntityCollisionEvent (2016-06-12)  ++* e2ff10bdc - SPIGOT-1124: Changed To-Location on Teleport event ignored (2016-05-30)  ++* 0bc2724e5 - SPIGOT-2376: Way to distinguish Zombie professions. (2016-06-11)  ++* 46233ffa8 - Add Player.stopSound (2016-06-11)  ++* 6cbdec1f1 - SPIGOT-2381: Use custom spawnreason for dropItem (2016-06-12)  ++* 1c2593826 - SPIGOT-2389: Zombie.setVillager inverted (2016-06-12)  ++* fa83b1b80 - SPIGOT-2388: Damage must be nulled out in some circumstances (2016-06-12)  ++* d5ecbd0e9 - SPIGOT-2387: Magma does not provide a block for EntityDamageEvent. (2016-06-11)  ++* 3ae3ea08f - SPIGOT-1550, SPIGOT-2306: Custom payload / book + event fixes (2016-06-11)  ++* 6d3efa063 - SPIGOT-2380: Hitting in the air will always load the chunk at 0,0 (2016-06-11)  ++* 10c10b312 - SPIGOT-2366: Fix a missed diff PortalTravelAgent.patch (2016-06-09)  ++* 5fc80916f - SPIGOT-2369: Tab completing non existant command (2016-06-09)  ++* 5a55e1386 - SPIGOT-2365: Missed hanging diff (2016-06-09)  ++* b2f31b74d - SPIGOT-2364: Fix hanging placing. (2016-06-09)  ++* 885f4dce9 - Restore some Vanilla behaviour to fix magma blocks (2016-06-09)  ++* 9b4ad2a45 - Add DamageCause.HOT_FLOOR (2016-06-09)  ++* 8b9460126 - Better map Zombie/Villager professions. (2016-06-09)  ++* a8a4bedd2 - Update to Minecraft 1.10 (2016-06-09)  ++* 0cd0397a8 - SPIGOT-249: Set skull owner by UUID (2016-06-01)  ++* a28041daa - SPIGOT-1292: BlockState based FlowerPot API. (2016-06-01)  ++* cee5bbf00 - SPIGOT-783: API for book generation data. (2016-06-03)  ++* dd0e968c6 - SPIGOT-713: APIs to manipulate Entity's silent status. (2016-05-27)  ++* 5ff377a9b - SPIGOT-2336: Zombie.setVillager(Z)V (2016-05-31)  ++* 5ae53e0d5 - SPIGOT-2335: EntityCreeper.setPowered (2016-05-31)  ++* 71e5248c8 - SPIGOT-636: Decouple EntityCombustByEntity from damageEntity (2016-05-28)  ++* 106ced01e - Implement PlayerChangedMainHandEvent (2016-05-27)  ++* 3c19fef26 - SPIGOT-2321: Fully check Vanilla command permissions (2016-05-26)  ++* 042911fef - SPIGOT-2311: Cancelling PlayerPortalEvent causes invulnerability until relog (2016-05-25)  ++* ef3ccc94e - SPIGOT-2315: Neighbour chunk unload marking (2016-05-25)  ++* a022dd22f - SPIGOT-2303: Use getChunkIfLoaded (2016-05-22)  ++* 8982e3f33 - SPIGOT-2297: Reintroduce getChunkIfLoaded (2016-05-22)  ++* d8637dfb7 - Implementation of interface to modify the pumpkin head "derp mode" of a snowman (2016-05-18)  ++* 88157110a - Implement TabCompleteEvent (2016-05-16)  ++* 4e19de129 - SPIGOT-2285: New CommandBlock types. (2016-05-16)  ++* 88123f056 - SPIGOT-2286: Don't store CraftBlockState light level (2016-05-16)  ++* 6d133d544 - SPIGOT-2282: Get loaded chunk (2016-05-15)  ++* 3d0ed18e3 - Fix CraftBukkit crash report details not showing (2016-05-15)  ++* 23da8b0ab - SPIGOT-2270: Retain Java 6 compat (2016-05-12)  ++* 901c5327f - SPIGOT-2271: Custom furnace experience error (2016-05-12)  ++* e22506f96 - Use direct chunk access for neighbour counts on unload (2016-05-11)  ++* 7e9122e74 - Fix some [but not all] chunk unload issues (2016-05-11)  ++* c5e9a169f - Minecraft 1.9.4 (2016-05-10)  ++* 4cb32587a - SPIGOT-2255: Nether Structure generation ConcurrentModificationException (2016-05-07)  ++* ed60c0179 - SPIGOT-2134: Use the correct listener in CommandExecute (2016-05-01)  ++* 935f18b47 - SPIGOT-2206: playEffect doesn't accept sub classes of the expected data type (2016-04-26)  ++* 4377b86b2 - SPIGOT-2218: Drop horse chest on death (2016-04-26)  ++* 22dcde52c - Ignore movement packets from dead players. (2016-04-24)  ++* 7a6b1433e - SPIGOT-2213: Fix custom anvil inventory (2016-04-24)  ++* d884ab38d - SPIGOT-2211: Fix offhand slot client refresh (2016-04-24)  ++* 78434e891 - Remove debug message. (2016-04-23)  ++* b103841da - SPIGOT-2171: Fix shield blocking sounds (2016-04-20)  ++* 199b11bdd - SPIGOT-2157: Fix enderman not playing their animation when attacking (2016-04-20)  ++* a4786c824 - SPIGOT-2134: Support /execute being chained (2016-04-20)  ++* f060bba1c - SPIGOT-2043: Ensure VehicleMoveEvent is always fired for boats (2016-04-20)  ++* b5a4d0714 - SPIGOT-2014: Respect the spectatorsGenerateChunks gamerule (2016-04-20)  ++* b70058afa - SPIGOT-2191: Fix a missed diff from 1.8.8 (2016-04-17)  ++* f6313791d - staticify backported method (2016-04-12)  ++* 1e2fcb38e - Backport changes from 16w15a (2016-04-12)  ++* a28f87a55 - Missing import (2016-04-11)  ++* 767f02805 - Properly validate boss bar progress (2016-04-11) <2008Choco> ++* 420b983d5 - Fix broken potion serialization (2016-04-10)  ++* d39a75070 - SPIGOT-2085 / SPIGOT-2087 / SPIGOT-2156: Rework internal PotionMeta state to be correct and less complex. (2016-04-09)  ++* 8cb1b362e - Begin console output with ANSI line erase. (2016-04-08)  ++* 5c23262f1 - Update physics on attached block when setting data of attachable blocks (2016-04-09)  ++* 11e8c6d33 - SPIGOT-2145: Add missed EntityTeleportEvent diff (2016-04-08)  ++* 8d16fc08f - Support integer data values for Effect.VILLAGER_PLANT_GROW (2016-04-06)  ++* 3dc138d98 - SPIGOT-2135: Also clear sit pathfinder on toggle status (2016-04-05)  ++* f326992b8 - SPIGOT-2128: Flint and steel duplicate place event (2016-04-04)  ++* 60cb5b560 - SPIGOT-2118: Fix crash on chunk regen (2016-04-04)  ++* 4cc1807b2 - SPIGOT-2092: Directly set sittging status (2016-04-04)  ++* f01861f80 - SPIGOT-2115: Fix entities being added to the world multiple times when teleported (2016-04-02)  ++* 048849ce5 - SPIGOT-2102: Don't reduce the movement limit below vanilla's default (2016-04-01)  ++* 420afc57e - Handle cases where Mojang uses an empty string for permission checks (2016-04-01)  ++* f92e01ba5 - MC-100382: Fix Pathfinding Memory Leak (2016-03-31)  ++* 6247aa00c - SPIGOT-2101: Check the result of damageEntity before applying knockback from sweep attacks (2016-03-31)  ++* 45bb40353 - SPIGOT-2098: Fix sound effects for 1.9.0 clients (2016-03-31)  ++* 8b61cc520 - Fix the default permission of /trigger (2016-03-31)  ++* 9dc467e4c - Fix a diff mistake in MobEffectList (2016-03-31)  ++* 6e527e5b8 - Update to Minecraft 1.9.2 (2016-03-30)  ++* 7fc5cd856 - Support Minecraft 1.9.2 (2016-03-30)  ++* 23ce4d1b9 - Add 1.9.1 support. (2016-03-16)  ++* 44216f12e - SPIGOT-2033: Re-add missed diff for entity.valid (2016-03-28)  ++* fc9ee90fc - Limit the length of byte arrays (2016-03-28)  ++* 15222c84b - SPIGOT-2074: Correctly set custom world settings (2016-03-28)  ++* cac90f623 - Arrows use interactable condition (2016-03-27)  ++* cd36f6f25 - SPIGOT-2060: Method to control whether entities collide (2016-03-27)  ++* 1ea1adc10 - SPIGOT-2056: Fix killedByTeam scoreboard criteria (2016-03-27)  ++* ea49b2eee - Implement getting / setting of Entity invulnerability (2016-03-25)  ++* 6067e54dd - SPIGOT-213: Add method to enable / disable AI for mobs (2016-03-26)  ++* 6bf25cde7 - SPIGOT-2034: Rework damage again, this time for snowballs. (2016-03-26)  ++* 955489455 - SPIGOT-2049: Send the right attributes when updating scaled health (2016-03-25)  ++* 99f22a5c5 - SPIGOT-2050: Add back code to only fire VehicleEnterEvent for loaded chunks. (2016-03-26)  ++* 6030bc464 - Fix a typo in CraftPotionUtil (2016-03-25)  ++* 8e5eab265 - SPIGOT-1746: Tile entities may not always tick. (2016-03-25)  ++* 18658965d - Apply DataConverters to ItemStack instances (2016-03-25)  ++* 0ff499cf0 - SPIGOT-2039: Correctly check Potion Tags both with or without the "minecraft:" prefix, and default to UNCRAFTABLE if there is a completely garbage value. (2016-03-23)  ++* 712213dac - Fix player dimension change invulnerability never getting unset when certain dimensions are disabled (2016-03-22)  ++* ace06bd9f - CraftComplexPart should return getParent()'s status in isValid (2016-03-22)  ++* 9a072ddc1 - SPIGOT-1733: Add PlayerPickupArrowEvent (2016-03-22) <2008Choco> ++* c5d27c5f6 - Only create PermissibleBase instance in CraftEntity the first time it is actually needed. Fixes static test cases for subclasses failing when perm field was instantiated. (2016-03-21)  ++* 5fe510da5 - SPIGOT-1934: Expand EnderDragon API - implement dragon phases (2016-03-15)  ++* 616a9687a - SPIGOT-1975: Fix falling blocks when height > 1 (2016-03-22)  ++* d4e50bef9 - Improve shield damage (2016-03-22)  ++* 52c7fc0a1 - Implement isEnabled / setEnabled for CraftMinecartHopper (2016-03-18)  ++* e56aa4665 - SPIGOT-1988: Chorus Plant Generation (2016-03-20)  ++* c91d092bc - SPIGOT-1993: Move hand check to proper location (2016-03-20)  ++* 622014a3b - SPIGOT-1984: Fix default interact state when sneaking (2016-03-20)  ++* 6cac62c64 - Fix strange potion diff (2016-03-20)  ++* 549962fea - SPIGOT-1991: Further damage fixes (2016-03-20)  ++* b3f6de0da - SPIGOT-1904: AreaEffectCloud events and additional API (2016-03-12)  ++* 02b26eec0 - SPIGOT-1986: Fix flying players spamming EntityToggleGlideEvent (2016-03-19) <0x277F> ++* a8eec15e5 - SPIGOT-1981: Another attempt at damage (2016-03-20)  ++* 105df861e - SPIGOT-1980: Register new brewing slot (2016-03-20)  ++* 4cd46b242 - SPIGOT-1976: Never unload in use chunks. (2016-03-19)  ++* 8269b9939 - SPIGOT-1968: Use correct explosion yield (2016-03-19)  ++* ff617f73c - SPIGOT-1956: Don't deplete projectile item when event cancelled (2016-03-19)  ++* 2bfda1f8f - SPIGOT-1680 / SPIGOT-1963: Improve damage blocking modifier accuracy (2016-03-18)  ++* a12b1a477 - Implement EndGateway#getExitLocation and EndGateway#setExitLocation(Location) (2016-03-16)  ++* f09f7d875 - Implement SpectralArrow#getGlowingTicks and SpectralArrow#setGlowingTicks(int) (2016-03-17)  ++* f33235096 - Implement SpectralArrow entity (2016-03-17)  ++* e80114dff - Implement EndGateway#isExactTeleport and EndGateway#setExactTeleport(boolean) (2016-03-16)  ++* 205982588 - Implement EndGateway#getExitLocation and EndGateway#setExitLocation(Location) (2016-03-16)  ++* da444904c - Implement EndGateway state (2016-03-16)  ++* 6efa87306 - Implement EnderCrystal#isShowingBottom and EnderCrystal#setShowingBottom(boolean) (2016-03-16)  ++* 8cd69933c - Implement Boat#getWoodType and Boat#setWoodType(TreeSpecies) (2016-03-16)  ++* 8b69bdd0d - Add hand used to BlockPlaceEvent. (2016-03-14)  ++* 45adbd9c6 - SPIGOT-1931: Call PlayerFishEvent before modifying hooked entities velocity (2016-03-15)  ++* 00d333414 - SPIGOT-1927: Don't allow circular entity riding (2016-03-15)  ++* feb2fd5e4 - SPIGOT-1930: Fix spam for EntityToggleGlideEvent (2016-03-14) <0x277F> ++* e43b2780a - SPIGOT-1914: Compare PotionEffectType objects using Object#equals(Object) when searching for a custom effect to remove (2016-03-13)  ++* 87e677ce4 - Add spawn reasons for entities involved in a skeleton trap (2016-03-13)  ++* ab8459e18 - SPIGOT-1532: Add PlayerSwapHandItemsEvent (2016-03-14)  ++* 0c7ae5614 - SPIGOT-1856 / SPIGOT-1920: Fix Statistic.DROP not returning value when provided with a Material (2016-03-13)  ++* 55a85357a - SPIGOT-1871: Fix wrong argument order in CraftMerchantRecipe (2016-03-13)  ++* cbebfa439 - SPIGOT-1849: Call EntityBlockFormEvent when an entity forms frosted ice using frost walker (2016-03-12)  ++* 6026dad12 - Fix switch case labelling and drop items check. (2016-03-12)  ++* 1386bd3dd - SPIGOT-1571: Add Entity Glide Events. (2016-03-12) <0x277F> ++* d0e326a07 - SPIGOT-1900: Stub out expensive and redundant method call (2016-03-12)  ++* 2bf333e0f - SPIGOT-1901: Fix projectile launching. (2016-03-12)  ++* 0619f0eb3 - SPIGOT-1725: Fix dynamic scoreboard criteria on non-main scoreboards (2016-03-12)  ++* 4a8818c5f - SPIGOT-1638 / SPIGOT-1673: Rework Potions API (2016-03-02)  ++* 75286088f - SPIGOT-1893: Wrong RegainReason for eating. (2016-03-12)  ++* 1fefbf9b9 - SPIGOT-1806: Implement HumanEntity#getMainHand (2016-03-11)  ++* 7d73fbba6 - SPIGOT-1875: Broken leashes not dropping (2016-03-11)  ++* 7d330bc9f - SPIGOT-1813: EntityCombustByEntityEvent not Cancelled (2016-03-11)  ++* c126d6101 - Backport a bug fix from the pre-release (2016-03-10)  ++* dd016e713 - SPIGOT-1847: Maps in non default worlds (2016-03-10)  ++* 4c3da3f6e - SPIGOT-1862: Fix banners withj shields. (2016-03-10)  ++* 68b72776a - Missing diff effecting frost walker ignoring entities (2016-03-09)  ++* a602cb2e8 - Call EntityChangedBlockEvent for water splash potions extinguishing fire (2016-03-09)  ++* daf45148d - SPIGOT-1526 / SPIGOT-1809: Expand Inventory API (2016-03-07)  ++* 5d90f9712 - SPIGOT-1845: Use correct hand for interact events (2016-03-08)  ++* 0705465a7 - SPIGOT-1841: Implement some of the missing EnderDragon events. (2016-03-08)  ++* 3cfd8ca3c - SPIGOT-1828: CraftBanner tile entity return null (2016-03-08)  ++* 3b375b354 - SPIGOT-1831: Chicken / sheep not dropping items correctly. (2016-03-08)  ++* bf43ca62a - SPIGOT-1816: Rework drop capture. (2016-03-07)  ++* ab83272e2 - SPIGOT-1820: Fix custom travel agent search radius. (2016-03-07)  ++* 20d9f644a - SPIGOT-1823: Use fast chunk lookup in CraftWorld also (2016-03-07)  ++* 0cd671108 - Fix regenerating chunks not updating visually (2016-03-06)  ++* a06e5cf8e - SPIGOT-1788: Correctly teleport the player back to their old location (2016-03-06)  ++* 8ad0cd089 - SPIGOT-1611: Make vehicles use the same speed checks as players (2016-03-06)  ++* 935349e3a - Fix issue with last patch. (2016-03-06)  ++* be0bbbabe - SPIGOT-1762: Call EntityChangeBlockEvent for boats destroying lily pads (2016-03-06)  ++* 55b0def5d - SPIGOT-1790: Fix bucket behaviour (2016-03-06)  ++* 23a94053b - Remove redundant syncInventory on world change (2016-03-06)  ++* dd745e884 - SPIGOT-1727: Fix ShulkerBullet.setTarget (2016-03-06)  ++* 972d33dd4 - SPIGOT-1573: Fix command blocks after respawning (2016-03-06)  ++* dd39fae86 - SPIGOT-1775: Pass in unshifted block for PlayerBucketEmptyEvent (2016-03-06)  ++* 50b4cb8e7 - SPIGOT-1749 / MC-99075: Call updateInventory as a temporary workaround for cancelled BlockPlaceEvent (2016-03-06)  ++* 92494d7db - Added a playSound method to World which accepts a String parameter. (2016-03-06)  ++* 3c1ec8a54 - SPIGOT-1663: Fix WorldBorder displaying in secondary worlds. (2016-03-06)  ++* b6bb6beb6 - SPIGOT-1768: Fix Eye of Ender with custom world generators. (2016-03-06)  ++* 97f001185 - SPIGOT-1764: Perform drops regardless of loot table (2016-03-06)  ++* 9e8c37728 - Update chorus fruit tele event destination. (2016-03-06)  ++* d6a61e3e5 - SPIGOT-1776: Replace BossBar.hide/show with visibility. (2016-03-06)  ++* 249c5f068 - SPIGOT-1773: Chorus fruit teleport reason (2016-03-06)  ++* ac251f0cf - SPIGOT-1613: Fix missed use of scaled health (2016-03-06)  ++* 45171f086 - SPIGOT-1772: Use correct statistics for entities (2016-03-05)  ++* 73eff0d75 - SPIGOT-1755: CommandBlock doesn't run on empty world (2016-03-05)  ++* e7537646f - Fix typo in README.md (2016-03-05)  ++* 60f01ef30 - SPIGOT-1626 / MC-98994: Fix slow chunk performance (2016-03-05)  ++* 94ba82430 - SPIGOT-1758: Apply correct ItemMeta to new CommandBlock types (2016-03-05)  ++* dcc45717b - SPIGOT-1751: Add missed PlayerFishEvent for FAILED_ATTEMPT (2016-03-05)  ++* ef13ca444 - SPIGOT-1549: Fix custom String sounds. (2016-03-04)  ++* 7863085a6 - SPIGOT-1721: Handle Enderman.getCarriedMaterial when not carrying. (2016-03-04)  ++* 6742811d6 - SPIGOT-1666: Expand Team option API (2016-03-03)  ++* 5a3813d7f - SPIGOT-1608: Add a way to get the hand used in PlayerInteract*Events (2016-03-04)  ++* 3e3516e3b - Treat ShulkerBullet as Projectile (2016-03-03)  ++* 9056e6655 - Enable support of PotionMeta on SPLASH_POTION, LINGERING_POTION and TIPPED_ARROW. (2016-03-02)  ++* 31caee5a9 - SPIGOT-1646: Capture the previous location earlier (2016-03-03)  ++* 23ad72b4c - SPIGOT-1683: Arrows are not projectiles (2016-03-03)  ++* e2c5473e0 - SPIGOT-1679: Shulker bullets are not projectiles. (2016-03-03)  ++* f5f09ffcb - SPIGOT-1634: Fix cancelling ServerCommandEvent (2016-03-03)  ++* 78578ca51 - SPIGOT-1676: Launch projectiles with velocity (2016-03-03)  ++* 4d3af9c19 - SPIGOT-1677: Fix attributes with only single underscore. (2016-03-03)  ++* 92439bb23 - SPIGOT-1674: Enable crafting of tipped arrows. (2016-03-03)  ++* ed8cef0ed - SPIGOT-1646: Don't move the player until after the PlayerMoveEvent completes (2016-03-02)  ++* 189652175 - SPIGOT-1632: Save secondary data for nether/end (2016-03-02)  ++* 978ceb7a3 - SPIGOT-1632: Fix a bug in EnderDragonBattle which prevented respawning the dragon in some cases (2016-03-02)  ++* 8447e4f3e - SPIGOT-1659: Fix a mistake in ChunkProviderServer that sometimes caused recursive chunk loads (2016-03-02)  ++* 6f032cdc8 - Fix a mistake in EntityEnderPearl causing a double teleport (2016-03-02)  ++* 3f534696a - SPIGOT-1644: Fire PlayerTeleportEvent with reason END_GATEWAY for end gateways (2016-03-02)  ++* bad994e72 - Don't round the location of playSound to the center of a block (2016-03-02)  ++* 09b4549a2 - SPIGOT-1640: Fix spawning particles that use MaterialData (2016-03-02)  ++* a5d4a933b - SPIGOT-1583: Fix scoreboard crash. (2016-03-02)  ++* ffacb6cf7 - SPIGOT-1624: Fix setPlayerListName (2016-03-02)  ++* 2fe69605e - SPIGOT-1605: Fix EntityChangeBlockEvent.setCancelled(Z)V (2016-03-02)  ++* b0411e879 - SPIGOT-1622: Add drop chance methods for off hand. (2016-03-02)  ++* 912dfae45 - SPIGOT-1623: Use correct spawnParticle overloads. (2016-03-02)  ++* 92602ad17 - SPIGOT-1610: Treat clicking on an inventory window as clicking outside it (2016-03-01)  ++* f8e38f2d9 - Fix chorus plants only straight growing up (2016-03-01)  ++* 1be3bd058 - SPIGOT-1607: Fix BlockPlaceEvent and BlockMultiPlaceEvent sometimes showing the wrong item used (2016-03-01)  ++* 4ca1f8990 - Manually calculate horses' jump power due to horse jumping being moved clientside (2016-03-01)  ++* 76c04254c - SPIGOT-1575: Fix PlayerInventory.setArmorContents (2016-03-02)  ++* be538b8a2 - SPIGOT-1582: Add SkullType.DRAGON (2016-03-02)  ++* dcbb2a45a - SPIGOT-1576: Add more new 1.9 enchants. (2016-03-02)  ++* 1d80ac2a7 - SPIGOT-1590: Ensure plugins are disabled. (2016-03-02)  ++* 7c2b0ab69 - SPIGOT-1596: BlockCauldron crash (2016-03-02)  ++* 0f297b39b - SPIGOT-1569: Remove negative itemstack data filtering (2016-03-01)  ++* 5122dcd61 - SPIGOT-1568: Fix jukeboxes (2016-03-01)  ++* 69e196f79 - SPIGOT-1567: Rework setItems to set slots correctly regardless of array reference. (2016-03-01)  ++* 4831c56cd - SPIGOT-1523: Add FLY_INTO_WALL DamageCause to fix Elytra crash v2. (2016-03-01)  ++* f0c37a167 - SPIGOT-1543: Return combined slots for PlayerInventory.getContents (2016-03-01)  ++* 32587ed8e - SPIGOT-1545: Populate Vanilla villager trades correctly. (2016-03-01)  ++* 41c02c0ef - SPIGOT-1528: Maintain static sound map due to oversight re: underscore :( (2016-03-01)  ++* fc2609dbb - SPIGOT-1540: Treat clicking on player model with ItemStack as none. (2016-03-01)  ++* 8b5c9c15b - SPIGOT-1541: Fix firework launching (2016-03-01)  ++* fdaa09b23 - SPIGOT-1536: Fix playNote (2016-03-01)  ++* 3879b98ac - Ignore FROSTED_ICE in meta unit tests. (2016-03-01)  ++* ea28c1e47 - SPIGOT-1523: Crash when flying Elytra into wall. (2016-03-01)  ++* f5d92d6b1 - SPIGOT-1525: Fix worldborder set. (2016-03-01)  ++* 5eceede8a - Fix accidental omission of R revision number in version. (2016-03-01)  ++* c19444420 - Remove BookEditEvent as a workaround for decompiler determinism issues. (2016-03-01)  ++* 3f5dfeb07 - Run Biome test with AbstractTestingBase (2016-03-01)  ++* aa008dff0 - Update to Minecraft 1.9 (2016-03-01)  ++* e1ebe524a - [SPIGOT-1494] Really fix player skulls with custom texture but without owner. (2016-02-17)  ++* 3f3c65f47 - [BUKKIT-3451] Use correct item amount for FurnaceExtractEvent. (2015-12-19)  ++* efe04b82b - Removed tried to add entity warning. (2016-02-05)  ++* 69fe73e7d - [SPIGOT-1465] Fix skulls with no owner not displaying texture. (2016-02-05)  ++* 039621dd4 - Strengthen CraftMetaSkull hasOwner method (2016-02-02)  ++* 930a59c68 - Remove the length limit on inventory titles (2016-01-29)  ++* 75593ab62 - SPIGOT-1308: Fix typo in PlayerList#sendAll (2016-01-22)  ++* 07c300164 - SPIGOT-1390: Fixed issues with Array.fill upper bound in setRegion (2016-01-01)  ++* d3e0b6fea - SPIGOT-1347: Don't change entity add behaviour, just print warning. (2015-12-17)  ++* 4ac23479e - Add some warnings from snapshot versions to check whether they are applicable in 1.8.8 (2015-12-15)  ++* 18fbb24b4 - SPIGOT-1235: Correctly validate MaterialData for playEffect. (2015-10-18)  ++* f4c67a5c3 - SPIGOT-1232: CraftServer.getPlayer(String name) returns incorrect results in some cases. (2015-10-14)  ++* 12698ea5a - SPIGOT-1230: Normalize null log names in ForwardLogHandler. (2015-10-10)  ++* efd6cb081 - Ensure the buffer for plugin messages is freed. (2015-10-07)  ++* 4a7472d0b - SPIGOT-1219: Allow ping without status query. (2015-10-03)  ++* d4e32cef0 - SPIGOT-759: Add FireworkExplodeEvent. (2015-09-30)  ++* 8cc1683e8 - SPIGOT-989: Cap assignment of pickup delays to Short.MAX_VALUE due to storage implementation constraints. (2015-06-21)  ++* 62a216966 - SPIGOT-1076: Add HurtEntities API for FallingBlock. (2015-08-01)  ++* a0d2928ba - Add a missing break statement for openInventory, fixes opening dropper inventories (2015-09-18)  ++* 2d4f577bb - Fixed how Dropper inventories are shown to players. (2015-09-17) <0x277F> ++* 701ae54ff - SPIGOT-1192: Restore some behaviour to entity.getNearbyEntities (2015-09-18)  ++* c3730616e - SPIGOT-625: Insert a small delay when shutting down to allow packets to have a better chance at sending. (2015-09-15)  ++* 9cd11117f - SPIGOT-1168: Fix setSleepingIgnored not working on spectators. (2015-09-06)  ++* 5e9f698fa - SPIGOT-1165: Restore getNearbyEntities behaviour to include spectators. (2015-09-06)  ++* 9a17f01ff - SPIGOT-949: Fix damage cooldown reducing explosion knockback (2015-08-31)  ++* 53fac9f1b - SPIGOT-1111: Fix ServerCommandEvent not being cancelled. (2015-08-08)  ++* 880a53248 - New ChunkGenerator.generate api for block ids and avoiding magic values. (2015-07-28)  ++* 5e8595628 - SPIGOT-1080: Added support for opening all inventories implementing Bukkit's Inventory class. (2015-07-30)  ++* 9935adc4e - Update for minor remapping changes. (2015-07-30)  ++* de5c26123 - Update to Minecraft 1.8.8 (Pre-)Release. (2015-07-27)  ++* d27e6d0c5 - Add a sane limit for name length (2015-07-25)  ++* 219686bda - Implement PlayerResourcePackStatusEvent. (2015-07-25)  ++* 2642f9b34 - SPIGOT-1068: Limit the number of patterns on banners (2015-07-23)  ++* dc40c528d - Correctly update the last location for a player on teleport (2015-07-23)  ++* a3cb1bcd9 - Give the README a small update. (2015-03-19)  ++* 58d972f1d - Correct handling of relative teleports for PlayerMoveEvent and PlayerTeleportEvent (2015-07-20)  ++* 83cb83dcd - Fix handling of changes to PlayerVelocityEvent.velocity by event callers. (2015-07-20)  ++* 3e9b5c93d - Prevent an Entity from riding itself. (2015-07-20)  ++* 87b9f46d7 - SPIGOT-1060: Allow custom generators to use block ids > 127 with bytes. (2015-07-18)  ++* 09ddd9b35 - SPIGOT-1051: CraftInventoryPlayer.setItem can cause NPE. (2015-07-18)  ++* af00fd2a2 - SPIGOT-1058: Fix lost player list capping to 60. (2015-07-18)  ++* 3d5ab8fca - SPIGOT-1055: Send empty string when RCON command is cancelled. (2015-07-17)  ++* bf4818b94 - Fix ItemStack.isSimilar(CraftItemStack) when HideFlags are set. (2015-07-15)  ++* b105298f2 - Simplify getPlayerExact / try for exact match first in getPlayer. (2015-07-13)  ++* 65cd4d79f - Simplify OfflinePlayer.getPlayer() logic. (2015-07-13)  ++* 1f73bbb56 - Simplify isOnline() logic. (2015-07-13)  ++* 55589cd36 - SPIGOT-1047: Fix RCON. (2015-07-13)  ++* 2359f6fcb - Implement ItemMergeEvent (2015-06-26)  ++* 8f9ff9f6f - Server Commands and Remote Commands are now Cancellable. (2015-07-12)  ++* a03743b3b - Add basic sendTitle / resetTitle API. (2015-07-10)  ++* f27339caf - SPIGOT-977: Use vanilla's handling for command messages for vanilla commands (2015-07-08)  ++* 7742e12af - SPIGOT-1018: Fix isFromBonemeal always being false (2015-07-08)  ++* e3b5669be - SPIGOT-915: Remove the getEntities filter (2015-07-08)  ++* e91aed81b - SPIGOT-986: Default back to skull ID 0 (SKELETON) whenever an invalid ID is encountered instead of throwing an AssertionError (2015-06-18)  ++* d432434fd - SPIGOT-980: Fix NPE when setting items of offline players (2015-06-10)  ++* 76c834a84 - Clean up World.getPlayers(). (2015-06-27)  ++* c9c233b79 - Fix modified fireworks from dispenser event (2015-06-13)  ++* 994b2aae3 - SPIGOT-892: Set chicken egg baby age before adding it to world. (2015-06-12)  ++* 0dfb243c8 - SPIGOT-436: Add accompanying getSpectatorTarget(). (2015-06-12)  ++* 8f0f4ed80 - Raise the limit slightly to account for colors (2015-06-12)  ++* 5d8467365 - Apply strict limits on the length of sign text (2015-06-12)  ++* a2d26409f - SPIGOT-970, MC-80484: Disallow NBT pick block on chests. (2015-06-12)  ++* b023c53e0 - Allow for the jline console to be overriden in normally unsupported enviroments (2015-06-11)  ++* 1880a9c0b - SPIGOT-973: Add marker API to ArmorStand (2015-06-09)  ++* f4ecc39ff - SPIGOT-436: Add spectator camera API. (2015-06-07)  ++* 53433de98 - SPIGOT-954: Don't send block animations or gamemode updates to players can't see the player (2015-06-07)  ++* 845336b51 - Serialize full skull item profile data in internal blob (2015-04-16)  ++* 04afd7917 - Use a Java 6 concurrent collection. (2015-06-07)  ++* 7330b853e - [SPIGOT-461] Use a more appropriate collection for conccurent UserCache (2015-06-07)  ++* 7723b90d9 - Fix HashTreeSet which went missing in the previous commit. (2015-06-06)  ++* a65e45d88 - [SPIGOT-946] Begin making use of access transforms to simplify patching. (2015-06-06)  ++* a6a57a96d - Update to Minecraft 1.8.7 (2015-06-05)  ++* e8c64031b - Update commands.yml headers (2015-06-01)  ++* 3eea5637b - Add PAIL comments to a few things. (2015-05-31)  ++* d33f0dd3b - Remove unused bukkit.yml options and update links / info. (2015-05-31)  ++* 6fe71f4c7 - Don't need to special case certain monster spawn eggs as Mojang has long since fixed those issues. (2015-05-31)  ++* 21681b372 - SPIGOT-941: Fix a mistake in vine handling (2015-05-30)  ++* 8c14eb49e - Handle a missed case with our vanilla permissions override (2015-05-30)  ++* 508489974 - [SPIGOT-424, MC-73474] Add fix for powered rail duplication. (2015-05-29)  ++* 55202e1f9 - Add ability to add a string to a scoreboard instead of a player (2015-05-12)  ++* e9980aa94 - BUILDTOOLS-114 / MC-80817 : Fix server not starting when native processor info cannot be initialized. (2015-05-29)  ++* d6ca19e07 - Remove a few redundant POM elements and global package seal (SPIGOT-221) (2015-05-28)  ++* c637b933d - Send the packet for the correct container, rather than just the container that is active at the time. - SPIGOT-932 (2015-05-27)  ++* 01930e268 - SPIGOT-738: Return explosion source for Fireball-induced explosions (2015-05-26)  ++* 75f835c07 - Send the set item packet to the client when an item is changed or added in a player's inventory - Addresses SPIGOT-883 (2015-05-21)  ++* b29f737cb - Don't toString disconnect message in console. (2015-05-26)  ++* b0e81a4ed - Update to Minecraft 1.8.6 (2015-05-25)  ++* d63abf6cf - Cut fluff from patch headers. (2015-05-25)  ++* 25de1e6ba - SPIGOT-769: Fix opening custom inventories. (2015-05-24)  ++* 7bc9c08eb - Default to BlockFace.SELF for null directions in getFacing (2015-05-22)  ++* 961287a4c - Check the value returned from useItemInHand() so plugins can properly cancel it - SPIGOT-764 (2015-05-22)  ++* 529e4cd74 - Update to 1.8.5 (2015-05-22)  ++* f87cd1a53 - Invalidate furnace block type after change. (2015-05-21)  ++* 65fba7fb1 - SPIGOT-834: Stop EnderMites from spawning when EnderPearl event is cancelled. (2015-05-21)  ++* 6ff422158 - SPIGOT-844: Use actual block when deciding to send visual updates for burning furnaces. (2015-05-21)  ++* 99449d5d8 - SPIGOT-854: Reset idle timer on disconnect to prevent spam duplicate disconnect. (2015-05-21)  ++* 3408adb00 - SPIGOT-887: Fix getOwner() on internal sheep inventories. (2015-05-21)  ++* 5e914463b - Readd missed diff (2015-05-20)  ++* db5fd9c79 - Update deprecation mappings to 1.8.4 (2015-05-18)  ++* a48660074 - Update to 1.8.4 (2015-05-05)  ++* 0a645a272 - Remove unneeded Java 1.5 Compat (2015-04-29)  ++* 772242889 - Add the ability for commandblocks to be sent messages via the API. (2015-04-13)  ++* ba325926d - Revert: Don't try and disconnect twice (2015-04-17)  ++* 7aaa83343 - Move a bug fix from Spigot to CraftBukkit (2015-04-16)  ++* ab309d78c - Fix NPE that could happen on teleporting (2015-04-16)  ++* 8e5e4c189 - SPIGOT-581: Allow for unhandled nbt tags to be serialized to yaml (2015-04-16)  ++* ea28011f1 - SPIGOT-697: Force metadata updates when interact events are cancelled (2015-04-15)  ++* f13d771bb - SPIGOT-795: Enable the vehicle's ai before teleporting (2015-04-15)  ++* 9fd06274c - Don't try and disconnect twice (2015-04-15)  ++* 5b2764148 - SPIGOT-798: Allow for CustomPotionEffects to be empty (2015-04-15)  ++* e4ca2af9c - Strip events from book pages on signing (2015-04-14)  ++* 815922ab1 - SPIGOT-802: Improve book handling (2015-04-14)  ++* a5b7881db - SPIGOT-645: Fix players/entities being dismounted when the destroy event was cancelled (2015-04-13)  ++* 643486f46 - SPIGOT-694: Fix a mis-placed diff causing the event to fire too early (2015-04-13)  ++* a25c96eda - SPIGOT-742: Throw an exception instead of passing null when the sender cannot be converted (2015-04-13)  ++* 85cf593df - SPIGOT-758: Capture head drops from charged creeper kills (2015-04-13)  ++* 889a5eca6 - SPIGOT-782: Don't drop exp if a plugin sets it to zero (2015-04-13)  ++* 35d953bac - Replace the two nextTickList sets with a single one that combines both (2015-04-13)  ++* 501372f2c - Special case record placement into juke boxes as they update their tile. (2015-04-10)  ++* 1a1bc08e3 - SPIGOT-762: Update damage taken stats on damage (2015-04-09)  ++* b4af37bf7 - SPIGOT-763: Directly changing to location in PlayerMoveEvent does not update location. (2015-04-09)  ++* 96c2c3924 - Implement World.getNearbyEntities (2015-04-06)  ++* 7d020a704 - Expand the isFinite checks to yaw and pitch (2015-04-03)  ++* 63e28b1c3 - Don't allow liquids to flow into unloaded chunks (2015-04-01)  ++* 61ef214f9 - Implement BlockStateMeta which allows creating and editting 1.8's blockEntityTag (2015-03-24)  ++* 7d0f836d0 - SPIGOT-720: Fix NPE in TileEntity.getOwner (2015-03-22)  ++* e387d8dc7 - Implement BlockExplodeEvent (2015-03-22)  ++* 22c613d86 - SPIGOT-725: Always return captured tile entities (2015-03-22)  ++* 970be7a44 - Fix thread safety issues in EntitySlice (2015-03-22)  ++* 3fce0ec0f - SPIGOT-729: Revert the entity slice move (2015-03-22)  ++* 0af2738ae - Fire PlayerTeleport event on portal travel (2015-03-21)  ++* 350cb9927 - Update the rename markers (2015-03-19)  ++* 234e60735 - SPIGOT-716: Fix regenerating chunks (2015-03-17)  ++* 30d751b36 - Move the entity slice loading (2015-03-16)  ++* 22ee41981 - SPIGOT-711: Correctly init captured tile entities (2015-03-16)  ++* 6fe6b3842 - SPIGOT-291: Change from scoreboard per a world to scorebard per a server (2015-03-16)  ++* 1cccea969 - Replace gitdescribe with scriptus (2015-03-16)  ++* 6323c683b - Reformat pom.xml (2015-03-16)  ++* 55f3a3ea9 - Capture tile entities and only place them in the event succeeds (2015-03-16)  ++* 7f609b12b - SPIGOT-705: Fix possible CME (2015-03-15)  ++* 6a374be73 - Fix possible tick list syncing issue (2015-03-15)  ++* 6e0120a05 - SPIGOT-323: Enchanting tables can no longer be force opened. (reverted from commit bbe75338c18624e66efd56b599d82eb476e5b76c) (2015-03-13)  ++* bbe75338c - SPIGOT-323: Enchanting tables can no longer be force opened. (2015-01-05)  ++* 5750ab640 - SPIGOT-693: Fix misplaced comment. (2015-03-13)  ++* 2acb9e4ec - SPIGOT-370: Remove LOCKED_CHEST (2015-03-11)  ++* 7f52bd6c9 - Fix getActivePotionEffects ignoring the particles flag (2015-03-11)  ++* 294d07dcc - SPIGOT-678: Fix the particles flag being ignored in PotionMeta (2015-03-11)  ++* 7a30c3117 - Don't run tasks when the server is stopping (2015-03-11)  ++* 20ef9f567 - SPIGOT-677: Add populators slightly later to make sure everything is initialized (2015-03-11)  ++* 5cb9b70aa - SPIGOT-665: Fix ghost blocks when cancelling piston events (2015-03-09)  ++* ad2f80609 - Only double switch if the dimension is the same (2015-03-08)  ++* d03ffbf54 - Readd the double dimension switch (2015-03-08)  ++* 091a7212b - SPIGOT-626: Add populators early to prevent chunks being missed (2015-03-08)  ++* e80218808 - SPIGOT-657: Set armor stand noclip flag in correct place. (2015-03-08)  ++* ce4a790d1 - s/R1/R2 - deprecation-mappings.at (2015-03-08)  ++* 21f6ee1f6 - SPIGOT-644: Attempt to fix a long standing issue by limiting the range of getEntities (2015-03-08)  ++* 1e56438ac - SPIGOT-654: Use the server player list instead of the world for boss spawn/death sounds (2015-03-07)  ++* 4e47c1c39 - Add a unit test for map colors (2015-03-07)  ++* 624c97f08 - Fix a null pointer issue with multiworld (2015-03-07)  ++* d8a9c7be4 - Update to Minecraft 1.8.3 (2015-02-26)  ++* 33d5de312 - SPIGOT-602: Kick players with non-finite locations (2015-02-26)  ++* ee6d0fa93 - SPIGOT-591: Optimize EntitySlice.iterator (2015-02-20)  ++* 1d63ff0d9 - SPIGOT-447: Fix dismount causing a quick remount (2015-02-20)  ++* b6e327256 - Make tab complete spam check more lenient. (2015-02-20)  ++* 3fc97ff11 - Remove the double dimension switch as the issue seems fixed, if it breaks something blame SupaHam (2015-02-18)  ++* 3ee97a30e - SPIGOT-586: Fix a mistake in CraftMetaItem (2015-02-18)  ++* aa92a4530 - Two more cases for BlockFire (2015-02-17)  ++* 1af2a2283 - Fix a missed case in BlockFire (2015-02-17)  ++* 726656b86 - Fix hashcode / equals / formatting. (2015-02-15)  ++* 0483f0f41 - Fix incorrect import in armor stands. (2015-02-15)  ++* 709f95833 - API for setting/getting hideFlags. Implementation of the hideFlags to be saved in NBT. (2015-02-15)  ++* 116514c16 - Implement armor stand event. (2015-02-15)  ++* 9648edfa6 - Add alternatives for deprecated methods (2014-12-17)  ++* 17a3db767 - SPIGOT-557: Fix incorrect target reason for attacking an entity (2015-02-12)  ++* daa0ce3d6 - SPIGOT-540: Fix an issue when mob effects were added during an event caused by a mob effect (2015-02-12)  ++* e81edfc72 - Update applyPatches to remove extra messages (2014-12-24) <0x277F> ++* 2c31a4b40 - If an enchanting table was force opened, default the world to the player's world for checks when dropping items. Fixes SPIGOT-408 (2015-01-31)  ++* f25cb6d94 - Fix the server stopping multiple times on shutdown (2015-02-07)  ++* b70ebbc9c - SPIGOT-536: Delay physics updates for tall plants until both parts are set (2015-02-07)  ++* 9ae33818a - Fix SPIGOT-528: Incorrect owner for merchant inventories. (2015-02-06)  ++* 0cf233dd6 - SPIGOT-527: Improve vanilla's ping handling (2015-02-05)  ++* 43207df1d - Fix some null pointer issues in ThreadPlayerLookupUUID (2015-02-05)  ++* 7bdb8f9f2 - Handle new players correctly (2015-02-04)  ++* bdd52c989 - Improve vanilla's rename detection by using bukkit's lastKnownName nbt tag (2015-02-04)  ++* f98775c93 - Re-enable the vanilla feature of changing the join message if a player has changed name since their last join (2015-02-03)  ++* 2f50138ba - Fix BlockIgniteEvent and BlockSpreadEvent being called with the wrong locations in some cases (2015-02-03)  ++* 217363084 - SPIGOT-512: Fix SmallFireballs ignoring isIncendiary (2015-02-02)  ++* 386dc55b8 - SPIGOT-465: Allow cancelling BlockPlaceEvent to preven wither spawns (2015-02-02)  ++* d3d136104 - Fix exceptions from tasks being ignored (2015-02-02)  ++* 4c6df1b96 - Fix a null pointer in ShapeDetectorBlock (2015-02-02)  ++* bbf72f306 - SPIGOT-508: Set noclip flag when changing armor stand gravity (2015-02-01)  ++* a956d73f1 - SPIGOT-506: Falling blocks are special too (2015-02-01)  ++* e87122e11 - Fix client chunk leak when preforming large block/chunk updates (2015-01-30)  ++* 5c49acdcc - SPIGOT-458: Events / game rules shouldn't affect fall damage onto soil. (2015-01-31)  ++* bae259e30 - SPIGOT-240: Fire physics events for crops dying. (2015-01-31)  ++* bc03b6f01 - SPIGOT-485: Special case TnT in explosions. (2015-01-28)  ++* 15e81cf55 - SPIGOT-449: Fix the wrong caller being used in chain execute commands (2015-01-25)  ++* 4b6df5adf - SPIGOT-456: Provide equals & hashCode methods for CraftObjective and CraftTeam (2015-01-25)  ++* df17927d4 - Fix PerMaterialTest skipping useful tests for certain blocks (2015-01-25)  ++* c8f17232c - SPIGOT-161: Don't apply velocity changes if we didn't damage on explosion. (2015-01-25)  ++* 0d52f683d - SPIGOT-469: Increment and print reload count. (2015-01-25)  ++* ec4ddfb22 - SPIGOT-468: Treat wither skulls as projectiles with a shooter for damage purposes. (2015-01-25)  ++* e08f5e3d3 - SPIGOT-451: Fix bad entities crashing servers when spawned via MobSpawner (2015-01-18)  ++* 1092acbdd - Rework piston events to only fire a retract event for sticky pistons (2015-01-19)  ++* 17962f66e - SPIGOT-443: Synchronize access to HANDLED_TAGS as Spigot uses it async (2015-01-18)  ++* 59dd2ddb9 - SPIGOT-438: Correct CraftScoreboard.getObjective NPEing instead of returning null for missing objectives (2015-01-17)  ++* 00eba538b - Fix mismatch between teams and player teams. (2015-01-17)  ++* 42ebec1f7 - SPIGOT-242: Fix scoreboard API. (2015-01-17)  ++* 8047b0a13 - SPIGOT-429: Use correct block for checking Block.b (canReplace) (2015-01-16)  ++* faa27ed29 - SPIGOT-418: Ensure vehicle events are fired. (2015-01-16)  ++* e6f9fd4dc - isThundering should just reflect thunder state. (2015-01-13)  ++* 93e7b199b - Fix the CraftWorld weather methods duplicating events. (2015-01-13)  ++* 0643caa88 - Use SpecialSource 1.2.1 - greatly reduced memory usage. (2015-01-12)  ++* 66f6bfdaa - Use release SpecialSource versions. (2015-01-12)  ++* d5e2e6e99 - Add animal sniffer plugin to check API usages. (2015-01-12)  ++* 1a84bacbd - Fix null pointer in ChatBaseComponent's hashCode method (2015-01-11)  ++* 5e6c347da - Fix SPIGOT-260: Item drops don't spill in correct place. (2015-01-03)  ++* 765881913 - Fix off by one in CraftRabbit. Fixes SPIGOT-392 (2015-01-10)  ++* 4470462a5 - SPIGOT-387: Remove redundant custom vehicle handling. (2015-01-09)  ++* ba8f63080 - Add missing synthetic flags to lastDamage (2015-01-09)  ++* 373090f74 - Bump to 1.2-SNAPSHOT (2015-01-09)  ++* 52a6c083d - Actually stage file (2015-01-09)  ++* 3c5131852 - Add ACC_SYNTHETIC back. (2015-01-09)  ++* a1ce1647a - Fix mistake in vine growth (2015-01-06)  ++* 7bd9a5a24 - SPIGOT-321: Fire damage event for EntityItem. (2015-01-07)  ++* 0c4761140 - SPIGOT-362: Specify a teleport cause for specatator teleports (2015-01-06)  ++* 96d09e378 - Use ECJ as the compiler, like Bukkit. (2015-01-05)  ++* 5b92dc3d0 - Whoops missed a file (2015-01-04)  ++* 6ac32df21 - Redirect execute through our command system and allow entities to be CommandSenders (2015-01-04)  ++* 922e0a1a7 - SPIGOT-341: Backport ender pearl spawning fix from 1.8.1 (2015-01-05)  ++* dde25d45e - SPIGOT-323: Allow force creating enchant table containers. Usefullness is not guaranteed. (2015-01-05)  ++* c99cdafd3 - SPIGOT-323: Enchanting tables can no longer be force opened. (reverted from commit 9784338acff089ad16bc6399fca13fe83d0a371a) (2015-01-05)  ++* 9784338ac - SPIGOT-323: Enchanting tables can no longer be force opened. (2015-01-05)  ++* 07fcb493a - Rewrite storm / thunder event handling to catch all cases. Fixes SPIGOT-335. (2015-01-05)  ++* e5c51c790 - Actually return. (2015-01-05)  ++* 93efa5a80 - "Fix" SPIGOT-349 - don't allow + or ! in path. (2015-01-05)  ++* c13376df5 - SPIGOT-178: Treat ItemStacks of 0 size as empty (2015-01-04)  ++* c05155869 - SPIGOT-296: Fix stack overflow when a dispense event is set to bonemeal (2015-01-04)  ++* d4eaf226f - SPIGOT-270: Fire inventory events for spectator mode (but cancelled) (2015-01-04)  ++* c4fd08543 - Fix kick messages being lost (2015-01-04)  ++* a28895313 - SPIGOT-217: Fix VehicleBlockCollisionEvent having the wrong block location (2015-01-04)  ++* ff66a9a65 - SPIGOT-354: Fix the version being incorrect for level.dat (2015-01-04)  ++* 08996835d - Merge pull request #75 in SPIGOT/craftbukkit from ~XOR/craftbukkit:fixbookserial to master (2014-12-28)  ++|\ ++| * e8e3ca29e - Add null check before iterating over iterator. (2014-12-28)  ++|/ ++* eae50b4f2 - Remove DEBUG_ALL_BLOCK_STATES due to it being broken (2014-12-28)  ++* 850a9e077 - Correctly close chests cancelled for cancelled inventory open events (2014-12-28)  ++* 0a0d3aa5a - SPIGOT-287: Fire a cancelled inventory open event for locked chests (2014-12-28)  ++* 2d5a55b36 - SPIGOT-307: Fix inverted logic in WorldServer.sendParticles (2014-12-28)  ++* 0e2396c22 - Remove tile entity tags for signs and command blocks (2014-12-27)  ++* bd703b831 - SPIGOT-303: Fix NPE in ChatModifier (2014-12-27)  ++* c80683161 - Apply permission checks to command block executed vanilla commands (2014-12-27)  ++* e1c64bf0e - Make the effect filter stricter (2014-12-27)  ++* c2c8dda56 - .-. (2014-12-27)  ++* c76552e4a - Fix crashes when beacons have invalid effects (2014-12-27)  ++* 89ebcc214 - Fix CLOSEST_PLAYER being used for all entities (2014-12-27)  ++* d51936efb - SPIGOT-298: Fix book serialization (2014-12-27)  ++* 306b233a4 - SPIGOT-279: Fix all metadata being cleared for items that support blockEntityTag on material mis-match (2014-12-27)  ++* 264d479fd - SPIGOT-136, SPIGOT-267: Store pages as chat component to retain chat events unless a plugin touches them (2014-12-26)  ++* 4cd802385 - SPIGOT-276: Force load chunks in Location2D fixes /spreadplayers (2014-12-26)  ++* b3893963b - Bump maven plugin versions (2014-12-25)  ++* 2db3ea29a - Implement Rabbit types. (2014-12-06)  ++* 81ab957aa - Update the command blacklist to handle the prefixed versions (2014-12-23)  ++* 6dfcbc61a - SPIGOT-204: Add way to set block type without using IDs or updating physics. (2014-12-22)  ++* 40aaa31c4 - Fix EntityEquipment for armor stands and redirect the getters/setters to use it (2014-12-21)  ++* dbdf6cacb - Only allow command blocks to be placed by op'd players (2014-12-21)  ++* 53fc3cf74 - Fix custom chunk generators. Fixes SPIGOT-193. (2014-12-18)  ++* b6634d740 - SPIGOT-241 - Fix the duplication glitch of Leads (Vanilla bug). (2014-12-21)  ++* 268116607 - Remove the delayed tile entity removal, fixes issues with recursive removal of comparators (2014-12-21)  ++* 89944c09c - SPIGOT-231 and SPIGOT-229. Fix itemframe behaviour. (2014-12-17)  ++* ce7dd34b5 - aW() does re register Attributes which causes a IllegalArgumentException. This fixes it and sets the Guardian back to a normal Guardian without any problem. (2014-12-20)  ++* f233e7d0f - Remove redundant pom entries. (2014-12-19)  ++* 606cf0eea - Implement NameTag visibility API for Teams. (2014-11-29)  ++* dadb43af9 - Use value from new potion effect particle visibility API. (2014-12-05) <0x277F> ++* 313bc5204 - Remove outdated CONTRIBUTING.md (2014-12-18)  ++* 618abf7a3 - SPIGOT-228: Don't deserialize meta of written books twice (2014-12-16)  ++* 6fab8fe51 - SPIGOT-236 - fix notes playing wrongly. (2014-12-17)  ++* 975c9ed4f - Merge pull request #61 in SPIGOT/craftbukkit from ~FEARTHE1337/craftbukkit:SPIGOT-149 to master (2014-12-17)  ++|\ ++| * 5ae6f9935 - Spigot-149 - Save map in primary world. (2014-12-17)  ++|/ ++* 20c65caae - SPIGOT-210: Remove the exception when dropping a non-existant task (2014-12-16)  ++* 7bc218d1e - Use SpecialSource Maven pluging for compile time remapping. (2014-12-16)  ++* 6b061e258 - SPIGOT-152, SPIGOT-197: Add a system to handle new tags before an api is ready for them (2014-12-15)  ++* e1070b9fb - SPIGOT-206 Further checks and fixes for Hanging entities. (2014-12-14)  ++* 4207eeffe - SPIGOT-212: Modify the vanilla change gamemode method to call our version (2014-12-15)  ++* 55e592e54 - Don't decrement ItemStack when CreatureSpawnEvent is canceled - addresses SPIGOT-87 (2014-12-13)  ++* 28f37a113 - Fix entities freezing when a chunk is regenerated (2014-12-15)  ++* f6bfbb985 - Merge pull request #58 in SPIGOT/craftbukkit from ~DMCK2B/craftbukkit:bugfix/fixNoOPCheckOnCommandBlocks to master (2014-12-15)  ++|\ ++| * b9c3e3e8f - Swap out always-OP vanilla system for Bukkit OP checking in command blocks (2014-12-15)  ++|/ ++* 07c216211 - Implement WorldBorder API (2014-12-13)  ++* b36f4d56e - Merge pull request #47 in SPIGOT/craftbukkit from ~BAMMERBOM/craftbukkit:master to master (2014-12-13)  ++|\ ++| * 3d1cdfa2b - Fix making craftbukkit patches. (2014-12-13)  ++* | 9f422c342 - SPIGOT-211: Fix mistake in EntityHuman breaking bed spawns (2014-12-13)  ++|/ ++* 01f0122a9 - Fix the spawning of HangingEntities by picking the right direction (2014-12-13)  ++* 354449ae9 - Support vanilla's direction tag for fireballs (2014-12-13)  ++* d5ede3bd6 - Rework the vanilla link fix so that hover/click events aren't lost (2014-12-13)  ++* 5f2a9eadd - SPIGOT-199: Default to white instead of black for chat messages (2014-12-13)  ++* e8efbb8a8 - Handle cross dimensional teleports and events. (2014-12-13)  ++* 95169d476 - Use CraftChatMessage.fromComponent so that colors remain in sent messages (2014-12-12)  ++* 64157d1de - SPIGOT-189: Remove ListenerWrapper in favour of just doing it in EntityPlayer (2014-12-12)  ++* 54888dfaf - Wrap player's ICommandListener so that our permission system can handle permission for vanilla commands (2014-12-12)  ++* 81db41b4d - Ignore errors when parsing books and treat them as old books (2014-12-12)  ++* 7017af7e6 - [Vanilla Fix] Process links in broadcasted messages. (2014-12-12)  ++* 9d43c91ce - Default to Y=1 when a Y=0 BlockPosition is found to be used in the BiomeDecorator. This prevents the "n must be positive" Crash due to the fact that sometimes the heightMap can be wrong calculated. Fixes SPIGOT-91 (2014-12-03)  ++* 45be36a7b - Update JLine (2014-12-06)  ++* 2dda1b33b - JLine includes Jansi (2014-12-06)  ++* 1f8414b48 - Rebuilt patches (2014-12-12)  ++* 45cd36e55 - Fix a client crash issue involving maps. (2014-12-09)  ++* c13e6e69a - Implement displayblocks for minecarts (SPIGOT-14). (2014-12-10)  ++* fe8d20e37 - using generator settings from WorldCreator to specify presets for FLAT or CUSTOMIZED world types (2014-12-05)  ++* 9fa497cd5 - Add implementation of the elder Guardian API (2014-12-12)  ++* 3b1c7d708 - Update gson to 2.2.4 (2014-12-11)  ++* 657559729 - Merge pull request #43 in SPIGOT/craftbukkit from ~FEARTHE1337/craftbukkit:perm to master (2014-12-11)  ++|\ ++| * 33af6fbbb - Add the new minecraft command permission nodes. (2014-12-11)  ++* | b13fd3516 - Re-enable selectors for players and the console using vanilla commands (2014-12-11)  ++|/ ++* 84699b36a - Rewrite book handling, Fixes SPIGOT-182 and part of SPIGOT-164 (2014-12-11)  ++* fe41b017c - Fixed mis-placed CraftBukkit comments (2014-12-11)  ++* 14d69f151 - Remove old dev comments (2014-12-11)  ++* d5c9a3c99 - SPIGOT-179: Fix the age counter not being reset for cacti and reeds (2014-12-11)  ++* f48410a39 - Fix per a world world borders (2014-12-10)  ++* e24569a9e - SPIGOT-143: Fix various animal stuff not being canceled by damageEntity. (2014-12-09)  ++* 0af8ea10d - Fix another missed scoreboard rename (2014-12-10)  ++* 5d0069f56 - Merge pull request #26 in SPIGOT/craftbukkit from ~AIKAR/craftbukkit:applyPatches to master (2014-12-10)  ++|\ ++| * 8a8312fb9 - Improve patch scripts, add applyPatches.sh (2014-12-03)  ++* | 611ebfa75 - Merge pull request #42 in SPIGOT/craftbukkit from ~CYBERTIGER/craftbukkit:save-gamerules to master (2014-12-10)  ++|\ \ ++| * | 88366173d - SPIGOT-169: Save level.dat for non-primary worlds. (2014-12-10)  ++* | | 85e9ba780 - SPIGOT-173: Fix missed renames in EntityHuman (2014-12-10)  ++* | | 3433eeadc - Fix /gamerule always targeting the main world (2014-12-10)  ++|/ / ++* | 262c7779f - Fix crash with null thorns damager (2014-12-10)  ++* | b73cfb0f6 - Remove CommandWorldBorder patch as this is handled in the command wrapper (2014-12-09)  ++* | 917e46a8d - Make sure to catch extra interact packets from the client (2014-12-09)  ++* | cf5a502fd - SPIGOT-162: Fix cancelling RIGHT_CLICK_BLOCK not cancelling used items (2014-12-09)  ++* | a6465002b - Add some missing Tile Entities (2014-12-07)  ++* | 44ea9d88c - Add CraftMetaTileEntity, fixes the previously broken tests (2014-12-07)  ++* | fb445e533 - Minor bug fixes (2014-12-07)  ++* | c571bbe59 - Disable some tests whilst issues with them are looked into (2014-12-07)  ++* | 6880e5277 - Fix isEmpty and hashCode for CraftMetaItem (2014-12-07)  ++* | 6268eb5a3 - Fix BlockEntityTag being stripped from items (2014-12-07)  ++* | 7bb3034c7 - Clone the vector that is passed to the VelocityEvent (2014-12-07)  ++* | d41746684 - Merge pull request #35 in SPIGOT/craftbukkit from ~GENAZT/craftbukkit:bugfix/SPIGOT-128 to master (2014-12-07)  ++|\ \ ++| * | 0655dfe98 - Fire the VelocityEvent when an EntityHuman got attacked. Fixes SPIGOT-128 (2014-12-06)  ++* | | c7278edcf - Merge pull request #34 in SPIGOT/craftbukkit from ~GENAZT/craftbukkit:bugfix/SPIGOT-135 to master (2014-12-07)  ++|\ \ \ ++| * | | 86eaec03f - Add missing DispenseBehavior for Fireworks. Fixes SPIGOT-135 (2014-12-06)  ++| |/ / ++* | | 7711956f4 - Filter extra right click air interaction events (2014-12-07)  ++* | | 1227934d5 - Make CraftMetaItem's attribute handling less strict on types (2014-12-07)  ++* | | fbda3a7c9 - Fix worldborders showing from the wrong world (2014-12-06)  ++|/ / ++* | c4129c259 - Disconnect old players before firing PlayerLoginEvent and fire a PlayerQuitEvent straight after a PlayerKickEvent (2014-12-06)  ++* | d04430e09 - SPIGOT-80: Fix players being invisible after teleporting (2014-12-06)  ++* | a7287cb4c - Force the player to be saved when disconnecting duplicates (2014-12-06)  ++* | adc129ab3 - Readd missed diff in EntityEnderCrystal (2014-12-05)  ++* | cc2b09de0 - Add basic support for executing commands from signs (2014-12-05)  ++* | e6809b3b9 - Remove quotes from version hash by updating the gitdescribe version (2014-12-05)  ++* | 91ee2c236 - Merge pull request #30 in SPIGOT/craftbukkit from ~ZREED/craftbukkit:master to master (2014-12-05)  ++|\ \ ++| * | 9e04f2f76 - Use PlayerList's UUID->EntityPlayer map in CraftServer.getPlayer(UUID) (2014-12-05)  ++* | | 0d4fba2c1 - SPIGOT-117: Fix sticky pistons firing for the wrong direction when pulling blocks backwards (2014-12-05)  ++* | | 3f6a1db4f - SPIGOT-123: Force inventory updates on crafting to correctly support custom recipes (2014-12-05)  ++* | | bab0e8bc7 - Fix the chunks being blocked from unloading based on the keepSpawnInMemory flag (2014-12-05)  ++|/ / ++* | e2c4f20ed - Serialize baseColor as a string (2014-12-04)  ++* | 2ba7357b4 - Merge pull request #27 in SPIGOT/craftbukkit from ~AIKAR/craftbukkit:fixWorldSaveEvent to master (2014-12-03)  ++|\ \ ++| * | 64492523a - Move WorldSaveEvent to proper location (2014-12-03)  ++| |/ ++* / 200ae2b6a - Fix a issue with skulls that have a blank owner (2014-12-03)  ++|/ ++* 4c02ffcaf - Merge pull request #5 in SPIGOT/craftbukkit from ~DMCK2B/craftbukkit:feature/implementDepthStrider to master (2014-12-03)  ++|\ ++| * cce45591f - Implement the Depth Strider enchantment for the API (2014-11-29)  ++* | 497a7b4cf - Add ANVIL and BEACON custom inventories. Also handle a few special cases for inventory sizes (2014-12-01)  ++* | 8110f51b5 - Minor formatting fixes (2014-12-03)  ++* | df0b4c1ca - Fix spawn reason for mob eggs (2014-12-03)  ++* | a972ddfc7 - Missed a case (2014-12-02)  ++* | 1613d0913 - Don't wrap the y coordinate in World.getBlockAt (2014-12-02)  ++* | 37102a0c1 - SPIGOT-102: Fix the player being teleported up 1.62 blocks on cancelling the PlayerMoveEvent (2014-12-02)  ++* | 242209934 - Fix selectors in non-bukkit commands for command blocks (2014-12-02)  ++* | 3c4a02ed3 - Filter invalid bounding boxes for entities (2014-12-02)  ++* | 0429c76df - Fix a missed case for weather transitions on join (2014-12-02)  ++* | 2b61a04e3 - Merge pull request #22 in SPIGOT/craftbukkit from ~FEARTHE1337/craftbukkit:fixCraftMetaBanner to master (2014-12-02)  ++|\ \ ++| * | 351edbf4e - Fix CraftMetaBanner serialization. (2014-12-02)  ++* | | b6cff4147 - SPIGOT-96/BUKKIT-5016: Fix thunder storms not darkening the sky and transitions being broken. (2014-12-02)  ++|/ / ++* | 275603d37 - Merge pull request #21 in SPIGOT/craftbukkit from ~GENAZT/craftbukkit:bugfix/SPIGOT-93 to master (2014-12-02)  ++|\ \ ++| * | 7371301ed - Forgot that i work in Bukkit... Screw sun conventions (2014-12-02)  ++| * | 0d5693dec - Implementation for the new rotation values. Fixes SPIGOT-93 (2014-12-02)  ++* | | 733e4290d - [Slightly breaking] setType(Id) will not longer reuse the previous data value of the block and instead reset the the data value to the block's default (2014-12-02)  ++* | | b58808d54 - Fix tree related crashes due to lazy BlockState updating (2014-12-02)  ++|/ / ++* | d2c263030 - SPIGOT-85: Fix NPE in monster spawners when right-clicked with invalid spawn eggs (2014-12-01)  ++* | 1af2540f7 - Merge pull request #16 in SPIGOT/craftbukkit from ~AET2505/craftbukkit:fix/ShowPlayer to master (2014-12-01)  ++|\ \ ++| * | cc9b479fe - Fix show player (2014-11-30)  ++|/ / ++* | cd65011ea - Merge pull request #15 in SPIGOT/craftbukkit from ~GENAZT/craftbukkit:bugfix/oob-horses to master (2014-11-30)  ++|\ \ ++| * | ebec73b5a - Another attempt of fixing OOB Horses. Just remove them from the world instead of setting it dead. (2014-11-30)  ++|/ / ++* | cab7c772d - Add missing CB comment (2014-11-30)  ++* | c81db390a - Force chunk loading in EntityHuman.getBed, Fixes SPIGOT-64 (2014-11-30)  ++* | 8b94fad77 - Merge pull request #13 in SPIGOT/craftbukkit from ~GENAZT/craftbukkit:bugfix/SPIGOT-20 to master (2014-11-30)  ++|\ \ ++| * | cc0d8bb32 - Update the correct Scoreboard Criteria when a health change comes in. This fixes SPIGOT-20 (2014-11-30)  ++* | | 22df29225 - Add a somewhat hacky fix for plugins converting between book types (2014-11-30)  ++|/ / ++* | 6eb0c7927 - Fix Chunk.getTileEntities() (Fixes SPIGOT-62) (2014-11-30)  ++* | 7c0f35248 - Fix LEFT_CLICK_AIR (2014-11-30)  ++* | c8adfecee - Add a flag to correctly convert signs to 1.8 (2014-11-30)  ++* | 20207a012 - Correct the return value of getPlayerListName (2014-11-30)  ++* | 73f4bc343 - Merge pull request #10 in SPIGOT/craftbukkit from ~GENAZT/craftbukkit:bugfix/SPIGOT-58 to master (2014-11-30)  ++|\ \ ++| * | c8a76994d - Horses spawned under Y 0 cause CraftBukkit to crash. This happens a lot since people keep using bugged Horses for Holographics (2014-11-30)  ++|/ / ++* | cef65526d - Optimize the invalid block fixing (2014-11-29)  ++* | 0f552845d - Treat LeavesDecayEvent as canceled if a plugin changes the block (2014-11-29)  ++* | 9255e9d82 - Fix canceling BlockPlaceEvent (2014-11-29)  ++* | bf401fbbd - Remove old debug info (2014-11-29)  ++* | 89f59f9e4 - Merge pull request #8 in SPIGOT/craftbukkit from ~GENAZT/craftbukkit:bugfix/SPIGOT-46 to master (2014-11-29)  ++|\ \ ++| * | 1e8a3f192 - Corrected WorldData patch file (2014-11-29)  ++| * | b08f233fe - Rewrite the level.dat properly. This fixes SPIGOT-46 (2014-11-29)  ++* | | dd096a525 - Improve the invalid block handling (2014-11-29)  ++|/ / ++* | a497e4550 - Merge pull request #7 in SPIGOT/craftbukkit from ~GENAZT/craftbukkit:bugfix/SPIGOT-44 to master (2014-11-29)  ++|\ \ ++| * | 4d0f5edb0 - Just only hold the last BlockState update for the same location. This fixes SPIGOT-44 (2014-11-29)  ++|/ / ++* | 26672b7db - Merge pull request #6 in SPIGOT/craftbukkit from ~MIKEPRIMM/craftbukkit:mikeprimm/SPIGOT-30 to master (2014-11-29)  ++|\ \ ++| * | 469220492 - SPIGOT-30: Fix restoring of WorldData when loading worlds (2014-11-29)  ++* | | fdfadd23d - Fix a vanilla issue which causes invalid data values on blocks to turn to air (2014-11-29)  ++* | | 939f76458 - Fire EntityDamageEvent for armor stands (2014-11-29)  ++|/ / ++* / f498585ec - Ignore invalid blocks in ChunkSnapshots (2014-11-29)  ++|/ ++* a2c4d7e15 - Minecraft by default only uses the World at index 0 for the WorldBorder command. This fixes SPIGOT-12 (2014-11-29)  ++* c61594c78 - Merge pull request #4 in SPIGOT/craftbukkit from ~MIKEPRIMM/craftbukkit:mikeprimm/SPIGOT-29 to master (2014-11-29)  ++|\ ++| * dd33bcf6a - Fix chunk snapshot generation (needed for Dynmap) (2014-11-28)  ++* | 8c3698bf0 - Fix command blocks (2014-11-29)  ++|/ ++* 585a827dc - Fix setAge and related methods (2014-11-29)  ++* 923b375d8 - Fix missed case in CraftBlock (2014-11-29)  ++* 69e66a69c - Don't default the universe to the current directory (2014-11-28)  ++* 40d6bb2dc - Re-add the timestamp for spigot (2014-11-28)  ++* e79587649 - Fix interaction issues (2014-11-28)  ++* 443e45e27 - Don't commit unchanged patches (2014-11-28)  ++* 90ac03522 - Revert "Remove patch headers" (2014-11-28)  ++* d6e3dff7d - Remove patch headers (2014-11-28)  ++* b84c71e52 - Fix enchanting to match 1.8 behaviour (2014-11-28)  ++* c5d0d74ea - Improve vanilla command handling for command blocks (2014-11-28)  ++* 2575b3f9c - Remove extra color codes at the start from converted json chat (2014-11-28)  ++* 8768831c5 - Only rebuild patches that are changed (2014-11-28)  ++* 2abdb9a06 - Use the right name for the AsyncPlayerPreLoginEvent (2014-11-28)  ++* 669c44cb3 - Fix eating food whilst not facing a block (2014-11-28)  ++* 24557bc2b - Update to Minecraft 1.8 (2014-11-26)  ++* a4805dbd7 - Allow teleportation of entities on vehicles. Fixes BUKKIT-4210 (2013-07-07)  ++* 80e8f2ab8 - Implement ability to keep items on death via plugins. Adds BUKKIT-5724 (2014-07-31)  ++* 3626720d5 - Modify the invalid item set to permit command blocks. Fixes BUKKIT-4342 (2014-06-24)  ++* 4507cec09 - Fix PlayerFishEvent not correctly cancelling. Fixes BUKKIT-5396 (2014-02-19)  ++* b3e83b00f - Implement deprecated methods. Adds BUKKIT-5752 (2014-08-07)  ++* 1f0c79144 - Use sensible AssertionError instead of ambiguous RuntimeException (2014-08-07)  ++* 87f6fa7bc - Fix cancelling PlayerDropItemEvent. Fixes BUKKIT-3313 (2013-12-01)  ++* 971329c42 - Fix removal of items from Item Frames. Fixes BUKKIT-5736 (2014-08-02)  ++* 594d7cb8c - Don't confuse client with sound coordinates outside view distance. (2014-07-15)  ++* c7398b9fd - Provide modifier functions to EntityDamageEvent. Fixes BUKKIT-5688 (2014-07-13)  ++* 319a9c20e - Handle uniform block ids greater than 127. Fixes BUKKIT-5686 (2014-07-10)  ++* 13482ac7f - Put damage modifiers in Functions for event. Fixes BUKKIT-5681 (2014-07-09)  ++* dbb5e6e3c - Update CraftBukkit to Minecraft 1.7.10 (2014-06-26)  ++* a8628fd64 - Use 4787c23dce0f5ac856d8d398225828971a93a3ff Guava patch for onlinePlayers (2014-07-01)  ++* b602b5efa - Implement new getOnlinePlayers. Adds BUKKIt-5668 (2014-06-24)  ++* 83e934b3b - [Bleeding] Fix checks for non-living entities. Fixes BUKKIT-5667 (2014-06-24)  ++* 9099e48e7 - [Bleeding] Ignore damage done by LivingEntity.damage(). Fixes BUKKIT-5666 (2014-06-22)  ++* 6364f59ac - Use compact memory format for uniform chunk section data. (2014-06-21)  ++* 5adbab524 - [Bleeding] Set projectile source for reflected fireballs. Fixes BUKKIT-5661 (2014-06-19)  ++* 6f21d3ca8 - [Bleeding] Implement new damage api. Fixes BUKKIT-5326, BUKKIT-3878. (2014-06-19)  ++* bed3f7f8f - [Bleeding] Repair missing diff in Explosion. Fixes BUKKIT-5662 (2014-06-19)  ++* 5b9950b5f - Avoid checking for loaded chunks for lighting and entity ticking. (2014-06-16)  ++* ea126f98a - Don't check unload queue before ticking things anymore. (2014-06-16)  ++* e6a2feda2 - Updated version to 1.7.9-R0.3-SNAPSHOT for development towards next release. (2014-06-01)  ++* 080edc16b - Updated version to 1.7.9-R0.2 in pom.xml for Beta. (2014-06-01)  ++* 1b48298d2 - Add special case for handling place event with lilies. Fixes BUKKIT-5641 (2014-05-31)  ++* 1c13d076a - Improve ItemStack filtering. (2014-05-31)  ++* 47b57e6bc - Some assumptions are better than others. (2014-05-24)  ++* 0a45c3ebf - Use UUIDs in CraftPlayer equals and hashCode methods. Fixes BUKKIT-5634 (2014-05-26)  ++* 38fbe60d4 - Handle null targets in target event. Fixes BUKKIT-5635 (2014-05-26)  ++* 3fbf4d3b5 - Fix ItemStack state during BlockPlaceEvent. Fixes BUKKIT-5632 (2014-05-25)  ++* e080bafa5 - Rework mob item dropping on death. Fixes BUKKIT-5625 (2014-05-26)  ++* 4ab4fa5bb - Fix polarity of Bat.isAwake() and Bat.setAwake(boolean). Fixes BUKKIT-5624 (2014-05-20)  ++* a1f3d3580 - Updated version to 1.7.9-R0.2-SNAPSHOT for development towards next release. (2014-05-14)  ++* 07a546505 - Updated version to 1.7.9-R0.1 in pom.xml for Beta. (2014-05-14)  ++* 89d5265da - Ensure we always log commands and log the right thing. (2014-05-14)  ++* fa1b6ba83 - Update CraftBukkit to use new YamlConfiguration encoding changes (2014-05-14)  ++* 8daacb901 - Implement awake flag for bats. Adds BUKKIT-5606 (2014-05-13)  ++* 730a62c96 - Handle chat packets correctly (2014-05-13)  ++* 65a6e9778 - Handle inventory max stack sizes even better. Fixes BUKKIT-5595 (2014-05-12)  ++* 5610337b4 - Only set skull profile if it is a player skull. Fixes BUKKIT-5605 (2014-05-12)  ++* 690a908b9 - Avoid using the user cache in skull meta. (2014-05-03)  ++* 33e472229 - [Bleeding] Fix stack overflow with Ender Crystals. Fixes BUKKIT-5583 (2014-05-01)  ++* 2bf22a9c4 - Implement inventory creation by type and title. Fixes BUKKIT-4045 (2013-04-11)  ++* c3e4767a7 - [Bleeding] Recheck persistence for chicken jockeys each tick. Fixes BUKKIT-5577 (2014-04-28)  ++* 519551386 - [Bleeding] Include equipment in EntityDeathEvent loot. Fixes BUKKIT-5566 (2014-04-28)  ++* 76e627717 - [Bleeding] Allow generation of cocoa trees. (2014-04-28)  ++* d91ee7d7a - [Bleeding] Correct issues with MEGA_REDWOOD trees. Fixes BUKKIT-5568 (2014-04-28)  ++* 576758bc5 - Refactored BlockPlaceEvent and BlockChangeDelegate. Adds BUKKIT-5558 (2014-01-06)  ++* de97b62b8 - Don't limit anvil stack size. (2014-04-23)  ++* 5dfb74032 - Handle inventory max stack sizes better. Fixes BUKKIT-5564 (2014-04-23)  ++* c99de378c - Faux sleepers wake up normally. Fixes BUKKIT-3667 (2013-02-25)  ++* 5d24f2b9c - Make AnvilInventory.getItem() use both containers. Fixes BUKKIT-2788 (2013-04-06)  ++* 47367210f - Allow plugins to enchant normally unenchantable items. Adds BUKKIT-1849 (2013-05-05)  ++* 941650b9b - Fix setting entity's target. Fixes BUKKIT-1358 (2013-12-11)  ++* 4c9bf34bf - Update client stack when block place is cancelled. Fixes BUKKIT-5284 (2014-01-06)  ++* 5c115116e - Update chest animation after cancelling open event. Fixes BUKKIT-1440 (2014-01-06)  ++* d0be633ed - Catch exceptions when abandoning conversions. Fixes BUKKIT-5436 (2014-02-22)  ++* 8a6ed3a88 - Check that item in hand is not null after book event. Fixes BUKKIT-5443 (2014-02-27)  ++* a86bc7aeb - Call event when boat is destroyed by falling. Fixes BUKKIT-5500 (2014-03-29)  ++* 009246008 - Removing broken chunk caching from World. Fixes BUKKIT-5425 (2014-02-20)  ++* 890a4af12 - [Bleeding] Call EntityTargetEvent in many new places. (2014-02-05)  ++* 3abba8231 - Add files from mc-dev for diff visibility. (2014-03-24)  ++* 7df7778cc - [Bleeding] Call BlockRedstoneEvent for all rails. Adds BUKKIT-4080 (2014-01-26)  ++* 610c58c73 - Add BlockPoweredRail.java from mc-dev for diff visibility. (2014-01-25)  ++* 730adbbf4 - [Bleeding] Don't allow null display names. Fixes BUKKIT-5254 (2014-01-31)  ++* 2a2cdd488 - [Bleeding] Ice in the nether fades to air. Fixes BUKKIT-5373 (2014-02-06)  ++* 0a179711a - [Bleeding] Fix some inventories not using maxStack. Fixes BUKKIT-2883 (2014-01-23)  ++* a4fe7cd3c - [Bleeding] Return correct player SlotType. Fixes BUKKIT-3188 (2014-02-10)  ++* 9c251595d - [Bleeding] Return correct furnace SlotType. Fixes BUKKIT-5400 (2014-02-10)  ++* ec41228fb - [Bleeding] Ensure skeletons spawn with equipment. Fixes BUKKIT-2836 (2014-02-11)  ++* 81e560621 - [Bleeding] Add all blocks needed to PortalCreateEvent. Fixes BUKKIT-5464 (2014-03-20)  ++* 729df1a73 - [Bleeding] Add many missing SpawnReasons. (2014-02-05)  ++* b6831792e - Add files from mc-dev for diff visibility. (2014-02-07)  ++* d4fe10394 - [Bleeding] Add many missing event calls. (2014-03-27)  ++* 286c71329 - Add BlockTallPlant.java from mc-dev for diff visibility. (2014-03-27)  ++* eb43d0637 - [Bleeding] Add missing HangingBreakEvent. Fixes BUKKIT-3943 (2014-01-24)  ++* a81f26716 - Handle profiles in SkullMeta, they don't store a string anymore. (2014-04-17)  ++* 7e54acc8b - Update CraftBukkit to Minecraft 1.7.9 (2014-04-15)  ++* 98555224a - Handle expired bans correctly. Fixes BUKKIT-5541 (2014-04-17)  ++* 3e911dba5 - Make bans pretend to use names like before 1.7.8. (2014-04-17)  ++* a8d5c1224 - Make skulls pretend to only use names like before 1.7.8. (2014-04-17)  ++* 6ad36f09e - Fix getting white list, ban list, and op list. Fixes BUKKIT-5538 (2014-04-17)  ++* 5cbbcae9a - Import files from mc-dev for diff visibility (2014-04-17)  ++* dc194a97b - [Bleeding] Re-add missed diff in 1.7.5 update. Fixes BUKKIT-5536 (2014-04-14)  ++* fc39b27d7 - Don't do a lookup for obviously invalid usernames (2014-04-17)  ++* 555785614 - Add methods to use arbitrary entries in scoreboards. Adds BUKKIT-3977 (2014-04-13)  ++* 3dcf159ec - Fix missed diff and other small things (2014-04-13)  ++* d82e34da5 - Use world-container when finding players to convert. Fixes BUKKIT-5530 (2014-04-13)  ++* b689cfa83 - Check actual whitelist for CraftOfflinePlayer too (2014-04-12)  ++* f6a93775b - Check the actual whitelist for Player#isWhitelisted() (2014-04-12)  ++* 7b409ed4e - Use fetched GameProfile for getOfflinePlayer(String) (2014-04-12)  ++* 8f771c737 - Update CraftBukkit to Minecraft 1.7.8 (2014-04-10)  ++* 0df7555ce - Add method to send fake sign updates to players. Adds BUKKIT-2300 (2013-03-21)  ++* 903575ff2 - Add player unique ID to (Async)PlayerPreLoginEvent. Adds BUKKIT-5108 (2013-12-09)  ++* 8d77687e7 - Add equals for CraftInventory objects. Adds BUKKIT-4110 (2013-04-18)  ++* 434f15c84 - Store last known player names in preparation for name changing (2014-03-31)  ++* 21e7ba8d2 - Implement API for dealing with player UUIDs. Adds BUKKIT-5071 (2014-03-28)  ++* acc9f20b0 - Fix issues with leashes and weather due to missed diff (2014-03-26)  ++* 4992df25e - Correct missed diff (2014-03-24)  ++* d51463d16 - Fix PotionEffect removal. (2014-03-23)  ++* 58267995e - Fix missed diff making horses lose their saddle (2014-03-22)  ++* 019a33f50 - Fix teleport failing right after join. Fixes BUKKIT-5479 (2014-03-22)  ++* 4873b1289 - Increment loop index whether or not command succeeded. Fixes BUKKIT-5455 (2014-03-22)  ++* 385ace970 - Update CraftBukkit to Minecraft 1.7.5 (2014-03-20)  ++* afb3511a4 - Remove chunks from queue if we don't need them anymore. (2014-02-11)  ++* f6f0cf338 - Updated version to 1.7.2-R0.4-SNAPSHOT for development towards next release. (2014-02-12)  ++* 081fe9c41 - Updated version to 1.7.2-R0.3 in pom.xml for Beta. (2014-02-12)  ++* d9e04a5b2 - Check if entity is in list before decrementing. Fixes BUKKIT-5404 (2014-02-11)  ++* 00b3721f0 - Update/improve configuration documentation. (2014-02-11)  ++* 9131f5b55 - Ignore player selectors if not a Command Block. (2014-02-11)  ++* 776e256ff - Add PlayerSelector.java for diff visibility. (2014-02-11)  ++* 823457079 - Rename Minecraft command permission nodes to meet fallback spec. (2014-02-11)  ++* 533c48996 - Hide message from connection throttle on startup. Fixes BUKKIT-5403 (2014-02-10)  ++* 393ece9ec - Readd diff missed in the 1.7 update. (2014-02-10)  ++* 826643c60 - Handle removing entity while ticking. Fixes BUKKIT-1331 (2014-02-10)  ++* 1113d54da - Add method to forget callbacks in AsynchronousExecutor (2014-02-10)  ++* ce4b13c1a - Readd BlockPlaceEvent for half slab to full block. Fixes BUKKIT-5390 (2014-02-07)  ++* 219f4e2c2 - Match old alias behavior when migrating. (2014-02-08)  ++* 553acdf0c - [Bleeding] Implement Mojang command fallback system. Adds BUKKIT-5385 (2014-02-07)  ++* b18bedd84 - Implement banning API. Adds BUKKIT-3535 (2014-02-04)  ++* 66471a532 - [Bleeding] Correctly enchant books. Fixes BUKKIT-5302 (2014-01-21)  ++* 068d8a807 - Update clients when ItemFrame direction is set. Fixes BUKKIT-3371 (2013-08-30)  ++* 3e896afe6 - Implement SpawnReason.NETHER_PORTAL and DISPENSE_EGG. Fixes BUKKIT-3148 (2014-01-31)  ++* c59ba98ae - [Bleeding] Handle players disconnecting during respawn. Fixes BUKKIT-4327 (2014-02-01)  ++* d7d81fa68 - Load all already generated chunks via async chunk system (2014-02-01)  ++* 4a6a81e72 - Allow AsynchronousExecutor.getSkipQueue() to pull tasks from the queue (2014-02-01)  ++* 842962530 - Don't call duplicate interact air events. Fixes BUKKIT-5359 (2014-01-31)  ++* 990727107 - [Bleeding] Store correct block type when hitting blocks. Fixes BUKKIT-5209 (2014-01-30)  ++* e0da84635 - [Bleeding] Fix support for several entities in World.spawn(). Fixes BUKKIT-3284 (2014-01-21)  ++* 2fc5d5930 - [Bleeding] Use correct yaw and pitch when spawning arrows. Fixes BUKKIT-3320 (2014-01-21)  ++* b4c4c8ed7 - [Bleeding] Directly set direction in EntityFireball. Fixes BUKKIT-1154 (2014-01-21)  ++* 1fa4b69bd - [Bleeding] Implement setCharged and getCharged for WitherSkull. Addresses BUKKIT-3060 (2014-01-21)  ++* 8a5ad89a6 - [Bleeding] Implement ProjectileSource API. Addresses BUKKIT-1038, BUKKIT-1156 (2014-01-20)  ++* ac53442e7 - Add setCritical and isCritical methods to CraftArrow.java. Adds BUKKIT-5113 (2013-12-16)  ++* fb8c5547b - Add methods to get and set arrow knockback. Adds BUKKIT-5103 (2013-12-16)  ++* 7f2289945 - [Bleeding] Re-add EntityShootBowEvent lost in e93a3eb3b4c5234e3e3936bc697d566a42d3b30e. Fixes BUKKIT-4214 (2013-12-16)  ++* e962b1bc0 - [Bleeding] Add support for ThrownExpBottle and Fish to launchProjectile(...). Fixes BUKKIT-1536 (2013-12-16)  ++* 855b5f8ae - [Bleeding] Instantiate logger earlier in CraftServer. Fixes BUKKIT-4253. (2014-01-21)  ++* 19521b7f1 - [Bleeding] Fire interact events for Weighted Pressure Plates. Fixes BUKKIT-5053 (2013-12-16)  ++* 6a0095998 - Add BlockPressurePlateWeighted.java for diff visibility (2013-12-10)  ++* e4ba663d2 - Relocate NaN check on PacketPlayInFlying. (2014-01-16)  ++* 6e6ad530e - Readd connection throttle (2014-01-28)  ++* 516a02b8b - Fix stacking for items after setting empty meta. Fixes BUKKIT-5331 (2014-01-23)  ++* a46eac8bc - Implement API for ServerListPingEvent. Adds BUKKIT-5121, BUKKIT-2465 (2014-01-19)  ++* 030cf5a6d - [Bleeding] Properly handle EntityBreakDoor event canceling. Fixes BUKKIT-5318 (2014-01-07)  ++* 771c41c69 - [Bleeding] Account for null in EntityDamageEvent handling. Fixes BUKKIT-5317 (2014-01-07)  ++* fef9f9692 - [Bleeding] Check that vanilla recipes actually exist. Fixes BUKKIT-5277 (2014-01-05)  ++* b8143c63c - [Bleeding] Implement methods for /achievement command. Addresses BUKKIT-4932 (2014-01-16)  ++* 622a2976d - [Bleeding] Fix Achievements and Statistics API. Fixes BUKKIT-5305 (2014-01-14)  ++* dd12820c5 - Add StatisticManager.java for diff visibility. (2014-01-11)  ++* 05ed0a313 - Implement UnsafeValues for give command. Addresses BUKKIT-5286 (2014-01-14)  ++* 81919478f - [Bleeding] Implement setIdleTimeout and getIdleTimeout. Addresses BUKKIT-4932. (2014-01-07)  ++* fd65b29a0 - Consider repair cost when checking ItemMeta emptiness. Fixes BUKKIT-5304 (2014-01-14)  ++* 1f9f6a51c - Add failing unit test for ItemMeta-repairability (2014-01-14)  ++* 32d9db82e - Only delay removing containers. Fixes BUKKIT-5238 (2013-12-24)  ++* c57e45dcd - Process block cleanup first. Fixes BUKKIT-4103 (2013-12-20)  ++* 4a5de4249 - Updated version to 1.7.2-R0.3-SNAPSHOT for development towards next release. (2013-12-21)  ++* 025548445 - Updated version to 1.7.2-R0.2 in pom.xml for Beta. (2013-12-21)  ++* 1ecc59d4d - [Bleeding] Handle custom furnace recipes separately. Fixes BUKKIT-1657, BUKKIT-3846 (2013-12-20)  ++* 3c209a988 - [Bleeding] Fix crash involving horse passengers. Fixes BUKKIT-5212 (2013-12-20)  ++* 9bc3b7df2 - [Bleeding] Call event when reflecting fireballs. Adds BUKKIT-5214 (2013-12-20)  ++* 624603cd4 - [Bleeding] Send short version string on ping. Addresses BUKKIT-5206 (2013-12-19)  ++* dfcff7eab - Account for different reach limit in Survival/Creative. Fixes BUKKIT-4257 (2013-12-20)  ++* 6d9a6fbb4 - Fix attributes not clearing on death. Fixes BUKKIT-5213 (2013-12-20)  ++* 330dbbf78 - Updated version to 1.7.2-R0.2-SNAPSHOT for development towards next release. (2013-12-18)  ++* bda2179ae - Updated version to 1.7.2-R0.1 in pom.xml for Beta. (2013-12-18)  ++* 3cd64185a - [Bleeding] Correctly generate torches on portal. Fixes BUKKIT-746 (2013-12-17)  ++* 8da512628 - Add new setResourcePack method. Fixes BUKKIT-5015 (2013-12-17)  ++* 091fb2ea9 - Process URLs as clickable. Adds BUKKIT-4917 (2013-12-09)  ++* 0f48e9b06 - Check pending blocks before falling back to world. Fixes BUKKIT-5122 (2013-12-17)  ++* 4f63a5f25 - Fix mistranslation issue for PlayerToggleFlightEvent. Fixes BUKKIT-5172 (2013-12-17)  ++* fbdc3a7a7 - Remove references to chunklist. Fixes BUKKIT-5190 (2013-12-17)  ++* 0e809d831 - [Bleeding] Fix incorrect Cocoa Bean orientation. Addresses BUKKIT-5182 (2013-12-16)  ++* 9a6d03599 - Add missed tree types for Minecraft 1.7. Adds BUKKIT-5042 (2013-12-14)  ++* 2191599f4 - Fix generation of jungle trees. Fixes BUKKIT-5043 (2013-12-14)  ++* cee6a7bab - [Bleeding] Correct naming of sounds for 1.7. Fixes BUKKIT-5065 (2013-12-06)  ++* 24ff27b40 - Don't try to teleport to a null world. Fixes BUKKIT-5145 (2013-12-14)  ++* a565486ee - [Bleeding] Return correct drops for Cocoa blocks. Fixes BUKKIT-5159 (2013-12-12)  ++* 1ff8132bd - [Bleeding] Fix witches dropping empty ItemStacks on death. Fixes BUKKIT-3554 (2013-12-11)  ++* a0e50c36b - [Bleeding] Fix Blazes not firing death events. Fixes BUKKIT-4898 (2013-12-13)  ++* ae9cd0729 - [Bleeding] Call EntityTargetEvent for EnderDragons. Fixes BUKKIT-5160 (2013-12-11)  ++* 115448481 - Do not fire EntityDamageEvent for explosions twice. Fixes BUKKIT-5156 (2013-12-09)  ++* c2a0396af - Throw event when EnderCrystals harm EnderDragon. Fixes BUKKIT-4052 (2013-12-09)  ++* e6bccf6bf - Re-add WorldLoadEvent lost in 314051580a0a8e4745d3a539f232b552916eb302 Fixes BUKKIT-5125 (2013-12-10)  ++* 1460f250c - Alter fall particles to respect visibility API. Fixes BUKKIT-5158 (2013-12-13)  ++* bdbd1808f - Show fall particles while in creative mode. Fixes BUKKIT-5009 (2013-12-13)  ++* fbe062caf - Only filter data from block items, not all of them. Fixes BUKKIT-5047 (2013-12-13)  ++* f5fad449b - Call interact event if block cannot be punched. Fixes BUKKIT-5126 (2013-12-12)  ++* ca4c11899 - Rework furnace result log. Fixes BUKKIT-5115 (2013-12-10)  ++* f5f71a550 - Print message on startup before loading log4j (2013-12-09)  ++* 772867eb5 - Call event when pistons push an item frame/painting. Fixes BUKKIT-5110 (2013-12-09)  ++* 305e5f4f0 - Handle null damage events for item frames. Fixes BUKKIT-5114 (2013-12-09)  ++* 80935e5c2 - Don't consume bonemeal if there is no crop present. Fixes BUKKIT-3790 (2013-06-10)  ++* 0aa187f15 - [Bleeding] Ignore Block Physics in Chunk population. Fixes BUKKIT-4923 (2013-12-08)  ++* c7b4514ad - Call BlockPlaceEvent for cocoa beans planted on log. Adds BUKKIT-5039 (2013-12-06)  ++* 36ef37b98 - Call EntityDamageEvent on ItemFrame item removal. Fixes BUKKIT-5020 (2013-12-05)  ++* 3cf569a33 - Added EntityItemFrame.java for diff visibility (2013-12-05)  ++* 431e5ea44 - Set proper position of snow block. Fixes BUKKIT-5004 (2013-12-04)  ++* ff0da6bad - Fix BlockPhysicsEvent having incorrect changed type. Fixes BUKKIT-5063 (2013-12-05)  ++* 6f4d9bea2 - [Bleeding] Correctly generate giant mushrooms. Fixes BUKKIT-5066 (2013-12-06)  ++* 97cb46f9f - Reintroduce disconnection flag that was removed in 1.7 update. (2013-12-06)  ++* 70747ca28 - Follow vanilla settings behavior. Fixes BUKKIT-5069 (2013-12-06)  ++* dc86362c9 - Implement Firework.detonate(). Adds BUKKIT-4538 (2013-12-06)  ++* 8a29829d1 - Correctly register Furnace Recipies. Fixes BUKKIT-5044 (2013-12-04)  ++* b880a2d24 - Add new fishing enchants. Fixes BUKKIT-5035 (2013-12-03)  ++* e5353b82a - Correctly validate map colors. Fixes BUKKIT-4984 (2013-12-03)  ++* 169fd4696 - Finish kicking player before letting their clone in. Fixes BUKKIT-4960 (2013-12-03)  ++* bc0ac4807 - Try to detect when to disable jline automatically. Fixes BUKKIT-5028 (2013-12-03)  ++* 39719fff7 - Maintain old setType method in WorldGenerator. Fixes BUKKIT-4915 (2013-12-02)  ++* a721fe847 - Fix BlockCanBuildEvent returning null. Fixes BUKKIT-4972 (2013-12-01)  ++* 803268867 - Fix written books crashing the server. Fixes BUKKIT-4945 (2013-12-01)  ++* 579b20334 - Added RecipeBookClone from nms for diff visibility (2013-12-01)  ++* 9969a86e8 - Use strict lookup for op permission refresh. Fixes BUKKIT-4698 (2013-12-02)  ++* c5d8b4393 - Use correct packet data for toggling flying. Fixes BUKKIT-4989 (2013-12-02)  ++* 8c444f275 - Correctly drop BlockBreakEvent experience. Fixes BUKKIT-4942 (2013-12-02)  ++* 963cd5438 - Catch all exceptions in jansi initialization. Fixes BUKKIT-4936 (2013-12-02)  ++* f3865064f - Add ConsoleAppender from log4j for diff visibility (2013-12-02)  ++* 5b6f27103 - Fix missed doors diff. Fixes BUKKIT-4908 (2013-12-01)  ++* f0af95505 - Fix fishing ignoring event experience. (2013-12-01)  ++* 46c11eb83 - Handle ChatColor-ending messages FIXES BUKKIT-4924 (2013-12-01)  ++* 72b36b8b0 - Correctly send player names for the tab list. Fixes BUKKIT-4925 (2013-12-01)  ++* 6aafe7c5a - Make console work on Windows again. Fixes BUKKIT-4956 (2013-12-01)  ++* d48bcbe64 - Handle JUL logger formatting (2013-12-01)  ++* c09885459 - Forward exceptions to log4j, cleanup logger handling. Fixes BUKKIT-4948 (2013-12-01)  ++* 272669665 - Update CraftBukkit to Minecraft 1.7.2 (2013-11-04)  ++* ff8b70fbb - Updated version to 1.6.4-R2.1-SNAPSHOT for development towards next release. (2013-10-30)  ++* bf8865b82 - Updated version to 1.6.4-R2.0 in pom.xml for RB. (2013-10-30)  ++* 1c7698fab - Ensure maps are stored only in the main world. Fixes BUKKIT-4872 (2013-10-30)  ++* 7aabcb2ab - Don't share WorldMapCollection. Fixes BUKKIT-4871 (2013-10-30)  ++* 84237bb78 - Fix our versioning system. (2013-10-16)  ++* 641d35310 - Updated version to 1.6.4-R1.1-SNAPSHOT for development towards next release. (2013-10-24)  ++* 6cf9820c7 - Updated version to 1.6.4-R1.0 in pom.xml for RB. (2013-10-24)  ++* bd1389895 - Add auto-save plugin redundancy detection. (2013-09-23)  ++* de16ba6ee - Re-enable built in auto-save. Fixes BUKKIT-4800 (2013-10-23)  ++* 6430c868c - Remove redundant call to worldMaps.a(). Addresses BUKKIT-4828 (2013-10-19)  ++* 42e7fdee9 - Update maven compiler to 2.3.2 (2013-10-15)  ++* f4277d710 - Force item data to use a tag name. Fixes BUKKIT-4809 (2013-10-10)  ++* 159403e08 - Call BlockFadeEvent for fire on inflammable block. Fixes BUKKIT-4835 (2013-10-09)  ++* ca5e0c6db - Add exception-resilience to reading UUID. Fixes BUKKIT-4833 (2013-10-06)  ++* cfa5490a5 - Clarify exception message for bad hanging location. Fixes BUKKIT-4824 (2013-10-05)  ++* 90e8aa008 - Initialize hostname on handshake. Fixes BUKKIT-4793 (2013-09-20)  ++* dcb9d6a5e - Update CraftBukkit to 1.6.4 (2013-09-19)  ++* e20ef1f60 - Updated version to 1.6.2-R1.1-SNAPSHOT for development towards next release. (2013-09-11)  ++* 8656d6917 - Updated version to 1.6.2-R1.0 in pom.xml for RB. (2013-09-10)  ++* 79bc53fe9 - Update for 1.6.2_01 renames. (2013-09-10)  ++* 7ad5d6098 - Fix villager death sound (2013-09-10)  ++* ac73522ec - Add missing villager sounds. Addresses BUKKIT-4756 (2013-09-10)  ++* 6d700c332 - Use correct spawn reason for Zombie reinforcements. Fixes BUKKIT-4744 (2013-09-10)  ++* b8feaf059 - Remove unnecessary error logging. Fixes BUKKIT-4406 (2013-09-10)  ++* ffcd0f450 - Provide a tab completion handler for JLine. Adds BUKKIT-4168 (2013-08-17)  ++* 5f65cd9a1 - Add support for custom Hopper inventories. Fixes BUKKIT-4722 (2013-08-27)  ++* 600e1524a - Update and add new sound mappings. Fixes BUKKIT-4756 (2013-09-10)  ++* 5f43109c0 - Correct location of fire from lightning strikes. Fixes BUKKIT-4707 (2013-08-19)  ++* 8ae8957d1 - Properly set persistence flag for bred animals. Fixes BUKKIT-4751 (2013-09-10)  ++* c62375f95 - Check that a vehicle is a Vehicle before casting. Fixes BUKKIT-4749 (2013-09-07)  ++* 5c861fe86 - Fix improperly initialized usernames (2013-09-02)  ++* cd593fb1e - Set current recipe to null when a recipe isn't found. Fixes BUKKIT-2311 (2013-08-12)  ++* 4667e9493 - Add source encoding to the maven compiler plugin. (2013-08-28)  ++* 2e7f66787 - Return correct hasLineOfSight value for players. Fixes BUKKIT-4634 (2013-08-17)  ++* 6482b6f0b - Fire FoodLevelChangeEvent when eating cake. Fixes BUKKIT-2242 (2013-07-19)  ++* 3fb4ccb62 - Add BlockCake for diff visibility. (2013-07-19)  ++* f481c9ee0 - Make ItemFactoryTest.java platform agnostic. Fixes BUKKIT-4695 (2013-08-14)  ++* ea39ca187 - Return instance of CraftInventoryBeacon for Beacons. Fixes BUKKIT-4521 (2013-07-18)  ++* 92f111cfe - Fix missed diff for chat packets. Fixes BUKKIT-4666 (2013-08-07)  ++* 0506b709f - Wrap plugin.getDefaultWorldGenerator in try-catch. Fixes BUKKIT-4116 (2013-04-18)  ++* 71a6a5657 - Fix javac workaround in ItemStackTest (2013-08-06)  ++* 9ba5c79c3 - Add BukkitObjectIOStream tests on top of ItemMeta tests (2013-05-19)  ++* 066fcfe79 - Validate title for custom inventories. Fixes BUKKIT-4616, BUKKIT-4663 (2013-08-06)  ++* 5e8dd7d57 - Use correct spawn reason for Villagers Breeding. Fixes BUKKIT-4113 (2013-07-19)  ++* 485e9ad93 - Add PathfinderGoalMakeLove for diff visibility (2013-07-19)  ++* 4aeb3ff63 - Call unleash event for non-sitting animals. Fixes BUKKIT-4658 (2013-08-05)  ++* e489840ca - Updated version to 1.6.2-R0.2-SNAPSHOT for development towards next release. (2013-08-04)  ++* ff60299af - Updated version to 1.6.2-R0.1 in pom.xml for Beta. (2013-08-03)  ++* 6d0d33b9d - Fix off by 1 error for spawn protection. Fixes BUKKIT-4154 (2013-07-31)  ++* e7539378f - Fix mistranslation in isPlayerCreated() for IronGolems. Fixes BUKKIT-4543 (2013-07-13)  ++* da5d494b3 - Update players when coming into view of vehicle. Fixes BUKKIT-4628 (2013-08-03)  ++* 54672a75f - Implement Leash API. Adds BUKKIT-4459, BUKKIT-4583 (2013-07-31)  ++* f7ca953ff - Add EntityLeash and ItemLeash for diff visibility (2013-07-28)  ++* 8a7c582d5 - Ignore null sound by contract. Fixes BUKKIT-4641 (2013-08-02)  ++* 93cfe3961 - Indicate help is a command. Fixes BUKKIT-4642 (2013-08-02)  ++* 720a8d706 - Revert to 1.5 despawning behaviour for Ocelots and Wolves. Fixes BUKKIT-4449 (2013-08-01)  ++* a466e0aa6 - Add timeout for Panic goal. Fixes BUKKIT-4531 (2013-08-01)  ++* ab36dbb6a - Add PathfinderGoalPanic for diff visibility. (2013-08-01)  ++* f959530f6 - Add raw sound string playSound method. Adds BUKKIT-2443 (2013-07-19)  ++* c8b09db84 - Restore diff missed in 4176258a836062b22ac46919aefa5cc36fae78f2 (2013-08-01)  ++* 69d336233 - Revert "Correct vehicle movement issues." Fixes BUKKIT-4565 (2013-07-29)  ++* b2be908fb - Fix NBT token for attribute names. Addresses BUKKIT-4483 (2013-07-28)  ++* 1e7f2ebeb - Store item attributes. Addresses BUKKIT-4523 (2013-07-23)  ++* b6fec0467 - Restore CraftBukkit diff in ItemDye. Fixes BUKKIT-4493 (2013-07-18)  ++* 5bfd599e9 - Store owning Horse in horse inventory. Fixes BUKKIT-4586 (2013-07-25)  ++* 0a9758ae5 - Fix CraftBukkit diffs (2013-07-23)  ++* e88cea840 - Check interactable items before event. Fixes BUKKIT-4576 (2013-07-23)  ++* 1192f2a53 - Add API to control scaled health. Adds BUKKIT-4590 (2013-07-23)  ++* 4ad3cdd4b - Use ambient setting of potion effects. Fixes BUKKIT-4357 and BUKKIT-3653 (2013-06-19)  ++* cebc247b7 - Correctly fire VehicleExitEvent. Fixes BUKKIT-3761 (2013-07-12)  ++* 67f15266d - Return inGround when checking Arrow's OnGround state. Fixes BUKKIT-4439 (2013-07-10)  ++* a31158bd0 - Clear attributes on death; mistranslation issue. (2013-07-10)  ++* 96fd897a2 - Missed a mention of Java 5. We build for Java 6, as per the Minecraft spec. (2013-07-10)  ++* f9d58bf48 - Implement Horse API. Adds BUKKIT-4424 (2013-07-10)  ++* a192775f0 - Add PathfinderGoalTame for diff visibility. (2013-07-08)  ++* f66588495 - Correctly set level name for 'world' option. Fixes BUKKIT-4474 (2013-07-09)  ++* 9109bd765 - Ocelots -> Ocelittle. Addresses BUKKIT-4449 (2013-07-08)  ++* f6a0b1e42 - Update CraftBukkit to 1.6.2 (2013-07-08)  ++* 2d9a9d8ce - Removed extra eat call. Fixes BUKKIT-4462 (2013-07-04)  ++* fdd53f9dd - Improve maps.yml. Fixes BUKKIT-4419 (2013-07-03)  ++* c00db5f75 - Properly clear attributes on remove and death. Fixes BUKKIT-4416 (2013-07-03)  ++* adcb293a0 - Fix scaling for player health. Fixes BUKKIT-4431 (2013-07-02)  ++* e1a3fb56b - Minecraft spec has changed and we're required to follow. We now build with Java 6. (2013-07-02)  ++* 29fa46a4b - Fix donkey/mule dupe exploit. (2013-07-02)  ++* 7b71fc23b - Added EntityHorse for diff visibility. (2013-07-02)  ++* d213f7588 - Update client on cancelled entity naming. Fixes BUKKIT-4396 (2013-07-02)  ++* 774cf2a2c - Update client on cancelled leash. Fixes BUKKIT-4395 (2013-07-02)  ++* a15096ae1 - Send event-defined MOTD/maxplayers. Fixes BUKKIT-4409 (2013-07-02)  ++* 905f00b07 - Fix world preparation status output. Fixes BUKKIT-4407 (2013-07-02)  ++* 65ccff634 - Regrow sheep wool on grass consumption. Resolves BUKKIT-4405 (2013-07-02)  ++* 3a9622cbd - Fix Entity persistence. Fixes BUKKIT-4397 (2013-07-02)  ++* 22adf8a3c - Rework max health values. Fixes BUKKIT-4398 (2013-07-02)  ++* e79d26d7d - Fixed NPE in BrewingStand (2013-07-01)  ++* 6c09066e2 - Update CraftBukkit to 1.6.1 (2013-07-01)  ++* f887b76a2 - Updated version to 1.5.2-R1.1-SNAPSHOT for development towards next release. (2013-06-14)  ++* c945563f9 - Updated version to 1.5.2-R1.0 in pom.xml for RB. (2013-06-14)  ++* 5c8498c8b - Fix cancellation for InventoryDragEvent. Fixes BUKKIT-4332 (2013-06-13)  ++* 930a9e805 - Correct cancellation of InventoryClickEvent. Fixes BUKKIT-4331 (2013-06-13)  ++* 93c0d7e6b - Fix negative damage from Zombies. Fixes BUKKIT-4193 (2013-05-05)  ++* 045121d09 - Implement PlayerBookEditEvent. Adds BUKKIT-1995 (2013-01-18)  ++* c55c0db86 - Update blaze breathe sound. Fixes BUKKIT-4286 (2013-05-30)  ++* bf4796d39 - Fix creative ArrayIndexOutOfBoundsException. Fixes BUKKIT-4305 (2013-06-04)  ++* 991218a33 - Improve events for new inventory features. Adds BUKKIT-3859 (2013-04-13)  ++* 56dbde3c5 - Updated version to 1.5.2-R0.2-SNAPSHOT for development towards next release. (2013-05-03)  ++* 9b9cd2dc0 - Updated version to 1.5.2-R0.1 in pom.xml for BETA. (2013-05-03)  ++* 5ed1418bb - Pass correct block when dispensing empty buckets. Fixes BUKKIT-3668 (2013-05-03)  ++* d9eb58656 - Correct event handling for dispensing filled buckets. Fixes BUKKIT-4046 (2013-05-03)  ++* 28fb514a4 - Send block updates even when applyPhysics is false. Fixes BUKKIT-3971 The CraftBlock class is setting bit 0x4 of the update flag when bit 0x2 should in fact be set here. Bit 0x2 means "do updates"; bit 0x4 means "don't do updates if the world is static, even when bit 0x2 is set". (2013-04-29)  ++* 4e7ad0511 - Fix typo/logic error in previous commit (2013-05-02)  ++* 25ca3f41a - Fix animal spawning ignoring limits. Fixes BUKKIT-4180 (2013-05-02)  ++* 401a6809b - Improve InventoryCloseEvent handling. Fixes BUKKIT-3286 (2013-05-02)  ++* 75641a607 - Move world generator warning to CraftBukkit. Fixes BUKKIT-2565 (2013-03-21)  ++* f08081c77 - Always process movement for vehicles and passengers. Fixes BUKKIT-4142 (2013-04-30)  ++* 2715e4330 - Revert "Add delay to hopper even if it doesn't do anything." (2013-04-27)  ++* 3bbfb4179 - Fix things using wall time running too fast. Fixes BUKKIT-4155 (2013-04-27)  ++* 799779e4b - Update CraftBukkit to Minecraft 1.5.2 (2013-04-27)  ++* 83c3aa188 - Rework EntityExplodeEvent. Fixes BUKKIT-4140. Adds BUKKIT-4141 (2013-04-24)  ++* 708b0e6ae - Don't do physics updates in world generation. Fixes BUKKIT-3747 (2013-04-16)  ++* 40e630871 - Validate chunk data array lengths. Fixes BUKKIT-4093 (2013-04-15)  ++* 928e4d9bb - When moving a misplaced chunk move tile entities too. Fixes BUKKIT-4092 (2013-04-15)  ++* 0ab14dbaa - Make Slimes fire EntityTarget events. Fixes BUKKIT-1408 (2013-03-28)  ++* e62614a71 - Updated version to 1.5.1-R0.3-SNAPSHOT for development towards next release. (2013-04-13)  ++* 3dfdd0fe4 - Updated version to 1.5.1-R0.2 in pom.xml for BETA. (2013-04-13)  ++* c3cf8a435 - Don't apply fall damage when cancelled. Fixes BUKKIT-4065 (2013-04-13)  ++* 859049268 - Add delay to hopper even if it doesn't do anything. Fixes BUKKIT-4061 (2013-04-12)  ++* 5cc4fbd71 - Perform anvil calculations when using 1.5 drop feature. (2013-04-11)  ++* 1c18834b7 - Use wall time instead of ticks for several things. Fixes BUKKIT-4059 (2013-04-11)  ++* 94f43d8c3 - Add MobEffect from mc-dev for diff visibility (2013-04-11)  ++* a2d9f33ca - Various minor performance improvements (2013-04-11)  ++* 159d614a3 - Correct vehicle movement issues. Fixes BUKKIT-2993, BUKKIT-4056 (2013-04-11)  ++* ce5b97ea8 - Fetch tile entities from chunks instead of world. Fixes BUKKIT-4055 (2013-04-11)  ++* 70a778f47 - Boats can only die once. (2013-04-11)  ++* 7939572c3 - Check connection status before setting scoreboard. Fixes BUKKIT-4064 (2013-04-12)  ++* 3e0d8331b - Change perspective of team checking. Fixes BUKKIT-4044 (2013-04-11)  ++* ac593849a - Use correct method for getting player's team. Fixes BUKKIT-4050 (2013-04-11)  ++* 77d1524b3 - Refactor EntityDamageEvents. Adds BUKKIT-1944 & BUKKIT-3684 (2013-04-09)  ++* 535a85a5b - Make auxiliary worlds use the main scoreboard. Addresses BUKKIT-3984 (2013-04-04)  ++* 2a5e90fb8 - Handle large chests correctly for hopper events. Fixes BUKKIT-3979 (2013-04-04)  ++* 055c13461 - We compile for 1.5 (2013-04-04)  ++* d95a4705c - Implement Scoreboard API. Adds BUKKIT-3776 (2013-03-22)  ++* 5634d9f70 - Add a WeakCollection utility class. (2013-04-02)  ++* 3f637d172 - Add ScoreboardServer from mc-dev for diff visibility (2013-03-22)  ++* 0c6b9bba1 - Updated version to 1.5.1-R0.2-SNAPSHOT for development towards next release. (2013-04-04)  ++* e5ebb143d - Updated version to 1.5.1-R0.1 in pom.xml for BETA. (2013-04-03)  ++* 5ede9ce5f - Add missing calls to BlockRedstoneEvent. Adds BUKKIT-3926 (2013-03-29)  ++* 1d6ff3461 - Add BlockDaylightDetector from mc-dev for diff visibility (2013-03-29)  ++* 743d0fb60 - Properly return contents of Inventory. Fixes BUKKIT-3930 (2013-03-29)  ++* c33908509 - Set world on fixed tile entity to avoid NPE. Addresses BUKKIT-3949 (2013-04-01)  ++* 311f0c86a - Fix mismatched tile entities for new blocks. Fixes BUKKIT-3949 (2013-03-31)  ++* 71a475f07 - Don't update physics when block place is cancelled. Fixes BUKKIT-3939 (2013-03-31)  ++* d3dbb1bb5 - Correct slot types for brewing stand. Fixes BUKKIT-3937 (2013-03-31)  ++* f859d4572 - Throw exception for disabled plugin tasks. Fixes BUKKIT-3951 (2013-03-31)  ++* af964c833 - Limit hopper to valid directions. Fixes BUKKIT-3940 (2013-03-31)  ++* 06ebe6b70 - Add BlockHopper from mc-dev for diff visibility. (2013-03-31)  ++* a1c38cd8f - Include anvil result in inventory size. Fixes BUKKIT-3741 (2013-03-30)  ++* af7ea28bc - Only call event when turning pressure plate on. Fixes BUKKIT-3881 (2013-03-29)  ++* 82e05d435 - Special case large chests for hopper events. Fixes BUKKIT-3916 (2013-03-29)  ++* ee572114d - Add Beacon block state for hopper events. Fixes BUKKIT-3932 (2013-03-29)  ++* 377be0a79 - Call PotionSplashEvent even for no effects. Fixes BUKKIT-3618 (2013-03-28)  ++* adbee6049 - Call appropriate event for zombies igniting players. Adds BUKKIT-3915 (2013-03-28)  ++* acd637d48 - Properly copy collection references in ItemMeta.clone(). Fixes BUKKIT-3913 (2013-03-28)  ++* 1a7e5a75a - Correct missed diff on skeletons. Fixes BUKKIT-3912 (2013-03-28)  ++* 08f3df82e - Improve calling of ProjectileHitEvent. Fixes BUKKIT-3872 (2013-03-23)  ++* 45d3e2514 - Add missing semicolon (2013-03-25)  ++* 3c02fb02a - Allow plugins to enchant already enchanted items. Fixes BUKKIT-1956 (2013-03-24)  ++* 02a5d09dd - Call EntityChangeBlockEvent when boats destroy blocks. Fixes BUKKIT-3871 (2013-03-23)  ++* 18d7bc7ca - Allow fishing success rate to be adjustable. Adds BUKKIT-3837 (2013-03-20)  ++* 96ba65d50 - Add methods to check conflicting enchantments. Adds BUKKIT-3830 (2013-03-20)  ++* 5f089137e - Cleanup comments, formatting, etc (2013-03-24)  ++* 7c40a073d - Add ability to change player item in hand. Adds BUKKIT-3318 (2012-12-27)  ++* b53204297 - Don't assume all hoppers are blocks. Fixes BUKKIT-3883 (2013-03-24)  ++* 8d3ba07f9 - Add check for Thorns damage - Fixes BUKKIT-3505 (2013-03-23)  ++* 62c6d223e - Include ThrownPotion in spawn methods. Adds BUKKIT-2542 (2013-03-23)  ++* e1b50b011 - Identify outside slot independent of inventory type. Fixes BUKKIT-2768 (2013-02-21)  ++* e61a6bab0 - Implement InventoryMoveItemEvent. Adds BUKKIT-3765 (2013-03-22)  ++* b10474253 - Fire VehicleEnterEvent for loaded chunks only. Fixes BUKKIT-3831 (2013-03-22)  ++* 3ad423af0 - ANSI color codes now reset text attributes. Fixes BUKKIT-3508 (2013-01-26)  ++* 444ced306 - Cleanup and rework physical interaction events. Fixes BUKKIT-3686 (2013-03-22)  ++* ae19f2c46 - Implement Dropper interface. Adds BUKKIT-3750 (2013-03-21)  ++* 978de7e9d - Add BlockDropper for diff visibility (2013-03-21)  ++* 6f9e4f854 - Stationary lava is also a LAVA ignition cause. (2013-03-21)  ++* abee10783 - Add ability to modify ThrownPotion properties. Adds BUKKIT-3197 (2012-12-17)  ++* 2c5b2a8f6 - Add method to get the source of a TNTPrimed. Adds BUKKIT-3815 (2013-03-21)  ++* 816a7f155 - Ignore all .DS_Store files, not just the one in the project root. (2013-01-26)  ++* 83e0e0770 - Add Fish (Hook) entity to PlayerFishEvent. Adds BUKKIT-1025 (2013-03-13)  ++* ddec7117e - Implement unit test for hasGravity(). Adds BUKKIT-3832 (2013-02-15)  ++* 696543cf3 - Update CraftBukkit to Minecraft 1.5.1 (2013-03-20)  ++* 6aaa1e83d - Really don't filter out -1 data in ItemStack. (2013-03-20)  ++* b325ffc8f - Handle filled buckets dispensing up and down. Fixes BUKKIT-3814 (2013-03-20)  ++* 2fc755cc6 - Don't filter out -1 data in ItemStack. Fixes BUKKIT-3824 (2013-03-20)  ++* 26d1f9189 - Readd missed diff for minecart container size. Fixes BUKKIT-3826 (2013-03-20)  ++* dc19d3788 - BlockState for Command Blocks. Adds BUKKIT-3805. (2013-03-18)  ++* e639690e4 - Validate Server method input. Addresses BUKKIT-3687 (2013-03-18)  ++* abee2151e - Remove point about squashing commits. (2013-03-18)  ++* 370b912dd - Add link to CONTRIBUTING.md in README (2013-03-18)  ++* aabfe5a56 - Pull Contributing Guidelines and Requirements into CONTRIBUTING.md (2013-03-18)  ++* 51d4e647f - Only filter data on block items, not all items. (2013-03-18)  ++* d26336eb4 - Add /testfor command support to command block. Adds BUKKIT-3813 (2013-03-18)  ++* 596047aa6 - Only set player weather if a plugin requested it. (2013-03-18)  ++* 1bde25bb3 - Implement per-player Weather API. Adds BUKKIT-812 (2012-12-20)  ++* a7a5f273e - Implement new cause versions of BlockIgniteEvent. Addresses BUKKIT-3609, BUKKIT-3656, BUKKIT-3657 (2013-03-17)  ++* 2e6cfdb3c - Implement InventoryPickupItemEvent. Adds BUKKIT-3798 (2013-03-18)  ++* 2642fbdf7 - Make CraftMinecartHopper work as InventoryHolder. Adds BUKKIT-3796 (2013-03-17)  ++* 93fd33e21 - Implement Entity.isOnGround(). Adds BUKKIT-3787 (2013-03-17)  ++* 5df704bf5 - Use name given to command block instead of "@". Fixes BUKKIT-3803 (2013-03-17)  ++* d802168cd - Implement Hopper block state and inventory methods. Adds BUKKIT-3749 (2013-03-16)  ++* 6f68fc4ba - Add missing getOwner method for container minecarts. (2013-03-16)  ++* 737e8c512 - Allow special crafting data value on items. Fixes BUKKIT-3780 (2013-03-16)  ++* 5515b0ee2 - Handle double trapped chest inventory. Fixes BUKKIT-3772 (2013-03-16)  ++* 0e60f1f7b - Fire BlockDispenseEvent for new dispenser behaviors. Fixes BUKKIT-3774 (2013-03-16)  ++* fbe609bdb - Add new DispenseBehavior files from mc-dev for diff visibility. (2013-03-16)  ++* ff1c1daf6 - Allow data on tool items. Fixes BUKKIT-3773 (2013-03-16)  ++* 2e47a1eb8 - Comment out vanilla debug message. (2013-03-16)  ++* 515830cda - Filter negative values for all items. (2013-03-16)  ++* 6d88d545e - Filter data for items that shouldn't have it and filter wool. (2013-03-16)  ++* a76a5bd36 - Ignore invalid inventory slots. Fixes BUKKIT-3737 (2013-03-16)  ++* 9a38f2022 - Use Chest block state for trapped chests. Fixes BUKKIT-3762 (2013-03-16)  ++* 5903b9f5c - Don't set health directly, will interfere with scoreboard system. (2013-03-16)  ++* 746632121 - Limit mob names to 64 chars to avoid client crash. Fixes BUKKIT-3753 (2013-03-16)  ++* 4fa8c24e4 - Always consume bonemeal when used on a sapling. Fixes BUKKIT-3755 (2013-03-16)  ++* d47849df8 - Remove duplicate place logic for snow. Fixes BUKKIT-3756 (2013-03-16)  ++* 2cb9cbf05 - Handle the newly refactored minecarts. (2013-03-15)  ++* b2c72b968 - Use proper naming convention for boolean methods. (2013-03-15)  ++* 83d29e461 - Update CraftBukkit to Minecraft 1.5 (2013-03-13)  ++* ba6e4c38c - Fix compilation error with exception names (2013-03-02)  ++* 032c7366a - Use the correct CB object for ContainerBrewingStand. Fixes BUKKIT-3357 (2013-02-08)  ++* cf7dfeda6 - Add proper logging for custom channel exceptions. (2013-02-06)  ++* f6c574dd0 - Implement PlayerItemConsumeEvent. Adds BUKKIT-2349 (2013-03-02)  ++* 993e19b3f - Close inventory on teleport. FIXES BUKKIT-3021. (2013-02-09)  ++* d06e597ca - Check TravelAgent.findOrCreate(Location) for null; Fixes BUKKIT-3590 (2013-02-09)  ++* 5bb81b75c - Set CraftTravelAgent.DEFAULT to a non-null value. Fixes BUKKIT-3578 (2013-02-05)  ++* 2e99e0209 - Use entity UUID instead of EntityID for metadata. Fixes BUKKIT-3582 (2013-02-06)  ++* efe8e9a7f - Always return a TravelAgent; Fixes BUKKIT-3541 (2013-02-03)  ++* 4d3865a03 - Fix players spawning above portals. Fixes BUKKIT-3542. (2013-02-03)  ++* d661c67a7 - Always use the set exit location for portal events. Fixes BUKKIT-3555. (2013-02-02)  ++* 94da64ee9 - Use the result of EntityPortalExitEvent. Fixes BUKKIT-3559. (2013-02-02)  ++* 1090e0cf4 - Updated version to 1.4.7-R1.1-SNAPSHOT for development towards next release. (2013-01-30)  ++* 416f1d6cc - Updated version to 1.4.7-R1.0 in pom.xml for RB. (2013-01-30)  ++* b4b7cacf5 - Fix NPE when getting bed spawn location. (2013-01-29)  ++* 37975946a - Fix contract with Player.getBedSpawnLocation. Fixes BUKKIT-3525 (2013-01-29)  ++* 0576395dd - When leaving the end, always target the main world. Fixes BUKKIT-3517 (2013-01-29)  ++* b0e43c809 - Make command blocks only select players on its world. Fixes BUKKIT-3515 (2013-01-28)  ++* 132fdbc4a - Target default world when returning from The End; Fixes BUKKIT-3494 (2013-01-24)  ++* 50e74b3b4 - Remove erroneous break statement in scheduler. Fixes BUKKIT-3395 (2013-01-27)  ++* 1053a1e29 - Update Fireballs to account for ExplosionPower. Fixes BUKKIT-3460 Adds BUKKIT-3516 (2013-01-27)  ++* f20d6e359 - Ignore block functions for skulls on BlockPlace. Fixes BUKKIT-3495 (2013-01-27)  ++* 899b9c17c - Direct all BlockPlaceEvents to a singular location. Fixes BUKKIT-3438 (2013-01-27)  ++* 528bbbdcd - Fix TileEntities and Blocks getting out of sync. Fixes BUKKIT-3501 (2013-01-27)  ++* 6e438ccb3 - Call BlockGrowEvent for Cocoa plants. Fixes BUKKIT-2525 (2013-01-02)  ++* d74cf36f1 - Add BlockCocoa for diff visibility. (2013-01-02)  ++* b82375a59 - Preserve source block in mushroom spread event. Fixes BUKKIT-3354 (2013-01-02)  ++* f10c98613 - Properly calculate level cost for books. Fixes BUKKIT-3410 (2013-01-24)  ++* f1efe717b - Call BlockPlaceEvent for skulls the same as other blocks. BUKKIT-3406 (2013-01-20)  ++* 9df87d339 - Compensate for allow-nether/allow-end as false; Fixes BUKKIT-3466 (2013-01-22)  ++* 488e45b4f - Reload ban files when reloading the server. Adds BUKKIT-3470 (2013-01-23)  ++* 641ecc4f3 - Return the valid max value for piston direction. Fixes BUKKIT-2191 (2013-01-23)  ++* 9ba0ddc29 - Refactor processBlockPlace logic. Fixes BUKKIT-3406 and BUKKIT-3454 (2013-01-18)  ++* 6a499c858 - Fix broken null contract with Jukebox.setPlaying, Fixes BUKKIT-3429 (2013-01-19)  ++* d834ca4c6 - [Bleeding] Add experimental support for entity portal traveling (2012-12-22)  ++* 9cb320654 - Add BlockEnderPortal for diff visibility (2013-01-19)  ++* 01fc296fe - Improve the item meta deserialization code-style (2013-01-18)  ++* 5934a6572 - Always call PotionSplashEvent. Fixes BUKKIT-3363 (2013-01-03)  ++* d577b840d - Place beds with the correct data. Fixes BUKKIT-3447 (2013-01-17)  ++* 3d133d7ab - Updated version to 1.4.7-R0.2-SNAPSHOT for development towards next release. (2013-01-17)  ++* ed817d199 - Updated version to 1.4.7-R0.1 in pom.xml for Beta. (2013-01-17)  ++* e59af9908 - Update CraftBukkit to Minecraft 1.4.7 (2013-01-17)  ++* 315127782 - Initialize entity data before spawning them. Fixes BUKKIT-3209 (2013-01-16)  ++* b58106846 - Fix entities traveling sideways. Addresses BUKKIT-3443 (2013-01-14)  ++* ccbd3d84e - Get the BlockState before changing the block. Fixes BUKKIT-3441 (2013-01-16)  ++* 98aea835b - Handle beds and doors the same way as other blocks. Fixes BUKKIT-3437 Relates to: BUKKIT-3438 (2013-01-16)  ++* 614ef2f8c - Throw BlockPlaceEvent when placing double slabs. Fixes BUKKIT-2469 (2013-01-16)  ++* 647b82032 - Add ItemStackMapTest (2013-01-15)  ++* 8bc9e712e - Spawn monsters without prematurely exiting. Fixes BUKKIT-3425 (2013-01-13)  ++* dd7ba4a25 - Various ItemMeta fixes. (2013-01-09)  ++* 43865e8e6 - Update unit test to reflect firework color fix. Fixes BUKKIT-3382 (2013-01-05)  ++* 182681e38 - Update calls to DyeColor getData and getByData. Addresses BUKKIT-2786 (2013-01-05)  ++* baaf8e1d8 - Implement fishing experience. Adds BUKKIT-3348 (2013-01-01)  ++* fb0be1fc0 - Move the tile entity with the falling block. Adds BUKKIT-3349 (2013-01-01)  ++* 8f0c1aed6 - Fix "setSitting" on tameable animals. Fixes BUKKIT-1534 (2012-12-31)  ++* 05512942d - Add PathfinderGoalSit for diff visibility (2012-12-31)  ++* 95098c943 - Updated version to 1.4.6-R0.4-SNAPSHOT for development towards next release. (2012-12-31)  ++* 2e1033215 - Updated version to 1.4.6-R0.3 in pom.xml for Beta. (2012-12-31)  ++* 32924f975 - [Bleeding] Fix corruption due to thread safety issues. Fixes BUKKIT-3333 (2012-12-30)  ++* 6bb240cdf - Updated version to 1.4.6-R0.3-SNAPSHOT for development towards next release. (2012-12-29)  ++* 4047542d6 - Updated version to 1.4.6-R0.2 in pom.xml for Beta. (2012-12-29)  ++* bb8379581 - Return the level, not ID. Fixes BUKKIT-3326 (2012-12-29)  ++* 8954cb291 - /dev/null does not accept EnchantmentThorns (2012-12-29)  ++* 7b5a8d0c2 - Don't teleport entities that are considered dead. Addresses BUKKIT-1331 (2012-12-27)  ++* fb0eed177 - [Bleeding] Implement periodic chunk garbage collector (2012-12-10)  ++* 538de63a0 - Fix persistence on tamed pets. Fixes BUKKIT-3300 (2012-12-28)  ++* 509e3d2a3 - Update maxhealth for entities that have variable max health. Fixes BUKKIT-3308 (2012-12-26)  ++* b908c192b - Fix removing enchantments causing the enchantment tag to remain. (2012-12-27)  ++* 54b2707ba - Fix discrepancies in NBT and ItemMeta. Fixes BUKKIT-3279 (2012-12-27)  ++* 25732f048 - Fire BlockRedstoneEvent for repeaters. Fixes BUKKIT-1157 (2012-12-27)  ++* 186a67973 - Add BlockDiode from mc-dev for diff visibility. (2012-12-27)  ++* 5963da294 - Don't update physics until after the place event. Fixes BUKKIT-3316 (2012-12-27)  ++* 49da990ee - Never remove players when unloading chunks. Fixes BUKKIT-3129 (2012-12-26)  ++* 3a0c5aff0 - Fix fireballs being motionless (again). Fixes BUKKIT-3299 (2012-12-25)  ++* 155b83e2c - Perform permission removals after the quit event. Fixes BUKKIT-3303 (2012-12-24)  ++* f726d07f1 - Fix Skull BlockState setting illegal values on owner. (2012-12-24)  ++* 8292b73f3 - Fix fireworks being short lived. Fixes BUKKIT-3291 (2012-12-23)  ++* edd90ccf1 - Properly update fireworks. Fixes BUKKIT-3289 (2012-12-23)  ++* ced064635 - Implement entity max health methods. Adds BUKKIT-266 (2012-12-23)  ++* 4e1793f36 - Report valid health when getting Entity health. Fixes BUKKIT-3210 (2012-12-23)  ++* ed6aab820 - Remove runner leak on async tasks. Fixes BUKKIT-3288 (2012-12-23)  ++* 717fbbeff - Update firework power when modifying meta. Fixes BUKKIT-3272 (2012-12-22)  ++* f72a08c22 - Fire BlockDispenseEvent for fireworks. Adds BUKKIT-3246 (2012-12-22)  ++* da571ef42 - Add DispenseBehaviorFireworks and EntityFireworks for diff visibility (2012-12-22)  ++* dc8594052 - Allow fireworks to be created. Adds BUKKIT-3262 (2012-12-22)  ++* 6dc13b688 - One record per JukeBox. (2012-12-22)  ++* 2fd78a654 - Add BlockJukeBox for diff visibility (2012-12-22)  ++* adc1c2f98 - Updated version to 1.4.6-R0.2-SNAPSHOT for development towards next release. (2012-12-22)  ++* e6f14b4be - Updated version to 1.4.6-R0.1 in pom.xml for Beta. (2012-12-22)  ++* 2ee62eb58 - Implement API to get and set FireworkMeta on Firework entities (2012-12-21)  ++* fdb4b2d91 - Implement Skull BlockState. Adds BUKKIT-3259 (2012-12-21)  ++* 39e2af7bd - Added TileEntitySkull for diff visibility (2012-12-20)  ++* 78d384de9 - Zero is not less than zero. Fixes BUKKIT-3259 (2012-12-21)  ++* a0cf0d03f - Check file existence before determining readOnly. Fixes BUKKIT-3255 (2012-12-21)  ++* ec211ed95 - Update enchantment handling to 1.4.6. Fixes BUKKIT-3256 (2012-12-21)  ++* f71be2506 - Fix loading Items entities with an invalid item. Addresses BUKKIT-3249 (2012-12-21)  ++* 118682ce5 - Don't save server properties when it's read only. Fixes BUKKIT-3250 (2012-12-21)  ++* 0216d0903 - Fix command line arguments being ignored. Fixes BUKKIT-3247 (2012-12-21)  ++* e93730759 - Add a null check for Item Entities. Fixes BUKKIT-3249 (2012-12-21)  ++* b870755ed - Use max inventory size for new stack. Fixes BUKKIT-3240 (2012-12-21)  ++* 708252c02 - Implement 1.4.6 ItemMeta. Adds BUKKIT-3236, BUKKIT-3237 (2012-12-21)  ++* f377a7680 - Add API to allow plugins to request players switch to a texture pack. Adds BUKKIT-2579 (2012-10-09)  ++* f4836fb42 - Add the ability to make Enchanted Books. Fixes BUKKIT-3220 (2012-12-20)  ++* bd0daa6d5 - Remove obsolete fix for the end (2012-12-20)  ++* ca7f67da9 - Fetch correct info for skulls in block.getDrops(). Fixes BUKKIT-3205 (2012-12-20)  ++* ed2dd31a8 - [Bleeding] Fix exception in getChunkSnapshot() - sky light can be null (2012-12-20)  ++* 686807e38 - Filter invalid ItemStacks from Packets. (2012-12-20)  ++* 23b676437 - Update CraftBukkit to Minecraft 1.4.6 (2012-12-19)  ++* 9f1bf124e - Updated version to 1.4.5-R1.1-SNAPSHOT for development towards next release. (2012-12-19)  ++* 06ae8e482 - Updated version to 1.4.5-R1.0 in pom.xml for RB. (2012-12-19)  ++* 924a46469 - [Bleeding] Check visibility API for sounds. Fixes BUKKIT-3114 (2012-12-18)  ++* d9708d032 - Fix PotionMeta not applying the correct Id. Fixes BUKKIT-3193 (2012-12-18)  ++* d73e5ab46 - Add missing name in PotionEffect for Wither (2012-12-18)  ++* a2d551faf - Refactor get/setChestPlate to Chestplate. Addresses BUKKIT-3189 (2012-12-18)  ++* 6cec8ba5c - Change enchantment comparisons to isSimilar. Fixes BUKKIT-3183 (2012-12-17)  ++* d66d3674e - Clarify functionality in CraftInventory. Fixes BUKKIT-3097 (2012-12-17)  ++* 78f48258d - Implement ItemFactory and ItemMeta values. Adds BUKKIT-15 (2012-12-17)  ++* d20d4dc43 - ItemStack.asBukkitStack(null) should return Air. Fixes BUKKIT-3170 (2012-12-15)  ++* 0f4c206f9 - Add isRecord and new material method tests. (2012-12-14)  ++* 53b064ec7 - Fix EntityEquipment positions being reversed. Fixes BUKKIT-3157 (2012-12-12)  ++* 24143ef6a - Load chunks asynchronously for players. (2012-11-30)  ++* 11593b459 - Add RegionFile from mc-dev for diff visibility (2012-11-29)  ++* 29d7cc711 - Add utility class AsynchronousExecutor (2012-12-12)  ++* 24c04dc78 - Don't run mob pickup code on players. Fixes BUKKIT-3150 (2012-12-12)  ++* 4e91fbd0d - Fix players not being able to pickup items due to default values. (2012-12-11)  ++* 39fdb5620 - Players should be able to pick up items by default. Fixes BUKKIT-3143 (2012-12-10)  ++* 3692209fe - Missed a rename (2012-12-10)  ++* 430d352a5 - Add EntityEquipment API. Adds BUKKIT-3103 (2012-12-09)  ++* 684ba31c3 - [Bleeding] Correct getEyeHeight value. Fixes BUKKIT-3130 (2012-12-09)  ++* 22b110000 - Only display help aliases when there are aliases. Fixes BUKKIT-1621 (2012-12-10)  ++* dc93da8e3 - Pass null help values values as empty strings to HelpTopics (2012-12-10)  ++* f18b3cdc7 - [Bleeding] Fix NPE with a null bedSpawnLocation. Fixes BUKKIT-1500 (2012-12-09)  ++* 4d2a92ed4 - Add isSolid() tests for each material (2012-12-09)  ++* 12c7c2f69 - Implement FurnaceExtractEvent. Adds BUKKIT-2114 (2012-12-08)  ++* e760d6eb3 - Add SlotFurnaceResult for diff visibility (2012-12-08)  ++* 24abdd556 - [Bleeding] Fix NPE in getBedSpawnLocation. Fixes BUKKIT-1949 (2012-07-24)  ++* 090c1a60b - Correctly shoot arrows with the spawnArrow Method. Fixes BUKKIT-3116 (2012-12-06)  ++* 9973e7cde - Update entity state correctly when marked as persistent. Fixes BUKKIT-3123 (2012-12-07)  ++* 846a22304 - Provide a faster way to get a location. Adds BUKKIT-3120 (2012-12-07)  ++* c74fd4196 - Use shooter constructor for Fireballs. Fixes BUKKIT-3121 (2012-12-06)  ++* 78bc0ad1d - Add the ability to launch WitherSkulls. Fixes BUKKIT-3106 (2012-12-06)  ++* 72ee1f318 - Fix "Commands Only" chat flag. Fixes BUKKIT-2238 (2012-12-05)  ++* 6a04fd98a - Implement API for wolves collar color. Adds BUKKIT-3109 (2012-12-05)  ++* bb60e85ff - Not enough testing went into this, you can't have packages start with numbers. (2012-12-05)  ++* 453f49abd - Refactor all OBC, libs, and NMS into versioned packages. (2012-12-05)  ++* 1af83da76 - Don't run command blocks in empty worlds. Fixes BUKKIT-3094 (2012-12-05)  ++* 09684ba9d - Persistence isn't just animals. Fix BUKKIT-3105 (2012-12-05)  ++* fb6d9e180 - Add a custom shutdown message set in bukkit.yml. Addresses BUKKIT-3031 (2012-12-03)  ++* 320712aba - Allow placing blocks in spawn if ops.txt is empty. Fixes BUKKIT-3004 (2012-12-05)  ++* 5409d05d3 - Ensure animals don't despawn due to old default setting. (2012-12-04)  ++* b854320fc - Fire EntityFormBlockEvent for FallingBlocks. Adds BUKKIT-3078 (2012-12-04)  ++* 4dadf0e2b - Implement API for mob despawn when away from players. Adds BUKKIT-2986 (2012-12-04)  ++* 11894784b - Fix leaky pipes (water flow). Fixes BUKKIT-3085 (2012-12-01)  ++* c596093c3 - [BREAKING] Update BlockFace directions. Fixes BUKKIT-1567, BUKKIT-3069 (2012-12-01)  ++* 3404318bc - Fix missed refactoring in EntityWither (2012-11-30)  ++* 1a6a82815 - Add data values to EntityChangeBlockEvent. Adds BUKKIT-3077, BUKKIT-3076 (2012-11-30)  ++* 9bd02495d - Use carried item for endermen's changed-block's id. Fixes BUKKIT-3075 (2012-11-30)  ++* 0c16afd6e - Take into account if the shooter is a player before considering pvp mode for projectiles. Fixes BUKKIT-3058 (2012-11-27)  ++* 1040a8133 - Fix multi-world sounds not being sent correctly. Fixes BUKKIT-3051 (2012-11-25)  ++* aa99d6796 - Call EntityInteractEvent for Wood Buttons. Fixes BUKKIT-3022 (2012-11-22)  ++* cd66edd40 - Fix the previous fix for "infinite 'breeding' with MonsterEggs" (2012-11-22)  ++* 22e26a502 - Call MapInitializeEvent on newly created maps. Fixes BUKKIT-2907 (2012-11-21)  ++* f0325da81 - Add ItemMapEmpty for diff visibility (2012-11-21)  ++* 45e891959 - Updated version to 1.4.5-R0.3-SNAPSHOT for development towards next release. (2012-11-20)  ++* cf677490e - Updated version to 1.4.5-R0.2 in pom.xml for Beta. (2012-11-20)  ++* 71b0510f8 - Fix teleporting entities with vehicles/passengers teleporting you illegally. Fixes BUKKIT-2821 (2012-11-20)  ++* fed863049 - Update invalidItems array. Fixes BUKKIT-2554. (2012-11-20)  ++* a17ca07fe - Add SPAWNER_EGG spawn reason to allow for filtering. Adds BUKKIT-3000 (2012-11-20)  ++* c36b3da57 - Fix infinite 'breeding' with MonsterEggs. Fixes BUKKIT-2997 (2012-11-20)  ++* 5f5dd727b - Add a DamageEvent for falling blocks which can damage entities. Fixes BUKKIT-2781 (2012-11-18)  ++* d039986be - No teleporting people back into the server. Fixes BUKKIT-2298 (2012-11-19)  ++* d23c97429 - Updated version to 1.4.5-R0.2-SNAPSHOT for development towards next release. (2012-11-18)  ++* 0f2913e30 - Updated version to 1.4.5-R0.1 in pom.xml for Beta. (2012-11-18)  ++* 8f4cde24b - Don't add player to world if join event did it already. (2012-11-18)  ++* cc78e1731 - Fix players losing experience when keepInventory is true. Fixes BUKKIT-2915 (2012-11-18)  ++* 7ef9adc04 - Fix missed rename making withers too cheaty. Fixes BUKKIT-2972 (2012-11-18)  ++* 58636c2dd - Don't do case lookups when we have the right case already. (2012-11-18)  ++* 1044c32a5 - Lower compression level to avoid overloading the thread. Fixes BUKKIT-2963 (2012-11-18)  ++* 028860399 - Implement sound changes for Minecraft 1.4.2 changes. Fixes BUKKIT-2849 (2012-11-05)  ++* a575e6b07 - Use correct itemstack for dispenser behavior chaining. Fixes BUKKIT-2886 (2012-11-08)  ++* 293474d99 - [Bleeding] Use case from player data for OfflinePlayer. Fixes BUKKIT-519 (2012-08-09)  ++* 20c074ec6 - Don't show a player on map if they're vanished. Fixes BUKKIT-1882 (2012-11-17)  ++* 2d832bf14 - Don't kick player when they travel too far. Fixes BUKKIT-2968 (2012-11-17)  ++* bd0868ae1 - Implement API for Skeleton and Zombie types. Fixes BUKKIT-2818 (2012-11-05)  ++* dca54ff18 - Fire BlockSpreadEvent for vine growth. Fixes BUKKIT-1097 (2012-11-17)  ++* 0c78ce40e - Add BlockVine.java from mc-dev for diff visibility. (2012-11-17)  ++* 9ab40b1ab - Fire BlockFadeEvent when soil turns back to dirt. Fixes BUKKIT-1854 (2012-06-25)  ++* 558411692 - Don't wait for main thread when processing commands. (2012-11-17)  ++* 9add7d300 - Don't create tile entity when block placement fails. Fixes BUKKIT-2924 (2012-11-16)  ++* d21c5f387 - Ignore empty custom payload packets. Fixes BUKKIT-2957 (2012-11-16)  ++* 6466aa1d2 - Use synchronous calls and wait for chat disconnect. Fixes BUKKIT-2946 (2012-11-16)  ++* 82c8cf423 - Update tile entity when interact event is cancelled. (2012-11-16)  ++* 6952ad1e5 - Update CraftBukkit to Minecraft 1.4.5. (2012-11-16)  ++* 8e806550d - Remove fire ticks if damage has been canceled. Fixes BUKKIT-2933 (2012-11-15)  ++* 6149fc3e7 - Don't thread single chunk compression. Fixes BUKKIT-2927 (2012-11-15)  ++* e1afee008 - Update tile entity on client on cancelled block break. Fixes BUKKIT-2935 (2012-11-14)  ++* df69ea881 - Rework skull dropping. Fixes BUKKIT-2930 and BUKKIT-2820 (2012-11-14)  ++* 092800af2 - Fixed some async tasks running synchronously. Fixes BUKKIT-2934 (2012-11-14)  ++* c2bae0beb - Add crafting result slot for sheep breeding. Fixes BUKKIT-2926 (2012-11-14)  ++* 188a71ad5 - Clear out empty extended block ID array. Fixes BUKKIT-2923 (2012-11-14)  ++* 2b22ae2d4 - Potentially fix glitch with falling entities. (2012-11-13)  ++* db43197ec - Add EntityFallingBlock from mc-dev (2012-11-13)  ++* 5a999a266 - Correct digging behavior. Fixes BUKKIT-2780 (2012-11-04)  ++* 7f7192f8f - Update CraftBukkit to Minecraft 1.4.4. (2012-11-06)  ++* a0c3b4f9d - Updated version to 1.4.2-R0.3-SNAPSHOT for development towards next release. (2012-11-03)  ++* cc668b2f8 - Updated version to 1.4.2-R0.2 in pom.xml for Beta. (2012-11-03)  ++* f683d5568 - Migrate world data with world when switching from vanilla Minecraft to Bukkit. Fixes BUKKIT-2816 and BUKKIT-2760 (2012-11-02)  ++* 53d24e2b2 - [Bleeding] Fix mistranslation affecting time of the server vs time of day. Fixes BUKKIT-2797 (2012-11-02)  ++* 3dd0580d5 - Improved the potion test to detect missing PotionType values. (2012-11-01)  ++* 87d25c4cc - Fix compile issue with chunk generation. (2012-11-02)  ++* a4892dfa7 - Delegate recreateStructures to nms provider. Fixes BUKKIT-2760 (2012-11-01)  ++* 1c14586c4 - Add CraftArt mappings for Wither. Fixes BUKKIT-2667. (2012-11-01)  ++* 9a88e615d - Change ItemFrame to actually provide a defensive copy. Fixes BUKKIT-2784 (2012-10-31)  ++* 1fb3164a9 - Updated version to 1.4.2-R0.2-SNAPSHOT for development towards next release. (2012-10-31)  ++* b9486da5c - Updated version to 1.4.2-R0.1 in pom.xml for Beta. (2012-10-31)  ++* 1623bf0f9 - Fire HangingBreakEvent when explosions remove hanging entities. Fixes BUKKIT-2764 (2012-10-31)  ++* 87a1cd3d4 - Add inventory and slot types for new containers. Fixes BUKKIT-2741 (2012-10-31)  ++* 347fd3cb6 - Fix NPE when blowing up an item frame. Fixes BUKKIT-2763 (2012-10-31)  ++* f479aa84a - Implement API for ambient mob spawn limit. Add spawn-limit.ambient to bukkit.yml. Adds BUKKIT-2765 (2012-10-31)  ++* 46d7cd1e0 - Use BlockCommandSender for dispatching Command block commands (2012-10-31)  ++* 9e4e2c62a - Expose API for managing and using GameRules. Adds BUKKIT-2757 (2012-10-30)  ++* 59dc403a6 - Hook command block up to ConsoleCommandSender. Fixes BUKKIT-2684 (2012-10-30)  ++* 63eaf74d4 - Implement the API for ItemFrames. Adds BUKKIT-2668 (2012-10-31)  ++* 02ca9be07 - [Bleeding] Fire damage is no longer a valid reason for hanging entity removal (2012-10-31)  ++* 54cce5bf9 - [Bleeding] Implement new Hanging events. Adds BUKKIT-2754 (2012-10-30)  ++* 4efd06a6b - Remove Anvil debug. Fixes BUKKIT-2732 (2012-10-30)  ++* 42391009f - [Bleeding] Prevent players from appearing to be sneaking after they change dimensions whilst doing so. (2012-10-30)  ++* b7886d142 - Disable portal support for entities for now. Restore allowNether check. (2012-10-30)  ++* 6bf705dd0 - Expose API for clearing a player's inventory with a successful count return. Adds BUKKIT-2745 (2012-10-30)  ++* 856fdc2ab - Update map cursors to reflect 1.4 changes. Fixes BUKKIT-2740 (2012-10-29)  ++* 3047a424b - Expose API for giving and taking experience levels for use with ExpCommand's new behaviour with Minecraft 1.4. Adds BUKKIT-2739 (2012-10-29)  ++* aba7e2faf - Revert changing EntityType.FIREBALL to LARGE_FIREBALL (2012-10-29)  ++* 216cddb2a - Get skull data before destroying block. Fixes BUKKIT-2723 (2012-10-29)  ++* 14f4bd902 - Fix bug preventing non bed-reliant spawns from being successfully set. Fixes BUKKIT-2708 (2012-10-29)  ++* d16f8c5e6 - Drop skulls like every other block. Fixes BUKKIT-2678 (2012-10-28)  ++* f4cdf8fe9 - Add isHardcore API to check if the server is in hardcore mode or not. Adds BUKKIT-2707 (2012-10-29)  ++* 442b7a69f - Prevent health from wrapping around. (2012-10-28)  ++* db49a5769 - Update PotionEffects on player death. Fixes BUKKIT-2673 (2012-10-28)  ++* 0fb806c56 - Clamp difficulty levels to prevent invalid values (2012-10-28)  ++* 37a0d6757 - Don't filter item data for anvils. Fixes BUKKIT-2640 (2012-10-28)  ++* 9841b7700 - Use correct variable for squid Y motion. Fixes BUKKIT-2648 (2012-10-28)  ++* c675cc0b3 - Fix missed rename for ore exp dropping. Fixes BUKKIT-2662 (2012-10-28)  ++* d97d193b9 - Add new entities to World.spawn method. Fixes BUKKIT-2658 (2012-10-28)  ++* 788e9e84c - Fix incorrect method names missed during update. Fixes BUKKIT-2653 (2012-10-28)  ++* 11d65171c - These books are too powerful! (2012-10-28)  ++* 784f9e31a - Remove spawn-radius setting in bukkit.yml in favour of spawn-protection in server.properties. Fixes BUKKIT-2657 (2012-10-28)  ++* 5fe852302 - Fixed generator-settings not being set. Fixes BUKKIT-2652 (2012-10-28)  ++* 5469311a3 - Don't pass vanilla plugin channels to plugins. Fixes BUKKIT-2638 (2012-10-27)  ++* 60819c669 - Update CraftBukkit to Minecraft 1.4(.2). (2012-10-24)  ++* b9a72531b - Updated version to 1.3.2-R3.0 in pom.xml for RB. (2012-10-27)  ++* df7f86d02 - Made books less powerful, though you should still read them! (2012-10-27)  ++* bd6c824c1 - Updated version to 1.3.2-R2.1-SNAPSHOT for development towards next release. (2012-10-17)  ++* 46f773a68 - Updated version to 1.3.2-R2.0 in pom.xml for RB. (2012-10-17)  ++* 4166af1d3 - Implement chat tab completion API. Fixes BUKKIT-2608. Adds BUKKIT-2607. (2012-10-17)  ++* 3ce954bb8 - Delegate tab-completion. Fixes BUKKIT-2181. Adds BUKKIT-2602 (2012-10-09)  ++* 05e889f34 - Queue tasks from secondary threads. Fixes BUKKIT-2546 and BUKKIT-2600 (2012-10-07)  ++* 93a79cd0e - Implement new scheduler API. Adds BUKKIT-836 (2012-10-06)  ++* 506a1a076 - Ensure entity isn't destroyed when trying to show it. Fixes BUKKIT-2038 (2012-10-13)  ++* cb2f8244e - Updated version to 1.3.2-R1.1-SNAPSHOT for development towards next release. (2012-09-28)  ++* 979604953 - Updated version to 1.3.2-R1.0 in pom.xml for RB. (2012-09-28)  ++* 59d6b60c0 - Update entity target data to reflect current AI status. Fixes BUKKIT-2280 (2012-09-27)  ++* 62a9b8815 - Allow data values on mushroom and mob spawner blocks. Fixes BUKKIT-2346 (2012-09-28)  ++* b5580b6d9 - Remove player from destroy queue when they go visible. Fixes BUKKIT-2071 (2012-09-28)  ++* 244a39d20 - Use this world instead of the one in the entity. Fixes BUKKIT-2315 (2012-09-25)  ++* fc0e35a67 - Fix typo causing a task to be repeated in debug. Addresses BUKKIT-2549 (2012-09-28)  ++* 1d75bd35c - Updated version to 1.3.2-R0.3-SNAPSHOT for development towards next release. (2012-09-26)  ++* 7ec2e2a16 - Updated version to 1.3.2-R0.2 in pom.xml for Beta. (2012-09-26)  ++* 03f12497b - Map org.bukkit.Sound to String values for sending to client. (2012-09-26)  ++* 74b3be57b - Replace LongObjectHashMap with a more efficient implementation (2012-09-11)  ++* 9f70c1f38 - Set last accessed variables after grabbing chunk. Fixes BUKKIT-1033 (2012-09-20)  ++* cebc8cffe - CraftBukkit comment fixes (2012-09-14)  ++* 4b1f6aff3 - [Bleeding] Check visibility API for sounds. Fixes BUKKIT-2210 (2012-09-10)  ++* 349cb0bba - What is dead may never die. (2012-09-14)  ++* 412b4624c - Update the client after a FoodLevelChange event is fired. Fixes BUKKIT-2510 (2012-09-12)  ++* 9a4b85c93 - [Bleeding] Avoid spawn checks on empty worlds. Fixes BUKKIT-2508 (2012-09-03)  ++* 4c0dd6964 - Reverted changes to chunk saving behaviour. (2012-09-12)  ++* beee3ce2d - [Bleeding] Add autosave interval setting in bukkit.yml. Adds BUKKIT-2507 (2012-08-18)  ++* e2b1514da - Bulk pending cleanup. (2012-09-09)  ++* b1f6d16bf - Change local jline checks to not use String literals. Fixes BUKKIT-2455. (2012-09-02)  ++* 27d58a299 - Add information about async tasks to CrashReports. Addresses BUKKIT-2491 (2012-09-09)  ++* 4d5894e4c - Fix crash from console-commands throwing exception. Fixes BUKKIT-2479 (2012-09-06)  ++* c710ca827 - Fix BUKKIT-2419: PlayerAbilities not being updated on teleport/respawn (2012-08-27)  ++* 3307d489d - Fix Future task waiting logic. Fixes BUKKIT-2408 (2012-08-26)  ++* cb84d6b99 - Fix empty chunks not sending biome properly and causing client side issues. Fixes BUKKIT-2396 (2012-08-25)  ++* bedc2f035 - Updated version to 1.3.2-R0.2-SNAPSHOT for development towards next release. (2012-08-25)  ++* 4b840c968 - Updated version to 1.3.2-R0.1 in pom.xml for Beta. (2012-08-25)  ++* b8cc86208 - Update to 1.3.2 (2012-08-24)  ++* 35cff16da - Fix EmptyChunk's not sending to the Client correctly. Fixes BUKKIT-2206 (2012-08-23)  ++* c88531eca - Don't refactor packages with natives (2012-08-22)  ++* 9580c3e39 - Refactor CraftBukkit dependencies. Fixes BUKKIT-2329 (2012-08-19)  ++* dcd01bf0c - Rewrite scheduler. Fixes BUKKIT-1831, and BUKKIT-845 (2012-08-14)  ++* 8fdb00614 - Use constant Player for EnderPearls (2012-08-22)  ++* 98c98d0f7 - Fix entities not having valid "isValid" states. Addresses BUKKIT-2366 (2012-08-21)  ++* e3ae188ed - Fix instances where Signs have null lines. Addresses BUKKIT-684 (2012-08-18)  ++* 450edc300 - Use standard format function to format logs. Addresses BUKKIT-2246 (2012-08-11)  ++* 161ab5edc - Implement API for Sound, and playing the sounds for Worlds and Players. Adds BUKKIT-1430, BUKKIT-1226 and BUKKIT-2019 (2012-08-21)  ++* ccc760d62 - Use a dynamic pool size for the iterator cache (2012-08-19)  ++* e7e643d83 - Implement API to retrieve and open EnderChests. Adds BUKKIT-2016 (2012-08-20)  ++* feb0327d2 - Check unload queue so we don't accidentally leave a chunk loaded (2012-08-19)  ++* 7dde6cc56 - [Bleeding] Stub out MethodProfiler class (2012-08-15)  ++* e079d9457 - [Bleeding] Strip out unused HashSet in IntHashMap (2012-08-15)  ++* eaa3154b0 - [Bleeding] Cache packet ID instead of doing lookups each time it is needed (2012-08-11)  ++* 627cf2ef8 - [Bleeding] Remove redundant chunkList from ChunkProviderServer (2012-08-11)  ++* 97ac0a3f1 - Add LongObjectHashMap and LongHashSet (2012-08-17)  ++* 7b20caf8f - Use TrigMath in hotspots (2012-08-15)  ++* 821908138 - [Bleeding] Change Vec3DPool to a stack based pool (2012-08-11)  ++* d628c886d - Optimize entity AI goal selector (2012-08-17)  ++* 858d36efc - Add iterator cache to UnsafeList and use it in hotspots (2012-08-17)  ++* 6d777ade1 - [Bleeding] Optimize chunk loading (2012-08-09)  ++* 852602e43 - Add files from mc-dev for diff visibility (2012-08-10)  ++* b44fc8ed2 - Updated version to 1.3.1-R2.1-SNAPSHOT for development towards next release. (2012-08-19)  ++* 29ca5d1f5 - Updated version to 1.3.1-R2.0 in pom.xml for RB. (2012-08-19)  ++* 525499351 - Fix issues with chunk saving. Fixes BUKKIT-2158, BUKKIT-2018 and BUKKIT-2229 (2012-08-12)  ++* cacfc71b4 - Add more detailed CrashReport for CraftBukkit. Addresses BUKKIT-2319 (2012-08-17)  ++* acedd049c - Add CrashReport for diff visiblity (2012-08-17)  ++* 0bde47a17 - Don't extend pistons until data is set. Fixes BUKKIT-2153 (2012-08-08)  ++* 050a9276b - Removed unneeded mc-dev imports. Fixes BUKKIT-682 (2012-08-17)  ++* add387dee - Call PlayerQuitEvent in correct location. Fixes BUKKIT-2193 (2012-08-15)  ++* fc35d000e - Use correct SlotType's for merchants. Fixes BUKKIT-2257 (2012-08-14)  ++* b059962a5 - Implement methods for spawning FallingBlocks and add various FallingBlock methods. Adds BUKKIT-2282 (2012-08-13)  ++* 8748c8c75 - Enable hardcore support. Fixes BUKKIT-2259 (2012-08-12)  ++* aa92f0e31 - Update CreatureSpawner.setSpawnedType(EntityType) to 1.3 (2012-08-12)  ++* bfc518981 - Fix "block update packet" not being sent to the correct world. Fixes BUKKIT-2023 (2012-08-09)  ++* 342f9c3bd - Implement player speed API. Addresses BUKKIT-2205 (2012-08-10)  ++* 77cda7e71 - Add PlayerAbilities for diff visibility (2012-08-09)  ++* 27c1c85ad - Implement BlockBreakEvent block experience. Adds BUKKIT-2033 (2012-08-08)  ++* 8d946b88b - Add BlockMobSpawner and BlockOre for diff visibility (2012-08-08)  ++* a16e0b632 - Change socket traffic class try-catch. Fixes BUKKIT-2093 (2012-08-08)  ++* 25fe93479 - Restore port to the hostname. Fixes BUKKIT-2124 (2012-08-08)  ++* 24809ef98 - Re-add support for full chunk saving so the server save-alls on stop. Fixes BUKKIT-2158 (2012-08-08)  ++* a133bc718 - Make periodic chunk saving less aggressive and fixed double player data saving. Fixes BUKKIT-1994 and fixes BUKKIT-2144 (2012-08-07)  ++* 05b5a068c - Updated version to 1.3.1-R1.1-SNAPSHOT for development towards next release. (2012-08-07)  ++* fad4f39ac - Updated version to 1.3.1-R1.0 in pom.xml for RB (2012-08-07)  ++* 2bb7a5f94 - Implement new deprecated warning state configuration option (2012-08-06)  ++* bfbdbbd05 - Tripwire isn't redstone, only fire interact events. (2012-08-06)  ++* 7a3dfecba - Don't force chunks to load again, causes chunk leaks with multiworld. (2012-08-06)  ++* 0792b1588 - Pistons no longer extend before they are pistons. Fixes BUKKIT-1999 (2012-08-06)  ++* 59aaa6a80 - Fix dispenser removing data from items. Fixes BUKKIT-2045 (2012-08-06)  ++* 7dc47892a - Don't rotate ShapedRecipes. Fixes BUKKIT-1334 (2012-08-05)  ++* 164c06645 - Fix "moved too quickly" detection. (2012-08-05)  ++* e1a427395 - Fire events for tripwire and hooks. (2012-08-05)  ++* 982efb8c2 - Add BlockTripwire and BlockTripwireHook from mc-dev for diff visibility. (2012-08-05)  ++* 304cb019e - Fire EntityDeathEvent for pigs. Fixes BUKKIT-2100 (2012-08-05)  ++* 9cccb1c89 - Fix Vec3DPool; don't pool objects indefinitely or O(n^2) clear() (2012-08-05)  ++* f5777cc0b - Add Vec3DPool for diff visibility (2012-08-05)  ++* 44234c47c - Cease execution if block is AIR. Fixes BUKKIT-2104 (2012-08-05)  ++* a574ec54c - Put forceChunkLoad back to its original value. (2012-08-05)  ++* beb71069b - Don't use Packet56 and clear client cache on world changes. (2012-08-05)  ++* 0e013fa4b - Fixed PlayerManager ConcurrentModificationExceptions. Fixes BUKKIT-1972 (2012-08-04)  ++* 9804665fe - Fix bounding box pool to use a dynamic cache size (2012-08-04)  ++* 14a470985 - Add AABBPool for diff visibility (2012-08-04)  ++* e5acb6cf3 - Don't tick chunks or entities on chunks that are queued for unload. (2012-08-04)  ++* fdd01feb8 - Avoid CME when lightning strikes by making a copy. Fixes BUKKIT-2055 (2012-08-04)  ++* a5da83425 - Fix chat not being cancellable when not using deprecated API. (2012-08-04)  ++* 9bed5272d - Re-implement code missing from leaving the end. Fixes BUKKIT-2003 (2012-08-04)  ++* 823e3fb0c - Correctly detect invalid PistonExtension's to allow removal of StickyPistons. Fixes BUKKIT-2059 (2012-08-04)  ++* ab8b7c7e3 - Potentially fix chunk leaking, needs further examination (2012-08-04)  ++* f90bd7e7c - Fix PlayerBucketEmptyEvent handling. Fixes BUKKIT-2002 and fixes BUKKIT-1997 (2012-08-03)  ++* 02d6703da - Implement new AsyncPlayerChatEvent. Addresses BUKKIT-2064 (2012-08-03)  ++* 4942f5184 - Don't merge items with enchantments. Fixes BUKKIT-2050 (2012-08-03)  ++* 8834d1423 - Fix 1.3 changes that prevent nether and the_end to save level data. (2012-08-02)  ++* 07794300d - [Bleeding] Fire inventory close event. Fixes BUKKIT-2036 (2012-08-03)  ++* fe8fc6b90 - Process entity ticks on worlds without players. Fixes BUKKIT-2031 (2012-08-03)  ++* f5794937a - Print short message on exception to avoid spamming console. Fixes BUKKIT-2018 (2012-08-03)  ++* dcf83bc1b - Restore configurable connection throttle. (2012-08-03)  ++* e156354a6 - Add DedicatedServerConnectionThread from mc-dev for diff visibility. (2012-08-03)  ++* d5fea5fd0 - Fixed translation issue breaking custom world generation. Fixes BUKKIT-1975 (2012-08-02)  ++* c711827e9 - Fix mapping of ChunkSection nibble data to snapshot. Fixes BUKKIT-1977 (2012-08-02)  ++* 35a3d701a - Add trailing / to BukkitDL URLs. Fixes BUKKIT-2015. (2012-08-02)  ++* 8dc52123b - Fix dispenser event handling (2012-08-02)  ++* d18972eca - Fix Nether and The End having the same world names. (2012-08-02)  ++* 402b177be - Add missing callWorldInitEvent on startup. (2012-08-02)  ++* 764c3f24e - Add test for WorldType's (2012-08-02)  ++* a43d621c0 - Update CraftBukkit to Minecraft 1.3.1 (2012-07-29)  ++* 08e2923bd - Updated version to 1.2.5-R5.1-SNAPSHOT for development towards next release. (2012-07-28)  ++* 32378a719 - Updated version to 1.2.5-R5.0 in pom.xml for RB. (2012-07-28)  ++* a4d769129 - Detect and disconnect 1.3 clients properly. Fixes BUKKIT-1952 (2012-07-26)  ++* b00de5f17 - Cleaned up CraftBukkit comments in NMS. (2012-07-22)  ++* 8b9aad8c2 - Add remaining missing setLastDamageCause's (2012-07-13)  ++* 79189c1c1 - Add missing setLastDamageCause. Thanks MonsieurApple (2012-07-13)  ++* 46125dc6c - Implement getExpToLevel method. Fixes BUKKIT-1906 (2012-07-10)  ++* cf9544c1d - Reuse ItemInWorldManager, and stop applying ability changes. Fixes BUKKIT-1811 (2012-07-09)  ++* 08740d7f9 - [Bleeding] Include chunk biome data for refresh chunk. Fixes BUKKIT-1166 (2012-04-04)  ++* dba9349ed - Factor invulnerableTicks into getNoDamageTicks. Fixes BUKKIT-1324 (2012-07-04)  ++* d7272f42e - Implement getMotd, and reload the motd. Adds BUKKIT-1799 (2012-07-03)  ++* 00efc8c46 - Apply setLastDamageCause after processing events and the event has not been canceled. Fixes BUKKIT-1881 (2012-07-01)  ++* e4e994f71 - Treat ComplexParts as proxies for setLastDamageCause. Fixes BUKKIT-1821 (2012-07-01)  ++* 0a0d5ebf2 - Clean entity.damage functions. Fixes BUKKIT-1822 (2012-07-01)  ++* ff09ff07f - Fix deprecated spawnCreature. Fixes BUKKIT-1880 (2012-07-02)  ++* 6093bcc44 - Fix client crash on InventoryClick cancel. Fixes BUKKIT-1841 (2012-06-22)  ++* a21f038fc - Mark entities as invalid when they get despawned. Addresses BUKKIT-810 (2012-06-25)  ++* f5b6abfae - Fix double overflow/underflow calculations with explosions. Fixes BUKKIT-1865 (2012-06-23)  ++* 412b7eaa1 - Implement LivingEntity.hasLineOfSight. Addresses BUKKIT-1255 (2012-03-21)  ++* 78acee359 - Use LinkedHashSet to make redstone update order consistent. Fixes BUKKIT-1850 (2012-06-21)  ++* ea4d3662b - Deprecate spawnCreature and add spawnEntity. Addresses BUKKIT-1168 (2012-04-25)  ++* 568fae2e8 - Trigger EntityBlockChangeEvent for Silverfish. Adds BUKKIT-1560 and BUKKIT-1593 (2012-04-28)  ++* 23d5922bb - Added EntitySilverfish for diff visibility (2012-04-28)  ++* 57763845d - Implement plugin channel events. Addresses BUKKIT-1844 (2012-06-20)  ++* 9f37f7052 - Fire PlayerItemBreakEvent. Addresses BUKKIT-1600 (2012-05-06)  ++* 8bc42ba8c - Clear animal owner when untamed. Fixes BUKKIT-1482 (2012-06-17)  ++* 0095add08 - Add query-plugins setting. Addresses BUKKIT-1781 (2012-06-09)  ++* 6bbae461d - Fix Heisenplayers (2012-06-17)  ++* ae98a6f05 - Changes '/whitelist list' to ignore comments. Addresses BUKKIT-1804 (2012-06-14)  ++* ae94a3308 - Preserve whitelist ordering. Addresses BUKKIT-1805 (2012-06-14)  ++* e35f6f252 - Fire NotePlayEvent. Fixes BUKKIT-1779 (2012-06-10)  ++* 72d64b516 - Add TileEntityNote from mc-dev for diff visibility. (2012-06-10)  ++* 900269065 - Implement asynchronous pre-login event; Addresses BUKKIT-1213 (2012-03-17)  ++* ed6d4c775 - Support asynchronous events; Addresses BUKKIT-1212 (2012-06-13)  ++* f58e51419 - Don't send kick message if the message is empty. Fixes BUKKIT-1789 (2012-06-12)  ++* 01fe76733 - Fire PlayerToggleFlightEvent. Fixes BUKKIT-1696 (2012-05-25)  ++* 478654351 - Check world before checking distance. Fixes BUKKIT-1792 (2012-06-12)  ++* b7827c4d2 - Fixed EnderDragon not dealing damage after it has been hit. Fixes BUKKIT-1751 (2012-06-12)  ++* 0f23a4fe2 - Synchronize handler lists (2012-06-11)  ++* 0942b1861 - Handle rcon timeouts properly (2012-06-10)  ++* 87600345c - Updated version to 1.2.5-R4.1-SNAPSHOT for development towards next release. (2012-06-09)  ++* 6d8b038f3 - Updated version to 1.2.5-R4.0 in pom.xml for RB. (2012-06-09)  ++* d836e5787 - Kill fireball if velocity isn't present. Fixes BUKKIT-1228 (2012-06-09)  ++* d5ba6c664 - Fix fireballs freezing when the chunk unloads. Addresses BUKKIT-1228 (2012-06-09)  ++* 3df6608a7 - Fixed potential infinite loop in RCON handling. Fixes BUKKIT-1570 (2012-06-08)  ++* 873ce288c - Fixed decompile for loop handling (2012-06-09)  ++* 282fcb44e - Added RemoteControlSession for diff visibility. (2012-06-08)  ++* 77cc225b8 - Don't try to parse directories if we don't have any. (2012-06-06)  ++* 6a3751114 - Try to make parent directories for --log-pattern path. Fixes BUKKIT-680 (2012-04-24)  ++* e385ffaef - Call ignite event for fireball shot from dispenser. (2012-05-14)  ++* d8199aaa3 - Fix a NullPointerException. (2012-06-04)  ++* f15785669 - Launch fireballs at eye location. Fixes BUKKIT-1155 (2012-04-16)  ++* e52003220 - Further improving ItemStack handling (2012-05-31)  ++* 13fcb9e37 - Make log-strip-color a simple flag instead of a boolean. (2012-06-02)  ++* 70c91c161 - Resize UnsafeList to initial capacity when cleared and implement clone. (2012-05-31)  ++* 894ea0656 - Reduce default size of path array. Addresses BUKKIT-1469. (2012-05-31)  ++* 9e5d6699f - Add Path.java from mc-dev for diff visibility (2012-05-31)  ++* 266212f9f - Fix bold states while printing; Fixes BUKKIT-1716 (2012-05-26)  ++* 25cfdfa05 - Change mapping of Gold from yellow bold to yellow; Addresses BUKKIT-1717 (2012-05-26)  ++* 17cea3e57 - Updated version to 1.2.5-R3.1-SNAPSHOT for development towards next release. (2012-05-26)  ++* a18c60883 - Updated version to 1.2.5-R3.0 in pom.xml for RB. (2012-05-26)  ++* 5d3c8bfaa - Removed AnimalTamer cache, fixes BUKKIT-1628 (2012-05-24)  ++* c43012ef1 - Fixed broken hashCode() (2012-05-06)  ++* 92dce25d3 - Update Bukkit API dependency to 1.2.5-R2.1-SNAPSHOT (2012-05-24)  ++* c1bc0df71 - Add in checks for potential NPEs. Fixes BUKKIT-1706 and BUKKIT-1590. (2012-05-24)  ++* 2f16b8ffa - Don't spam console with errors on unexpected disconnect. Addresses BUKKIT-693 (2012-05-13)  ++* c07d4fffb - Adding NetworkWriterThread for diff visibility (2012-05-13)  ++* 8be14b5bb - Fix inaccurate head yaw. Fixes BUKKIT-1702 (2012-05-13)  ++* fdddc681d - Use jansi's Windows support for terminal colors. (2012-05-23)  ++* 478fa4a96 - Remove "failed to querty stty columns" spam. Fixes BUKKIT-1669. (2012-05-23)  ++* 2e744dbf6 - Add files from jline for diff visibility (2012-05-23)  ++* 94e9543a1 - Add fallback for when jline fails to initialize. Fixes BUKKIT-1675. (2012-05-22)  ++* 21327265f - [Bleeding] Improve handling of ItemStacks. Addresses BUKKIT-1697 (2012-05-23)  ++* 0f984dd9a - Re-implement World.getTemperature and World.getHumidity (2012-05-11)  ++* d484956c1 - Updated version to 1.2.5-R2.1-SNAPSHOT for development towards next release (2012-05-19)  ++* f5da24cb8 - Updated version to 1.2.5-R2.0 in pom.xml for RB. (2012-05-17)  ++* af89cc783 - Don't cap food level at 20 when eating. Fixes BUKKIT-1667 (2012-05-17)  ++* 3ee75ab6d - Replace TextWrapper with simple newline splitting. Fixes BUKKIT-1662 (2012-05-16)  ++* b6d611d9b - Revert obsolete "fix" for Redstone Torches (2012-05-14)  ++* 41b2e89c7 - Assert that the block is still present after placement. Fixes BUKKIT-1399 (2012-05-14)  ++* 1d361c2f4 - Fix block place protection using a larger radius. Fixes BUKKIT-1617 (2012-05-15)  ++* 4c8f6f2ca - Add option to strip color codes from server.log file (2012-05-15)  ++* e91169eba - Add ConsoleLogFormatter for diff visibility (2012-05-15)  ++* 31d488a38 - Update to jline 2. Fixes BUKKIT-717 (2012-03-14)  ++* cbd20ec9e - Use a different temp file for each player to avoid corruption. Fixes BUKKIT-1607 (2012-05-01)  ++* ef7e14f9e - Fire events for fireball item usage. Fixes BUKKIT-1566 (2012-04-25)  ++* bbc3d31be - Add ItemFireball from mc-dev for diff visibility (2012-04-25)  ++* fdc5c17a4 - Updated version to 1.2.5-R1.4-SNAPSHOT for development towards next release. (2012-05-02)  ++* c7f70f242 - Updated version to 1.2.5-R1.3 in pom.xml for Beta. (2012-04-30)  ++* 2f976705b - Revert "Fix potential NPE in vanish API. Fixes BUKKIT-1541" (2012-04-27)  ++* 99aeb32d0 - Remove Player cache and edit CraftPlayer.equals to account for EntityID. Fixes BUKKIT-1541 and Addresses BUKKIT-761 (2012-04-21)  ++* 53ed0dad4 - Don't call event if getOwner is null. Fixes BUKKIT-1545 (2012-04-25)  ++* 3e382034e - Fix growing large tress near world height. Fixes BUKKIT-1072 (2012-04-25)  ++* 0153fe1f3 - Check if packet is null before checking priority. Fixes BUKKIT-1579 (2012-04-25)  ++* efab1e8b1 - Updated version to 1.2.5-R1.3-SNAPSHOT for development towards next release. (2012-04-25)  ++* 4368b2129 - Updated version to 1.2.5-R1.2 in pom.xml for Beta. (2012-04-24)  ++* 40be9c840 - Optimized a little too much. Update goals every tick again to avoid AI oddness. (2012-04-24)  ++* 8f1fc96da - Fixed per-world spawn limits. I have no idea how we missed this. (2012-04-24)  ++* 73ae279e8 - Update players when potion effects are moved from them. Fixes BUKKIT-789 (2012-04-24)  ++* e98cfbd99 - Remove address from throttle hashmap before killing socket. Fixes BUKKIT-659 (2012-04-24)  ++* e3363db0a - Remove "Fetching addPacket..." spam as it isn't useful. Fixes BUKKIT-32 (2012-04-24)  ++* 9c12dc0ef - Fix potential NPE in vanish API. Fixes BUKKIT-1541 (2012-04-24)  ++* 0220c1ff7 - Remove legacy Chunk cache. Fixes BUKKIT-1400 (2012-04-24)  ++* 119b5d18a - Load player data before calling PlayerLoginEvent. Fixes BUKKIT-1531 and Fixes BUKKIT-601. (2012-04-18)  ++* e61a31681 - We build for Java 1.5. (2012-04-23)  ++* edfc8ba92 - Add per-world spawn limits with fallback to server-wide bukkit.yml settings. Fixes BUKKIT-1565 (2012-04-23)  ++* b7376e086 - Avoid doing unnecessary range checks when we're looping from start to end. Make EntityLiving call AI logic every tick again. Rework PathfinderGoalSelector logic. (2012-04-23)  ++* e8459c1ff - Optimize AI and EntityLiving ticking (2012-04-21)  ++* 343f39b2b - Add PathfinderGoalSelector for diff visibility (2012-04-21)  ++* 8f6fe0a64 - Rework clipping logic again, now works as well as the original implementation (2012-04-20)  ++* 3e15a6911 - Added Packet24 for diff visibility. (2012-04-19)  ++* e28ae3f2f - Reworking clipping logic; Fixes BUKKIT-1472 (2012-04-15)  ++* 2e646d280 - Made permissions.yml registration easier; Addresses BUKKIT-1499 The permissions.yml now behaves similar to a plugin.yml (2012-04-15)  ++* 748ebae55 - Properly call EntityDeathEvent for mobs. Fixes BUKKIT-1519 (2012-04-15)  ++* 6307efd2d - Set current recipe to null when a recipe isn't found. Fixes BUKKIT-1456 (2012-04-14)  ++* 27a9b4c90 - Filter entity spawning sanely. (2012-04-14)  ++* 0026a08fa - Use SpawnReason.DEFAULT instead of SpawnReason.CUSTOM, freeing CUSTOM to plugin spawning. This gets used in case we are missing appropriate SpawnReason's for various Entity spawns. (2012-04-14)  ++* e17d3ece0 - Added SpawnReason.SLIME_SPLIT, Fixes BUKKIT-790 (2012-04-14)  ++* 1dcb39074 - Persist PlayerDeathEvent values. Fixes BUKKIT-1521 (2012-04-14)  ++* e8b6eb717 - Updated version to 1.2.5-R1.2-SNAPSHOT for development towards next release. (2012-04-08)  ++* b161aaa36 - Updated version to 1.2.5-R1.1-SNAPSHOT for development towards next release. (2012-04-05)  ++* 4563d6b22 - Updated version to 1.2.5-R1.0 in pom.xml for RB. (2012-04-04)  ++* 7586e7168 - Make the dispenser check if the dispensed item has been changed before removing it. Fixes BUKKIT-316 (2012-04-03)  ++* 6a79e506c - Implement new address to PlayerLoginEvent; Addresses BUKKIT-431 (2012-04-03)  ++* 20dea920c - Don't spawn conditional mobs if original entity is dead. Fixes BUKKIT-1444 (2012-04-03)  ++* af0018a96 - Mark entities as dead when spawning fails. Treat as canceled if entity is dead. (2012-04-03)  ++* 0c9e1b13a - Made using RAW_FISH on Ocelots when a player has the ability to instantly build not decrement the stack. Fixes BUKKIT-1439 (2012-04-03)  ++* 2315fb778 - Updated version to 1.2.5-R0.2-SNAPSHOT for development towards next release. (2012-04-03)  ++* 0b9b76c67 - Updated version to 1.2.5-R0.1 in pom.xml for beta. (2012-04-03)  ++* 52d9473e6 - SpawnRadius should only apply to main world. Fixes BUKKIT-1427 (2012-04-02)  ++* bad3979b8 - Make EntityCreatePortalEvent block list Unmodifiable. (2012-04-02)  ++* 470d9f9e1 - Tell clients to update if EntityPortalCreateEvent is canceled. Fixes BUKKIT-1426 (2012-04-02)  ++* 81102479a - Made Slimes spawn less often in FLAT worlds. Fixes BUKKIT-1441 (2012-04-02)  ++* 7594c91c8 - Made item use when a player has the ability to instantly build not decrement the stack. Fixes BUKKIT-1439 (2012-04-02)  ++* f4558f5d7 - [Bleeding] Hacky entity clipping fix; Fixes BUKKIT-50 (2012-04-02)  ++* a963880bd - Add BlockRedstoneEvent to Redstone Lamps, Addresses BUKKIT-1431 (2012-04-02)  ++* ed8cf5196 - Add BlockRedstoneLamp for diff visibility. (2012-04-02)  ++* 058bd748b - Fixed interacting with Air returning a false block. (2012-04-01)  ++* 7c137d8b1 - Added a reason for randomly spawning Ocelot babies. Addresses BUKKIT-1391 (2012-03-30)  ++* c8d4a7c83 - Fixed breaking at world height in creative. Fixes BUKKIT-997 (2012-03-31)  ++* fdab1db7c - Added missing //CB comment (2012-03-30)  ++* 1fa4d8430 - Updated version to 1.2.5-R0.1-SNAPSHOT (2012-03-30)  ++* e0c01154b - Fixed potential issue when converting worlds. Fixes BUKKIT-1307 (2012-03-29)  ++* cbab48a7b - Added OldChunkLoader for diff visibility. (2012-03-29)  ++* 16665d45d - Updated version to 1.2.4-R1.1-SNAPSHOT for development towards next release. (2012-03-29)  ++* f9fa2f1c6 - Updated version to 1.2.4-R1.0 for release. (2012-03-28)  ++* 57873b8d0 - [Bleeding] Added SpawnReason.BREEDING. Fixes BUKKIT-1356 (2012-03-26)  ++* ec123deb7 - Adding PathfinderGoalBreed for diff visibility. (2012-03-26)  ++* c100e20d6 - Reverting the Drop API for now, we need to re-evalute this as it is causing too many issues and blocking releases. (2012-03-27)  ++* c16bf07e8 - [Bleeding] Allow CraftItem to be backed by non-EntityItems. Fixes BUKKIT-1351 (2012-03-25)  ++* bdccfd29e - [Bleeding] Stop filtering out 0 damage for Humans. Fixes BUKKIT-1348 (2012-03-26)  ++* 9d0ea5202 - [Bleeding] Fixed potions throwing double events. Fixes BUKKIT-1332 (2012-03-25)  ++* b45184fdf - [Bleeding] Fixed dropping invalid Magma Creams. Fixes BUKKIT-1336 (2012-03-25)  ++* f1a235dcb - [Bleeding] Fixed ocelot dropping leather. Fixes BUKKIT-1333 (2012-03-25)  ++* e66159e21 - [Bleeding] Fix snowball drops. Fixes BUKKIT-1314 (2012-03-25)  ++* 80db22b64 - Refactor code to be more efficient. (2012-03-25)  ++* c30e339af - [Bleeding] Fixed item duping in certain occasions. Fixes BUKKIT-1310 (2012-03-25)  ++* 0c9b59e07 - [Bleeding] Fixed TNT dropping when it shouldn't. Fixes BUKKIT-1304 (2012-03-25)  ++* 94d718a14 - Check abilities instead of mode for allow flight check. Fixes BUKKIT-1302 (2012-03-24)  ++* 9c7ffb6d3 - [Bleeding] Fixed blocks dropping when BlockBreakEvent is canceled. Fixes BUKKIT-1299 (2012-03-23)  ++* 942c1c6a3 - Fixed incorrect assigning to isFlying when toggling setAllowedFlight(false) (2012-03-23)  ++* 6ef950041 - Fixed fatal crash at world generation. (2012-03-23)  ++* 40e096273 - Seriously fix natural drops. Fixes BUKKIT-1297 and fixes BUKKIT-1295 (2012-03-23)  ++* ff22e4e34 - Really fixed Block.breakNaturally(). Fixes BUKKIT-1295 (2012-03-23)  ++* b60a6743e - Fixed Block.breakNaturally(). Fixes BUKKIT-1295 (2012-03-23)  ++* cf2abd20e - Fixed Doors not dropping when the block they are placed on is removed. Fixes BUKKIT-1292 (2012-03-23)  ++* 52ecd60e6 - [Bleeding] Add a check for illegal blocks. Addresses BUKKIT-1278. Needs more investigation. (2012-03-22)  ++* 724b82626 - Reverted to original TextWrapper. Might re-investigate after the RB. Fixes BUKKIT-1275 (2012-03-22)  ++* 904cf388b - Re-added TextWrapper, and fixed chat length issues (at cost of it looking not so nice sometimes!) This fixes BUKKIT-1275 (2012-03-22)  ++* ddaf3c84d - Fixed Connection Throttle handling. Fixes BUKKIT-1279 (2012-03-22)  ++* 8fb141bfa - Implemented new player flight methods. This implements BUKKIT-1281. This also fixes BUKKIT-1146. (2012-03-22)  ++* ca8b9a0bb - Removed temporary hackish fix for the entity interactivity issues, fixed properly in MC1.2.4. (2012-03-22)  ++* ccbb4b479 - Made Snowmen use a DamageCause MELTING for melting in hot biomes. Addresses BUKKIT-1244 (2012-03-22)  ++* f6bcaa6b0 - Fixed minecarts being dropped when crashing a boat. Fixes BUKKIT-1273 (2012-03-22)  ++* c2cdeac09 - Added configurable Connection Throttle. Addresses BUKKIT-1274 (2012-03-22)  ++* dda37aa18 - Nuked TextWrapper. We don't need you anymore, old friend :( (2012-03-22)  ++* 9d09e7d01 - Updated to Minecraft version 1.2.4. Updated version string to 1.2.4-R0.1. (2012-03-22)  ++* 8dc7417a3 - [Bleeding] Fixed bug involving pistons and powered rails. This fixes BUKKIT-517 (2012-03-21)  ++* 8ad27aa01 - Added BlockMinecartTrack and MinecartTrackLogic for diff visibility. (2012-03-21)  ++* 8d35caf07 - Kick for invalid carried item. (2012-03-22)  ++* f188afe79 - [Bleeding] Prevent update inconsistencies on generation/decoration that span chunks. Fixes BUKKIT-871 (2012-03-21)  ++* 09a73d352 - [Bleeding] Make sure biome data is initialized during generate - prevent uninitialized data being sent to client. Fixes BUKKIT-871 (2012-03-20)  ++* 6cd2a7080 - Added for diff visibility: (2012-03-20)  ++* 0a925ff06 - [Bleeding] Added support for custom index help topics in help.yml. Addresses BUKKIT-1263 (2012-03-22)  ++* eb3c092ef - [Bleeding] Added option to completely disable all automatic help topic generation by adding "All" to the ignore-plugins list in help.yml. Addresses BUKKIT-1264 (2012-03-21)  ++* 31b1bc02c - [Bleeding] Fixed a StackOverflowError with command alias handling for Help. Addresses BUKKIT-1253 (2012-03-20)  ++* 8aee4c3f5 - [Bleeding] Added support for all TreeType entries to CraftWorld.generateTree(). Addresses BUKKIT-1161 (2012-03-13)  ++* 27acb4c41 - Added WorldGenSwampTree for diff visibility (2012-03-11)  ++* 169c2ee8c - [Bleeding] Added Ageable interface for Villagers and Animals to extend. Addresses BUKKIT-1232 (2012-03-19)  ++* 96c4bb7da - [Bleeding] Account for new rare drops in EntityDeath events. Fixes BUKKIT-1105 (2012-03-20)  ++* 1c95413f4 - [Bleeding] Fix for creeper getDrops() not reporting the music disk if it was killed by a skeleton. Addresses BUKKIT-1133 (2012-03-10)  ++* 5ba892804 - [Bleeding] Added getting and setting drops to all appropriate events. Fixes BUKKIT-397 and fixes BUKKIT-1252 (2012-03-05)  ++* 8d62de705 - Added for diff visibility: (2012-03-06)  ++* 784aa3b60 - [Bleeding] Fix the openInventory methods for custom inventories. Fixes BUKKIT-1248 (2012-03-17)  ++* 43001ca2a - [Bleeding] Only fire CraftItemEvent if there's actually an item there to craft (ie, don't fire it for a click on an empty result slot). Fixes BUKKIT-1250 (2012-03-18)  ++* 93732e21b - [Bleeding] Fixed NullPointerException in InventoryView.setCursor() if you tried to empty the cursor by setting it to null. Fixes BUKKIT-1043 (2012-03-13)  ++* 288662bfa - [Bleeding] Fix some return types that could lead to ArrayStoreException (2012-03-17)  ++* b9a71db04 - [Bleeding] Make crafting and enchanting inventories keep track of their owner rather than returning null. Addresses BUKKIT-1209 (2012-03-13)  ++* 4bcbe2d23 - [Bleeding] Add Chest.getBlockInventory() for convenience; this always returns a single chest inventory. Addresses BUKKIT-1247 (2012-03-19)  ++* cd9779196 - [Bleeding] Add iterator() with starting index. Addresses BUKKIT-1246 (2012-03-17)  ++* 796653111 - [Bleeding] Completely fix the tree generation algorithm to make it near identical to vanilla as well as fix potential bugs associated with disappearing saplings. (2012-03-16)  ++* ea60181a8 - [Bleeding] Added way to get/set if Iron Golem was player created. Addresses BUKKIT-1229 (2012-03-08)  ++* 68b98d4c8 - [Bleeding] Implement ExpBottleEvent; Addresses BUKKIT-888 (2012-03-20)  ++* 9055a20d7 - Added EntityThrownExpBottle for diff visibility. (2012-03-20)  ++* 71a51b024 - Reverted invalid clone. Fixes BUKKIT-1198 (2012-03-16)  ++* 82fab5b2d - [Bleeding] Moved HelpTopicComparator to Bukkit.jar. Addresses BUKKIT-1193 (2012-03-16)  ++* 4589e943f - [Bleeding] Added support for color codes in help.yml. Addresses BUKKIT-1191 (2012-03-16)  ++* 46429c6cb - [Bleeding] Implemented the command-topics-in-master-index option in help.yml. Addresses BUKKIT-1189 (2012-03-15)  ++* f87e053c6 - [Bleeding] Added automatically generated plugin-level sub-indexes to the master help index. Addresses BUKKIT-1180 (2012-03-15)  ++* 184faf1f2 - [Bleeding] Added option to remove entire plugins from the help index using the help.yml file. Addresses BUKKIT-1178 (2012-03-14)  ++* fc697a4f4 - Fixed translation issue in EntityMinecart. Addresses BUKKIT-980 (2012-03-16)  ++* 241cf1c66 - [Bleeding] Allow custom inventory views to change their type to BREWING or ENCHANTING, and also allow them to change their title and size. Fixes BUKKIT-1190 (2012-03-12)  ++* db5f80448 - [Bleeding] Check top inventory type when determining whether a click event is a craft event. Fixes BUKKIT-1112 (2012-03-13)  ++* f7da5d2ad - [Bleeding] Disabled data filtering for mob spawners. Addresses BUKKIT-329 (2012-02-26)  ++* 5c8fd4995 - [Bleeding] Implemented Inventory.{get,set}MaxStackSize(). Addresses BUKKIT-1076 (2012-03-14)  ++* 66e067f37 - [Bleeding] Make InventoryView.setItem(-999, item) drop the item on the ground by default. (2012-03-13)  ++* 83265005f - [Bleeding] Made ItemStack constructors not default to an amount of 0. Fixes BUKKIT-610 (2012-03-12)  ++* 76cc48840 - [Bleeding] DoubleChestInventory.getHolder() no longer returns null. Addresses BUKKIT-995 (2012-03-12)  ++* f27427ad1 - Fix some improper item cloning instances that would have dropped enchantments (2012-03-13)  ++* 77ceb0002 - Fix losing enchants from stacked items in custom inventories (2012-03-02)  ++* 42822ddca - Re-added EntityCombust event to skeletons. Fixes BUKKIT-1188 (2012-03-15)  ++* 92f771a02 - [Bleeding] Implemented ProjectileLaunchEvent. Addresses BUKKIT-284 (2012-03-12)  ++* 6f6f8ef00 - Updating minecraft-server dependency. (2012-03-15)  ++* b4c9ad518 - [Bleeding] Call DamageEvent before CombustEvent for Arrows. Fixes BUKKIT-1100 (2012-03-14)  ++* 3054d020d - Disabled BukkitDLUpdaterServiceTests. Nice to have, but should not be run on every compile as it relies on DLB being up. Addresses BUKKIT-1140 (2012-03-15)  ++* c90a7a52e - [Bleeding] Fixed maxStack being incorrectly set to 0 in custom craft inventories. Fixes BUKKIT-1181 (2012-03-15)  ++* 450316728 - Fixed EntityDamageByEntityEvent to call for every attackable entity. Fixes BUKKIT-1129, Fixes BUKKIT-1054 and Fixes BUKKIT-147. (2012-03-12)  ++* c625d0035 - Stop loading the 'flying' setting from player.dat until it is properly implemented and used in NMS. Fixes BUKKIT-1183 (2012-03-15)  ++* adebd466f - Added PlayerAbilities for diff visibility. (2012-03-15)  ++* 5a6878b9b - Made stepping on Redstone Ore fire PlayerInteract events for players, EntityInteract events for other entities. Fixes BUKKIT-1163 and fixes BUKKIT-1182 (2012-03-14)  ++* 16c6cbe5e - Added BlockRedstoneOre for diff visibility. (2012-03-14)  ++* 868eaf571 - [Bleeding] Call a LAVA BlockIgniteEvent in another place in BlockStationary. Fixes BUKKIT-970 (2012-03-10)  ++* 2a4167d8a - Made snowmen in rain or water fire EntityDamage events with DamageCause DROWNING. Fixes BUKKIT-1165 (2012-03-14)  ++* 373afd1b2 - Made snowmen melting fire EntityDamage events with DamageCause FIRE_TICK. Fixes BUKKIT-1164 (2012-03-14)  ++* f219f0efe - Implemented Enchantment.conflictsWith(). Addresses BUKKIT-1159 (2012-03-12)  ++* 28c1f571d - [Bleeding] Added Player.isBlocking(). Addresses BUKKIT-858 (2012-03-12)  ++* b37872c1a - Made PlayerInteractEvent fire for digging within spawn for informational purposes only. Fixes BUKKIT-1086 (2012-03-13)  ++* 06b814fd7 - [Bleeding] Added EntityBreakDoorEvent. Fixes BUKKIT-1134 (2012-03-10)  ++* 69ee00b6f - Adding PathfinderGoalBreakDoor for diff visibility. (2012-03-10)  ++* 1b6ca577f - Fixed translation issue and enderman not spawning when The End is generated. Fixes BUKKIT-1115 (2012-03-11)  ++* 0f659850b - Made golems spawning respect spawn-animals for real. Fixes BUKKIT-1124 (2012-03-11)  ++* fadc93060 - Updated version to 1.2.3-R0.3-SNAPSHOT for development towards next release. (2012-03-11)  ++* de02f8197 - Updated version to 1.2.3-R0.2 in pom.xml for beta. (2012-03-11)  ++* 8ddd2f056 - [Bleeding] Help index now identifies itself as "Help: Index" rather than "Help: null" (2012-03-11)  ++* c84af98cc - Made World.refreshChunk() refresh the chunk, thanks zerg960! Fixes BUKKIT-1014 (2012-03-04)  ++* 4545336fd - Only remove blocks when golem is successfully spawned. Fixes BUKKIT-1094 (2012-03-10)  ++* 433efec68 - Fixed BlockStateListPopulator in EntityEnderDragon not being populated. Fixes BUKKIT-1130 (2012-03-11)  ++* 2aad49eec - Made ender pearls use the player's yaw and pitch. Fixes BUKKIT-1056 (2012-03-11)  ++* 49ff166d1 - Fixed potential packet loss issue with vanish API. Fixes BUKKIT-1125 (2012-03-10)  ++* bdd2139c7 - [Bleeding] Add getWorldType() and getGenerateStructures() to CraftServer. Fixes BUKKIT-855 (2012-03-10)  ++* eaa56941f - [Bleeding] Make zero (or very small) explosions do no damage. Fixes BUKKIT-931 (2012-03-09)  ++* 996832ff6 - [Bleeding] Added support for amending help topic visibility permissions in help.yml. Addresses BUKKIT-1113 (2012-03-10)  ++* a8b2c6d04 - [Bleeding] Implemented command aliases in help. Addresses BUKKIT-1028 (2012-03-10)  ++* 03ce67c38 - [Bleeding] Moved DefaultHelpTopic and GenericCommandHelpTopic to public bukkit api. (2012-03-10)  ++* 378424a1a - [Bleeding] Added support for linking custom CommandExecutor types to a HelpTopicFactory. Fixes BUKKIT-1027 (2012-03-09)  ++* 5c757df67 - Made iron golems spawning to defend villagers respect spawn-animals. Fixes BUKKIT-1124 (2012-03-10)  ++* ae6b3711e - Made zombie invasions respect spawn-monsters setting. Fixes BUKKIT-1123 (2012-03-10)  ++* f53486355 - Make setting slots to AIR set them to null. Addresses BUKKIT-1043 (2012-03-10)  ++* 68c89fcac - Fixed enchanting in Creative. Fixes BUKKIT-1119 (2012-03-10)  ++* 77ef05109 - [Bleeding] Added new target events. Fixes BUKKIT-935 (2012-03-09)  ++* a967d6e37 - Added PathfinderGoalTarget, PathfinderGoalArrowAttack, PathfinderGoalMeleeAttack for diff visibility. (2012-03-08)  ++* 08bd33a3e - Made entering an end portal from The End move the player to their bed spawn if it exists. Fixes BUKKIT-1061 (2012-03-10)  ++* 6f40a22e1 - Made feeding wolves fire EntityRegainHealth events. Fixes BUKKIT-1111 (2012-03-09)  ++* fce3386aa - Added EntityTame event. Fixes BUKKIT-1109 (2012-03-09)  ++* e625999f2 - Added EntityWolf for diff visibility. (2012-03-09)  ++* 36406afa6 - Re-re-fixed block transmutation (2012-03-10)  ++* cf9d00a71 - Re-fixed block transmutation (2012-03-10)  ++* 848344250 - Fixed sheep not firing events when eating grass. Fixes BUKKIT-1104 (2012-03-09)  ++* 9b5a4d68b - Added PathfinderGoalEatTile for diff visibility. (2012-03-09)  ++* c4b4afa14 - Fixed being unable to use water in The End. Fixes BUKKIT-1002 (2012-03-09)  ++* ec2713b25 - Added WorldProviderTheEnd for diff visibility. (2012-03-09)  ++* d1dd96f56 - Made Chunk.getEntities() account for the world height increase. Fixes BUKKIT-1059 (2012-03-09)  ++* 45cf92744 - (Re)restricted the nether to 128 world height. Fixes BUKKIT-976 (2012-03-09)  ++* a602d5c8c - [Bleeding] Implemented getting the hostname a player used to log in. Addresses BUKKIT-984 (2012-03-03)  ++* 97669f8d9 - [Bleeding] Add updated interfaces for custom chunk generation. Addresses BUKKIT-874 (2012-03-08)  ++* 796a9ba8f - Add vanilla ChunkSection.java from mc-dev for diff visibility. (2012-03-08)  ++* cbdcb44a1 - Made zombie invasions fire CreatureSpawn event. Fixes BUKKIT-1090 (2012-03-08)  ++* ec555a71e - Added VillageSiege for diff visibility. (2012-03-08)  ++* ecb00bba8 - Made iron golems fire CreatureSpawn event. Fixes BUKKIT-1089 (2012-03-08)  ++* f5ce8627c - Added Village for diff visibility. (2012-03-08)  ++* 43a00954f - Made PlayerPortalEvent fire when leaving The End. Fixes BUKKIT-478 (2012-03-08)  ++* f26fbc3bf - Fixed EnderPearls not being limited to the world they were used in. Fixes BUKKIT-658 (2012-03-08)  ++* 8ecdfe9ee - Added missing filters to addEntity. Fixes BUKKIT-794 (2012-03-08)  ++* 1e06e150b - [Bleeding] Only do unload-all on tick when last player leaves. Fixes BUKKIT-1060 (2012-03-08)  ++* 0ba2d285f - [Bleeding] Made Iron Golems and Ocelots throw EntityDeathEvent. This fixes BUKKIT-1010. (2012-03-05)  ++* 1c641ed98 - Added EntityIronGolem and EntityOcelot for diff visibility. (2012-03-05)  ++* a029f32cc - [Bleeding] Add APIs for editing biome data, fix existing code to use persistent biome data. Addresses BUKKIT-1075 (2012-03-04)  ++* b5e92871e - [Bleeding] Added ConversationAbandonedEvent and supporting infrastructure. Whenever a conversation exits, the ConversationAbandonedEvent is triggered with details about how the conversation ended and what, if anything caused it to end. Fixes BUKKIT-986 (2012-03-04)  ++* 7a8ef4f6a - Extremely hackish fix for the entity interactivity issue. Fixes BUKKIT-960 (2012-03-06)  ++* b5af5adc7 - Fixed the dreaded GSOD crash. Fixes BUKKIT-1040 (2012-03-05)  ++* 2ff8a8749 - Fixed copy error in DoubleChest's inventory (2012-03-05)  ++* 3f2c31e98 - Updated version to 1.2.3-R0.2-SNAPSHOT for development towards next release. (2012-03-04)  ++* 055384889 - Updated version to 1.2.3-R0.1 in pom.xml for beta. (2012-03-04)  ++* 2feb2ea12 - Fix worlds loading improperly. Fixes BUKKIT-991 (2012-03-03)  ++* 4ac2b0832 - Added missing null check for enchantments. Fixes BUKKIT-897 (2012-03-03)  ++* 90fae3b57 - Fixed leaf decay issue - this fixes BUKKIT-948 and BUKKIT-871 (2012-03-03)  ++* c6273810a - [Bleeding] Fixed crafting enchanted items, fixes BUKKIT-602 (2012-03-02)  ++* 2d5263bfe - recover from converter issue FIXES BUKKIT-890 (2012-03-02)  ++* ec35500c6 - Implemented Villager API for getting/setting Profession. This adds BUKKIT-887 (2012-03-03)  ++* 20c8ae59f - Slightly changed the Auto Updater error for when it can't find the current version (2012-03-03)  ++* 74220205f - Fixed typo in help.yml header - this fixes BUKKIT-945. Thanks to a PR by turt2live (2012-03-03)  ++* 974ff6cb8 - ... Comments! (2012-03-02)  ++* 61fb069c6 - Fixed fatal crashes when there's a block at maxheight at spawn - this fixes BUKKIT-922. (2012-03-02)  ++* ede443234 - Minor optimization getting chest inventories (2012-03-02)  ++* 88149dc43 - Fixed chest.getInventory for double chests, thanks to Acrobot. This fixes BUKKIT-901 (2012-03-02)  ++* 8016bf2dd - Fixed punching out fire in creative - this fixes BUKKIT-914, thanks to md-5 (2012-03-02)  ++* 4ac8d68c3 - Fixed porting issue in World. Now uses correct variable names to add chunks for growth. This fixes BUKKIT-934 (2012-03-02)  ++* a42e710bb - Updated from 1.2.2 to 1.2.3. This fixes BUKKIT-943 (2012-03-02)  ++* cb669f72a - Fixed porting issue with SpawnerCreature. Fixes BUKKIT-921 (2012-03-02)  ++* 5198f2efb - Allow the new jungle tree type to be grown both as a single sapling and as a group of 4. Fixes BUKKIT-886 (2012-03-02)  ++* 94d4d6821 - Convert contained worlds to Anvil (thanks to Amaranth) (2012-03-02)  ++* c51c895cd - Implemented snapshot support for 1.2. (2012-03-01)  ++* eddefa6c5 - Preserve data if possible when dropping Items from entities. Partial solution for BUKKIT-15 (2012-03-01)  ++* bcf979b2a - Fixed hunger not behaving correctly. Addresses BUKKIT-907 (2012-03-01)  ++* 2510af0d1 - Fix porting issue in World.mayPlace Fixes BUKKIT-915 (2012-03-01)  ++* 82f2a2e77 - World height related fixes - 128 -> 256. Addresses BUKKIT-889 (2012-03-01)  ++* efc9ced12 - Fixed sending maxPlayers at initial login (2012-03-01)  ++* f1f9802de - Implemented new 1.2 entities - this fixes BUKKIT-872 and BUKKIT-885 (2012-03-01)  ++* 510856938 - Revert filtering by dynamic block range (2012-03-01)  ++* 0e7b9834f - Potentially fixed crash when building at max world height (2012-03-01)  ++* eb934c760 - Made the auto-update-checker suggest channels to server administrators if they're upgrading past their preferred channel. (2012-03-01)  ++* a5be07979 - Fixed compile issues with StructureGrowDelegate not implementing the new isEmpty method (2012-03-01)  ++* 6f1fecbd3 - Fixed cast issues when passing delegates to world generators, and WorldGenMegaTree method exception. This fixes BUKKIT-866, and references BUKKIT-868. (2012-03-01)  ++* aa3678a78 - Fixed NoSuchMethodError in WorldGenGroundBush (2012-03-01)  ++* 543c4879f - Updated CraftBukkit to 1.2 (2012-03-01)  ++* e9ca87000 - Updated version to 1.1-R6 for RB. (2012-03-01)  ++* a726f6de3 - Potentially fixed inventory issues. This (should) fix issue BUKKIT-860 (2012-03-01)  ++* fb668b428 - Updated version to 1.1-R5 for RB (2012-03-01)  ++* a53afd313 - We build for 1.5. (2012-03-01)  ++* 1161de3f6 - [Bleeding] Added Conversations API. Addresses BUKKIT-864 (2012-01-19)  ++* 818a61040 - [Bleeding] Added Help API. Addresses BUKKIT-863 (2012-03-01)  ++* c73adc953 - Fixed AchievementTest.java (2012-02-29)  ++* 33ba9f0a2 - Updated to rename revision 02 (2012-02-29)  ++* 8524ff8ef - Fix for Java 1.5 (2012-02-29)  ++* 0842bab48 - [Bleeding] Implementation of inventory framework. Addresses BUKKIT-856 (2012-02-29)  ++* 10e593649 - Imported from mc-dev: - TileEntity - Container - ContainerFurnace - ContainerDispenser - ContainerChest - ContainerEnchantTableSubcontainer - ContainerEnchantTableInventory - ContainerBrewingStand (2012-02-25)  ++* d20091e64 - Implementation of richer playEffect methods. Addresses BUKKIT-857 (2012-02-26)  ++* bf01e93ab - Added EntityTargetEvent for Experience Orbs, happens when it starts moving towards a human entity! Addresses BUKKIT-820 (2012-02-25)  ++* cd90cec48 - Implemented TeleportCause enums. Addresses BUKKIT-265 (2012-02-15)  ++* 53e4a034f - Moved getVehicle, leaveVehicle and isInsideVehicle from CraftLivingEntity to CraftEntity. Addresses BUKKIT-811 (2011-10-25)  ++* 1394926e5 - [Bleeding] Implement Metadata framework for Entities, Blocks, and Worlds (2011-12-08)  ++* 403f87478 - [Bleeding] Fix generics. Addresses BUKKIT-844 (2012-02-29)  ++* 257fd1624 - Added plugin-profiling setting to bukkit.yml. (2012-02-10)  ++* 92dfb2500 - Adjusted CraftBukkit to work with the entity event convenience patch in Bukkit. Addresses BUKKIT-809 (2012-02-21)  ++* dcf016822 - Fixed sneaking eye height. Addresses BUKKIT-808 (2012-02-22)  ++* f70f99d1a - Fixed CraftOfflinePlayer.getLastPlayed() returning the wrong result. Addresses BUKKIT-847 (2012-02-27)  ++* 397f25aa2 - Added plugin loading log entry (2012-02-15)  ++* cc2e721ff - Implement PortalCreateEvent reason codes. Addresses BUKKIT-833 (2011-12-25)  ++* f2d9d4174 - CraftSign changes. Addresses BUKKIT-824 (2012-02-25)  ++* 57bd84510 - [Bleeding] Made dragon eggs trigger BlockFromTo events when they teleport. Addresses BUKKIT-828 (2012-02-23)  ++* 5901a7456 - Fixed changes made to PlayerCommandPreprocess events having no effect. Fixes BUKKIT-376 (2012-02-25)  ++* d6c6b18ba - Fix for shaped recipes stripping enchantments from the result. Fixes BUKKIT-602 (2012-02-25)  ++* 2887f99fe - Fixed EntityArrow just to use the PVP setting if the destination is a Player. Fixes BUKKIT-803 (2012-02-19)  ++* a7f0b70a3 - Updated README.md with more coding and pull request conventions and tips to get your pull request accepted. (2012-02-23)  ++* 078e2511a - [Bleeding] Override not applicable (2012-02-23)  ++* 7a49e29b5 - [Bleeding] Undo changes to the tree WorldGenerators. (2011-12-23)  ++* 796d4a8a7 - [Bleeding] Fixed setTotalExp, any experience update bugs and removed Deprecated Methods. Fixes BUKKIT-798 and fixes BUKKIT-797 (2012-02-22)  ++* d7f6d2d92 - [Bleeding] Use player.getItemInHand(), instead of a new ItemStack. Addresses BUKKIT-767 (2012-02-18)  ++* 70c5f0642 - Fixed pom.xml (2012-02-22)  ++* 036b5c395 - [Bleeding] Added launchProjectile. (2012-02-16)  ++* af51313ff - [Bleeding] Added EntityType to replace CreatureType. (2012-02-06)  ++* 7792156fb - [Bleeding] Added BlockGrowEvent. Addresses BUKKIT-104 (2012-02-11)  ++* 847e1c62c - [Bleeding] Added BlockCrops, BlockReed, BlockStem, BlockNetherWart for diff visibility. (2012-02-11)  ++* 326091c13 - [Bleeding] Recipe API improvements and fixes. Addresses BUKKIT-738 and BUKKIT-624 (2011-07-23)  ++* 84ecdb543 - Imported from mc-dev: (2011-07-14)  ++* 39048be43 - [Bleeding] Cleanup clone method. (2012-02-19)  ++* 4d89a21a2 - Removed EndermanPickup/Place events, replaced with EntityChangeBlock event. (2012-02-19)  ++* 1922672f1 - [Bleeding] Fire EntityDamageByEntityEvent for EnderCrystal. Fixes BUKKIT-776 (2012-02-18)  ++* b06719dd0 - [Bleeding] Moved projectile EntityDamageByEntityEvent's to event factory. Addresses BUKKIT-775 (2012-02-10)  ++* 5316c43a8 - Add getEntitesByClass(Class), getEntitiesByClasses(Class...), deprecate getEntitiesByClass(Class...) (2012-01-27)  ++* 137880b72 - Deprecation cleanup. (2012-01-30)  ++* 3b634b14f - Fixed NPE when running a custom build of CraftBukkit. This fixes issue #BUKKIT-765 (2012-02-18)  ++* d057ee1e0 - Don't print stacktraces on DLB fetching errors. And because I forgot last commit; this adds BUKKIT-760 (2012-02-17)  ++* 236cfed61 - Added a built-in update checker. See http://wiki.bukkit.org/Bukkit.yml#auto-updater for new bukkit.yml options. (2012-02-16)  ++* 64264f61b - Revert "Remove tile entities when a block is removed." (2012-02-14)  ++* 8773c3ed4 - Updated version to 1.1-R5-SNAPSHOT for development towards next release. (2012-02-13)  ++* 0419d7963 - Updated version to 1.1-R4 in pom.xml for RB. (2012-02-13)  ++* 7076ef9de - Use createNMSItemStack on CraftingManager recipe registration. Fixes BUKKIT-602 (2012-02-10)  ++* 1c28c946f - Fixed sprinting while breaking a painting edge case. Fixes BUKKIT-740 (2012-02-13)  ++* 9b10970f6 - [Bleeding] Fixed EntityChangeBlock event reporting incorrect information for Enderman block placing. (2012-02-04)  ++* da1aead88 - Made splash options abide by PVP settings. Fixes BUKKIT-542 (2012-02-08)  ++* f52665348 - [Bleeding] Added Potions API. Fixes BUKKIT-389 (2012-01-09)  ++* 63b9ed9ab - Added configurable animal and monster ticks per spawn setting. (2012-02-10)  ++* c38fcb360 - Implemented JOCKEY and CHUNK_GEN SpawnReasons. (2012-02-10)  ++* 0170ae952 - Cleanup. (2012-02-10)  ++* 56741552e - Made damaging EntityEnderCrystals fire EntityDamageByEntity. Fixes BUKKIT-724 (2012-02-09)  ++* 391ac23c9 - [Bleeding] Fire EntityDamageByEntityEvent's for EnderDragon being hit by Projectiles. (2012-02-09)  ++* 7ff8c1756 - [Bleeding] Make sure we don't keep stale references to vanished players. (2012-02-09)  ++* d8ca2401f - [Bleeding] Send new player location after teleports only to nearby players. (2012-01-30)  ++* 80bae060c - [Bleeding] Use event values for damage. (2012-02-09)  ++* fa6fd24f2 - [Bleeding] Handle EntityHuman attack a bit more properly. (2012-02-08)  ++* 8ecfca47d - [Bleeding] Fixed EnderDragon suffocation. (2012-02-08)  ++* 6dda89d87 - [Bleeding] Deprecate Enderman events in favor of EntityChangeBlock (2012-02-04)  ++* 10ab7b96e - Made steps fire a BlockPlace event. Fixes BUKKIT-394 (2012-02-08)  ++* 6abd178ea - Added ItemStep for diff visibility. (2012-02-09)  ++* ad6bab8c6 - Implemented EntityTeleportEvent. Fixes BUKKIT-366 (2012-02-07)  ++* be0ecf467 - Pass EntityEnderCrystal to EntityExplode event. (2012-02-08)  ++* 39002fd39 - Added EntityEnderCrystal for diff visibility. (2012-02-08)  ++* ae333ded9 - Made flaming arrows respect PVP settings. Fixes BUKKIT-541 (2012-02-08)  ++* 879a87b1e - Fixed Pumpkins being reported as AIR in BlockPlace event when building snowmen. Fixes BUKKIT-697 (2012-02-08)  ++* 6d6745697 - Made BlockPumpkin report an appropriate SpawnReason.BUILD_SNOWMAN when a snowman is spawned. (2012-02-08)  ++* 8e7e07352 - Made Ender Dragons fire EntityRegainHealth events when getting healed by Ender Crystals. (2012-02-08)  ++* 0a52fd372 - Fixed VehicleBlockCollisionEvent returning the wrong block. Fixes BUKKIT-396 (2012-02-08)  ++* 497a0e247 - Made crafted maps fire MapInitializeEvent. Fixes BUKKIT-143 (2012-02-08)  ++* 274e8a141 - Made flaming arrows fire EntityCombustByEntity events. Fixes BUKKIT-707 (2012-02-08)  ++* 4d563342b - Added Spawner Egg support to CreatureSpawnEvent. (2012-02-05)  ++* 54e45b7d6 - Prevent the Vanish API from sending unnecessary packets. (2012-02-03)  ++* 5ae8f13fd - Fixed items losing their enchantments under certain circumstances. (2012-02-01)  ++* 329cf2966 - Added BlockFurnace for diff visibility. (2012-02-01)  ++* 37c886853 - [Bleeding] Implemented Vanish API. (2012-01-31)  ++* 028cbb8fe - Removed MONSTER CreatureType. (2012-02-03)  ++* 5479a2ca8 - Fixed being unable to cancel TNT placement. Fixes BUKKIT-89. (2012-02-02)  ++* 1884f2f76 - Added BlockTNT for diff visibility. (2012-02-02)  ++* 14bb77195 - Allow plugins to change ID and Data during BlockPlace event. (2012-02-02)  ++* 1bb011a54 - Fixed other types of 'block transmuters'. (2012-02-02)  ++* 8bf770c5f - Added debug to help with diagnosing tile entity issues in the future. (2012-02-02)  ++* 2dba592dc - Remove tile entities when a block is removed. (2012-02-02)  ++* 8b5289d43 - Fixed wrong game type being sent when a player is teleported across worlds. Fixes BUKKIT-510 (2012-02-01)  ++* b269d6b63 - Updated version to 1.1-R4-SNAPSHOT for development towards next release. (2012-01-30)  ++* ff28859a6 - Updated version to 1.1-R3 in pom.xml for RB. (2012-01-30)  ++* 69e766c5f - Fixed BlockPlace event. Fixes BUKKIT-663 (2012-01-30)  ++* 875219e28 - Fixed vanilla issue where chunks would be mislocated and corrupt. Big thanks to Wug for the fix. (2012-01-30)  ++* 72559fe63 - Added ChunkLoader.java and ChunkRegionLoader.java for diff visibility (2012-01-30)  ++* 48661b636 - Updated version to 1.1-R3-SNAPSHOT for development towards next release. (2012-01-29)  ++* 4e3aa6126 - Updated version to 1.1-R2 in pom.xml for RB. (2012-01-29)  ++* 3a419481e - Added 'generate-structure' setting support and WorldCreator property. (2012-01-29)  ++* f1a35effb - Added useExactLoginLocation(). Closes BUKKIT-145 (2012-01-29)  ++* c5a4bfd29 - Use OO > new method (2012-01-29)  ++* 3173b68bb - Filter null/AIR from items dropped on death. Fixes: BUKKIT-653 (2012-01-29)  ++* 4c2f57592 - Add some testing (2012-01-29)  ++* 1ea0037f4 - Fixed maps crashing/disconnecting the client under certain circumstances. (2012-01-29)  ++* 9b635aacc - Moved BlockPlace event. (2012-01-27)  ++* 7bdfea482 - Reverted onPlace changes. (2012-01-28)  ++* 9d9083972 - Put statement inside CraftBukkit block (2012-01-28)  ++* bb730f0ee - Cleanup. (2012-01-27)  ++* 38ad0ea5f - Prevent (Entity) null to be added to the entity list. (2012-01-27)  ++* 16d3b705c - Fix 'Block Transmute'. Bug where you could change the data of a block 'on demand'. (2012-01-27)  ++* 98fd1a360 - Let's be a little less tricky to the client. Relates to BUKKIT-637 (2012-01-26)  ++* 5900268e7 - Fixed the behaviour of fluid blocks. Fixes BUKKIT-629 (2012-01-26)  ++* 5bcb23502 - Trick the client instead of modifying the world. Fixes BUKKIT-637 (2012-01-26)  ++* 5451788eb - Updated version to 1.1-R2-SNAPSHOT for development towards next release. (2012-01-25)  ++* d01413653 - Updated versions to 1.1-R1 in pom.xml for RB. (2012-01-25)  ++* b987d1b05 - Really loosened the throttles strictness this time. (2012-01-24)  ++* 3e0a26f27 - Fixed redstone torches not updating indirect neighbors. Fixes BUKKIT-477 (2012-01-24)  ++* 989acd0af - Fix invalid data in pistons (2012-01-24)  ++* b416dd337 - Loosen throttle strictness. (2012-01-24)  ++* 39935eb3f - Fix diodes not updating indirect neighbors. (2012-01-24)  ++* 3b46222c5 - Persist locking of an animal's age to disk (2012-01-24)  ++* 94231f1ec - [Bleeding] Implemented EnchantmentTable API. (2012-01-21)  ++* c7716e1de - [Bleeding] Audit of onPlace methods, Moved to postPlace as appropriate. Closes BUKKIT-89 (2012-01-17)  ++* e92bdab57 - Fixed CraftLivingEntity.damage when the entity is an EntityComplex. (2012-01-23)  ++* 872dad554 - [Bleeding] Implemented PotionSplashEvent. Closes BUKKIT-307 (2012-01-20)  ++* 74ead3abd - Immediately tell client a block is broken, then process the event. (2012-01-17)  ++* cf521b5a5 - Only truncate player name when sending spawn packet. (2012-01-17)  ++* 97ce5c447 - Implemented PlayerShearEntityEvent in EntityMushroomCow. (2012-01-23)  ++* 93bc8ecd9 - [Bleeding] Implemented Sheep, Shear and EntityChangeBlock API. Thanks tips48! Closes BUKKIT-512 (2012-01-21)  ++* 229337bc8 - Use BlockFadeEvents to signal fire blocks burning out (2012-01-11)  ++* 51b29eff0 - Removed accidentally committed change. Needs more investigating (2012-01-21)  ++* 4f02563c6 - Reverted changes to getItem(). Will be reimplemented after RB. (2012-01-20)  ++* 1bbeec1f7 - Accounted for NMS getItem() returning null in recent commit. (2012-01-20)  ++* 85ab95cec - Nullcheck EntityItem's ItemStack where required. This fixes BUKKIT-552 (2012-01-20)  ++* 51a056ecd - Disallow colour names in offline-mode. This fixes BUKKIT-439. Thanks to cainfool for the discovery. (2012-01-20)  ++* 76d7a1ce1 - Properly handle null and air items. Fixes BUKKIT-435 and BUKKIT-550 (2012-01-20)  ++* 4b0f819af - Updated timing code for new event system (2012-01-19)  ++* 1aa084780 - Add updated repos to pom.xml (2012-01-19)  ++* 28fcbec3b - Prevent re-use of internal world dimension IDs. This fixes BUKKIT-448. Thanks to snowleo for the PR. (2012-01-19)  ++* b0f29b175 - Throw PlayerLevelChangeEvent and PlayerExpChangeEvent events. Thanks to feildmaster for the PR. (2012-01-19)  ++* 1f1c9c0d4 - Correctly take in ChatColor length when limiting player list size. This should fix BUKKIT-571 (2012-01-19)  ++* 737cf284e - Fix giving wrong arguments to callEntityDamageEvent. Forgot to update after changing the signature :( (2012-01-18)  ++* 112e0816b - Actually close the inventory on a *cross*-world teleport. (2012-01-17)  ++* f5f268f93 - Implement Player.setBedSpawnLocation(Location). Thanks md_5 (2012-01-17)  ++* b22e727cd - [Bleeding] Make BaseBiome to Biome mapping faster, detect missing mapping in future updates (2011-12-10)  ++* bcf6440bc - [Bleeding] Implement EntityShootBowEvent. Thanks Zeerix. (2011-12-28)  ++* edbb7358f - [Bleeding] Implementation of the brewing stand. (2012-01-17)  ++* 387d7319b - [Bleeding] Prevent BlockSnow from recursively calling a physics update. (2012-01-17)  ++* 1d4a9e1df - [Bleeding] Make sure to close any open inventory windows before teleporting. Thanks md_5. (2012-01-17)  ++* 1d04305ce - [Bleeding] Added event calls for healing and harming by potions (2012-01-14)  ++* 2cc70bb05 - [Bleeding] Implemented Block.breakNaturally and Block.getDrops (2012-01-12)  ++* fb1cfea89 - [Bleeding] Implemented Block.getLightFromSky() and Block.getLightFromBlocks() (2011-12-29)  ++* f7585e552 - [Bleeding] Implemented World.getEntitiesByClass(Class... classes) (2011-12-11)  ++* 29096577b - [Bleeding] Implement animal breeding API changes. (2012-01-05)  ++* 520cb5aa5 - Fixed bug involving pistons and powered rails. This fixes BUKKIT-517. (2012-01-15)  ++* 864397d6c - Added MinecartTrackLogic.java and BlockMinecartTrack.java for diff visibility (2012-01-15)  ++* d3b4375d3 - Fixed LongHashset incorrectly using read lock for popAll, and made it use write lock. This fixes BUKKIT-509 (2012-01-15)  ++* 95a72d1c5 - Implemented World.getWorldType (2012-01-15)  ++* 65f30fd99 - Dragons now throw events when creating portals (2012-01-15)  ++* 233de0de2 - Some efficiency updates to hit-mechanics. Thanks mintplant for the PR. (2012-01-15)  ++* a753ee587 - Implemented allowFlight methods. Thanks to Qala for the PR. (2012-01-15)  ++* 6d49b1133 - Made World.playEffect a bit more efficient. Thanks mintplant for the PR. (2012-01-15)  ++* 9c1534336 - Fix broadcasting to people without permission. Fixes BUKKIT-464. Thanks grandwazir for the PR. (2012-01-15)  ++* d7cec38c3 - Adding the option to suppress overload warnings as a bukkit.yml option. Thanks oloflarsson for the PR. (2012-01-15)  ++* 25050e38e - Disallow people spawning invalid entities using monster eggs. Thanks to md-5 for the PR. (2012-01-15)  ++* 390a79e09 - Added ItemMonsterEgg.java for diff visibility (2012-01-15)  ++* a4ce846d0 - Fix formatting. (2012-01-14)  ++* 61ec751ca - Update for 1.1_01 renames. (2012-01-14)  ++* 6495eee0c - Throw an EntityBlockFormEvent for snowmen. Thanks to feildmaster. (2012-01-15)  ++* 93b3c9612 - Don't allow explosions at the top of the world to wrap around. This fixes BUKKIT-232, thanks to wilsonsd for the PR. (2012-01-15)  ++* 23adb0d02 - Minor optimization in BlockGrass by only checking light once instead of twice. Thanks to oloflarsson for the PR. (2012-01-15)  ++* b36980559 - Don't allow players with modded clients to send empty (0 char) chat messages. Thanks to a PR by robin0van0der0v (2012-01-15)  ++* dfbcd36ab - Fixed a further exploit with players attacking more things that they shouldn't. (2012-01-14)  ++* 2ab160e48 - Implemented new PlayerDeathEvent methods for exp setting (2012-01-14)  ++* 548ccabe2 - Fixed .createWorld not respecting container folder 100%. Thanks to plleg for the PR. (2012-01-14)  ++* 366d31018 - Added .equals and .hashcode to CraftBlockState (2012-01-14)  ++* 657f458ba - Player.setPlayerListName no longer counts colors towards the 16-char limit. Thanks to an (unfortunately old) PR by ZachBora. (2012-01-14)  ++* d73c29aad - Implemented entity.playEffect. Thanks to main-- (2012-01-14)  ++* 743c623d5 - Modified ConsoleReader to use System.in instead of FileDescriptor.in. Big thanks to escortkeel for the (unfortunately very old) PR. (2012-01-14)  ++* 6cc56b8c2 - Added ItemDespawnEvent (2011-10-17)  ++* cc05bea45 - Prevent unbounded TickList growth on busy servers (>1000 events/tick). This completes another Bleeding request. (2011-12-14)  ++* 52c526f31 - Small optimization in EntityPlayer by caching the hashcode. Thanks to a very old PR by Belphemur. In addition, changed and slightly improved the hashcode formula for entities (2012-01-14)  ++* 77a12d4dc - Correct casting for creature target typechecking (2012-01-14)  ++* e6bb19f63 - Fixed any chance of creatures .getTarget throwing a class cast exception - thanks to an old PR by garbagemule! (2012-01-14)  ++* 3d31c2786 - Fixed players attempting to attack item entities - This fixes BUKKIT-341 (2012-01-14)  ++* d5438c30b - Fixed block.getBiome returning null in new 1.1 biomes. This fixes BUKKIT-496 (2012-01-14)  ++* 9da730c8e - Made Mycel blocks throw BlockFade and BlockSpread events. This fixes BUKKIT-488. Thanks to tips48 for the pull request. (2012-01-14)  ++* 64ac337d4 - Added BlockMycel.java for diff visibility (2012-01-14)  ++* 3ee8a2372 - Additional commit to fix #BUKKIT-24 (2012-01-14)  ++* 84b0310ae - Fixed items retaining enchantment visual effects after all enchantments are lost Issue #BUKKIT-24 - Upon removing enchantments, visual effect on item does not go away (2012-01-14)  ++* 0a2a38c25 - Added NBTTagCompound.java for diff visiblity (2012-01-14)  ++* 9ac06e772 - Fixed informing players of supported Plugin Channels (2012-01-14)  ++* 4dc2065f5 - Undo commit cc60920 to allow for proper integration with the new Bukkit enum values (2012-01-14)  ++* 24fe96ada - Add fix for new login protocol (2012-01-13)  ++* b4f215e91 - Implemented new Plugin Message API - see http://dinnerbone.com/blog/2012/01/13/minecraft-plugin-channels-messaging/ (2012-01-13)  ++* d8052a63e - Fix NPE involving WorldTypes when using CraftServer.createWorld(WorldCreator creator) (2012-01-13)  ++* 8aaa52876 - Fixed version in startup message (2012-01-12)  ++* 7219d4dd8 - Updated to Minecraft 1.1 (2012-01-12)  ++* dd5ef8725 - Bumped verison to 1.1-R1-SNAPSHOT (2012-01-12)  ++* 7d0e739f9 - Fix balance of CraftBukkit start/end. (2012-01-12)  ++* 897551e39 - Update to mc-dev rename revision 01 (2012-01-12)  ++* 7f079a0cd - Fix CraftBukkit comments. (2012-01-12)  ++* 42e473783 - Fixed our handling of network packets. (2012-01-10)  ++* 194f54a90 - Revert "Improved our handling of player interactions." (2012-01-10)  ++* bff4d0f69 - Improved our handling of player interactions. (2012-01-10)  ++* 67dbe71bd - Fix calling CombustEvent caused by enchantment (2012-01-09)  ++* 93aed40c4 - Fixed filled bottles not appearing in inventory. Fixes BUKKIT-325. Thanks md-5! (2012-01-07)  ++* 13470ccf7 - Inform the client when break events are cancelled. Thanks mrapple! (2012-01-07)  ++* 86fef037e - Fixed NPE in World. Fixes BUKKIT-306. Thanks Evenprime! (2012-01-07)  ++* b74a69041 - Fix door physics and revert to pre 1.0 behavior (2012-01-07)  ++* 483a619e8 - FIX: CraftServer.getOfflinePlayers was not converting set->array well. (2012-01-02)  ++* bcdad9f83 - Fix snowball not recognizing int damage values properly from Craftbukkit -- Thanks Sleaker (2011-12-29)  ++* 60a2d1225 - CraftItemStack: Make sure this.item is not null when cloning. (2011-12-29)  ++* 5124f8f46 - Test cloning of CraftItemStacks created with null nms ItemStacks (2011-12-29)  ++* 8b735bf47 - Made startup completion time actually be reported in seconds. Again. (2011-12-27)  ++* 8b21a0eee - Disconnected means disconnected. (2011-12-27)  ++* 066a95769 - fixed double firing of EntityDamageByEntityEvent (2011-12-27)  ++* 5adcf526a - moved firing of ProjectileHitEvent for mojang projectiles (2011-12-27)  ++* fb8a45b64 - Teach CraftServer.getOfflinePlayers to also give all online players. (2011-12-27)  ++* 834c42025 - Update for cleanup in Bukkit (2011-12-25)  ++* 81c751a8a - Fix for water and lava removal in creative mode BUKKIT-362 (2011-12-20)  ++* 474b7838a - Fix for big trees not growing BUKKIT-304 and BUKKIT-365 (thanks M D) (2011-12-20)  ++* 299a0d091 - Fixed signs being editable after placement. Fix for BUKKIT-364 (2011-12-20)  ++* 972b2087f - Fixed bonemeal not being consumed on failed growth attempts. This fixes BUKKIT-337. Thanks to md-5 for the pull request! (2011-12-19)  ++* 246d07482 - Fixed world.getHighestBlockYAt(x,z) returning 0 for existing but not loaded chunks. This fixes BUKKIT-327. Thanks for dredhorse for the pull request! (2011-12-19)  ++* bea7b1373 - Fixed vanilla->bukkit world migration for The End. This fixes BUKKIT-326. Thanks to chewi for the pull request! (2011-12-19)  ++* 3648fb571 - Make rcon .sendMessage each write on a new line. This fixes BUKKIT-353. Thanks to ks07 for the pull req. (2011-12-19)  ++* 1c6adc158 - Fix error when cloning enchanted ItemStacks. (2011-12-20)  ++* acfb4f2fb - Test cloning enchanted CraftItemStacks (2011-12-20)  ++* 18437f681 - Add support for junit testing (2011-09-23)  ++* b0ab68696 - Avoid some avoidable calls, clean PluginManager accessors (2011-12-19)  ++* a7744ac75 - Prevent VehicleEnterEvent being sent when player exits vehicle. (2011-12-16)  ++* 2c72f9f5a - Updated version to 1.0.1-R2-SNAPSHOT for development towards next release (2011-12-12)  ++* e1586e017 - ... Fixed dispensers again! (2011-12-12)  ++* 5412d6f5a - Fixed crash with dispensers dispensing dispensables (2011-12-12)  ++* fa7ad9a26 - Updated versions to 1.0.1-R1 in pom.xml for RB. (2011-12-12)  ++* 52faa415e - Fixed clients not seeing EXP update immediately after using .setTotalExp and level methods (2011-12-12)  ++* bd181fa04 - The dead are not meant to walk. Fixes BUKKIT-95. Thanks Evenprime! (2011-12-12)  ++* b653ce3c1 - Implemented (offline)player date methods (2011-12-12)  ++* 91ff0b059 - Made OfflinePlayer and Player share the same .equals and .hashcode (2011-12-12)  ++* 82965eb10 - Stop converting ItemStack to nms ItemStack by hand (2011-12-13)  ++* d34e28943 - Teach nms ItemStack constructor how to take enchantments (2011-12-13)  ++* 14754c71a - Added missing CraftBukkit comments in previous commit. (2011-12-12)  ++* 322330e94 - Fixed players not receiving movement packets after trying to leave The End. Fixes BUKKIT-289. (2011-12-12)  ++* d7d48d822 - Teach CraftWorld.spawn how to spawn a Giant (2011-12-12)  ++* b2af70e5c - Implemented getKiller in LivingEntity (2011-12-11)  ++* 1fc8092ea - Fixed corrupt mob spawners crashing on load - this fixes BUKKIT-69, BUKKIT-144 (2011-12-11)  ++* 88d151250 - Fixed issues with Ender Pearls. This fixes BUKKIT-248 and BUKKIT-264. (2011-12-11)  ++* 77c07095b - removed changes to MobSpawner behavior (2011-12-10)  ++* de1a32bb1 - Fixed spiders not respecting the EntityDeathEvent. This fixes BUKKIT-275. (2011-12-10)  ++* ec59dd917 - Fixed issues in our handling of The End as per BUKKIT-11. (2011-12-10)  ++* 84a19565d - Fixed (Bukkit multiworld) maps as described in BUKKIT-142. (2011-12-10)  ++* 32a913a22 - Linked thundering and storming. (2011-12-10)  ++* f7649724f - Implemented CraftServer.getAllowEnd(). Thanks codename-B! (2011-12-09)  ++* d36ac82c8 - Fixed NPE in ServerConfigurationManager when sometimes attempting to flee the End (2011-12-09)  ++* 5e43c61fa - Implemented onStructureGrow event, thanks to md-5. (2011-12-09)  ++* 076460b41 - Added ItemDye and WorldGenHugeMushroom for diff visibility (2011-12-09)  ++* d75d1660b - Make EntityEnderDragon call the ExplosionEventi (2011-12-08)  ++* a25151306 - Fix NPE as described in BUKKIT-245. Thanks snowleo (2011-12-08)  ++* b08b85bd2 - Teach EnderDragon how to throw EntityExplosionEvents when it breaks blocks (2011-12-08)  ++* 4e318dd1c - Implement new interface ConsoleCommandSender. (2011-12-07)  ++* 93a4a9ba8 - Teach MinecraftServer how to handle Remote Console commands. (2011-12-07)  ++* e4a839cbb - Fix for entity spawning and some code cleanup (2011-12-06)  ++* bc8f02788 - Performance update to remove several very high counts of temp object creation (2011-12-06)  ++* eead44a69 - fix NPE issue with CB inventory (2011-12-06)  ++* 57112887c - Another fix for enchantments when moving around inventory. (Still glitches visually at times) (2011-12-05)  ++* bf60f4401 - Teach EnderDragon how to throw EntityDamage events (2011-12-05)  ++* b1a3aa602 - Clean-up some events to maintain general style (2011-12-05)  ++* 8363eadca - CraftInventory.remove shouldn't care about amount (BUKKIT-138) (2011-12-05)  ++* dbd3ff71f - Implemented server.getOfflinePlayers (2011-12-04)  ++* c6d182286 - Fixed some various CraftInventory bugs related to dropping Enchantments (2011-12-04)  ++* 1185ca75f - Fixed player teleporting not working with a certain method. This fixes BUKKIT-198 (2011-12-04)  ++* 1dbebb459 - Fixed exp resetting upon teleporting cross-world (fixes BUKKIT-46. Again.) (2011-12-04)  ++* 98e062f0c - Fixed a few player-respawn issues. This should resolve BUKKIT-28 (Dupe bug), BUKKIT-29 (Poisons lasting), and BUKKIT-46 (XP resetting) (2011-12-04)  ++* 55a532c25 - Indicate when a teleport event was triggered by ender pearls or unknown internal teleports (2011-12-04)  ++* 645079be0 - Make the EnderDragon respect experience drop set in death event (2011-12-02)  ++* f15c466e8 - Add EntityEnderDragon (2011-12-02)  ++* 480376ef5 - Ensure that DeathEvents are raised even for non loot-dropping living entities (2011-12-02)  ++* c298c104e - Remove unused import (2011-12-02)  ++* 8511ef390 - Register damage caused by PrimedTNT entities as BLOCK_EXPLOSION (2011-12-02)  ++* 9fe552979 - Fixed ender pearls ignoring damage cancellation (2011-12-02)  ++* 0c958c0df - Fixed exploit with Ender Pearls, and made them perform a damage event. This fixes BUKKIT-38 (2011-12-01)  ++* 6f79ca5c5 - Don't disconnect a player if they're already disconnected (fixes BUKKIT-43) (2011-12-01)  ++* 6ea3cec76 - Made world.spawnCreature just delegate to world.spawn. This fixes BUKKIT-57 (2011-12-01)  ++* efed2f002 - Use 1.0.1 artifact (2011-12-01)  ++* 062d94d6b - Implemented 1.0.1 fixes. This fixes BUKKIT-3, BUKKIT-39, BUKKIT-150 (2011-12-01)  ++* 650717ad3 - Fire BlockPlace event when placing a lilypad, Thanks DiddiZ; Fixes BUKKIT-162 (2011-12-01)  ++* da6b412fd - Fix CraftBlock toString. (2011-12-01)  ++* 51f724f24 - Fix missing data-value when placing a stair-block (somehow gets set after the fact) - Fixes BUKKIT-40 (2011-12-01)  ++* df935a5ee - Add more information to 'Fetching addPacket' so we might be able to find the reason why it happens. Gives info for BUKKIT-32 (2011-11-30)  ++* d02a2eb49 - Fixed rare NPEs with CraftItemStack. This fixes BUKKIT-51 (2011-12-01)  ++* 4ce061ccb - Fixed Players from technically only dying once (thanks Qala) (2011-11-30)  ++* a51340600 - Fixed exp methods returning wrong values (2011-11-30)  ++* 8fbe78a2c - Updated to use mc-dev rename revision 1 (2011-11-29)  ++* 8665161ea - Fixed multiworld loading of some worlds, yay for 1 letter fixes :D (2011-11-30)  ++* 67924529a - Fix drops of StairBlocks (2011-11-30)  ++* c6af91911 - Fix CraftEnderCrystal so that it implements EnderCrystal, not EnderSignal. (2011-11-30)  ++* 9455ff177 - cleanup of projectiles (2011-11-29)  ++* a1ad0c010 - Add events for EntitySmallFireball (2011-11-29)  ++* 2759809ec - Fix Craft Entity constructors and toStrings. (2011-11-29)  ++* a51eb9c3c - Ignore minecraft resources in src directory (2011-11-29)  ++* 2b751111d - Add EntitySmallFireball.java from nms (2011-11-29)  ++* 3da00ee41 - Implementation of reworked EntityCombustEvents (2011-11-29)  ++* 0c88f05c0 - Fix CraftVillager constructor to only take an EntityVillager (2011-11-29)  ++* 89338db18 - BUKKIT-57 Fix using Bukkit interface instead of nmc Entity for type check. (2011-11-29)  ++* 7db72dfd2 - Doors and trapdoors should function correctly once again (2011-11-28)  ++* 91b673e37 - Ignore empty messages (not just null) for join and quit (2011-11-28)  ++* aa90f2ff9 - Made Snowmen obey animal spawning rules (thanks Amaranth) (2011-11-28)  ++* fe3756f7a - Fixed Enchantments being lost on inventory.setItem (2011-11-28)  ++* 99771b7b7 - Fixed magma slimes from being nonspawnable (2011-11-28)  ++* 4b87704c5 - Add new Entity types to CreatureSpawnEvent (2011-11-28)  ++* c0073e466 - Add CraftMagmaCube (2011-11-28)  ++* 9c2b11ae9 - Fixed gravel's enchantment detection (2011-11-27)  ++* f6dc6745e - Fixed EntityDeathEvent not throwing for Ghasts and Pig Zombies (fixes issue #13) (2011-11-27)  ++* 8d49f500e - Fixed NPE in CraftPlayer.getBedSpawnLocation (2011-11-27)  ++* 402e3c26e - Clone item enchantments unchecked (2011-11-27)  ++* 894ab9f94 - Fixed issue with enchantments reseting under certain conditions (2011-11-27)  ++* 139ad8c34 - Fixed crash when breaking gravel with a high fortune enchant (2011-11-27)  ++* eb7bd5f23 - Implemented Enchantment API (2011-11-27)  ++* ba608f55e - Remove expensive debugcalls from production code (2011-11-26)  ++* 990763813 - Fixed ancient vanilla typo in offline mode warnings. Thanks to Alexitaly92 for catching it. (2011-11-26)  ++* 256d4ba55 - Fixed the NPE in inventoryplayer once again, thanks to don4of4 (2011-11-26)  ++* 8062d5c7b - Added death events for blaze and snowman, fixed reported loot for chickens (2011-11-26)  ++* b9aaf3977 - Fixed NPE travelling to the nether from a custom world (2011-11-25)  ++* 197fdbd84 - Nether portals should now only work in the default world (2011-11-25)  ++* bb16e6c5c - Fixed portal event reporting wrong from-world (2011-11-25)  ++* a105ec32b - Fixed comment (2011-11-25)  ++* ef75a286a - Implemented world.getWorldFolder (2011-11-25)  ++* 20a0b0a9b - Changed Entity.isDead to be aware of health for living entities (2011-11-25)  ++* 620f10148 - Another attempt at the vanilla tile entity bug (2011-11-25)  ++* e31cedf58 - Fixed NPE in player inventory + don't ignore the cancel state of world unloads (2011-11-24)  ++* a7664a104 - Implemented new age methods in animals, and made spawned animals via eggs properly age back to children (2011-11-24)  ++* 47b4406b7 - I've either fixed going to The End, or made it worse. I'm sure we'll find out soon! (2011-11-24)  ++* 61edd3637 - Made BlockStates inform playes upon update (2011-11-24)  ++* c6beae887 - Fixed allow-nether being ignored (2011-11-24)  ++* de7402ea8 - Fixed fireballs sleeping on the job (2011-11-23)  ++* 03762600d - Fixed trapdoors + few comments (2011-11-23)  ++* 929e5ff6c - Implemented new biome values (2011-11-22)  ++* 774e59e17 - Fixed vanillas tile-entity placement bug (thanks Moo0) (2011-11-22)  ++* a3399c643 - Fixed crash on right clicking dragon eggs (2011-11-21)  ++* a83fc1d6a - Implemented new EnderCrystal entity class (2011-11-21)  ++* 0a8bd56f1 - fixed spawn method for projectiles (2011-11-20)  ++* f1c1e813b - Update to correct Bukkit version (2011-11-20)  ++* 246ff3b35 - Made the new Status info list plugins (test it out at http://dinnerbone.com/minecraft/tools/status/ ) (2011-11-05)  ++* 345ea36c7 - Update for 1.0.0 (2011-11-20)  ++* 589f66bd1 - Added new --noconsole command argument, thanks to mkurzeja for the idea (2011-11-05)  ++* 13561bca9 - Added distributionManagement section to POM. (2011-10-11)  ++* dd5507bda - Fix version string - RB 4 has already happened (2011-11-01)  ++* b1671be87 - Implemented bukkit versioning (2011-10-31)  ++* 6c9cb5a95 - Updated version for 1.8.1-R4 (2011-10-31)  ++* c69f5fda9 - added some missing comments for falling entities (2011-10-27)  ++* 2f1513cae - Add missing CraftBlock hashCode() (2011-10-20)  ++* 695f25a32 - Added a case previously not covered by VehicleDestroyEvent for boats. (2011-10-13)  ++* 8c0259925 - fixed mapping of Art <-> EnumArt in Paintings (2011-10-12)  ++* 7d153a9f5 - Added header to bukkit.yml (2011-10-12)  ++* 75d9b04de - Added new bukkit.yml entry (settings -> world-container) to control the directory worlds are stored in (2011-10-12)  ++* f4229fcad - Implemented getPlayer of OfflinePlayer (2011-10-11)  ++* fd57c7111 - Fixed fauxSleeping check on leaving bed (2011-10-11)  ++* af1838305 - Implemented entity age methods (2011-10-11)  ++* ac0641887 - Fixed Explosion cast error (2011-10-11)  ++* a49a35834 - Changing the blockList on explosions now correctly updates which blocks are changed (2011-10-11)  ++* 7e005474b - Added hashCode and equals to CraftWorld (2011-10-10)  ++* 1195944c9 - Removed deprecated ConcurrentSoftMap (2011-10-10)  ++* b05d4769d - Updated snakeyaml to reflect Bukkit (2011-10-10)  ++* c818414fd - Updated to the new Configuration api (2011-10-10)  ++* 255778b38 - Fix CraftBlock.equals as they are not singletons anymore (2011-10-07)  ++* d39c363e5 - another attempt at mob spawners - 3rd time's the charm? (2011-10-06)  ++* 696349884 - don't store weak references for EmptyChunks or cache CraftBlocks (2011-10-05)  ++* 8ab90b344 - fix for spawners not properly checking whether an entity can spawn (2011-10-05)  ++* d74145ef2 - hopeful fix for blocks not being pistons when they should be (2011-09-30)  ++* 73f419197 - Fixed Skeletons not dropping experience. (2011-10-04)  ++* 09801eeab - Exempted moving pistons from the tile entity fix. (2011-10-03)  ++* 1f4e671af - Fixed Silverfish having a base damage of 0. (2011-10-03)  ++* 9177c205b - Revert "Added callback line of sight methods. Thanks xZise!" (2011-10-03)  ++* 11b388ff3 - Fixed multiworld difficulty. (2011-10-03)  ++* 7c5007c01 - Added Difficulty API. (2011-10-03)  ++* 3a224266c - Fixed PlayerChangedWorld event. (2011-10-02)  ++* 3b2347093 - Added missing call for WorldUnload event. (2011-10-02)  ++* aaefd4ecb - Added callback line of sight methods. Thanks xZise! (2011-10-01)  ++* 80c2bc266 - Minimal diffs! Move methods for the new list-name away from nms (2011-10-03)  ++* bf0912135 - Attempt to fix any damage caused by misplaced tile entities (2011-10-02)  ++* 39674b6fb - Updated guava to 10.0 (2011-10-01)  ++* 199a5c2a7 - Implemented PlayerChangedWorldEvent. (2011-09-30)  ++* d53213690 - Fixed bed spawns for multiworld worlds. Thanks Meaglin! (2011-10-01)  ++* 22baa1389 - Painting improvements. Thanks CelticMinstrel! (2011-10-01)  ++* d53a155e4 - Packet handling improvements. (2011-10-01)  ++* aa6685111 - Correct biome data in ChunkSnapshot - wrong API used (2011-09-26)  ++* 64322ed26 - Added SlimeSplit event. Thanks garbagemule! (2011-09-30)  ++* b73d095a9 - revert change to make mobspawners drop a spawner of that type removed some debug code fixed a 1.5 compatibility issue (2011-09-29)  ++* 935313dea - Fixed players not receiving broadcasts (and other similar issues) after signing out and in rapidly (2011-09-27)  ++* 95666779f - added fallback code for invalid entities from mobspawners (2011-09-27)  ++* 40c8cc042 - Fixed monsters being spawned even when one was faux sleeping. Thanks to EdGruberman. (2011-09-26)  ++* afd95b7e3 - Added server list ping event. (2011-09-26)  ++* 87494d46f - Added Player.get/setListName to change the name of the player on the player list. (2011-09-26)  ++* 484376bba - Fixed saturation handling for FoodLevelChange event. (2011-09-26)  ++* 31eef6e00 - fixed build issues, code cleanup (2011-09-26)  ++* d226e551a - data improvements (2011-09-26)  ++* b7c43fbff - Boat get/set (double) occupied acceleration, (double) unoccupied deceleration, (boolean) work on land. Good values to maximize boat utility: 0.6 (fast accel.), 0.99 (no loss of boat), true/false, respectively. (2011-09-25)  ++* 8f8c62b71 - Ensure there's only one OfflinePlayer object per actual offline player (2011-09-25)  ++* a1f8d3fd4 - Changed max player count from 126 to 60 for ingame player list rendering fixes (2011-09-25)  ++* aece687d0 - Implementation of the Jukebox BlockState (2011-08-22)  ++* 6c6eef875 - Implemented get/setPickupDelay on Item entities, thanks robin0van0der0v (2011-09-25)  ++* ceba08270 - Implemented getOperators (2011-09-25)  ++* cb49379b2 - Adds a method that returns the File representation of the update folder. Thanks raphfrk (2011-09-25)  ++* 3c7a84394 - Made grass throw a BlockSpread event when growing and a BlockFade event when receding. (2011-09-16)  ++* f389ffd3c - Fixed typo in readme, thanks to b1naryth1ef for spotting it (2011-09-25)  ++* 77b9f0301 - Silence Eclipse's complaints about gitdescribe (2011-09-16)  ++* 79e7ae85d - Swapped an =="" for "".equals in EntityHuman (2011-09-25)  ++* fad2656c6 - Implemented world.getSeaLevel, made getHeight load from world instead of hardcoded (2011-09-25)  ++* 1fbd439dc - Implemented new createWorld method (2011-09-25)  ++* 44136f2e7 - Blocked access to ColouredConsoleSenders constructor, implemented getConsoleSender (2011-09-24)  ++* 0118a20d6 - Update to mcdev rename revision 01 for 1.8.1 (2011-09-24)  ++* 75ac4e00b - Cancel bed return method if entity is ignoring sleep. Thanks to EdGruberman. (2011-09-23)  ++* a2957c7b8 - Stop sending multiple time packets to each client (2011-09-23)  ++* e08535d68 - Fixed FoodLevelChange event adding too much to the food level. (2011-09-22)  ++* a7717d4d7 - Added RegainReason.SATIATED. (2011-09-22)  ++* aa0739d90 - Added FoodLevelChange event. (2011-09-21)  ++* 8d5a8667d - Made death message handling check for 'null' to disable death messages, along with an empty string. (2011-09-21)  ++* 217b41411 - Added EntityDamageEvent for caused by starving. (2011-09-21)  ++* e6e9cec1e - Added PlayerToggleSprint event and sprinting related API. (2011-09-21)  ++* 1da2d1f5b - Implements the ability to customise and remove Player death messages. (2011-09-21)  ++* 59908c43c - Ok, this'll have to do for exp orbs. (2011-09-21)  ++* 02f6e99d9 - Let's swap that around. More results! (2011-09-21)  ++* 5a8ec0cb9 - This should reduce the amount of exp-orbs quite a bunch (2011-09-21)  ++* 20ddc944b - Refactored a bunch of death code into the event factory (2011-09-21)  ++* 751ab82be - stopgap build - mostly stable (2011-09-21)  ++* f6ab0f861 - more chest checks (2011-09-21)  ++* 75e18f304 - better chest fix (2011-09-21)  ++* d06d111b9 - fix for stair data (2011-09-21)  ++* 905b97767 - Added getBedSpawnLocation to CraftPlayer. Thanks fernferret! (2011-09-20)  ++* 3f04f04be - Added/updated EntityDeathEvents to reflect changes to the Vanilla spec. (2011-09-20)  ++* 0a52c7f33 - Made health regeneration only occur if difficulty is set to 0 (Peaceful). (2011-09-20)  ++* e4d58faf5 - Fixed NPE when players are killed by (for example) dispensers (2011-09-21)  ++* a0216584b - Return OfflinePlayer for offline wolf tamers. Thanks robinjam (2011-09-20)  ++* 2d1d86b77 - Fixed endermen not loading carried-data properly (2011-09-20)  ++* 2ae6b431b - Added event for endermen picking up and placing blocks and methods to get/set what an enderman is holding. (2011-09-17)  ++* 167febd8e - Fixed allow-animals not applying to chunk generation. (2011-09-19)  ++* d01a3acd8 - Added missing //cb comments from dfa9c9bccb7feac44824c146d2dc11874b50b19d (2011-09-19)  ++* 5b68bae02 - Fixed NPE when people experience the chest crash (2011-09-19)  ++* 914a8a0c0 - Nullchex! (2011-09-19)  ++* 9954a3d8b - Missed closing the comment block -- doh (2011-09-18)  ++* a4355d4bd - Remove pingpacket updating completely for now -- this needs a better fix, the default original implementation has a hug bug (2011-09-18)  ++* af6ba0f02 - implementation of PlayerGameModeChangeEvent call (2011-09-16)  ++* 65052c8a5 - Workaround for crash when chests mix up with furnaces - need to investigate cause (2011-09-18)  ++* 3f4ee9ab5 - Added support back in for biome temperature and rainfall in snapshots. (2011-09-15)  ++* 5534efd66 - painting fix (2011-09-17)  ++* f5957c183 - Invalid position errors for chunks now display what world they're for (2011-09-17)  ++* 0ae6e1176 - Fix silly infiniteloop in pingpacket (2011-09-17)  ++* e83a19756 - Removed extra addEntity call in SpawnerCreature. (2011-09-17)  ++* 392e2a427 - Implemented configurable ping packet limit. (2011-09-16)  ++* 096672b3c - Added toString overrides to new Craft entities. (2011-09-16)  ++* 820c51ab9 - Added new entity mappings to CreatureSpawnEvent factory. (2011-09-16)  ++* fb26465c5 - passive fix for chests (add an active fix later) (2011-09-16)  ++* bd93cd718 - Fixed not being able to move properly around doors or trapdoors (2011-09-16)  ++* 900c54124 - Bunchafixes which may or may not have any end result (2011-09-16)  ++* 94d1338fe - Fix for doors breaking themselves in certain situations (2011-09-16)  ++* 88e57fbf2 - Fixed bow drawback not affecting arrow damage. (2011-09-16)  ++* 456ce5171 - More latency handling fixes. (2011-09-16)  ++* 76493f9c7 - Fixed fall distance accumulating while being in Creative mode. (2011-09-16)  ++* 72e5ea6cc - Fixed NPE when a client queries a server that is unable to handle it. (2011-09-16)  ++* 85c0c1bb5 - Fixed the client having an incorrect world seed on respawn/teleporting across worlds. (2011-09-16)  ++* f8d36cd09 - Fixed food data not persisting appropriately. (2011-09-16)  ++* e85c99289 - Fixed latency update issues. (2011-09-16)  ++* 2995a0832 - Removed some unneeded code, possibly fixed animal spawning (2011-09-15)  ++* 35defecc4 - Fixed a couple of minor obf translations (2011-09-15)  ++* cdbd318bb - Fixed missing PlayerInteractEvent call in creative mode (2011-09-15)  ++* 9252230e3 - Update for Minecraft 1.8.1 (2011-09-15)  ++* 2b5a61f03 - Rename revision 2 (2011-09-15)  ++* 3c5632de3 - Fixed Creative not having infinite items. (2011-09-15)  ++* 53b32f43c - Fixed minecarts forgetting their purpose in life (2011-09-15)  ++* 965b185c5 - Setting exp shouldn't add, it should set (2011-09-15)  ++* 8b0869617 - Implemented food methods + fixed dying resetting food (2011-09-15)  ++* 7eff77376 - Fixed spawning the new entities (2011-09-15)  ++* 548ecfdec - Implemented Exp Orb methods (2011-09-15)  ++* fce1a6125 - Fixed logging in to the wrong game mode (2011-09-15)  ++* 706f0da59 - Fix for ItemDoor crash (2011-09-15)  ++* 1c95476a0 - Implemented player experience methods (2011-09-15)  ++* ca57a1a1a - 1.8 rename fixes (2011-09-15)  ++* 6e44626d0 - Fixed item drop protection. (2011-09-14)  ++* d71e83d8d - Possible fix for flying. (2011-09-14)  ++* ca4810e8d - Implemented new entities (2011-09-15)  ++* a9b3a90dc - Implemented gamemode methods (2011-09-15)  ++* 5b2c774ed - Update for Minecraft 1.8 (2011-09-15)  ++* 54bcd1c1f - Indentation is important, ok? (2011-09-08)  ++* f36bca9fb - Implemented new GameMode methods (hint: You can't set game mode yet. Sorry.) (2011-09-09)  ++* 59babb2c3 - Fixed issue with console being subscribed multiple times to permissions (2011-09-04)  ++* c8d77561b - Added new Server.getPlayerExact() method, added whitelist methods and don't use vanilla commands (2011-09-03)  ++* 09d90e639 - Implemented new ban and unban methods (2011-09-03)  ++* 598be2280 - Implemented IP-banning methods (2011-09-03)  ++* 2547c4609 - Actually push the CraftOfflinePlayer implementation! (2011-09-03)  ++* 020675702 - Implemented OfflinePlayer (2011-09-03)  ++* fe0cd5405 - Implemented new broadcast method (2011-09-02)  ++* db691ff5c - Fixed player.setOp not deopping players (2011-09-02)  ++* 7c491b7bc - Fixed world.save, implemented autosave methods (2011-09-02)  ++* 0c2004596 - Implemented Server.shutdown() (2011-09-02)  ++* d69bbd38c - Commands are now "bukkit.command.x" instead of "craftbukkit.command.x", added legacy perms for compat (2011-09-02)  ++* 3915c15ef - Version message doesn't need to be printed manually now (2011-09-02)  ++* f165d4082 - Refactored some code from nms to ob for minimal diffs (2011-08-29)  ++* 1e8bbbfbd - Fixed PlayerDropItem event cancelling. (2011-08-23)  ++* e4a217728 - Fixed memory leak Chunk Compression handling. Thanks Zeerix! (2011-08-27)  ++* 6f8d4c3a5 - Fixed using custom PTAs for PlayerPortal event. (2011-08-27)  ++* 6e4b12cdf - safety check (and hopeful fix) for chunk saving (2011-08-19)  ++* 90d1afb74 - Refactored default permission registration. Added "craftbukkit" and "craftbukkit.command" parent perms, and fixed whitelist adding (2011-08-18)  ++* 26bd45c23 - Made suiciding through the /kill command not reliant on pvp being allowed. (2011-08-15)  ++* 8ea590bbc - Revert "Implements interface for changing the view distance." (2011-08-15)  ++* 12e377501 - Implements interface for changing the view distance. (2011-08-12)  ++* a6c03ded2 - Movement handling cleanup. (2011-08-13)  ++* 748a6288e - Added API for manipulating map items. Thanks SpaceManiac, codename_B, sk89q and dested! (2011-08-12)  ++* e6876a97d - Added permissions for each vanilla command - see http://wiki.bukkit.org/Vanilla_permissions. Removed op requirement for all server commands :o (2011-08-13)  ++* 27f7a9951 - Item drop handling changes. (2011-08-08)  ++* 96a0e8706 - Fixed chunks being overwritten with empty chunks when the memory setting is immediately changed after a world loads. (2011-08-11)  ++* f79505501 - Fixed a piston crash (AIOOBE). (2011-08-09)  ++* c1e85002b - Added missed colors to ColouredConsoleSender. Thanks flames! (2011-08-10)  ++* 587b9662c - More PlayerMove fixes. (2011-07-26)  ++* 28b3c9b0d - Fixed new type reporting in BlockFade event for snow and ice. Thanks DiddiZ! (2011-08-07)  ++* 831d97c8d - Added "getViewDistance()", "getAllowNether()", "hasWhitelist()" and "getAllowFlight()". Thanks robin0van0der0v! (2011-08-07)  ++* 47453c605 - Extremely experimental fix to the tile-entity wipe, thanks to Wug (2011-08-04)  ++* effc6c855 - Fix placement of scheduler tick (2011-08-07)  ++* bb8984763 - Map handling improvements. (2011-07-26)  ++* ae43b837b - Prevent Nether Portals from teleporting the player from Bukkit worlds to the Nether. (2011-07-26)  ++* a7f279886 - Made PlayerPortal event fire regardless of allow-nether setting. (2011-08-05)  ++* 4117d6b65 - Implemented per world setting to keep the spawn in memory or not. (2011-07-27)  ++* 6ae23e3f0 - Chunk Compression on seperate thread. Thanks to Zeerix. (2011-07-26)  ++* 85805e53a - Added ServerCommandEvent. Thanks celticminstrel! (2011-07-28)  ++* 817cd83f0 - Made PlayerAnimation cancellable. Thanks desmin88! (2011-07-28)  ++* 7d4ec8b18 - Retiring EntityDamageByProjectileEvent in favor of EntityDamageEvent. (2011-07-19)  ++* e2e4d7f4c - Added PlayerVelocityEvent. Thanks Evenprime! (2011-07-28)  ++* 57e0a106f - Fixed BlockPlace event for doublesteps. Thanks DiddiZ! (2011-07-28)  ++* a8df829a8 - Made /kill trigger a damage event. Thanks hollic! (2011-07-28)  ++* 6b9c7fa67 - Added Version startup argument to Main. Thanks cyberdudedk! (2011-07-28)  ++* 5b7b46593 - Added various utility methods to make chunk handling easier. Thanks Meaglin! (2011-07-28)  ++* 226318d8a - Removed deprecated methods. (2011-07-27)  ++* 4fdc22552 - Fixed crash caused by Jukeboxes under certain circumstances. (2011-07-24)  ++* f4a789b48 - Fixed NPE in BlockFurnace. (2011-07-22)  ++* a5f85b6f1 - Fixed map render distance when view-distance < 7. (2011-07-22)  ++* 97a6534ee - Fixed maps crashing/disconnecting the client under certain circumstances. (2011-07-21)  ++* bfa22f302 - Tweaked pom to specify guava as provided (2011-07-20)  ++* 7ad853a51 - Implemented maxheight (2011-07-20)  ++* 5d2a19583 - Implemented new permission system (2011-07-17)  ++* cc9ccc897 - Removed some old deprecated code and clean up javadocs + warnings (2011-07-17)  ++* fd260b0f4 - Allow colorchar to be uppercase (2011-07-17)  ++* f7712eb20 - Deprecated Block.getFace(Face) and Block.getFace(Face,int); use getRelative() (2011-07-17)  ++* f3a86eaac - Implemented BLOCK_PISTON_CONTRACT/EXPAND (2011-07-17)  ++* df9142cd1 - Use the regular repo-url again (2011-07-17)  ++* e4edbf288 - Don't use weak/soft references for keys, attempt to lessen memory impact further (2011-07-16)  ++* c101c3553 - Readded ConcurrentSoftMap because apparently some plugins need this. (They really, really shouldn't be using it. At all.) (2011-07-15)  ++* a507add4e - Fixed huge memory leak (gigabytes/hour!) by placing a bukkit under the ceiling. (2011-07-15)  ++* 0bd535e05 - Made fire spread trigger BlockSpreadEvent. Thanks N3X15! (2011-07-14)  ++* 30a382a6d - Made ProjectileHitEvent fire instantly when projectiles don't hit entities. (2011-07-14)  ++* 43492ab6a - Revert "Do not immediately re-queue repeating tasks, or they may simply keep repeating on this tick, until the 35ms time limit runs out." See https://github.com/Bukkit/CraftBukkit/commit/3632d99122e8795cadb8f94e14e42eb4aa6d7c4c#commitcomment-478252 (2011-07-14)  ++* 4a932c11d - Do not immediately re-queue repeating tasks, or they may simply keep repeating on this tick, until the 35ms time limit runs out. (2011-07-13)  ++* 958acee5a - Use ColouredConsoleSender to send chat to console. Thanks TheDgtl! (2011-07-14)  ++* 3c5ecd085 - Fixed missing BiomeBase.SKY to Biome.SKY mapping. Thanks mikeprimm! (2011-07-14)  ++* cc94325b2 - Implemented pig zombie get/set anger functions. (2011-07-02)  ++* c9979169b - Possibly fixed crashes caused by tile entities under certain circumstances again. (2011-07-13)  ++* 185d59014 - Fixed the accounting for world UID conflicts. (2011-07-13)  ++* 3d28c67c0 - Implemented helper methods + new biome methods (2011-07-13)  ++* 7f6e7060d - Account for world UID conflicts. (2011-07-13)  ++* eb19e4e8d - Fixed uuid code that was prematurely pushed. (2011-07-13)  ++* 9e49127c7 - Made the order of aliases matter. We may or may not re-do this in a later build. (2011-07-13)  ++* a9cdc36f2 - Possibly fixed crashes caused by tile entities under certain circumstances. (2011-07-12)  ++* d0f904fc5 - uuid changes (2011-07-13)  ++* 83fd8fad6 - Added command line logging configuration which enables log file: * Size limiting (--log-limit ) * Rotation (--log-count ) * Custom naming (--log-pattern ) * Append (--log-append ) Note: This is done via command line and not bukkit-settings as that would require lots of refactoring of both core server and CraftBukkit due to the current initialisation ordering and depenencies. All settings default to that of the standard server (2011-07-10)  ++* f6a06e8df - Temporarily relocated 1.7.3 jar to static location (2011-07-09)  ++* c56d0c084 - Use generators from bukkit.yml if none was specified at createWorld (2011-07-08)  ++* dac47b013 - Updated pom mc version (2011-07-08)  ++* 2f218ba6b - Update for 1.7.3 (2011-07-08)  ++* cc635ed51 - Try find conflicting UIDs (2011-07-07)  ++* 0993e6cbd - Okay, back to arbitrary offsets! (2011-07-07)  ++* 256404388 - No longer use an arbitrary offset to locate the correct map (2011-07-07)  ++* 83abbfe4d - Cleaned up this worlduid stuff a little. (2011-07-07)  ++* 4cab8635d - Made maps support MultiWorld worlds. (2011-07-03)  ++* 9ced39421 - Implements a World UID. (2011-07-05)  ++* 5515ce1ff - IntelliJ is awesome. (2011-07-05)  ++* 3789f61c7 - Added PlayerFish event. (2011-07-03)  ++* aacb95e27 - Fixed Sheep not firing EntityDeath event. (2011-07-02)  ++* f7e17b68d - Fixed PlayerPickupItem event returning wrong amount picked up and added function to get the amount remaining on the ground. (2011-07-02)  ++* 22097a996 - Fixed NPE in BlockFurnace. (2011-07-02)  ++* 7cd03e65d - Improved FurnaceBurn event. (2011-06-30)  ++* 68506e2a4 - Forgot version in CraftBukkit (2011-07-01)  ++* 1497eec04 - Update for 1.7.2 (2011-07-01)  ++* 25f72c9ca - Fixed doors not updating their state to reflect any redstone currents when placed. (2011-06-30)  ++* b53029975 - Made trapdoors fire BlockRedstone events. (2011-06-30)  ++* 1e209e8e1 - Improved PlayerMove event implementation. (2011-06-30)  ++* 49df44ad6 - Possible fix for cancelled CraftScheduler tasks still running. (2011-06-30)  ++* 8a521ec62 - Added reasons for entities regaining health. (2011-06-28)  ++* f518ced9a - Fixed BlockRedstone event firing too many times under certain circumstances. (2011-06-27)  ++* 61a7a0633 - Update to minecraft 1.7_01 (2011-06-30)  ++* a679e7f38 - Update to Minecraft 1.7 (2011-06-29)  ++* a98c7ba2c - Massive renaming update in nms. If you bypassed Bukkit, you will likely break. (2011-06-27)  ++* 9e5dba830 - Picking up arrows now also fires PlayerPickupItem (2011-06-26)  ++* f0402d9d6 - Fixed cancelling the PlayerPickup event, getAmount(), item duping issue. (2011-06-26)  ++* b4c0492b1 - Fixed Explosion.setYield(0) still dropping blocks. (2011-06-24)  ++* 528e8c722 - Don't register commands only on init (2011-06-26)  ++* 0b92a51ba - Fixed the fix of the EntityTame event. (2011-06-23)  ++* a5dd42adb - Portals created by fire now trigger PortalCreateEvent. (2011-06-23)  ++* b94bb2766 - Delayed alias registration until postworld (2011-06-24)  ++* 22c28e593 - We build for JDK 1.5. (2011-06-23)  ++* 6e746ef79 - Made bukkit settings reload on reload(). (2011-06-23)  ++* ebfd973d0 - Fixed PlayerPickupItem event firing even if the player could not pick up the item. (2011-06-23)  ++* 98098481e - Fixed default command alias to do an array (2011-06-22)  ++* 0a3b89c8f - Implemented new alias system (2011-06-22)  ++* e73b10cf9 - Fire WorldLoad events on default worlds for plugins who load:startup (2011-06-22)  ++* 7f0126a36 - You may now set a generator to a default world using plugin.yml (2011-06-22)  ++* d647e2098 - Implemented startup plugin loading (2011-06-22)  ++* ff67eda4c - Fixed players not healing in other worlds when spawn-monsters is false. (2011-06-22)  ++* 7efaa1a02 - Inform the client when a move event is cancelled. (2011-06-22)  ++* 568731f29 - Line endings. (2011-06-22)  ++* 79337d3aa - Added SpawnReasons to CreatureSpawn events. Thanks winsock! (2011-06-21)  ++* faab690dc - Added Sky biome for the Skylands. Thanks robin0van0der0v! (2011-06-21)  ++* cd1c3858e - Fixed spawn location offset. (2011-06-21)  ++* 064830207 - Implements isBedSpawn() to the PlayerRespawnEvent. (2011-06-21)  ++* 138c70183 - Changed Nether portals to be handled by a customiseable PortalTravelAgent and updated the PlayerPortalEvent (2011-06-20)  ++* 214d41250 - Added the abitility to spawn fireballs. (2011-06-20)  ++* 8df3fe62f - Remove Squid spawning restriction as Squids seem to obey spawn flags. (2011-06-20)  ++* 5335508c2 - Possible fix for furnaces leaving items behind. (2011-06-20)  ++* 918f488d2 - Added Furnace smelt and burn events. (2011-06-19)  ++* 6cf0fc4a7 - No more ghastly pigs! (2011-06-19)  ++* 57d677d1e - Fixed CraftWorld.spawn() having all the inheritance checks backwards. (2011-06-19)  ++* 7ac53dfc8 - Fixed NPEs in infinite item loss fix (2011-06-19)  ++* cb7b82d45 - Added API to allow plugins to set the world's spawn flags. (2011-06-19)  ++* 89a524678 - Added getOnlineMode() for the Server. Thanks Rigby! (2011-06-19)  ++* a6e5c9722 - Fixed losing an infinite item when interacting with an entity. Thanks for the help Rigby! (2011-06-19)  ++* 12b7499c4 - Added Entity target events to EntityGhast. Thanks winsock! (2011-06-19)  ++* 98f05f775 - Fixed hostile entities continuously targeting dead entities. Thanks Rigby! (2011-06-19)  ++* b292a9dfb - Added more events for Wolves. Thanks Deaygo! (2011-06-18)  ++* 155874eec - Implemented the concept of a projectile. (2011-06-18)  ++* 546e1306d - Fix for spawnMinecart. (2011-06-18)  ++* 0ef0bdb61 - I'm sorry Paintings... please come back... (2011-06-19)  ++* a6b8b80fa - Added PlayerToggleSneakEvent.isSneaking(). (2011-06-18)  ++* 4cefee5be - Added world seed display to 'Preparing level' log message for each world (2011-06-17)  ++* 87b421767 - Added wolf damage and target events. Thanks Deaygo! (2011-06-17)  ++* b0fcbe7fc - Fixed several NPEs within World. Thanks Deaygo! (2011-06-17)  ++* 68695fb9d - Fixed EntityTame event firing too many times. (2011-06-17)  ++* d48e9c22f - Added BlockSpread, BlockForm and BlockFade events. (2011-06-17)  ++* 22f26895e - Added Redstone event support for detector rails. (2011-06-17)  ++* b92f54639 - Added recommended work-around for handling player movement in such a way that it doesn't trigger the movement speed check. Thanks for the help Rigby! (2011-06-17)  ++* f3d25e647 - Added EntityRegainHealthEvent. Thanks TimWolla! (2011-06-17)  ++* fadd962b9 - Added the implementation of the concept of an Explosive. (2011-06-14)  ++* 10fb5dc84 - Added ChunkSnapShot improvements. Thanks mikeprimm! (2011-06-17)  ++* 105cc5393 - Forgot to account for code shuffling with player.dat fixes. (2011-06-17)  ++* 39332e5c8 - Added Instrument enum, Note class and get/setNote functions. Thanks xZise! (2011-06-17)  ++* cc1b0a005 - Added per player time support. Thanks eisental, Shamebot and needspeed10! (2011-06-17)  ++* a70a5abc3 - Added implementation of general spawn method. (2011-06-08)  ++* a8817b7bd - Implemented extended createExplosion methods. (2011-06-12)  ++* be45f900e - Fixed issues with infinite items. Thanks for the help Rigby! (2011-06-17)  ++* 0c56bfb62 - Possible Player.dat fixes to address issues with switching between Vanilla and Bukkit or vice versa. (2011-06-16)  ++* 7aadc3d66 - Moved spawn-protection from server.properties into (settings.)spawn-radius in bukkit.yml (2011-06-17)  ++* c0244eda0 - Implemented bukkit.yml command aliases (2011-06-17)  ++* 7e22faf9d - Moved some craftbukkit stuff down from WorldServer to World; should fix a few NPEs during generation, and saves on a lot of casting (2011-06-17)  ++* a818669be - When someone moves to Bukkit from a vanilla (or other mod) server, move the old nether folder to the bukkit location. (Yes, it sucks, no, there's no alternative.) (2011-06-16)  ++* e08568de4 - Implemented ChunkPopulateEvent (2011-06-16)  ++* 6f1d6a4ca - Fixed EntityTame event. (2011-06-12)  ++* e2c9e92d9 - Properly fixed BlockPlace event for Redstone wire. (2011-06-14)  ++* 9d8428607 - Fixed login message and CraftBukkit comment. (2011-06-13)  ++* 8bfa8e2d0 - Made Squids fire EntityDeath events. (2011-06-13)  ++* 9adc03aba - Generic cleanup of the org.bukkit.craftbukkit classes. (2011-06-12)  ++* b042f48b2 - Fixed random NPEs when generating a world (2011-06-11)  ++* 96b1b8a10 - Generic cleanup (2011-06-12)  ++* 938db4de2 - Updated the block place cancellation code for steps to handle many more cases. There's still one edge case left however. (2011-06-11)  ++* 73e34c2fe - Added ItemSpawnEvent. Thanks myers! (2011-06-11)  ++* 5b93f5565 - Fixed from and to worlds being the same for a PlayerTeleportEvent for crossworld teleports. Thanks for the help Rigby and Verrier! Tahg is responsible for the mess. (2011-06-10)  ++* cd12f057a - Fixed cancelled lighting strikes dealing damage. (2011-06-10)  ++* fb3e3ade9 - Possible fix for clay generation. (2011-06-10)  ++* 80770314d - Fixed fireball explosions not producing fire. (2011-06-10)  ++* a9e7b56ef - Improved handling of being sent to your bed spawn if the world saved in your player.dat no longer exists. (2011-06-10)  ++* a98f4f893 - Fixed not being able to login if the world saved in your player.dat no longer exists. Thanks for the help Rigby and Verrier! (2011-06-10)  ++* 8f4c36974 - Added world name to player logged in message. (2011-06-10)  ++* 6607b6785 - Fixed getting stuck in the ground when respawning to a bed under certain circumstances (2011-06-10)  ++* ad95bf409 - Redid packet prioritisation to fix chunk loss bug encountered when teleporting, also addresses issues caused by teleport fixes. (2011-06-10)  ++* cb9c7d1b2 - Fixed trapdoors not updating their state if a Player Interact event is cancelled. (2011-06-09)  ++* 7e3895b69 - Fixed Creepers being killed even if their Explosion Prime event is cancelled. (2011-06-09)  ++* e5c6b329d - Whoops, need this commit too. (2011-06-09)  ++* bf4a4a767 - Added some missing @Override. (2011-06-09)  ++* ccabbcbf0 - Added World.createExplosion() that takes a Location, instead of just raw X, Y, Z values. (2011-06-09)  ++* a25ab644d - Cleaned up some Javadocs. (2011-06-09)  ++* e45c502ec - Moved playSound/Effect(Player, ...) to Player.playEffect(Location, ...) to be consistent, and because the code didn't really do what the Javadoc said. (2011-06-09)  ++* 846bd468d - Changed sound playing to effect dispatching, since these seem more like more like encompassing effect than mere sounds. (2011-06-09)  ++* baf9a9f50 - Merge branch 'sound' of https://github.com/sunkid/CraftBukkit (2011-06-09)  ++|\ ++| * 5fe9ac362 - implementations of the playSound methods (2011-06-09)  ++* | f627b69be - Improved CreatureSpawnEvent and made Water Animals obey spawn-animals setting. (2011-06-09)  ++* | baa92bdd0 - reverted some changes that broke stuff (2011-06-09)  ++* | ca0711fdb - fixed support for multiworld beds (2011-06-09)  ++* | 4a0eb0a4a - Added method to create an explosion in world. Thanks Zaraza107! (2011-06-09)  ++* | b0714775e - Added EntityTame event. Thanks halvors! (2011-06-09)  ++* | 0c24f86a0 - Fixed redstone current being sent even if a BlockPlace was cancelled. (2011-06-09)  ++* | 053e05dd3 - Fixed weather changes affecting players in all worlds, instead of their respective worlds. (2011-06-09)  ++* | 569b1d274 - Made it possible to block punching fire out through PlayerInteract event. (2011-06-09)  ++* | 4bdc752ac - Fixed issues introduced by recent 'portal changes' commit. (2011-06-08)  ++* | 832091736 - Adds update chunk method for sending fake chunk updates to the client. This is to match the sendBlockChange method. (2011-05-21)  ++* | 1a1fc953c - Implemented 1.6 portal events. (2011-06-07)  ++* | a285a7b21 - Added more control over block placement on interactable objects. Thanks Acru! (2011-06-08)  ++* | b5d1619e7 - More teleport changes. Thanks Zeerix! (2011-06-08)  ++* | 5296f97cd - Portal changes. (2011-06-08)  ++* | 8b49a945c - Prevent effects of tickrate degradation on furnaces (2011-05-01)  ++* | 029ca3e2f - Prevent effects of tickrate degradation on item pickups (2011-04-30)  ++* | ce6524d45 - Fixing a serious issue caused by SpaceManiac. All his fault. (2011-06-07)  ++* | 147e3d684 - Fixed health on multiworld teleportation (2011-06-07)  ++* | 864f8d2f0 - Fixed nether's identity crises (2011-06-07)  ++|/ ++* 17c361a5e - Exempt Vehicles from Entity.java's sanity check (2011-06-07)  ++* d33c06ead - Added UniqueId to entities. Thanks Afforess! (2011-06-07)  ++* 95c19d5f2 - Added ChunkSnapshot for efficient, thread-safe copies of Chunk data. Thanks mikeprimm! (2011-06-07)  ++* 68608169c - Implemented unloadWorld(). Thanks Rigby! (2011-06-07)  ++* 57a1a7422 - Re-added per-world PVP setting support which was accidentally lost in translation. Thanks Rigby! (2011-06-07)  ++* 9fde27bfc - Fixed IPv6 support in NetworkManager. (2011-06-07)  ++* 6bd509ebd - Fixed durability changing regardless of whether or not damage was successful. Thanks Xolsom! (2011-06-07)  ++* ef9295707 - Fixed entity damaged by entity event firing twice when players damage each other. Thanks Xolsom! (2011-06-07)  ++* 8b3f90f23 - Use the custom set spawn (2011-06-06)  ++* d40c690c8 - Fix for generator stuff now being class (2011-06-06)  ++* fedcbdf25 - Implemented custom chunk generators and block populators (2011-06-06)  ++* 891dfbcef - Possible fix for some chunk loading issues experienced when teleporting. Thanks akrieger! (2011-06-05)  ++* 7499e2e0d - Fixed chunks saving more than they need to. Thanks Rigby! (2011-06-05)  ++* 86de98da9 - Squelch stacktrace for 'not so important'-'error' (2011-06-05)  ++* 5a29d6973 - map cursor rotation fix (2011-06-03)  ++* b9d8248a8 - attempted nether fix (2011-06-03)  ++* 5f684ef16 - fixed environments (2011-06-03)  ++* ebc478388 - fixed cross world teleport (2011-06-01)  ++* 66109d6e5 - moved respawn event (2011-05-31)  ++* 8835cb905 - More multiworld fixes (2011-05-31)  ++* 62b5da4e3 - Update for 1.6.6 (2011-05-31)  ++* 6dbd710bb - Update for 1.6.5 (2011-05-28)  ++* 9ec5d8b5d - Improved packet handling (2011-05-27)  ++* 1784e42d5 - Fixed a bunch of multiworld issues (entity tracking etc) (2011-05-26)  ++* 036f49ddb - Fixed the Bukkit Scheduler. (2011-05-26)  ++* 9934dd856 - Version fix (2011-05-26)  ++* 5e1c969af - Update for 1.6.4 (2011-05-26)  ++* dc76d3a64 - Update for 1.6.3 (2011-05-26)  ++* 6903f2024 - Implemented 1.6! (2011-05-26)  ++* f463453d7 - Fixed issue where the Bukkit entity was detected before the entirety of the entity's NBT data was read, causing affected entity types to not be differentiated correctly. (2011-05-23)  ++* 3cd135b08 - Possible fix for teleports triggering 'moved too quickly' check. (2011-05-23)  ++* 949634ad6 - Fixed animals not spawning when spawn-monsters is set to false. (2011-05-22)  ++* 8b0924bbb - Fixed duplicate console and player messages when built in server commands where used or an unknown command was issued (2011-05-22)  ++* 6319a1907 - Possible fix for -nojline printing blank lines (2011-05-19)  ++* 480c1b987 - Fixed -nojline. (2011-05-19)  ++* 962f05821 - Minimal diffs. (2011-05-19)  ++* afb08bb0c - Account for time drifting backwards on servers with the moved too quickly check changes. (2011-05-19)  ++* eac5b9623 - Added -nojline CLI option to emulate vanilla console behaviours. Added JLine disabling compatibility (removes the '>'). (2011-05-18)  ++* cd87e5163 - Fixed issues with updating redstone state under certain circumstances. (2011-05-17)  ++* 38ebaa53e - Limit human entity name length to 16 characters, as per the spec. (2011-05-16)  ++* bc5924bbc - Made the save-all modification respect the original save state. (2011-05-16)  ++* 605bfd972 - Fixed dispensers not working. (2011-05-16)  ++* c4138ff4d - Made save-all force saving like it says it does. (2011-05-16)  ++* f8d83d9e0 - Made player data save only if saving is turned on, in line with how the rest of saving works. (2011-05-16)  ++* 7f73594aa - Added get/setLastDamageCause. Thanks sunkid! (2011-05-16)  ++* 8de2b52a0 - Removed double firing of EntityDamage events by arrows. Thanks sunkid! (2011-05-16)  ++* 27e75c358 - Fixed trees being invisible under certain circumstances. Thanks Zeerix! (2011-05-15)  ++* a4570215f - Fixed TileEntity updates occurring upon a multi-block change. Thanks stoneLeaf! (2011-05-15)  ++* 3439b7f9d - Made setHealth(0) trigger EntityDeathEvent and drops. Thanks yetanotherx! (2011-05-15)  ++* 309846d73 - Whitespace + general cleanup (2011-05-14)  ++* e54d8c335 - Dead men tell no tales. (2011-05-12)  ++* 25a74b624 - Edited src/main/java/org/bukkit/craftbukkit/entity/CraftPig.java via GitHub (2011-05-11)  ++* 88d0171c4 - Merge pull request #268 from xPaw/master (2011-05-11)  ++|\ ++| * 73aa3ac03 - Added hasSaddle/getSaddle (2011-04-26)  ++* | 32fd44771 - Cleaned up left over debug messages. (2011-05-10)  ++* | 5ca0a881a - Moved inventory cleaning to occur after the event is called to preserve the exact state of the inventory for plugin use. (2011-05-09)  ++* | 0faaf5af8 - Made the movement speed check more reliable on high load servers. (2011-05-09)  ++* | 98633a9f1 - Added dispenser event. (2011-05-08)  ++* | 6cbd4cdf9 - Added World.strikeLightningEffect() that does no damage. (2011-05-06)  ++* | c05cc33f7 - Changed LightningStrikeEvent to return a LightningStrike and not an Entity. (2011-05-06)  ++* | 99a7b91ef - Added an update on load feature for plugins. Thanks Raphfrk! (2011-05-05)  ++* | 54e225490 - Made teleporting between worlds 'smoother'. Thanks Raphfrk! (2011-05-04)  ++* | ef7e3689b - Possibly fixed chunk loss bug encountered when teleporting. Thanks Raphfrk! (2011-05-04)  ++* | 1f2c44e65 - Fixed 'Entity is already tracked' issues. (2011-05-04)  ++* | 41a2bc969 - Fixed crafting 'lag' introduced by additions to the Crafting API. (2011-05-04)  ++* | 93708cb74 - Added services manager framework. (2011-05-02)  ++* | bdcee9025 - Added method to fake a block change request for a player. (2011-05-02)  ++* | 80a1a4ac8 - Added Player.playNote(). (2011-05-02)  ++* | 98cea5cd1 - Added NoteBlock.play(instrument, note). (2011-05-02)  ++* | 83eecfbd4 - AnimalTamer implementations, refactor and clean-up of code (2011-05-03)  ++* | 02d7f32e8 - Fix isSitting()/setSitting(), add isTame()/setTame()/getOwner()/setOwner() methods (2011-04-08)  ++* | cd3c8fcfc - We build for Java 1.5, so no @Override for interface implementations (2011-05-02)  ++* | bf1f5b00d - Added PlayerInteractEntityEvent which fires when a player right clicks an entity. Thanks fullwall! (2011-05-02)  ++* | fdb077e81 - Improved the Scheduler. (2011-04-28)  ++* | aa7024091 - Added a setArmorContents method to PlayerInventory. (2011-04-29)  ++* | e56a8d472 - Added SnowFormEvent. Thanks aPunch! (2011-05-02)  ++* | f342db744 - Added per world PVP setting support. (2011-04-29)  ++* | 5a5ce7903 - Implemented addRecipe method in CraftServer and associated recipe classes. (2011-04-15)  ++* | 017b15c3a - Fixed block lag. (2011-04-29)  ++* | 955a78b8f - Handle NPE in ThreadLoginVerifier that occurs when trying to continue using a closed socket. (2011-04-29)  ++* | 9d7a03a64 - Cleaning up some redundant code. (2011-04-29)  ++* | 97c5f2bb8 - improved sign handling (2011-04-28)  ++* | b054cfdda - Fixed duping exploit. (2011-04-27)  ++* | b075a5865 - fixed painting NPE (2011-04-26)  ++* | 671197565 - Fixed PlayerQuitEvent.setMessage(). (2011-04-25)  ++* | fe75ab250 - Fixed CraftBukkit comments in World.java. (2011-04-25)  ++* | 57bc71df0 - Fixed sleeping. (2011-04-25)  ++* | 8f4ce0988 - Added missing CraftBukkit comments. (2011-04-25)  ++* | b2c558eab - Fixed rain not putting out fires due to a mistranslation issue. (2011-04-25)  ++* | d2a4c510b - Added events related to weather in 1.5. Thanks wizjany! (2011-04-25)  ++* | 1d0a6d56b - We need to reset the invalid position. (2011-04-25)  ++* | 70c177e0f - Implemented painting events (thanks verrier and tanelsuurhans) (2011-04-25)  ++* | 5fff84c5a - Added the ability to retrieve a world's Seed. (2011-04-23)  ++* | 1db5464d9 - Fix forgotten call of EntityInteractEvent for PressurePlates. (2011-04-25)  ++* | 88ebcc8db - Fix TextWrapping issues; Now limits the packets send to the client to either: 119 chars or 320 width. This will strip disallowed characters, propagate colors properly to the next line and not 'eat' multiple color-codes. (2011-04-25)  ++* | 6940f56d4 - Updated README for lineending demands (2011-04-25)  ++* | 2a9c15c97 - Fixed ENTITY_INTERACT event for BlockSoil. Thanks wizjany! (2011-04-25)  ++* | 0740e0c77 - Fixes the whitescreen issue some people were having. (2011-04-24)  ++* | d156fcf9c - Hid stacktrace for socket exceptions. (2011-04-23)  ++* | 5dfe732f1 - Added reset for pitch/yaw if they are somehow set to NaN. (2011-04-23)  ++* | 2ad7856d7 - Limited sign text length to 15 characters, as per the spec. (2011-04-23)  ++* | 932d70cde - Made the server not accept Packet27 as it is not used. (2011-04-22)  ++* | da85c1823 - Reduced console spam under certain conditions. (2011-04-22)  ++* | 8681752ee - Fixed NPE in lightning fire event. (2011-04-22)  ++* | a042ee1e2 - Add methods to control thunder. (2011-04-22)  ++* | c3ce6ce3a - Added weather control methods. (2011-04-22)  ++* | 6739d6d75 - Added World.strikeLightning(). Also renamed WeatherStorm -> LightningStrike. (2011-04-22)  ++* | 628fec752 - Added events for fires caused by lightning. (Not 100% sure that they get called though.) (2011-04-22)  ++* | 4ecbf5f59 - Changed Block.setTypeId() back to old behavior before the new translation process. (2011-04-21)  ++* | 58d3107e4 - Fixing CLI arguments for the 100th time - now with CraftBukkit comment-ey goodness. (2011-04-22)  ++* | c18e04ce8 - Proper fix for the console spam on disconnect/kick. (2011-04-21)  ++* | 8ba9f3216 - Fixed ordering of params used in SignChangeEvent. (2011-04-21)  ++* | 3afe2df24 - Implemented stats/achievement giving (2011-04-21)  ++* | 212ec7f33 - Reduced console spam on disconnect/kick. (2011-04-21)  ++* | 4d78c45d8 - Made reload support allow-flight. (2011-04-21)  ++|/ ++* 4ae695a17 - Fixed the fix of Creeper.setPowered (2011-04-21)  ++* f1b40ed4e - Fixed creeper.setPowered (2011-04-21)  ++* 0586e0498 - Implemented LIGHTNING damage (2011-04-21)  ++* d5ee48a0c - Implemented Weather and WeatherStorm (2011-04-21)  ++* 1a68a2aaf - Implemented Creeper.is/setPowered (2011-04-21)  ++* 7c455380a - Java compat (2011-04-21)  ++* a6c8a36dc - Update for 1.5_02. (2011-04-20)  ++* 2fd3f8d29 - Reapplying changes lost with our new system in CraftInventory and CraftInventoryPlayer. (2011-04-21)  ++* ddfa284be - Oops don't break the pom.xml (2011-04-20)  ++* 483a878b8 - Update for 1.4_00_01 -- if you bypassed Bukkit, you will most likely break. (2011-04-20)  ++* ac9f29744 - Don't want the scheduler taking invalid arguments as well. (2011-04-18)  ++* a450dcbb8 - Fixed CraftScheduler to catch exceptions thrown by tasks, rather than crash the server. (2011-04-18)  ++* 0048b22e4 - Fixed another issue involving invalid player positions or movement. (2011-04-19)  ++* 5e154b223 - Fixed name display in log messages for invalid yaw/pitch check. (2011-04-19)  ++* 8aa376fc2 - Added pre-login event for catching logins right after name verification has completed. This happens in a different thread from the server (and thus can also block). (2011-04-16)  ++* dc6c906e1 - The @Override annotation should only be used when overriding a method. Not when implementing an interface. (2011-04-14)  ++* 2c1f336e9 - Fixed an oversight allowing players to set invalid positions. (2011-04-13)  ++* f34f41a47 - Fixed the NaN check in Entity.java (2011-04-13)  ++* 70eb283bd - Removed redundant check due to merging the ifs. Ooops. (2011-04-12)  ++* 534d54600 - Fixed a crash involving invalid positions. (2011-04-12)  ++* 7baf5fa48 - Made fauxSleeping persist on death and cross-world teleport. (2011-04-11)  ++* 8de85b8af - Fixed potential NPE with bed leave event. (2011-04-11)  ++* 86c467cb5 - Fixin' the problem of AFK people not in bed. (2011-04-11)  ++* 2685de187 - Made what should be the last change missed in translation that might cause chunk issues. (2011-04-07)  ++* 62e10c774 - And Bukkit only provide avaje.ebean, oops :D (2011-04-08)  ++* 13e31d11c - Prevent maven shade-duplication spam where not needed (2011-04-08)  ++* 27d3396a3 - Added bed events and methods. (2011-04-07)  ++* e2480e134 - Fixed firstEmpty() by making it search for the first null instead of Material.AIR. (2011-04-07)  ++* 4525d1684 - Prevent nasty connection errors from hitting the console. (2011-04-05)  ++* c99dc2391 - Fix for invalid float values too (2011-04-07)  ++* 270310a3a - Made another change that was missed in translation that might cause chunk issues. This should address one of the chunk issues experienced when teleporting. (2011-04-06)  ++* 13218f55e - Fixed a crash in pitch/yaw calculation, probably a big improvement performance too (but then maybe not :D) (2011-04-07)  ++* 3c9944237 - Fixed Compile error (2011-04-06)  ++* e1acd683b - Fixed some NPE issues caused by previous commit (2011-04-06)  ++* 2c1f57e20 - Fixed stupidity in CraftInventory return types (2011-04-06)  ++* 92e3957a0 - getContents now returns null for items whose underlying item is null (2011-04-06)  ++* 8385b1436 - Allows eggs support with Slimes, Wolves and Monsters (2011-04-05)  ++* 8f461f5bb - Restored .gitignore (2011-04-05)  ++* 27c757172 - Added prerequisite org.avaje.ebean 2.7.3 to pom.xml (2011-04-05)  ++* 9849076db - Made changes that were missed in translation that might cause chunk issues. (2011-04-04)  ++* 7a99fd732 - added some API for entities (2011-04-04)  ++* d1e6408ea - Changed PlayerQuit to allow last minute modifications to player state. (2011-04-03)  ++* 0f3f3c552 - Added player.saveData and player.loadData. (2011-04-03)  ++* 5a0426205 - Prevent junit:junit from being packaged as its not needed to run (2011-04-03)  ++* 083e3ebd6 - Base digging/blockbreaks on actual time rather than the servers tickrate. (2011-04-03)  ++* 121bcd5ad - Added the ability to set the quit message (2011-04-02)  ++* c84d51f45 - Fix chunk.getEntities (2011-04-02)  ++* 5247bcba6 - Implemented entity.getNearbyEntities() (2011-03-27)  ++* a0b2a26c3 - implementation of Entity.isDead (2011-04-02)  ++* adb13029b - Forces clients to update to the new time immediately when setTime or setFullTime is called. (2011-04-02)  ++* 39972530f - Added VEHICLE_DESTROY event (2011-03-16)  ++* 325f4e0c2 - Implemented the new SpawnChangeEvent in CraftWorld.setSpawnLocation() (2011-03-29)  ++* d5096a019 - Changed default database location to {NAME}.db instead of database.db (2011-04-01)  ++* 12b2d5ee1 - Added mysql dep (2011-04-01)  ++* 8b2543398 - Implemented ebeans (2011-03-31)  ++* 160b54c96 - Made Server a singleton (2011-03-30)  ++* c16ba1f94 - Fix Entity.setVelocity (2011-04-01)  ++* 09cfbfbf7 - Fix world.getFullTime() (2011-04-01)  ++* c0a78fa6c - Exempt players from calling CreatureSpawn (2011-04-01)  ++* 7eeb0d8f4 - Fix coordinates on SIGN_CHANGE (2011-04-01)  ++* a3a1436df - Updated packet-filters (2011-04-01)  ++* eb422e4ad - Capture errors in plugins onLoad (2011-03-31)  ++* baa8c53be - Implemented Wolf (2011-03-31)  ++* 87c36febe - Updated to Minecraft version 1.4 (2011-03-31)  ++* 0635f7c1b - CreatureSpawnEvent: Fix forgotten inheritance with CreatureType (2011-03-30)  ++* e9cc4bbb0 - world.spawnCreature cast fix (2011-03-30)  ++* c69eac3f3 - Add MONSTER to CreatureSpawnEvent (2011-03-29)  ++* ec74fe8e3 - Move passenger-handling to CraftEntity (2011-03-29)  ++* 195423cd0 - Allow GIANTS to spawn from Eggs (2011-03-29)  ++* 33f7af519 - Changed the Kick result from KICK_BANNED to KICK_WHITELIST because not being on the whitelist doesn't mean your banned. (2011-03-20)  ++* a31f37262 - RegisterInterface reload bug fix (2011-03-07)  ++* 2ac43ce22 - Ctrl+C saves world before stopping (2011-03-29)  ++* b37dd48ae - Moved WORLD_LOAD event to after world is actually loaded (2011-03-26)  ++* ee815b7e4 - Fixed trickle exploit (2011-03-27)  ++* c47db7092 - Line endings, damnit! (2011-03-27)  ++* f1ffeb256 - Limit server to only send the packets it creates and only accept the packets the client creates (2011-03-27)  ++* ce5ee0996 - Updated for the changes done in Bukkit (2011-03-27)  ++* 84054ec68 - Fix some wrong event creations after previous change (2011-03-26)  ++* 8dc7b5574 - Reset 'stance' to something valid after receiving a broken one. Hopefully stops the server from falling over. (2011-03-26)  ++* e24b10dfd - Updated for the cleanups done in Bukkit (2011-03-26)  ++* 47497aa3f - Implement Sheep.get/setSheared. (2011-03-18)  ++* 9f30c9f8f - Implement Slime.set/getSize() (2011-03-18)  ++* cd50683f7 - World.spawnCreature now returns LivingEntity instead of Creature, to allow Ghasts and Slimes to be spawned using the command. (2011-03-19)  ++* abf7f8581 - Added ability to disable the join/leave notices by setting the message to null in the event. The join message is moved to the onJoinEvent rather than during login (2011-03-26)  ++* 8e53077ef - Switched biome coords from chunk based to block based (2011-03-26)  ++* 1cbed230d - Add LEFT_CLICK_BLOCK's face (2011-03-26)  ++* 49955d5a1 - Added Server.getServerId() for ID purposes. (2011-03-26)  ++* 5ee2d6790 - Updated README.md (2011-03-25)  ++* 1eb2f75f5 - Copy displayname when cross-world teleporting (2011-03-25)  ++* 9162a654c - Implement player.getCompassTarget (2011-03-25)  ++* 6fc4d9dcf - Fixed CraftWorld.getSpawnLocation() not return the exact spawn location. (2011-03-25)  ++* 95c08f854 - Fix inability to use items under certain circumstances (2011-03-25)  ++* f330025f1 - Fixed unable to eat/throw (2011-03-24)  ++* 92518f4fc - Stop GIANT discrimination (2011-03-24)  ++* ce714ab32 - Fix CreatureType of CreatureSpawn event (2011-03-24)  ++* 93fff2d5f - Prevent double CraftWorld for the same world (2011-03-24)  ++* 69d5132df - Reset blocks faster clientside (2011-03-24)  ++* d6c3fe23e - Minor logic change and small cleanups (2011-03-24)  ++* 748b71b3c - Fix accidental Double.MAX_VALUE coordinates in initial PlayerMoveEvent (2011-03-24)  ++* 312934886 - Implementation of LivingEntity maximumNoDamageTicks, noDamageTicks, lastDamage (2011-03-24)  ++* 267e74521 - Fix 'double RIGHT_CLICK' event on right-clicking a block with a non-interactive object (2011-03-24)  ++* 0b05cbb99 - Updated SoftMap to be concurrent. (2011-03-10)  ++* 946460272 - Update to PlayerMoveEvent. The From field is set the value of the previous To Field, and, Pitch or Yaw changes of more then 10 degrees will trigger the event (2011-03-07)  ++* fdcf1c3c3 - Now also handle entities spawning on a loading a world. (Redacted by Grum) (2011-03-20)  ++* 15baff855 - Fix the "Ghost minecart" issue. (2011-03-09)  ++* 69cbe7d22 - Allow Vehicle Motion to save properly (2011-03-21)  ++* e8e758144 - Small cleanup for the last commit (2011-03-23)  ++* 376ac51ce - Fixed the PLAYER_TELEPORT event so event.getTo().getWorld() is correct. (#451) (2011-03-22)  ++* d08ee1735 - Fix doors not updating after opening has been denied (2011-03-23)  ++* ca1c9ef2e - Minor cleanups (2011-03-23)  ++* 49043a8af - Re-Implement BlockDamage (2011-03-23)  ++* f33de669f - Major overhaul implementing PLAYER_INTERACT, removing PLAYER_ITEM, BLOCK_INTERACT, BLOCK_RIGHT_CLICK (2011-03-23)  ++* bb9558ade - Implement Bucket events (2011-03-16)  ++* 324efa822 - Fix BlockPlace (2011-03-21)  ++* 0d2dc3902 - Fix BlockCanBuild (2011-03-20)  ++* 11590f49f - Redstone torch fix (2011-03-16)  ++* 437025a17 - Fixing event names (2011-03-18)  ++* 4c420e6aa - BLOCK_PLACE supports pie, diode and reed (2011-03-18)  ++* 778079677 - Fix BLOCK_PLACED when placing on snow/step (2011-03-18)  ++* 114401336 - Hacky solution to expose ip. Will fix properly later if I care to give a **** (2011-03-18)  ++* f28f3a6a9 - BlockInteract fixed for pressure plates (2011-03-16)  ++* 2ae5b98d1 - Added missing EntitySquid, you can now prevent them from spawning! (2011-03-17)  ++* 41752f401 - TNT now gives its entity to the damage handler (2011-03-17)  ++* b6f87bb23 - Fireballs now give their entity to the damage handler (2011-03-17)  ++* d73245735 - Implement DamageType.VOID (2011-03-17)  ++* 28c9439f9 - Fixes minecart type reporting for VEHICLE_CREATE. (2011-03-02)  ++* 6ca1f24ee - Adds an onLoad method to Plugin. The onLoad method is called for all plugins before the onEnable calls (2011-03-12)  ++* 4a2bc3299 - Fixed setTypeIdAndData sending client updates when not using physics (2011-03-12)  ++* 7242f21a3 - This should fix the chunk ghosting bug (2011-03-11)  ++* 9869ace14 - fixed redstone torches (2011-03-14)  ++* 672b06727 - Also transfer the displayName when dying (2011-03-13)  ++* 6043797ce - Fix getDisplayName getting lost when getBukkitEntity is called (2011-03-13)  ++* 1be1b5ab4 - Removed CraftBukkit - Removed line from kick fix to help port process (2011-03-12)  ++* 07c98ea2a - Added methods to support RemoteBukkit This means all commands even "default" server commands work within the command structure returning output to the command sender (2011-03-12)  ++* ca3d0512f - Blocks now return power for sources other than redstone dust (2011-03-12)  ++* 1db4eab7e - TextWrapper now wraps text at the proper width and also prevent splitting unless it is needed (2011-03-12)  ++* 7729c8b51 - Sourcefiles shouldn't be executable (2011-03-12)  ++* 22baecaf7 - Clean code a bit (2011-03-12)  ++* d7ab27710 - Kill stupid encoding warnings finally (2011-03-12)  ++* 49a3d5bfb - Added Player.sendRawMessage(). (2011-03-12)  ++* 0ac5c7f4c - fixed diodes (2011-03-12)  ++* 79ccc5320 - more NPE fixes regarding redstone (2011-03-11)  ++* 5c4f1d75b - stupid ChunkPosition's are relative to the chunk (2011-03-11)  ++* 078f48c0f - Code cleanup, fixed doors, chunk entity fetching (2011-03-11)  ++* 786fdfb9f - NPE fix in redstone (2011-03-11)  ++* c06f3e0d7 - properly implement locks (2011-03-10)  ++* c0b3e80d1 - Fixing grammar and CraftBukkit comment. (2011-03-10)  ++* 803e67d55 - Redstone fixes (2011-03-07)  ++* 9428907e6 - Add redstone events to common blocks (2011-03-07)  ++* 39acc5817 - Additional hooks for chunks (2011-03-07)  ++* df02c501a - Additional redstone hooks (2011-03-07)  ++* 719038fce - Add non updating type/data sets (2011-03-07)  ++* 67cf10656 - Add locks to Hashset (2011-03-07)  ++* 54a05f3ce - Attempt to fix double disconnects (2011-03-10)  ++* 131a2c769 - Slight tweak to EntityPlayer to add toString for name+position for error tracking (2011-03-10)  ++* f040900d3 - Attempt to fix console crash (2011-03-09)  ++* 0df1d1a10 - Changed block cache to soft references (should help a lot with memory usage) (2011-03-09)  ++* 507e2be8e - Fixed LOGIN packet issue (2011-03-09)  ++* 9aa582885 - Fixed exploit allowing people to place blocks anywhere (2011-03-09)  ++* b819ffe8a - Implemented LivingEntity.getEyeLocation() (2011-03-10)  ++* 454da93a0 - Record invalid ItemInHandIndex packet (2011-03-09)  ++* f056fad76 - Fixed crash with bad holding slot (2011-03-09)  ++* 63f0de512 - Sign exploit fix is spammy no more. Probably. (2011-03-09)  ++* c607d212d - (Probably) fixed the sign exploit (2011-03-08)  ++* cdcb94753 - Fixed the fix of the inventory dupe bug (2011-03-08)  ++* 7de909103 - Fixed an exploit allowing item duplication upon death (2011-03-08)  ++* e0d8c1d7a - Fixed a minecraft exploit allowing anyone to pick their username (2011-03-08)  ++* e8e74992c - Purged deprecated MobType and MobSpawner (2011-03-07)  ++* 6a99d8c41 - Implemented LivingEntity.damage (2011-03-07)  ++* 03fae0a2f - Fixed BLOCK_CANBUILD never throwing (2011-03-07)  ++* 03a5bbc61 - Regenerate and refresh chunk methods (2011-03-02)  ++* 528b9b2e0 - Fixed isChunkInUse() (2011-03-02)  ++* 44c25340d - Velocity now sends updates to players (2011-03-05)  ++* 5636eea87 - Updated CraftServer to lowercase r in registerInterface method.. (2011-03-05)  ++* 9a64d7ec1 - Implemented Entity.get/setMomentum (2011-03-04)  ++* 770bb9e3b - Removed Block.getRawData (2011-03-04)  ++* 332b0c2ca - BlockFlowing NPE fix. (2011-03-02)  ++* 34458efd8 - Synchronized EntityTracking (2011-03-02)  ++* 9a264ed66 - Implements World.save and Server.savePlayers() (2011-02-25)  ++* 1505b4bf3 - RedstoneChange event thrown then the redstone *changes* not when it stays the same :D (2011-03-02)  ++* 9d9ad6bd1 - Java 1.5 compat. (2011-03-02)  ++* 87dc04b75 - limit chunk unloading to 50 per tick (2011-03-02)  ++* 9832ce06f - Synchronized and moved Hash classes (2011-03-01)  ++* 13fb0e07c - Ignore entity movement packets if distance == 0 (2011-03-01)  ++* 3dd60c168 - Fixed chat (2011-03-01)  ++* f54469f31 - Let's handle (bwhaha) the Craft* entities a bit better. (2011-03-01)  ++* e6583c0d4 - Added method to set spawn location (2011-02-28)  ++* d142fabfc - Sped up teleporting even more, + fixed isSneaking (2011-02-28)  ++* 5f20de34a - - fix VEHICLE_COLLISION_BLOCK event firing (2011-02-25)  ++* df2c0e230 - implement World.getPlayers (2011-02-24)  ++* d1e3d0103 - - add BedBlock - implement BLOCK_INTERACT for beds (2011-02-26)  ++* 016e50e6f - Hacky fix against block invulnerability (2011-02-28)  ++* 38c2103ff - Spiral teleporting! Wheeeee! (2011-02-28)  ++* 76d8016b3 - BUGFIX: Damage events should be using getDamage() to set damage. (2011-02-28)  ++* 41fea9b40 - Removing debug statements. (2011-02-27)  ++* ec0dde071 - Implemented Server.getPluginCommand (2011-02-28)  ++* b396707cb - Catch errors loading plugins (2011-02-27)  ++* cb2ff3c8b - Implemented chat recipients (2011-02-26)  ++* bdc8c8404 - Removed onCommand (2011-02-26)  ++* d7114a4f6 - Fixed empty console! Oops! (2011-02-26)  ++* 07b86b123 - Added command line option 'date-format' to control how dates are printed to console (not to log) (2011-02-26)  ++* bb8d9fbe9 - More PLAYER_ITEM blockFace fixes of static fails; (1!=l) -- Thanks Scient for pointing it out (2011-02-25)  ++* 88dea6189 - Prevent movement event to be spammed for moving less than a pixel. (2011-02-25)  ++* 78af4f97f - Startup time now reported in seconds, nanoseconds, Really? O.o (2011-02-25)  ++* 61339bcb2 - Properly handle PLAYER_ITEM and its clickedFace. (2011-02-25)  ++* 666c968da - Fixed 'sign'-BlockFace (1!=l). (2011-02-25)  ++* 43e36b5bd - All worlds should be saved on save-all. Player data should be saved when a save occurs. (2011-02-25)  ++* 685d4dbb3 - Added ">" to input command line, separated it from output buffer properly (2011-02-25)  ++* 2419e0b8a - Seal. Ooohh oooh. (2011-02-25)  ++* 57338bee5 - Much better console interaction. History, no more losing the command, colours, inline editing, etc. Shorter log output to console (but not to file). (2011-02-25)  ++* 659fa9eaf - Temporary fix for teleportation (2011-02-25)  ++* e53fd1367 - possible fix for block breaking bug (2011-02-24)  ++* 13f55ce0c - Fixed logging back in on non-default worlds (Yes really) (2011-02-24)  ++* c97fa40d2 - Fixed ENTITY_DAMAGE involving slimes (per DHowet) (2011-02-24)  ++* 51be9e77c - Attempt to convert multiworld worlds... world. (2011-02-24)  ++* 5d3b8de87 - Fixed some debug (2011-02-24)  ++* 280880d16 - synchronize hashmap lookups (2011-02-23)  ++* edb0debd1 - attempt to track down some bugs (2011-02-23)  ++* 2db976c84 - Corrected Exceptions text when loading and saving ops (2011-02-24)  ++* 92cbb2fc2 - Fixed CraftItem NPEs (2011-02-23)  ++* 09aa37fe4 - Generic code cleanup (2011-02-23)  ++* 332d9c4f1 - BlockStationary fix (2011-02-23)  ++* bfca34cad - ConsoleCommandSender no longer has a default constructor, use ConsoleCommandSender(server). Added entity.getServer and updated the version number of mc (2011-02-23)  ++* 6655b8903 - possible fix for levers, ladders, and buttons (2011-02-23)  ++* f622db3ea - Fixed bad cast in EntityItem (2011-02-23)  ++* b8023ac3f - Fix for isOp (2011-02-23)  ++* f759e0b60 - Update to Minecraft 1.3 beta (2011-02-23)  ++* a124bfdab - Fix PlayerRespawnEvent for multi-worlds (2011-02-22)  ++* 96435cfc7 - refactor Items (2011-02-21)  ++* f659231e3 - N.M.S cleanup in preparation for update (2011-02-21)  ++* 67cf64601 - Merge branch 'master' of github.com:Bukkit/CraftBukkit (2011-02-21)  ++|\ ++| * 30d1a5d3f - returning if a thread is not alive should happen before any changes to the list of workers, hence the return statement should be in the synchronized block. (2011-02-21)  ++| * 6269c1e63 - implementation of isQueued() (2011-02-21)  ++| * 6335a5af7 - Modify URI to repo.bukkit.org (2011-02-21)  ++| * bf9a55049 - Second part of NPE and arctan update :3 (2011-02-20)  ++| * cec04a736 - Added null pointer check and switched to a faster arctan method (2011-02-20)  ++| * 4f249b585 - Fix encoding in net.minecraft.server files. (2011-02-19)  ++| * 5121ebb65 - Fixed issue with color markers in messages sent to the client. (2011-02-20)  ++| * 09026095b - Minor cleaning of code (2011-02-20)  ++| * 6e3ee3133 - Prevent Blocks from getting lost when a chunk reloads (2011-02-20)  ++| * ca4076077 - fixed buttons, plates added yield to explosion added event for chunk unloading (2011-02-19)  ++| * d4b67c554 - Lowered the priority of the old command handler event. A number of plugins were using this event incorrectly. A new event, the command preprocesser event, has replaced the previous function of the original command event. (2011-02-19)  ++| * acd034445 - Added Entity.remove() which marks an entity for removal. (2011-02-18)  ++| * ec0eec586 - Added slime as a detected entity. (2011-02-18)  ++* | a59149c20 - Make all new loggers default to the same logging as "Minecraft" (to console + file, same format) (2011-02-20)  ++|/ ++* 264b5c331 - Redirect System.out and System.err to a Logger (2011-02-20)  ++* a6b396567 - Fixed CLI arguments (2011-02-19)  ++* b160913c4 - Magic - updated gitdescriber (2011-02-19)  ++* bddceeaf5 - When deprecating, the alternative should be provided. (2011-02-19)  ++* 41fe21191 - Added target block ray trace functionality. (2011-02-13)  ++* e97889e80 - Added setFireTicks(), getFireTicks() and getMaxFireTicks(). (2011-02-14)  ++* 7b6713b91 - Added pull request conventions that should be followed if you want your pull request accepted. (2011-02-18)  ++* 7fe0aa746 - Implemented a whole buncha Location overrides in CraftWorld (2011-02-18)  ++* a5ca3e1c1 - Don't kick players if a command failed from an exception (2011-02-18)  ++* e544fb71c - Changed hatchingType to MobType from CreatureType as refactoring (and so plugin breaking) will take place in a week. (2011-02-17)  ++* da6ce2d80 - Implementation of spawnCreature(Location, CreatureType) (2011-02-17)  ++* 0703f4f45 - Updated to use CreatureType and CreatureSpawner (2011-02-17)  ++* 5f940cf76 - Added Player.chat(). (2011-02-16)  ++* 03c118f34 - Added CREATURE_SPAWN event per ss2man44 (2011-02-16)  ++* dc4594616 - implementation of isCurrentlyRunning(int taskId); Burrows down to the worker thread assigned to this task, and returns its alive status. If no such thread exists, then the task is not running! (2011-02-14)  ++* cf6c435c6 - That messed up Jenkins (2011-02-15)  ++* 33bcae40c - Further POM haxx. Now reads git description during build process. (2011-02-15)  ++* c806adb06 - Add repository info to POM (2011-02-15)  ++* 973d61c41 - Allows calling of functions in the main thread (2011-02-12)  ++* 4a4b67cc4 - Implementation of BlockBreakEvent (2011-02-01)  ++* 9715e7785 - Fixes a deadlock issue in CraftScheduler (2011-02-13)  ++* 40f7986a1 - Make the spawning listen to the server spawn-settings (2011-02-13)  ++* f789c9e74 - Replace a net.minecraft accessor with a public attr. (2011-02-12)  ++* 5aa95ee46 - Added MaxSpeed methods to minecarts. Added MaxSpeed methods to boats. Added SlowWhenEmpty, FlyingMod, and DerailedMod methods to minecarts. (2011-02-12)  ++* be9a26424 - Fixed bug in event when taking fall damage. Now uses event damage. (2011-02-12)  ++* e2899b9dd - Added EXPLOSION_PRIMED event. (2011-02-03)  ++* 348e6c75c - Added SIGN_CHANGE event. (2011-02-10)  ++* c097fd9ac - Added implementation of Colorable to CraftSheep (2011-02-12)  ++* 09c6389b3 - Adding PLAYER_PICKUP_ITEM event hook (2011-02-11)  ++* 82931a601 - Adding PLAYER_DROP_ITEM event hook (2011-02-11)  ++* 71f97ffc5 - Send a BlockRedstoneEvent if powered redstone is destroyed (2011-02-09)  ++* 4b6c63365 - Removed debug and fixed //craftbukkit comments from 0239b76f611597f8486a (2011-02-11)  ++* c0b940d61 - more chunk fixes (2011-02-11)  ++* 41e136b88 - fix in LongHashset.java (2011-02-10)  ++* 89232b826 - fixes for chunks (2011-02-10)  ++* 524f966ef - Merge branch 'master' of https://github.com/Bukkit/CraftBukkit (2011-02-10)  ++|\ ++| * 1d49e5a4b - Fixed chunk unloading (2011-02-10)  ++| * a52f5ef52 - Threadsafe World.c(int i, int j) (2011-02-10)  ++| * 96794e15d - Added spawn-protection property to server.properties (2011-02-10)  ++| * 1da852265 - Added spawn-protection property to server.properties (2011-02-10)  ++| * fbe54b05f - Added spawn-protection property to server.properties (2011-02-10)  ++| * 814c9d444 - Fixed LongHashtable.values() (2011-02-09)  ++| * 18efbd82b - Worlds are now in the order they are loaded, with [0] being default (2011-02-09)  ++| * 6e58053eb - Probably fixed getLoadedChunks() (2011-02-09)  ++| * 7401ee54a - Added Creature.getTarget (2011-02-09)  ++| * e3011157b - Added Creature.setTarget per jlogsdon (2011-02-03)  ++| * 798834536 - Added call to new event on world save (at stop and force save). (Per EyvindRM) (2011-02-09)  ++| * 0592b334f - Terrain generation bugfix (will also be in Mojang 1.3) (2011-02-09)  ++* | 03be05790 - added method to force an inventory update (2011-02-08)  ++|/ ++* 43ef3b303 - fixed explosions (2011-02-08)  ++* 61b79e8f9 - inventory fixes (2011-02-08)  ++* b76bc9cfb - Unseal net.bukkit Fix fail Prepare to seal. THIS IS ONE WEEK'S NOTICE. (2011-02-08)  ++* b9a37399a - changed fence behaviour (2011-02-08)  ++* 2d2f54cf0 - JAR is now sealed! No com.bukkit, org.bukkit or net.bukkit packaged plugins will load. (2011-02-08)  ++* 6ad4ca2a4 - Implemented Sneak event (2011-01-25)  ++* 1a983aceb - Just cleaning some commits. Don't mind me. (2011-02-08)  ++* 3526a66fb - Added loadChunk, unloadChunk and unloadChunkRequest. (2011-02-08)  ++* 6b9b59db4 - Added getContents() to TileEntityDispenser to be compatible with InventoryChanged TileEntityDispenser to be built against latest mc-dev Merge branch 'merge-fork' of https://github.com/Hidendra/CraftBukkit (2011-02-08)  ++* a9a0ad627 - Adding Craftbukkit comment-tags. (2011-02-07)  ++* f20af7b12 - Make Explosion remember whether it was canceled so that WorldServer can avoid sending unneeded explode packets. (2011-02-07)  ++* 499d44763 - Finalizing the breakage! (2011-02-08)  ++* 7d1849567 - Implemented WORLD_LOADED (2011-02-08)  ++* bcf9b5ca1 - Oops! This matters. (2011-02-08)  ++* 6751433a8 - Implemented new Server methods (getWorld + changes to createWorld) (2011-02-08)  ++* 50e42496e - @Override interface implementation is 1.6 exclusively (2011-02-07)  ++* 7b840489a - Oopsie on compile issue (2011-02-07)  ++* 2497a6104 - Moved changes we did to WorldServer back down to World. (2011-02-07)  ++* 421d1c1c1 - Fixing missing mandatory comments. (2011-02-07)  ++* 8acebcd7d - Fixed Chunk cache in world (2011-02-07)  ++* 362958086 - Chunk fetching improvements (2011-02-07)  ++* 172db788b - I'm quite aware that I fail at merging. (2011-02-07)  ++* 919023fe5 - CraftWorld.toString has name (2011-02-07)  ++* 7a71347cd - Fixed logging into the correct world (2011-02-07)  ++* 3f8d9c0e1 - Fixed inventory transition (2011-02-07)  ++* e9b1607fd - Fixed entity updating (2011-02-06)  ++* 7bdc19063 - Possibly fixed block/chunk leaking (2011-02-06)  ++* 8b14c72a8 - Changes to reflect new Environment enum (2011-02-06)  ++* 4e6f4e303 - NPE (2011-02-06)  ++* dcabbda57 - Fixed invisibility after cross-world teleportation (2011-02-06)  ++* 590b3874a - Fixed various multiworld teleporting issues (2011-02-06)  ++* 4c9f1a227 - Fixed NPE after traveling to another world (2011-02-05)  ++* 7e81245ca - Probably definitely fixed mob leaking (2011-02-05)  ++* ac899e51c - Possibly fixed world leaks (mobs crossing into other worlds) (2011-02-05)  ++* 550ad6f9d - Proper 'otherworld' chunkloading (2011-02-05)  ++* b229931ce - Attempt to clear loaded chunks during multiworld teleportation (2011-02-05)  ++* bf304ddc4 - Fixed player teleportation (2011-02-05)  ++* 2be5181b0 - Added internal MC support for multiple worlds (2011-02-05)  ++* 9e7991ab5 - Scheduler (2011-02-02)  ++* b64667cde - Remove deprecated [gs]etTime calls (2011-02-06)  ++* 002b5ebef - Added PlayerKick (setReason, setLeaveMessage, setCancelled) and PlayerRespawn (setLocation) (2011-02-04)  ++* 228b5e7cc - Added VEHICLE_COLLISION_ENTITY which vanished after porting the code (2011-02-06)  ++* 4026cd656 - Added CraftBlock.getVector(). (2011-02-05)  ++* 4ede62219 - Updated README.md (2011-02-05)  ++* 101d01ef6 - getLoadedChunks method (2011-02-04)  ++* 73f0347eb - Modified .gitignore to remove Mac filesystem dust (/.DS_Store) (2011-01-23)  ++* 767c15369 - Added version output to CraftBukkit that displays on startup. (2011-02-05)  ++* 8932430ae - Addded: int getMaxPlayers() (2011-02-04)  ++* 10f4f33ed - fixed addItem hopefully (2011-02-04)  ++* d59a2332f - Merge branch 'master' of https://github.com/Bukkit/CraftBukkit (2011-02-05)  ++|\ ++| * e79139d3f - Save player data on save-all. (2011-02-04)  ++* | 2c798a9e9 - Fix for multi-stack adds (2011-02-05)  ++|/ ++* be10e5423 - Fixed NPE on missing kick-reason - http://redmine.bukkit.org/issues/359 (2011-02-04)  ++* 059d23b4c - Half-step placement bug fix, all credits to Brettflan (2011-02-03)  ++* 3a19f9e42 - Merge branch 'master' of github.com:Bukkit/CraftBukkit (2011-02-03)  ++|\ ++| * 058ac3430 - Added brief coding conventions - these may not be complete. (2011-02-03)  ++* | 2f2bc2891 - Fixes placement cancellation of single-step blocks, such as in protected areas like the spawn area. The first line edited fixes it so other blocks placed on a single-step block aren't considered (only single-step blocks), and so that they're only considered when placed on the top face of the existing single-step block. The second section of changed code keeps the final world.setTypeIdAndData() call from being incorrectly applied if it was indeed a single-block placed on an existing single-block. (2011-02-03)  ++|/ ++* dde3f5b47 - Removed tab on line 97. (2011-02-03)  ++* e77b080d8 - Implemented Inventory.contains with a minimum amount of item required. As per feature request #187 (2011-01-24)  ++* c1c61b73c - Totally useless commit to satisfy lukegb's outrageous demands (2011-02-02)  ++* 04be2b9b3 - Generic cleanup/reformat. (2011-02-02)  ++* 001a45804 - Clean vehicle code. (2011-02-01)  ++* 1dac92a76 - Update chunk handling. (2011-02-01)  ++* 21b8ef443 - Added CraftNoteBlock.play (2011-02-01)  ++* e0416ca7f - Added CraftDispenser.dispense() (2011-02-01)  ++* d228e0c31 - Fixed the onDisable() event of plugins again after it was overwritten some days ago. (2011-02-02)  ++* 661f209b7 - Fixed dispenser (2011-02-01)  ++* f8cdbe1d8 - Fixed tabs (2011-02-01)  ++* 3a3a0e616 - Introduce better versioning system, mark 2. (2011-02-01)  ++* eea070ed8 - Dispensers now obey BLOCK_INTERACT (2011-01-27)  ++* 5c467e941 - Actually implement the spiral stuff now, oops (2011-02-01)  ++* a3fbada1e - Chunkloading around player now happens in a spiral! No more floating over the void waiting for the floor to load! (2011-02-01)  ++* 21b8c1688 - Commands can be sent from the console (WIP, needs improvements) (2011-02-01)  ++* 657913fae - Dinner time! (2011-02-01)  ++* 923ab54e3 - Don't hate me :( (2011-02-01)  ++* 743ff05b2 - Added setItemStack(ItemStack stack) to CraftItemDrop (2011-02-01)  ++* 24f140d1f - Implemented VEHICLE_UPDATE (2011-02-01)  ++* 2b0ab5a13 - Fixed VEHICLE_MOVE (2011-02-01)  ++* 408ed37a0 - Implemented VEHICLE_EXIT (2011-02-01)  ++* 6f13c9dc5 - Implemented VEHICLE_COLLISION_BLOCK (2011-01-31)  ++* 82febb388 - ENTITY_DAMAGED now knows hot from wet (2011-01-31)  ++* c2fdd5cad - Implemented PLAYER_ITEM_HELD (2011-01-31)  ++* 7369ef730 - Implemented getRemainingAir/setRemainingAir/getMaximumAir/setMaximumAir on LivingEntity (2011-01-31)  ++* c75e53935 - Renamed ItemStack.set/getDamage to durability, which is now a short (2011-01-31)  ++* 0dd9e4873 - Fixed BLOCK_DAMAGED (2011-01-31)  ++* 1c9e7f9ae - toString! (2011-01-30)  ++* 639d3e3f9 - Added support for different tree generation types and a callback. (2011-01-30)  ++* 1bc9c5423 - Implemented ENTITY_DEATH for players (2011-01-30)  ++* 35aac1223 - Re-add BlockBurnEvent (2011-01-30)  ++* 914688e2a - Implemented ENTITY_DEATH for monsters and animals (2011-01-30)  ++* 0bc5bd54b - Fixed missing PLAYER_JOIN event call (2011-01-30)  ++* 6c60b54fd - Optimized blockCache, now only stores blocks asked for (2011-01-30)  ++* da00e2e3a - Fixed rogue chmods (2011-01-30)  ++* b2a0c5a2a - Reworked getEntity; Hi instanceof, bay 16 classes (2011-01-30)  ++* 75ba9a0f2 - Fixed initialization of CraftServer (2011-01-30)  ++* 0582ac769 - Updated pom to reference 'second patched version' of the server. (2011-01-30)  ++* df6904732 - Port to new mc-dev format. (2011-01-29)  ++* d0cd8c6cc - Fixed drowning damage event. (2011-01-30)  ++* d92376e10 - Merge branch 'master' of github.com:Bukkit/CraftBukkit (2011-01-29)  ++|\ ++| * 8fdd45ab4 - Fixed an issue where fire spread cancellation changed the behavior of natural fire. (2011-01-28)  ++| * 0daa2420d - Fixed fire spread hook providing the wrong block. (2011-01-28)  ++| * 61c37bd36 - Added Block.isBlockPowered(), block.isBlockIndirectlyPowered(). (2011-01-28)  ++| * b6b5a1ef7 - server.reload() now reloads plugins (2011-01-28)  ++| * c2d9af58f - Implemented player.performCommand(String) (2011-01-28)  ++| * cab61f169 - onDisable on stop - stephank (2011-01-27)  ++| * 105a14d6d - You don't override for interfaces! (2011-01-27)  ++| * f11e575a7 - BlockBurnEvent (2011-01-26)  ++| * 7a898bdba - Added methods to get a list of entities to World. This replies on net.minecraft.server.Entity.bukkitEntity not being null (otherwise it won't be returned). (2011-01-26)  ++| * c07e32c1d - EntityTargetEvent (2011-01-26)  ++* | 4301a76b3 - Updated commands to use CommandSender instead of Player (2011-01-29)  ++|/ ++* 0ba870434 - Fixed chunk corruption with mobspawners (2011-01-25)  ++* 02a1c2474 - added load chunk method (2011-01-21)  ++* 3477a8699 - Added getBlockReplacedState to BlockPlaceEvent, in case one wants to see what type of block was there previously. (2011-01-24)  ++* 0675ead16 - Added PlayerEggThrowEvent.getEgg(). (2011-01-23)  ++* 78db3d2ec - Added squid as a spawnable type by EntityEgg. (2011-01-23)  ++* 5f997be0b - Fixed painting placement (2011-01-23)  ++* ab3412e87 - removed some potential bugs from some items (2011-01-24)  ++* a809e4e6e - removed all instances of new CraftEntity* where appropriate. Entity.getBukkitEntity() is now used instead. (2011-01-23)  ++* 9cd81ddd6 - Added full tile entity data support for all block types that use it, including chests, dispensers, furnaces, mob spawners, and note blocks. (2011-01-23)  ++* e0b04001a - Fixed placement of blocks with meta-data. (Dyed wool, logs etc) (2011-01-22)  ++* 10f46b5fe - Fix NPE from location incorrectly being implemented in Explosion. (2011-01-22)  ++* 8c91ee9c5 - Reordered calls to fix use before assignment issue (2011-01-21)  ++* d98c8e210 - Revert "Entity's bukkitEntity field now holds a CraftEntity by default." (2011-01-21)  ++* bf9d55d9e - Simple fix for minecart tracks not curving as expected following commit https://github.com/Bukkit/CraftBukkit/commit/baff42c4d38dac382d3b4d06292f73591a591d28 (2011-01-22)  ++* 9c28b2134 - Fixes "?" console command. (2011-01-20)  ++* 3931be421 - Entity's bukkitEntity field now holds a CraftEntity by default. (2011-01-21)  ++* efdf9b8af - Expanded .gitignore with some potential build folders and files. (2011-01-21)  ++* 5555265e9 - Explosion remembers its Location. (2011-01-22)  ++* 2106eeef5 - CraftBlock instance getLocation() method. (2011-01-21)  ++* 1cbde901b - Entity audit. Adds checks for null entities, and adds conformity. (2011-01-21)  ++* 1dad7de4f - Modified POM for better Bamboo integration (2011-01-20)  ++* 0357c8f93 - Added compass setting methods. (2011-01-20)  ++* 62624a079 - Added suffocation damage as an event. (2011-01-20)  ++* 62344b57f - Expanded scope of change comments. (2011-01-20)  ++* d3e8f792e - Added fall damage event. (2011-01-20)  ++* 11de6b91d - Fixes to projectile events to check for null entities. (2011-01-20)  ++* cbebfbd6d - Implemented server reload (2011-01-20)  ++* 45381e17d - Fixed half-step placing (2011-01-20)  ++* 2c5dd11c6 - Cleared up spawn distance calculation. (2011-01-16)  ++* 0e821e60c - Implement getSpawnLocation(). (2011-01-16)  ++* bded4fb31 - Fixed CLI arguments (2011-01-20)  ++* 46e1b54a7 - Fixed blockcache being inaccurate (2011-01-20)  ++* 0284663ae - Address Feature#105:Implement support for PLAYER_ANIMATION hook/event. (2011-01-19)  ++* 55b619a39 - Probable fix for Bug #231. (2011-01-19)  ++* 8bbb0749e - fixes some explosion events to stop accessing null entities. Placed some tags against some spammy events. (2011-01-19)  ++* e93061be4 - Fix up NPE's in EntityMinecart/CraftVehicle and removed a little un-needed code in EntityArrow (2011-01-20)  ++* eabdc7ffa - Fix for NPE with dispenser+arrow bug. (2011-01-20)  ++* bdd3c4dab - Change block ignite in flint and steel to be seperate from item use (2011-01-19)  ++* abb3c5eee - reverted # from server console (2011-01-18)  ++* eace2d0f8 - Further fixes to fire events (2011-01-19)  ++* abc4b35bc - Fix BlockIgniteEvent after someone updated it and missed some stuff. (2011-01-19)  ++* 90c52739c - Fixed getChunkAt and usage. (2011-01-18)  ++* 3143e503f - Fix to slow fire spread hook, to check if a block is on fire before trying to set it on fire. (2011-01-18)  ++* e99980983 - Merge branch 'EntityDamageEvent_bugFixes' into HEAD (2011-01-18)  ++|\ ++| * e275f727d - small change to block event with lava and cactus, to improve readability and consistency (2011-01-18)  ++| * 26a590f03 - fixed imports on all Entities (2011-01-18)  ++| * d7d7a68f9 - fixes to combust event so that it is raised only once on combustion. minor fixes to imports (2011-01-18)  ++| * ddc30dd6e - Fixing some entity damage events (2011-01-18)  ++* | 73cbfcb6b - Fixing some entity damage events (2011-01-18)  ++|/ ++* 8088a329c - Updated plugin commands to allow for aliases and fallback on name collision. (2011-01-18)  ++* 73d6070d8 - Fixed: http://redmine.bukkit.org/issues/204 - fixed armor-slot order. (2011-01-18)  ++* 19e98ffc7 - fixed exact name matching (2011-01-17)  ++* 1b7279b7c - Merge branch 'master' of https://github.com/Bukkit/CraftBukkit (2011-01-17)  ++|\ ++| * 14d412e82 - EntityExplodeEvent commit for craftbukkit. (2011-01-18)  ++* | c20a40a58 - fixed health (2011-01-17)  ++* | 42099e737 - allowed partial name matching (2011-01-17)  ++|/ ++* ca9d52364 - moved built in command namespace, fixed EntityItem (2011-01-17)  ++* c862626c0 - Depreceated getCraftEntity() as it has been superceded by getBukkitEntity() (2011-01-17)  ++* 6a3b096fb - Addition of all Entity classes. Each Entity creates a corresponding instance of a Craft Entity, to be used whenever sending instances to an event handler with getBukkitEntity(). (2011-01-17)  ++* 431f2f62c - New Entity Classes implementing the new Bukkit interfaces. (2011-01-17)  ++* 5209e17e1 - Adding all Entities into CraftBukkit. These are needed to properly allow for determining class type, in accordance with current practice. (2011-01-17)  ++* 5f2c8108b - Updates to all Entities to use getBukkitEntity() any time an event is raised. Similar update to CraftVehicle and CraftLivingEntity (2011-01-17)  ++* 3400eafaf - added handling of powered and storage minecarts (2011-01-17)  ++* 2de3e2e7e - created getBukkitEntity() in minecraft.server.Entity This returns a protected field that is set in the constructor of each minecraft.server.Entity to a new CraftEntity of some specific type. (2011-01-17)  ++* 95cb03b50 - Fixed melee knockback/sheep shearing (2011-01-17)  ++* 80a59397c - Updated CraftInventory to make use of the proper generics in the Inventory interface. Updated loads of return values to now return actual Craft* objects. Added a shitton of constructors to CraftItemStack so you can now finally properly make your ItemStacks. (2011-01-17)  ++* 0c492912d - Updated CraftHumanEntity to refresh the inventory on death, should fix odd behavior around that. (2011-01-17)  ++* 74d746b6c - Fixed error in CraftInventory.setContents(). (2011-01-16)  ++* d048167d1 - Fixed removeItem implementation (2011-01-16)  ++* 7ea93a110 - Added registration of plugin commands on plugin load. (2011-01-16)  ++* 78cd77ef7 - Implement removeItem(ItemStack...) (2011-01-16)  ++* d85a28e97 - Remove some debug messages, again, last time >.> (2011-01-16)  ++* 0ae550a11 - Fixed NPE while clearing a slot (2011-01-16)  ++* ceaf94d5b - Implementation of the EntityDamage*Events. (2011-01-12)  ++* 807de6ee2 - Moved the source block definition higher in BlockFlowing to ensure its accuracy. (2011-01-15)  ++* 9e65c243e - Fixed an issue where the block cache became out of date and events were giving erroneous block information. (2011-01-15)  ++* c62e38787 - Added Block.getRelative(BlockFace). (2011-01-15)  ++* 5d93ab3e5 - Added item-in-hand related API. (2011-01-15)  ++* 44ae0531e - Added CraftInventory.setContents(); made CraftInventory.setItem(), CraftInventory.getItem(), and CraftItemStack() damage-aware. (2011-01-15)  ++* f78b8c12a - Fixed compilation issues (+small import cleanup in CraftWorld) (2011-01-15)  ++* 7fd0125db - Fixed World.dropItemNaturally() not specifying the Y and Z coordinates correctly. (2011-01-15)  ++* 5dafc601d - Moved org.bukkit.Vector to org.bukkit.util. (2011-01-15)  ++* f6d4979aa - Added Server.broadcastMessage(). (2011-01-15)  ++* 4d1c1fe5e - Moved org.bukkit.craftbukkit.Block to org.bukkit.craftbukkit.block.Block (2011-01-15)  ++* 0db8d5d11 - Moved block stuff from org.bukkit to org.bukkit.block (2011-01-15)  ++* 787722988 - Missed an Entity (2011-01-15)  ++* 2fe673741 - All inventory stuff in org.bukkit.craftbukkit moved to org.bukkit.craftbukkit.inventory (2011-01-15)  ++* 6b9ad41a0 - All inventory stuff in org.bukkit moved to org.bukkit.inventory (2011-01-15)  ++* 9150e8d85 - All entity stuff in org.bukkit.craftbukkit moved to org.bukkit.craftbukkit.entity (2011-01-15)  ++* d501bbf1a - All entity stuff in org.bukkit moved to org.bukkit.entity (2011-01-15)  ++* 34674e779 - Remove debug stuff, oops (2011-01-15)  ++* 4dc907f2f - Implemented clear/remove for inventories (2011-01-15)  ++* 8c8f53fd4 - Events should be present tense, not paste tense. (2011-01-15)  ++* 2184d240d - Changed BlockFace enum to match coding standards (2011-01-15)  ++* 5aa1bc269 - Implemented int getBlockTypeIdAt(int x, int y, int z). (2011-01-15)  ++* dea72d662 - Global ID -> Id rename (2011-01-15)  ++* e4a31ce20 - Implemented BlockState MaterialData (2011-01-15)  ++* 55959488a - Added kick player (2011-01-15)  ++* 0318cfc74 - Updated pom once more! proper repo this time :D (2011-01-15)  ++* 81882dea3 - Moved to more permanent maven repo (2011-01-15)  ++* 80707c0a2 - Various fixes; boats, minecarts, musicblocks (2011-01-14)  ++* 5cb6edd5a - Really fixed block placement... Really. (2011-01-14)  ++* 202e44ab1 - Fixed blocks not keeping data on placement (2011-01-14)  ++* fe4d5db0e - Fixed levers + buttons (2011-01-14)  ++* dea7d3a81 - Update to Minecraft Server 1.2_01 (2011-01-14)  ++* 2761b5984 - Update to Minecraft Server 1.2 (2011-01-14)  ++* e6e50ddf9 - Fixed Vehicle.eject() not ejecting players properly. (2011-01-12)  ++* be6cd7ed9 - add redstone hooks (2011-01-12)  ++* 45bac533b - Merge branch 'eggThrown' of https://github.com/tkelly910/CraftBukkit into tkelly910-eggThrown (2011-01-11)  ++|\ ++| * 6a34f200a - updated EntityEgg (2011-01-11)  ++| * 94bccb6f9 - EggThrown Event (2011-01-11)  ++* | 9922c69d6 - Small whitespace/warning sanitation (2011-01-11)  ++* | 22dab8e98 - Updated against new mc-dev format, takes out quite some casting troubles at the cost of extra ()'s (2011-01-11)  ++|/ ++* 75654e8db - Fixed BROKEN spamming (2011-01-10)  ++* dda7ca005 - Fixed CraftWorld.spawnArrow() not setting X, Y, Z positions correctly. (2011-01-10)  ++* 5993b21b8 - Fixed file name mismatch :( (2011-01-11)  ++* 6a15ae252 - Clean up and fix bug in NetworkAcceptThread and NetworkListenThread classes. (2011-01-11)  ++* 802a46a70 - Added hooks for BlockIgniteEvent (2011-01-11)  ++* 136ad76e6 - Remember, minimal diffs and *NO TABS* (2011-01-10)  ++* b1ee09f73 - Fixed NPE (2011-01-09)  ++* 11b114ca1 - Revert "Bukkit Timers, now with 100% less github-services branch." (2011-01-10)  ++* 0a15f98a2 - Fixed CIP (2011-01-10)  ++* 750cc107a - Fixed NPE (2011-01-10)  ++* c6d80df80 - Fixed EntityZombie (2011-01-10)  ++* e91d52364 - Bukkit Timers, now with 100% less github-services branch. (2011-01-10)  ++* e5d7a4602 - - (2011-01-10)  ++* 21e7f1c44 - BlockDamagedEvent (2011-01-10)  ++* 103d4ee88 - EntityCombustEvent (2011-01-08)  ++* 814967ddd - PlayerInventory.getSize should not count armor slots. (2011-01-10)  ++* 4eeceacde - Fixed some bugs with inventory (2011-01-09)  ++* d3b87965c - Merge branch 'master' of https://github.com/Bukkit/CraftBukkit (2011-01-09)  ++|\ ++| * 3d8263f9f - Tahg's fix for BlockDoor needs to downcast (2011-01-09)  ++| * e8a565e6c - Added getContents() to IInventory and implemented it. Implemented Inventory and PlayerInventory and updated StorageMinecart and Slot. Added getMaxStackSize to CraftItemStack. (2011-01-09)  ++| * b72dad0a6 - Added compile instructions in README.md (2011-01-03)  ++| * db3142987 - Another dumb bucket bug. (2011-01-09)  ++| * 3e71c0a69 - Fixed stupid bug with buckets and signs. (2011-01-09)  ++| * fd2087618 - Implemented item drops. (2011-01-08)  ++| * e83d9f676 - Changed Block.setTypeID() to return a boolean indicating whether the block was changed (as provided by Minecraft). (2011-01-08)  ++| * eb4b30185 - Added BLOCK_INTERACT event (2011-01-08)  ++| * fab66092e - Fixed lack of calling callEvent(event), finished Item Use (2011-01-08)  ++| * 65c8df24b - Partial Player Item, Block RightClick, Block Place (2011-01-08)  ++| * f71e2b4ed - Implemented block.getBiome (2011-01-08)  ++| * 603156ea2 - Added World.getName and World.getId (2011-01-08)  ++| * 81f920d92 - Added Entity.teleportTo(Entity) (2011-01-08)  ++| * 860e1b762 - Fixed block type/data not updating with the world (2011-01-08)  ++| * d374bff8d - Implemented BlockState.update(boolean), signs should now work, cleaned up some code a little (2011-01-08)  ++| * c9efe9454 - Added passenger methods to Vehicle/LivingEntity. (2011-01-07)  ++| * e968096fc - Changed resolution order in CraftWorld.toCraftEntity() to give CraftMappable precedence. (2011-01-07)  ++| * 6d6668aae - Implemented World.spawnBoat(), added CraftMappable interface that defines a method to get an org.bukkit.craftbukkit.CraftEntity from implementing net.minecart.server.Entity entities, changed CraftWorld.toCraftEntity() to use this new interface for boats and minecarts. (2011-01-07)  ++| * eb2cc2da4 - Moved CraftVehicle.*Velocity() to CraftEntity as velocity is a component of all entities. (2011-01-07)  ++| * 22c2fdeaf - Implemented boat, fixed some event issues with minecarts, and implemented the events for boats that were implemented for minecarts. (2011-01-07)  ++| * 592f51022 - Moved some minecart flags that don't belong in the event out of the event. (2011-01-07)  ++| * 544bd76b1 - Implemented more minecart hooks. (2011-01-07)  ++| * 7722e750e - Updated Minecart/vehicle Bukkit implementation. (2011-01-07)  ++| * 4de1915f6 - Added World.toCraftEntity() to convert Minecraft entities to CraftBukkit entities. (2011-01-07)  ++| * 65de896c1 - Implemented LivingEntity.shootArrow(). (2011-01-07)  ++| * 55e952295 - Start of update() + added sign (2011-01-07)  ++| * 08a62e37a - Implemented CraftBlockState (2011-01-07)  ++| * 1edd1fa0c - Make matchPlayer return only the exact-matched player, if there is one. (2011-01-08)  ++| * 2e0413558 - Use the display format defined by plugins (2011-01-07)  ++| * e3e8e99fe - Player display name is shown in chat (2011-01-07)  ++| * 8c10938f6 - Implemented Player.getDisplayName/setDisplayName (2011-01-07)  ++| * 96afc3822 - Implemented PlayerItemEvent and PlayerBlockItemEvent (2011-01-07)  ++| * c5c714582 - Block.getFace(BlockFace) is an override for Block.getFace(BlockFace, int) (2011-01-07)  ++| * 14b929f38 - Added block.getFace(Block) and block.getFace(BlockFace, int) (2011-01-07)  ++| * 7d12239ab - Better implementation of matchPlayer(String) - return List of potential matches (2011-01-07)  ++| * 1e3c5a393 - Added CraftServer.matchPlayer(String) - partial-name matching (2011-01-06)  ++| * 6a786c1c2 - Fixed plugins being loaded before world. (2011-01-07)  ++| * 687ae0533 - Create a concept of a null item stack (2011-01-06)  ++* | 45c701311 - Added function to get player ip (2011-01-09)  ++|/ ++* 95c53f09f - Fixed CraftPlayer.isOnline (2011-01-06)  ++* a0c449559 - Show reason for invalid plugin (2011-01-05)  ++* 72c378f1d - Merge remote branch 'upstream/master' (2011-01-05)  ++|\ ++| * 786488603 - Added Server.getTime and Server.setTime (2011-01-04)  ++| * 4792d55a0 - Actually allow cancellation of player chat events (2011-01-05)  ++| * 8e66e5295 - fixed bug where water wasn't flowing (2011-01-05)  ++* | b73e343dc - fixed bug where water wasn't flowing (2011-01-05)  ++|/ ++* 0aa7b970a - Merge remote branch 'upstream/master' (2011-01-05)  ++|\ ++| * 25d519aaf - Initial implementation of inventory stuff, (read-)only for StorageMinecart sofar (2011-01-05)  ++| * 3dbacbc2c - Implemented LEAVES_DECAY (2011-01-04)  ++| * 8c9f1090a - More NPEs! (2011-01-04)  ++| * 4a9c76170 - Fixed random NPE on startup (2011-01-04)  ++| * ca765c351 - Fixed building in water (2011-01-04)  ++| * 1ed14de10 - Implemented CHUNK_LOADED (2011-01-04)  ++| * a2c944d3c - Implemented Chunk.getWorld() (2011-01-04)  ++* | 3df833797 - Beginnings of block_placed (2011-01-05)  ++* | 4c483edf0 - Merge remote branch 'upstream/master' (2011-01-03)  ++|\| ++| * 8680ee387 - Added -w for world directory (2011-01-04)  ++| * e3b3dcfde - Merge branch 'master' of github.com:Bukkit/CraftBukkit (2011-01-04)  ++| |\ ++| | * 43db386fe - Added getHighestBlockYAt (2011-01-04)  ++| * | 7b08efd9d - Added command-line arguments, forced nogui (2011-01-04)  ++| |/ ++* | 8a717ddda - Merge remote branch 'upstream/master' (2011-01-03)  ++|\| ++| * b7f7c3ffb - Fixed NPE on Player related methods in CraftServer (2011-01-03)  ++| * fd5892db5 - Fixed compile errors (2011-01-03)  ++| * d6aff6629 - Direct fire exposure event (2011-01-03)  ++| * 7a9de3159 - Explosion damage entity hook. (2011-01-03)  ++| * baf59f745 - Cactus damage event. (2011-01-03)  ++| * 8f358b4b2 - Mark CraftEntity as abstract, add dummy health methods to CraftArrowEntity. (2011-01-03)  ++| * 5a9b2d0c2 - Added LivingEntity.throwEgg() and LivingEntity.throwSnowball(). (2011-01-03)  ++| * 497de4d81 - Fixed missing import for craftworld (2011-01-03)  ++| * 198ffee20 - Implemented some minecart vehicle hooks, but there's a some things missing in CraftBukkit before the implementation can be finished. (2011-01-03)  ++| * 9d6803541 - Added minecart classes and World.spawn*Minecart(). Minecart.getPassenger() is still a stub that needs to be implemented (due to of a need of a MC entity -> CraftBukkit entity lookup) and StorageMinecart.getInventory() is waiting on the implementation of inventory. (2011-01-02)  ++| * ca47ccf67 - Renamed ArrowEntity->Arrow to be consistent. (2011-01-03)  ++* | a712a74c2 - Merge remote branch 'upstream/master' (2011-01-02)  ++|\| ++| * 31c589474 - Light levels are bytes (2011-01-03)  ++| * 7ecc3d5b4 - Fixed isChunkLoaded(Chunk chunk) (2011-01-03)  ++| * b2812b74d - Added world.spawnTree(), world.spawnBigTree(). (2011-01-02)  ++| * fe34bbbb1 - Block.getLightLevel() (2011-01-02)  ++* | f48118461 - fixed spelling error in comment (2011-01-02)  ++|/ ++* 853d00fe9 - Changed to pluginmanager direct for enabling plugins (2011-01-03)  ++* c7b0db5f5 - Enable plugins by default the right way (2011-01-03)  ++* 620c42b32 - Added getPlayer(String name) to server (2011-01-03)  ++* 904c220d5 - Removed @Override for the interface method spawnArrow (2011-01-02)  ++* 1c5d80a8c - Merge remote branch 'upstream/master' into HEAD (2011-01-02)  ++|\ ++| * 5c37168fc - We're LGPL. (2011-01-02)  ++| * 8222af3e4 - Implemented arrows. (2011-01-02)  ++* | e70828125 - Added notchToBlockFace convenience method (2011-01-02)  ++* | 54c2780d1 - Merge remote branch 'upstream/master' (2011-01-02)  ++|\| ++| * 32224b916 - Fixed a bunch of warnings. (2011-01-02)  ++* | c80748c8c - Changed BLOCK_CANBUILD to have some checks that user can't override (building on top of themselves, for example) (2011-01-01)  ++* | cb7e2ee23 - Changed commenting to use the system of writing XXX for methods that we copied out of World.java (2011-01-01)  ++|/ ++* ce271f8ab - Changed base of the source file to be based off of grum/mc-dev: net/minecraft/server/BlockFlowing.java (2011-01-01)  ++* ebc0eeec2 - POM version crap (2011-01-01)  ++* 653dd79a6 - Java 1.5! (2011-01-01)  ++* 98b405139 - Updated pom.xml to produce a 'ready to run' jar (2011-01-01)  ++* f199cc719 - Changed tabs to 4 spaces, removed unnecessary imports (2011-01-01)  ++* 84bf373c5 - Transition to Maven (2011-01-01)  ++* fc58672e6 - Changed BlockCanBuildEvent to store the int and not the material (2011-01-01)  ++* 3094b40b8 - Changed BlockCanBuild event to pass the material (2011-01-01)  ++* 49b225ac0 - Fixed Material (2011-01-01)  ++* c7d680163 - Didn't work correctly before. Now it does (2011-01-01)  ++* 2efc265b9 - Implemented BLOCK_CANBUILD (2011-01-01)  ++* 02c469a93 - Changed Block to CraftBlock. Changed callHook to getServer (2010-12-31)  ++* 4af385af1 - Reimplemented BlockFlow to use multiple BlockFromToEvents (2010-12-31)  ++* d72ecbaf3 - Merge branch 'master' of github.com:Dinnerbone/Craftbukkit (2010-12-31)  ++|\ ++| * ea0b61649 - Implemented BLOCK_FLOW (2010-12-31)  ++| * 4d05943ba - Added callHook method to WorldServer so we can get callEvents from any world instance (2010-12-31)  ++* | 1795a66df - Fixed physics event (2010-12-31)  ++* | a69c75bed - Implemented BLOCK_PHYSICS (2010-12-30)  ++|/ ++* a9191c24b - Fixed insane fall damage (entities reset on death) (2010-12-30)  ++* a06303621 - Fixed player handle being reset on death or disconnection (2010-12-30)  ++* bd53a823d - Implemented Player.sendMessage() (2010-12-30)  ++* f8e01e128 - Don't override getName in CraftPlayer (2010-12-30)  ++* 416964ef5 - No lookup for worlds, store on object (2010-12-30)  ++* c57530392 - Implemented entities (2010-12-30)  ++* 193bf0136 - Moved the PLAYER_MOVE and PLAYER_TELEPORT hooks to be packet-based, fixed player.getLocation() to return pitch/yaw (2010-12-29)  ++* 6d28eb011 - Made Block.setType/Block.setData functional (2010-12-29)  ++* 36b95edc0 - Merge branch 'master' of github.com:Dinnerbone/Craftbukkit (2010-12-29)  ++|\ ++| * 5faa47655 - Updated PLAYER_MOVE hook to deal correctly with a cancelled event. (2010-12-29)  ++* | e85cabeb4 - Add some .toString()s (2010-12-29)  ++* | b3c6a7953 - Merge branch 'master' of github.com:Dinnerbone/Craftbukkit (2010-12-28)  ++|\| ++| * 5402eb5c8 - Added support for event PLAYER_MOVE (2010-12-29)  ++* | 804b5e7d2 - Keep Blocks updated when changed by the world (2010-12-28)  ++|/ ++* ef622b20d - Implemented PLAYER_LOGIN (2010-12-28)  ++* f9eb5a92a - Implemented PLAYER_CHAT and PLAYER_COMMAND (2010-12-28)  ++* c49239fa8 - Moved from jd-gui to jad (2010-12-28)  ++* 656f8a8e4 - Changed event calling to reflect new event structure (2010-12-28)  ++* b04fa07b4 - Added chunk/block/location/world (2010-12-27)  ++* b5aa87627 - Changed quit to use PlayerEvent (2010-12-27)  ++* 01a0562ca - Call hooks, update to new code (2010-12-26)  ++* 2798e5b84 - PluginManager => SimplePluginManager (2010-12-25)  ++* cc734a3aa - No longer hardcoding sample plugin, now uses plugins dir (2010-12-24)  ++* c8b9f833d - Fixed a few bugs getting sample plugin to load (2010-12-24)  ++* 827465536 - Load sample plugin for now (2010-12-24)  ++* a799b1463 - Hook onto the server, and added player (2010-12-22)  ++* 84f7c6c8d - Initial structure (2010-12-21)  diff --git a/Spigot-Server-Patches/Fix-World-isChunkGenerated-calls.patch b/Spigot-Server-Patches/Fix-World-isChunkGenerated-calls.patch index e713905896..c77bf9248b 100644 --- a/Spigot-Server-Patches/Fix-World-isChunkGenerated-calls.patch +++ b/Spigot-Server-Patches/Fix-World-isChunkGenerated-calls.patch @@ -203,6 +203,14 @@ diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.ja index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java +@@ -0,0 +0,0 @@ import net.minecraft.SystemUtils; + import net.minecraft.nbt.NBTCompressedStreamTools; + import net.minecraft.nbt.NBTTagCompound; + import net.minecraft.world.level.ChunkCoordIntPair; ++import net.minecraft.world.level.chunk.ChunkStatus; + import org.apache.logging.log4j.LogManager; + import org.apache.logging.log4j.Logger; + @@ -0,0 +0,0 @@ public class RegionFile implements AutoCloseable { protected final RegionFileBitSet freeSectors; public final File file; // Paper diff --git a/Spigot-Server-Patches/Fix-client-rendering-skulls-from-same-user.patch b/Spigot-Server-Patches/Fix-client-rendering-skulls-from-same-user.patch index 1a263a5ad3..917f4b8353 100644 --- a/Spigot-Server-Patches/Fix-client-rendering-skulls-from-same-user.patch +++ b/Spigot-Server-Patches/Fix-client-rendering-skulls-from-same-user.patch @@ -57,6 +57,14 @@ diff --git a/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutMapC index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutMapChunk.java +++ b/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutMapChunk.java +@@ -0,0 +0,0 @@ import net.minecraft.network.PacketDataSerializer; + import net.minecraft.network.protocol.Packet; + import net.minecraft.world.level.ChunkCoordIntPair; + import net.minecraft.world.level.block.entity.TileEntity; ++import net.minecraft.world.level.block.entity.TileEntitySkull; + import net.minecraft.world.level.chunk.BiomeStorage; + import net.minecraft.world.level.chunk.Chunk; + import net.minecraft.world.level.chunk.ChunkSection; @@ -0,0 +0,0 @@ public class PacketPlayOutMapChunk implements Packet { if (this.f() || (i & 1 << j) != 0) { @@ -82,6 +90,14 @@ diff --git a/src/main/java/net/minecraft/world/level/block/entity/TileEntitySkul index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/TileEntitySkull.java +++ b/src/main/java/net/minecraft/world/level/block/entity/TileEntitySkull.java +@@ -0,0 +0,0 @@ import java.util.UUID; + import javax.annotation.Nullable; + import net.minecraft.nbt.GameProfileSerializer; + import net.minecraft.nbt.NBTTagCompound; ++import net.minecraft.nbt.NBTTagList; + import net.minecraft.network.protocol.game.PacketPlayOutTileEntityData; + import net.minecraft.server.players.UserCache; + import net.minecraft.util.UtilColor; @@ -0,0 +0,0 @@ public class TileEntitySkull extends TileEntity /*implements ITickable*/ { // Pa @Nullable @Override @@ -91,7 +107,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 } + // Paper start -+ static NBTTagCompound sanitizeTileEntityUUID(NBTTagCompound cmp) { ++ public static NBTTagCompound sanitizeTileEntityUUID(NBTTagCompound cmp) { + NBTTagCompound owner = cmp.getCompound("Owner"); + if (!owner.isEmpty()) { + sanitizeUUID(owner); diff --git a/Spigot-Server-Patches/Fix-villager-boat-exploit.patch b/Spigot-Server-Patches/Fix-villager-boat-exploit.patch index fd646ac8c5..92d97361ed 100644 --- a/Spigot-Server-Patches/Fix-villager-boat-exploit.patch +++ b/Spigot-Server-Patches/Fix-villager-boat-exploit.patch @@ -8,6 +8,14 @@ diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/ma index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java +@@ -0,0 +0,0 @@ import net.minecraft.util.MathHelper; + import net.minecraft.world.effect.MobEffect; + import net.minecraft.world.entity.Entity; + import net.minecraft.world.entity.EntityTypes; ++import net.minecraft.world.entity.npc.EntityVillagerAbstract; + import net.minecraft.world.entity.player.EntityHuman; + import net.minecraft.world.level.ChunkCoordIntPair; + import net.minecraft.world.level.EnumGamemode; @@ -0,0 +0,0 @@ public abstract class PlayerList { for (Iterator iterator = entity.getAllPassengers().iterator(); iterator.hasNext(); entity1.dead = true) { diff --git a/Spigot-Server-Patches/Handle-Large-Packets-disconnecting-client.patch b/Spigot-Server-Patches/Handle-Large-Packets-disconnecting-client.patch index 532830ac0d..78bc5c9473 100644 --- a/Spigot-Server-Patches/Handle-Large-Packets-disconnecting-client.patch +++ b/Spigot-Server-Patches/Handle-Large-Packets-disconnecting-client.patch @@ -104,6 +104,14 @@ diff --git a/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutWind index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutWindowItems.java +++ b/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutWindowItems.java +@@ -0,0 +0,0 @@ import java.io.IOException; + import java.util.Iterator; + import java.util.List; + import net.minecraft.core.NonNullList; ++import net.minecraft.network.NetworkManager; + import net.minecraft.network.PacketDataSerializer; + import net.minecraft.network.protocol.Packet; + import net.minecraft.world.item.ItemStack; @@ -0,0 +0,0 @@ public class PacketPlayOutWindowItems implements Packet { private int a; private List b; diff --git a/Spigot-Server-Patches/Implement-API-to-expose-exact-interaction-point.patch b/Spigot-Server-Patches/Implement-API-to-expose-exact-interaction-point.patch index a43e3ca631..3b18238515 100644 --- a/Spigot-Server-Patches/Implement-API-to-expose-exact-interaction-point.patch +++ b/Spigot-Server-Patches/Implement-API-to-expose-exact-interaction-point.patch @@ -21,9 +21,11 @@ diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -0,0 +0,0 @@ import net.minecraft.world.phys.MovingObjectPosition; +@@ -0,0 +0,0 @@ import net.minecraft.world.level.storage.loot.parameters.LootContextParameters; + import net.minecraft.world.phys.MovingObjectPosition; import net.minecraft.world.phys.MovingObjectPositionBlock; import net.minecraft.world.phys.MovingObjectPositionEntity; ++import net.minecraft.world.phys.Vec3D; import org.bukkit.Bukkit; +import org.bukkit.Location; // Paper import org.bukkit.Material; diff --git a/Spigot-Server-Patches/Implement-BlockPreDispenseEvent.patch b/Spigot-Server-Patches/Implement-BlockPreDispenseEvent.patch index f57251754a..0479cdd328 100644 --- a/Spigot-Server-Patches/Implement-BlockPreDispenseEvent.patch +++ b/Spigot-Server-Patches/Implement-BlockPreDispenseEvent.patch @@ -20,10 +20,10 @@ diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -0,0 +0,0 @@ import net.minecraft.world.level.storage.loot.parameters.LootContextParameters; - import net.minecraft.world.phys.MovingObjectPosition; +@@ -0,0 +0,0 @@ import net.minecraft.world.phys.MovingObjectPosition; import net.minecraft.world.phys.MovingObjectPositionBlock; import net.minecraft.world.phys.MovingObjectPositionEntity; + import net.minecraft.world.phys.Vec3D; +import io.papermc.paper.event.block.BlockPreDispenseEvent; // Paper import org.bukkit.Bukkit; import org.bukkit.Location; // Paper diff --git a/Spigot-Server-Patches/Implement-Chunk-Priority-Urgency-System-for-Chunks.patch b/Spigot-Server-Patches/Implement-Chunk-Priority-Urgency-System-for-Chunks.patch index e95fbb1ccf..ba14c6912e 100644 --- a/Spigot-Server-Patches/Implement-Chunk-Priority-Urgency-System-for-Chunks.patch +++ b/Spigot-Server-Patches/Implement-Chunk-Priority-Urgency-System-for-Chunks.patch @@ -26,17 +26,6 @@ diff --git a/src/main/java/com/destroystokyo/paper/io/chunk/ChunkTaskManager.jav index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/com/destroystokyo/paper/io/chunk/ChunkTaskManager.java +++ b/src/main/java/com/destroystokyo/paper/io/chunk/ChunkTaskManager.java -@@ -0,0 +0,0 @@ import com.destroystokyo.paper.io.PaperFileIOThread; - import com.destroystokyo.paper.io.IOUtil; - import com.destroystokyo.paper.io.PrioritizedTaskQueue; - import com.destroystokyo.paper.io.QueueExecutorThread; -+import it.unimi.dsi.fastutil.longs.Long2ObjectMap; -+import net.minecraft.server.ChunkCoordIntPair; - import net.minecraft.server.ChunkRegionLoader; -+import net.minecraft.server.ChunkStatus; - import net.minecraft.server.IAsyncTaskHandler; - import net.minecraft.server.IChunkAccess; - import net.minecraft.server.MinecraftServer; @@ -0,0 +0,0 @@ public final class ChunkTaskManager { } @@ -93,6 +82,17 @@ diff --git a/src/main/java/net/minecraft/server/level/ChunkMapDistance.java b/sr index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMapDistance.java +++ b/src/main/java/net/minecraft/server/level/ChunkMapDistance.java +@@ -0,0 +0,0 @@ import java.util.Set; + import java.util.concurrent.CompletableFuture; + import java.util.concurrent.Executor; + import javax.annotation.Nullable; ++import net.minecraft.core.BlockPosition; + import net.minecraft.core.SectionPosition; ++import net.minecraft.server.MCUtil; ++import net.minecraft.server.MinecraftServer; + import net.minecraft.util.ArraySetSorted; + import net.minecraft.util.thread.Mailbox; + import net.minecraft.world.level.ChunkCoordIntPair; @@ -0,0 +0,0 @@ import net.minecraft.world.level.chunk.Chunk; import net.minecraft.world.level.chunk.ChunkStatus; import org.apache.logging.log4j.LogManager; @@ -572,6 +572,14 @@ diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/ma index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java +@@ -0,0 +0,0 @@ import net.minecraft.network.protocol.game.PacketPlayOutWorldEvent; + import net.minecraft.resources.MinecraftKey; + import net.minecraft.resources.ResourceKey; + import net.minecraft.server.AdvancementDataPlayer; ++import net.minecraft.server.MCUtil; + import net.minecraft.server.MinecraftServer; + import net.minecraft.server.network.ITextFilter; + import net.minecraft.server.network.PlayerConnection; @@ -0,0 +0,0 @@ public class EntityPlayer extends EntityHuman implements ICrafting { private int lastArmorScored = Integer.MIN_VALUE; private int lastExpLevelScored = Integer.MIN_VALUE; @@ -888,6 +896,14 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 import it.unimi.dsi.fastutil.longs.Long2ObjectLinkedOpenHashMap; import it.unimi.dsi.fastutil.longs.Long2ObjectMap.Entry; import it.unimi.dsi.fastutil.longs.LongIterator; +@@ -0,0 +0,0 @@ import net.minecraft.CrashReport; + import net.minecraft.CrashReportSystemDetails; + import net.minecraft.ReportedException; + import net.minecraft.SystemUtils; ++import net.minecraft.core.BlockPosition; + import net.minecraft.core.SectionPosition; + import net.minecraft.nbt.NBTTagCompound; + import net.minecraft.network.protocol.Packet; @@ -0,0 +0,0 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; diff --git a/Spigot-Server-Patches/Implement-Mob-Goal-API.patch b/Spigot-Server-Patches/Implement-Mob-Goal-API.patch index cea9a0ca6b..154b53a694 100644 --- a/Spigot-Server-Patches/Implement-Mob-Goal-API.patch +++ b/Spigot-Server-Patches/Implement-Mob-Goal-API.patch @@ -30,25 +30,199 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 @@ -0,0 +0,0 @@ +package com.destroystokyo.paper.entity.ai; + ++import com.destroystokyo.paper.entity.RangedEntity; ++import com.destroystokyo.paper.util.set.OptimizedSmallEnumSet; +import com.google.common.collect.BiMap; +import com.google.common.collect.HashBiMap; -+ -+import com.destroystokyo.paper.entity.RangedEntity; -+import com.destroystokyo.paper.entity.ai.GoalKey; -+import com.destroystokyo.paper.entity.ai.GoalType; -+import com.destroystokyo.paper.util.set.OptimizedSmallEnumSet; -+ -+import net.minecraft.server.*; // intentional star import -+ +import java.lang.reflect.Constructor; +import java.util.EnumSet; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; -+ ++import net.minecraft.world.entity.EntityAgeable; ++import net.minecraft.world.entity.EntityCreature; ++import net.minecraft.world.entity.EntityFlying; ++import net.minecraft.world.entity.EntityInsentient; ++import net.minecraft.world.entity.EntityTameableAnimal; ++import net.minecraft.world.entity.ai.goal.PathfinderGoal; ++import net.minecraft.world.entity.ambient.EntityAmbient; ++import net.minecraft.world.entity.ambient.EntityBat; ++import net.minecraft.world.entity.animal.EntityAnimal; ++import net.minecraft.world.entity.animal.EntityBee; ++import net.minecraft.world.entity.animal.EntityCat; ++import net.minecraft.world.entity.animal.EntityChicken; ++import net.minecraft.world.entity.animal.EntityCod; ++import net.minecraft.world.entity.animal.EntityCow; ++import net.minecraft.world.entity.animal.EntityDolphin; ++import net.minecraft.world.entity.animal.EntityFish; ++import net.minecraft.world.entity.animal.EntityFishSchool; ++import net.minecraft.world.entity.animal.EntityFox; ++import net.minecraft.world.entity.animal.EntityGolem; ++import net.minecraft.world.entity.animal.EntityIronGolem; ++import net.minecraft.world.entity.animal.EntityMushroomCow; ++import net.minecraft.world.entity.animal.EntityOcelot; ++import net.minecraft.world.entity.animal.EntityPanda; ++import net.minecraft.world.entity.animal.EntityParrot; ++import net.minecraft.world.entity.animal.EntityPerchable; ++import net.minecraft.world.entity.animal.EntityPig; ++import net.minecraft.world.entity.animal.EntityPolarBear; ++import net.minecraft.world.entity.animal.EntityPufferFish; ++import net.minecraft.world.entity.animal.EntityRabbit; ++import net.minecraft.world.entity.animal.EntitySalmon; ++import net.minecraft.world.entity.animal.EntitySheep; ++import net.minecraft.world.entity.animal.EntitySnowman; ++import net.minecraft.world.entity.animal.EntitySquid; ++import net.minecraft.world.entity.animal.EntityTropicalFish; ++import net.minecraft.world.entity.animal.EntityTurtle; ++import net.minecraft.world.entity.animal.EntityWaterAnimal; ++import net.minecraft.world.entity.animal.EntityWolf; ++import net.minecraft.world.entity.animal.horse.EntityHorse; ++import net.minecraft.world.entity.animal.horse.EntityHorseAbstract; ++import net.minecraft.world.entity.animal.horse.EntityHorseChestedAbstract; ++import net.minecraft.world.entity.animal.horse.EntityHorseDonkey; ++import net.minecraft.world.entity.animal.horse.EntityHorseMule; ++import net.minecraft.world.entity.animal.horse.EntityHorseSkeleton; ++import net.minecraft.world.entity.animal.horse.EntityHorseZombie; ++import net.minecraft.world.entity.animal.horse.EntityLlama; ++import net.minecraft.world.entity.animal.horse.EntityLlamaTrader; ++import net.minecraft.world.entity.boss.enderdragon.EntityEnderDragon; ++import net.minecraft.world.entity.boss.wither.EntityWither; ++import net.minecraft.world.entity.monster.EntityBlaze; ++import net.minecraft.world.entity.monster.EntityCaveSpider; ++import net.minecraft.world.entity.monster.EntityCreeper; ++import net.minecraft.world.entity.monster.EntityDrowned; ++import net.minecraft.world.entity.monster.EntityEnderman; ++import net.minecraft.world.entity.monster.EntityEndermite; ++import net.minecraft.world.entity.monster.EntityEvoker; ++import net.minecraft.world.entity.monster.EntityGhast; ++import net.minecraft.world.entity.monster.EntityGiantZombie; ++import net.minecraft.world.entity.monster.EntityGuardian; ++import net.minecraft.world.entity.monster.EntityGuardianElder; ++import net.minecraft.world.entity.monster.EntityIllagerAbstract; ++import net.minecraft.world.entity.monster.EntityIllagerIllusioner; ++import net.minecraft.world.entity.monster.EntityIllagerWizard; ++import net.minecraft.world.entity.monster.EntityMagmaCube; ++import net.minecraft.world.entity.monster.EntityMonster; ++import net.minecraft.world.entity.monster.EntityMonsterPatrolling; ++import net.minecraft.world.entity.monster.EntityPhantom; ++import net.minecraft.world.entity.monster.EntityPigZombie; ++import net.minecraft.world.entity.monster.EntityPillager; ++import net.minecraft.world.entity.monster.EntityRavager; ++import net.minecraft.world.entity.monster.EntityShulker; ++import net.minecraft.world.entity.monster.EntitySilverfish; ++import net.minecraft.world.entity.monster.EntitySkeleton; ++import net.minecraft.world.entity.monster.EntitySkeletonAbstract; ++import net.minecraft.world.entity.monster.EntitySkeletonStray; ++import net.minecraft.world.entity.monster.EntitySkeletonWither; ++import net.minecraft.world.entity.monster.EntitySlime; ++import net.minecraft.world.entity.monster.EntitySpider; ++import net.minecraft.world.entity.monster.EntityStrider; ++import net.minecraft.world.entity.monster.EntityVex; ++import net.minecraft.world.entity.monster.EntityVindicator; ++import net.minecraft.world.entity.monster.EntityWitch; ++import net.minecraft.world.entity.monster.EntityZoglin; ++import net.minecraft.world.entity.monster.EntityZombie; ++import net.minecraft.world.entity.monster.EntityZombieHusk; ++import net.minecraft.world.entity.monster.EntityZombieVillager; ++import net.minecraft.world.entity.monster.IRangedEntity; ++import net.minecraft.world.entity.monster.hoglin.EntityHoglin; ++import net.minecraft.world.entity.monster.piglin.EntityPiglin; ++import net.minecraft.world.entity.monster.piglin.EntityPiglinAbstract; ++import net.minecraft.world.entity.monster.piglin.EntityPiglinBrute; ++import net.minecraft.world.entity.npc.EntityVillager; ++import net.minecraft.world.entity.npc.EntityVillagerAbstract; ++import net.minecraft.world.entity.npc.EntityVillagerTrader; ++import net.minecraft.world.entity.raid.EntityRaider; +import org.bukkit.NamespacedKey; -+import org.bukkit.entity.*; // intentional star import ++import org.bukkit.entity.AbstractHorse; ++import org.bukkit.entity.AbstractVillager; ++import org.bukkit.entity.Ageable; ++import org.bukkit.entity.Ambient; ++import org.bukkit.entity.Animals; ++import org.bukkit.entity.Bat; ++import org.bukkit.entity.Bee; ++import org.bukkit.entity.Blaze; ++import org.bukkit.entity.Cat; ++import org.bukkit.entity.CaveSpider; ++import org.bukkit.entity.ChestedHorse; ++import org.bukkit.entity.Chicken; ++import org.bukkit.entity.Cod; ++import org.bukkit.entity.Cow; ++import org.bukkit.entity.Creature; ++import org.bukkit.entity.Creeper; ++import org.bukkit.entity.Dolphin; ++import org.bukkit.entity.Donkey; ++import org.bukkit.entity.Drowned; ++import org.bukkit.entity.ElderGuardian; ++import org.bukkit.entity.EnderDragon; ++import org.bukkit.entity.Enderman; ++import org.bukkit.entity.Endermite; ++import org.bukkit.entity.Evoker; ++import org.bukkit.entity.Fish; ++import org.bukkit.entity.Flying; ++import org.bukkit.entity.Fox; ++import org.bukkit.entity.Ghast; ++import org.bukkit.entity.Giant; ++import org.bukkit.entity.Golem; ++import org.bukkit.entity.Guardian; ++import org.bukkit.entity.Hoglin; ++import org.bukkit.entity.Horse; ++import org.bukkit.entity.Husk; ++import org.bukkit.entity.Illager; ++import org.bukkit.entity.Illusioner; ++import org.bukkit.entity.IronGolem; ++import org.bukkit.entity.Llama; ++import org.bukkit.entity.MagmaCube; ++import org.bukkit.entity.Mob; ++import org.bukkit.entity.Monster; ++import org.bukkit.entity.Mule; ++import org.bukkit.entity.MushroomCow; ++import org.bukkit.entity.Ocelot; ++import org.bukkit.entity.Panda; ++import org.bukkit.entity.Parrot; ++import org.bukkit.entity.Phantom; ++import org.bukkit.entity.Pig; ++import org.bukkit.entity.PigZombie; ++import org.bukkit.entity.Piglin; ++import org.bukkit.entity.PiglinAbstract; ++import org.bukkit.entity.PiglinBrute; ++import org.bukkit.entity.Pillager; ++import org.bukkit.entity.PolarBear; ++import org.bukkit.entity.PufferFish; ++import org.bukkit.entity.Rabbit; ++import org.bukkit.entity.Raider; ++import org.bukkit.entity.Ravager; ++import org.bukkit.entity.Salmon; ++import org.bukkit.entity.Sheep; ++import org.bukkit.entity.Shulker; ++import org.bukkit.entity.Silverfish; ++import org.bukkit.entity.Skeleton; ++import org.bukkit.entity.SkeletonHorse; ++import org.bukkit.entity.Slime; ++import org.bukkit.entity.Snowman; ++import org.bukkit.entity.Spellcaster; ++import org.bukkit.entity.Spider; ++import org.bukkit.entity.Squid; ++import org.bukkit.entity.Stray; ++import org.bukkit.entity.Strider; ++import org.bukkit.entity.Tameable; ++import org.bukkit.entity.TraderLlama; ++import org.bukkit.entity.TropicalFish; ++import org.bukkit.entity.Turtle; ++import org.bukkit.entity.Vex; ++import org.bukkit.entity.Villager; ++import org.bukkit.entity.Vindicator; ++import org.bukkit.entity.WanderingTrader; ++import org.bukkit.entity.WaterMob; ++import org.bukkit.entity.Witch; ++import org.bukkit.entity.Wither; ++import org.bukkit.entity.WitherSkeleton; ++import org.bukkit.entity.Wolf; ++import org.bukkit.entity.Zoglin; ++import org.bukkit.entity.Zombie; ++import org.bukkit.entity.ZombieHorse; ++import org.bukkit.entity.ZombieVillager; + +public class MobGoalHelper { + @@ -392,8 +566,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 @@ -0,0 +0,0 @@ +package com.destroystokyo.paper.entity.ai; + -+import net.minecraft.server.PathfinderGoal; -+ ++import net.minecraft.world.entity.ai.goal.PathfinderGoal; +import org.bukkit.entity.Mob; + +/** @@ -453,10 +626,6 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 @@ -0,0 +0,0 @@ +package com.destroystokyo.paper.entity.ai; + -+import net.minecraft.server.PathfinderGoal; -+import net.minecraft.server.PathfinderGoalSelector; -+import net.minecraft.server.PathfinderGoalWrapped; -+ +import java.util.Collection; +import java.util.EnumSet; +import java.util.HashMap; @@ -465,7 +634,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 +import java.util.List; +import java.util.Map; +import java.util.Set; -+ ++import net.minecraft.world.entity.ai.goal.PathfinderGoal; ++import net.minecraft.world.entity.ai.goal.PathfinderGoalSelector; ++import net.minecraft.world.entity.ai.goal.PathfinderGoalWrapped; +import org.bukkit.craftbukkit.entity.CraftMob; +import org.bukkit.entity.Mob; + @@ -589,7 +760,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + CraftMob craftMob = (CraftMob) mob; + Set> goals = new HashSet<>(); + for (GoalType internalType : GoalType.values()) { -+ if(internalType == type) { ++ if (internalType == type) { + continue; + } + for (PathfinderGoalWrapped item : getHandle(craftMob, internalType).getTasks()) { @@ -683,10 +854,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 @@ -0,0 +0,0 @@ +package com.destroystokyo.paper.entity.ai; + -+import net.minecraft.server.PathfinderGoal; -+ +import java.util.EnumSet; + ++import net.minecraft.world.entity.ai.goal.PathfinderGoal; +import org.bukkit.entity.Mob; + +/** diff --git a/Spigot-Server-Patches/Implement-extended-PaperServerListPingEvent.patch b/Spigot-Server-Patches/Implement-extended-PaperServerListPingEvent.patch index 268e9aaaab..99abd416e6 100644 --- a/Spigot-Server-Patches/Implement-extended-PaperServerListPingEvent.patch +++ b/Spigot-Server-Patches/Implement-extended-PaperServerListPingEvent.patch @@ -13,8 +13,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 +package com.destroystokyo.paper.network; + +import com.destroystokyo.paper.event.server.PaperServerListPingEvent; -+import net.minecraft.server.EntityPlayer; +import net.minecraft.server.MinecraftServer; ++import net.minecraft.server.level.EntityPlayer; +import org.bukkit.entity.Player; +import org.bukkit.util.CachedServerIcon; + @@ -49,7 +49,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 @@ -0,0 +0,0 @@ +package com.destroystokyo.paper.network; + -+import net.minecraft.server.NetworkManager; ++import net.minecraft.network.NetworkManager; + +class PaperStatusClient extends PaperNetworkClient implements StatusClient { + @@ -75,10 +75,10 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 +import java.util.List; +import java.util.UUID; +import javax.annotation.Nonnull; ++import net.minecraft.network.NetworkManager; ++import net.minecraft.network.protocol.status.PacketStatusOutServerInfo; ++import net.minecraft.network.protocol.status.ServerPing; +import net.minecraft.server.MinecraftServer; -+import net.minecraft.server.NetworkManager; -+import net.minecraft.network.protocol.game.PacketStatusOutServerInfo; -+import net.minecraft.server.ServerPing; + +public final class StandardPaperServerListPingEventImpl extends PaperServerListPingEventImpl { + diff --git a/Spigot-Server-Patches/Improve-Maps-in-item-frames-performance-and-bug-fixe.patch b/Spigot-Server-Patches/Improve-Maps-in-item-frames-performance-and-bug-fixe.patch index 0b84ffaa95..3758276b43 100644 --- a/Spigot-Server-Patches/Improve-Maps-in-item-frames-performance-and-bug-fixe.patch +++ b/Spigot-Server-Patches/Improve-Maps-in-item-frames-performance-and-bug-fixe.patch @@ -28,6 +28,22 @@ diff --git a/src/main/java/net/minecraft/world/entity/player/EntityHuman.java b/ index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/entity/player/EntityHuman.java +++ b/src/main/java/net/minecraft/world/entity/player/EntityHuman.java +@@ -0,0 +0,0 @@ import net.minecraft.world.item.ItemElytra; + import net.minecraft.world.item.ItemProjectileWeapon; + import net.minecraft.world.item.ItemStack; + import net.minecraft.world.item.ItemSword; ++import net.minecraft.world.item.ItemWorldMap; + import net.minecraft.world.item.Items; + import net.minecraft.world.item.crafting.IRecipe; + import net.minecraft.world.item.enchantment.EnchantmentManager; +@@ -0,0 +0,0 @@ import net.minecraft.world.level.block.entity.TileEntitySign; + import net.minecraft.world.level.block.entity.TileEntityStructure; + import net.minecraft.world.level.block.state.IBlockData; + import net.minecraft.world.level.block.state.pattern.ShapeDetectorBlock; ++import net.minecraft.world.level.saveddata.maps.WorldMap; + import net.minecraft.world.phys.AxisAlignedBB; + import net.minecraft.world.phys.Vec3D; + import net.minecraft.world.scores.Scoreboard; @@ -0,0 +0,0 @@ public abstract class EntityHuman extends EntityLiving { return null; } diff --git a/Spigot-Server-Patches/Improve-Server-Thread-Pool-and-Thread-Priorities.patch b/Spigot-Server-Patches/Improve-Server-Thread-Pool-and-Thread-Priorities.patch index df6f2dcdf3..195e19d032 100644 --- a/Spigot-Server-Patches/Improve-Server-Thread-Pool-and-Thread-Priorities.patch +++ b/Spigot-Server-Patches/Improve-Server-Thread-Pool-and-Thread-Priorities.patch @@ -15,6 +15,14 @@ diff --git a/src/main/java/net/minecraft/SystemUtils.java b/src/main/java/net/mi index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/SystemUtils.java +++ b/src/main/java/net/minecraft/SystemUtils.java +@@ -0,0 +0,0 @@ import java.util.stream.Stream; + import javax.annotation.Nullable; + import net.minecraft.resources.MinecraftKey; + import net.minecraft.server.DispenserRegistry; ++import net.minecraft.server.ServerWorkerThread; + import net.minecraft.util.MathHelper; + import net.minecraft.util.datafix.DataConverterRegistry; + import net.minecraft.world.level.block.state.properties.IBlockState; @@ -0,0 +0,0 @@ import org.apache.logging.log4j.Logger; public class SystemUtils { diff --git a/Spigot-Server-Patches/Improve-death-events.patch b/Spigot-Server-Patches/Improve-death-events.patch index 4efaaff622..55592b2056 100644 --- a/Spigot-Server-Patches/Improve-death-events.patch +++ b/Spigot-Server-Patches/Improve-death-events.patch @@ -349,6 +349,15 @@ diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +@@ -0,0 +0,0 @@ import net.minecraft.network.protocol.game.PacketPlayInCloseWindow; + import net.minecraft.resources.MinecraftKey; + import net.minecraft.server.level.EntityPlayer; + import net.minecraft.server.level.WorldServer; ++import net.minecraft.sounds.SoundCategory; ++import net.minecraft.sounds.SoundEffect; + import net.minecraft.util.Unit; + import net.minecraft.world.EnumHand; + import net.minecraft.world.IInventory; @@ -0,0 +0,0 @@ public class CraftEventFactory { public static EntityDeathEvent callEntityDeathEvent(EntityLiving victim, List drops) { CraftLivingEntity entity = (CraftLivingEntity) victim.getBukkitEntity(); @@ -391,7 +400,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + private static void populateFields(EntityLiving victim, EntityDeathEvent event) { + event.setReviveHealth(event.getEntity().getAttribute(org.bukkit.attribute.Attribute.GENERIC_MAX_HEALTH).getValue()); + event.setShouldPlayDeathSound(!victim.silentDeath && !victim.isSilent()); -+ net.minecraft.server.SoundEffect soundEffect = victim.getDeathSoundEffect(); ++ SoundEffect soundEffect = victim.getDeathSoundEffect(); + event.setDeathSound(soundEffect != null ? org.bukkit.craftbukkit.CraftSound.getBukkit(soundEffect) : null); + event.setDeathSoundCategory(org.bukkit.SoundCategory.valueOf(victim.getSoundCategory().name())); + event.setDeathSoundVolume(victim.getDeathSoundVolume()); @@ -405,8 +414,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + double x = event.getEntity().getLocation().getX(); + double y = event.getEntity().getLocation().getY(); + double z = event.getEntity().getLocation().getZ(); -+ net.minecraft.server.SoundEffect soundEffect = org.bukkit.craftbukkit.CraftSound.getSoundEffect(event.getDeathSound()); -+ net.minecraft.server.SoundCategory soundCategory = net.minecraft.server.SoundCategory.valueOf(event.getDeathSoundCategory().name()); ++ SoundEffect soundEffect = org.bukkit.craftbukkit.CraftSound.getSoundEffect(event.getDeathSound()); ++ SoundCategory soundCategory = SoundCategory.valueOf(event.getDeathSoundCategory().name()); + victim.world.playSound(source, x, y, z, soundEffect, soundCategory, event.getDeathSoundVolume(), event.getDeathSoundPitch()); + } + } diff --git a/Spigot-Server-Patches/Improve-the-Saddle-API-for-Horses.patch b/Spigot-Server-Patches/Improve-the-Saddle-API-for-Horses.patch index 79bc259ca8..353e1bef8e 100644 --- a/Spigot-Server-Patches/Improve-the-Saddle-API-for-Horses.patch +++ b/Spigot-Server-Patches/Improve-the-Saddle-API-for-Horses.patch @@ -47,10 +47,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 @@ -0,0 +0,0 @@ +package org.bukkit.craftbukkit.inventory; + -+import net.minecraft.server.IInventory; -+ -+import org.bukkit.inventory.AbstractHorseInventory; -+import org.bukkit.inventory.ItemStack; ++import net.minecraft.world.IInventory; +import org.bukkit.inventory.SaddledHorseInventory; + +public class CraftSaddledInventory extends CraftInventoryAbstractHorse implements SaddledHorseInventory { diff --git a/Spigot-Server-Patches/Improved-Watchdog-Support.patch b/Spigot-Server-Patches/Improved-Watchdog-Support.patch index 8cac6c5279..c04c5fe632 100644 --- a/Spigot-Server-Patches/Improved-Watchdog-Support.patch +++ b/Spigot-Server-Patches/Improved-Watchdog-Support.patch @@ -334,7 +334,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 } catch (Throwable throwable) { + if (throwable instanceof ThreadDeath) throw throwable; // Paper // Paper start - Prevent tile entity and entity crashes - String msg = "TileEntity threw exception at " + tileentity.world.getWorld().getName() + ":" + tileentity.position.getX() + "," + tileentity.position.getY() + "," + tileentity.position.getZ(); + String msg = "TileEntity threw exception at " + tileentity.getWorld().getWorld().getName() + ":" + tileentity.getPosition().getX() + "," + tileentity.getPosition().getY() + "," + tileentity.getPosition().getZ(); System.err.println(msg); @@ -0,0 +0,0 @@ public abstract class World implements GeneratorAccess, AutoCloseable { try { diff --git a/Spigot-Server-Patches/LivingEntity-setKiller.patch b/Spigot-Server-Patches/LivingEntity-setKiller.patch index fe5da2ba4e..b576a86abe 100644 --- a/Spigot-Server-Patches/LivingEntity-setKiller.patch +++ b/Spigot-Server-Patches/LivingEntity-setKiller.patch @@ -21,6 +21,14 @@ diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +@@ -0,0 +0,0 @@ import java.util.Iterator; + import java.util.List; + import java.util.Set; + import java.util.UUID; ++import net.minecraft.server.level.EntityPlayer; + import net.minecraft.world.EnumHand; + import net.minecraft.world.damagesource.DamageSource; + import net.minecraft.world.effect.MobEffect; @@ -0,0 +0,0 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { return getHandle().killer == null ? null : (Player) getHandle().killer.getBukkitEntity(); } @@ -28,7 +36,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + // Paper start + @Override + public void setKiller(Player killer) { -+ net.minecraft.server.EntityPlayer entityPlayer = killer == null ? null : ((CraftPlayer) killer).getHandle(); ++ EntityPlayer entityPlayer = killer == null ? null : ((CraftPlayer) killer).getHandle(); + getHandle().killer = entityPlayer; + getHandle().lastDamager = entityPlayer; + getHandle().lastDamageByPlayerTime = entityPlayer == null ? 0 : 100; // 100 value taken from EntityLiving#damageEntity diff --git a/Spigot-Server-Patches/Load-Chunks-for-Login-Asynchronously.patch b/Spigot-Server-Patches/Load-Chunks-for-Login-Asynchronously.patch index ca8a9d1811..32eece5198 100644 --- a/Spigot-Server-Patches/Load-Chunks-for-Login-Asynchronously.patch +++ b/Spigot-Server-Patches/Load-Chunks-for-Login-Asynchronously.patch @@ -79,7 +79,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 private static final Logger LOGGER = LogManager.getLogger(); public final NetworkManager networkManager; private final MinecraftServer minecraftServer; -+ Runnable playerJoinReady; // Paper ++ public Runnable playerJoinReady; // Paper public EntityPlayer player; private int e; private long lastKeepAlive = SystemUtils.getMonotonicMillis(); private void setLastPing(long lastPing) { this.lastKeepAlive = lastPing;}; private long getLastPing() { return this.lastKeepAlive;}; // Paper - OBFHELPER @@ -112,6 +112,23 @@ diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/ma index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java +@@ -0,0 +0,0 @@ import net.minecraft.network.protocol.game.PacketPlayOutEntityStatus; + import net.minecraft.network.protocol.game.PacketPlayOutExperience; + import net.minecraft.network.protocol.game.PacketPlayOutGameStateChange; + import net.minecraft.network.protocol.game.PacketPlayOutHeldItemSlot; ++import net.minecraft.network.protocol.game.PacketPlayOutKickDisconnect; + import net.minecraft.network.protocol.game.PacketPlayOutLogin; + import net.minecraft.network.protocol.game.PacketPlayOutNamedSoundEffect; + import net.minecraft.network.protocol.game.PacketPlayOutPlayerInfo; +@@ -0,0 +0,0 @@ import net.minecraft.server.MinecraftServer; + import net.minecraft.server.ScoreboardServer; + import net.minecraft.server.level.DemoPlayerInteractManager; + import net.minecraft.server.level.EntityPlayer; ++import net.minecraft.server.level.PlayerChunk; ++import net.minecraft.server.level.PlayerChunkMap; + import net.minecraft.server.level.PlayerInteractManager; + import net.minecraft.server.level.TicketType; + import net.minecraft.server.level.WorldServer; @@ -0,0 +0,0 @@ public abstract class PlayerList { private static final SimpleDateFormat g = new SimpleDateFormat("yyyy-MM-dd 'at' HH:mm:ss z"); private final MinecraftServer server; @@ -176,7 +193,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + }); + } + -+ EntityPlayer getActivePlayer(UUID uuid) { ++ public EntityPlayer getActivePlayer(UUID uuid) { + EntityPlayer player = this.getUUIDMap().get(uuid); + return player != null ? player : pendingPlayers.get(uuid); + } diff --git a/Spigot-Server-Patches/MC-145260-Fix-Whitelist-On-Off-inconsistency.patch b/Spigot-Server-Patches/MC-145260-Fix-Whitelist-On-Off-inconsistency.patch index 803e510225..d1581e0c3c 100644 --- a/Spigot-Server-Patches/MC-145260-Fix-Whitelist-On-Off-inconsistency.patch +++ b/Spigot-Server-Patches/MC-145260-Fix-Whitelist-On-Off-inconsistency.patch @@ -14,6 +14,14 @@ diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/ma index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java +@@ -0,0 +0,0 @@ import net.minecraft.network.protocol.game.PacketPlayOutViewDistance; + import net.minecraft.network.protocol.game.PacketPlayOutWorldBorder; + import net.minecraft.resources.ResourceKey; + import net.minecraft.server.AdvancementDataPlayer; ++import net.minecraft.server.MCUtil; + import net.minecraft.server.MinecraftServer; + import net.minecraft.server.ScoreboardServer; + import net.minecraft.server.level.DemoPlayerInteractManager; @@ -0,0 +0,0 @@ public abstract class PlayerList { } public boolean isWhitelisted(GameProfile gameprofile, org.bukkit.event.player.PlayerLoginEvent loginEvent) { diff --git a/Spigot-Server-Patches/MC-Utils.patch b/Spigot-Server-Patches/MC-Utils.patch index 2b5c7152a1..fb0fa316ce 100644 --- a/Spigot-Server-Patches/MC-Utils.patch +++ b/Spigot-Server-Patches/MC-Utils.patch @@ -3518,6 +3518,14 @@ diff --git a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java b/src/ index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java +@@ -0,0 +0,0 @@ import net.minecraft.network.protocol.game.PacketPlayOutLightUpdate; + import net.minecraft.network.protocol.game.PacketPlayOutMapChunk; + import net.minecraft.network.protocol.game.PacketPlayOutMount; + import net.minecraft.network.protocol.game.PacketPlayOutViewCentre; ++import net.minecraft.server.MCUtil; + import net.minecraft.server.level.progress.WorldLoadListener; + import net.minecraft.util.CSVWriter; + import net.minecraft.util.EntitySlice; @@ -0,0 +0,0 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { }; // CraftBukkit end @@ -3788,7 +3796,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 public final NonNullList armor; public final NonNullList extraSlots; - private final List> f; -+ private final List> f;List> getComponents() { return f; } // Paper - OBFHELPER ++ private final List> f; public final List> getComponents() { return f; } // Paper - OBFHELPER public int itemInHandIndex; public final EntityHuman player; private ItemStack carried; @@ -3985,6 +3993,18 @@ diff --git a/src/main/java/net/minecraft/world/level/IBlockAccess.java b/src/mai index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/level/IBlockAccess.java +++ b/src/main/java/net/minecraft/world/level/IBlockAccess.java +@@ -0,0 +0,0 @@ import javax.annotation.Nullable; + import net.minecraft.core.BlockPosition; + import net.minecraft.core.EnumDirection; + import net.minecraft.util.MathHelper; ++import net.minecraft.world.level.block.Block; + import net.minecraft.world.level.block.entity.TileEntity; + import net.minecraft.world.level.block.state.IBlockData; + import net.minecraft.world.level.material.Fluid; ++import net.minecraft.world.level.material.Material; + import net.minecraft.world.phys.AxisAlignedBB; + import net.minecraft.world.phys.MovingObjectPositionBlock; + import net.minecraft.world.phys.Vec3D; @@ -0,0 +0,0 @@ public interface IBlockAccess { TileEntity getTileEntity(BlockPosition blockposition); diff --git a/Spigot-Server-Patches/Make-the-GUI-graph-fancier.patch b/Spigot-Server-Patches/Make-the-GUI-graph-fancier.patch index 0f8009717f..2d2187f046 100644 --- a/Spigot-Server-Patches/Make-the-GUI-graph-fancier.patch +++ b/Spigot-Server-Patches/Make-the-GUI-graph-fancier.patch @@ -162,9 +162,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 @@ -0,0 +0,0 @@ +package com.destroystokyo.paper.gui; + ++import net.minecraft.SystemUtils; +import net.minecraft.server.MinecraftServer; -+import net.minecraft.server.SystemUtils; -+import org.bukkit.Bukkit; + +import javax.swing.DefaultListCellRenderer; +import javax.swing.DefaultListSelectionModel; @@ -177,7 +176,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 +import java.util.Vector; + +public class RAMDetails extends JList { -+ public static final DecimalFormat DECIMAL_FORMAT = SystemUtils.a(new DecimalFormat("########0.000"), (format) ++ public static final DecimalFormat DECIMAL_FORMAT = SystemUtils.peek(new DecimalFormat("########0.000"), (format) + -> format.setDecimalFormatSymbols(DecimalFormatSymbols.getInstance(Locale.ROOT))); + + private final MinecraftServer server; @@ -384,6 +383,18 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + timer.stop(); + } +} +diff --git a/src/main/java/net/minecraft/SystemUtils.java b/src/main/java/net/minecraft/SystemUtils.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/net/minecraft/SystemUtils.java ++++ b/src/main/java/net/minecraft/SystemUtils.java +@@ -0,0 +0,0 @@ public class SystemUtils { + return supplier.get(); + } + ++ public static T peek(T t0, Consumer consumer) { return a(t0, consumer); } // Paper - OBFHELPER + public static T a(T t0, Consumer consumer) { + consumer.accept(t0); + return t0; diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java diff --git a/Spigot-Server-Patches/Mid-Tick-Chunk-Tasks-Speed-up-processing-of-chunk-lo.patch b/Spigot-Server-Patches/Mid-Tick-Chunk-Tasks-Speed-up-processing-of-chunk-lo.patch index 8973ceee27..7de6b8efd3 100644 --- a/Spigot-Server-Patches/Mid-Tick-Chunk-Tasks-Speed-up-processing-of-chunk-lo.patch +++ b/Spigot-Server-Patches/Mid-Tick-Chunk-Tasks-Speed-up-processing-of-chunk-lo.patch @@ -150,6 +150,14 @@ diff --git a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java b index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java +@@ -0,0 +0,0 @@ import net.minecraft.core.BlockPosition; + import net.minecraft.core.SectionPosition; + import net.minecraft.network.protocol.Packet; + import net.minecraft.server.MCUtil; ++import net.minecraft.server.MinecraftServer; + import net.minecraft.server.level.progress.WorldLoadListener; + import net.minecraft.util.MathHelper; + import net.minecraft.util.profiling.GameProfilerFiller; @@ -0,0 +0,0 @@ public class ChunkProviderServer extends IChunkProvider { this.world.getMethodProfiler().enter("purge"); this.world.timings.doChunkMap.startTiming(); // Spigot diff --git a/Spigot-Server-Patches/Mob-Pathfinding-API.patch b/Spigot-Server-Patches/Mob-Pathfinding-API.patch index e442d4ce03..12027d60a5 100644 --- a/Spigot-Server-Patches/Mob-Pathfinding-API.patch +++ b/Spigot-Server-Patches/Mob-Pathfinding-API.patch @@ -13,9 +13,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 @@ -0,0 +0,0 @@ +package com.destroystokyo.paper.entity; + -+import net.minecraft.server.EntityInsentient; -+import net.minecraft.server.PathEntity; -+import net.minecraft.server.PathPoint; ++import net.minecraft.world.entity.EntityInsentient; ++import net.minecraft.world.level.pathfinder.PathEntity; ++import net.minecraft.world.level.pathfinder.PathPoint; +import org.apache.commons.lang.Validate; +import org.bukkit.Location; +import org.bukkit.craftbukkit.entity.CraftLivingEntity; diff --git a/Spigot-Server-Patches/Mob-Spawner-API-Enhancements.patch b/Spigot-Server-Patches/Mob-Spawner-API-Enhancements.patch index 71f47561b3..67ae99f328 100644 --- a/Spigot-Server-Patches/Mob-Spawner-API-Enhancements.patch +++ b/Spigot-Server-Patches/Mob-Spawner-API-Enhancements.patch @@ -85,14 +85,21 @@ diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftCreatureSpawner.jav index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftCreatureSpawner.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftCreatureSpawner.java -@@ -0,0 +0,0 @@ import org.bukkit.Material; +@@ -0,0 +0,0 @@ + package org.bukkit.craftbukkit.block; + + import com.google.common.base.Preconditions; ++import net.minecraft.core.IRegistry; ++import net.minecraft.nbt.NBTTagCompound; + import net.minecraft.resources.MinecraftKey; + import net.minecraft.world.entity.EntityTypes; ++import net.minecraft.world.level.MobSpawnerData; + import net.minecraft.world.level.block.entity.TileEntityMobSpawner; + import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.CreatureSpawner; import org.bukkit.entity.EntityType; +// Paper start -+import net.minecraft.server.IRegistry; -+import net.minecraft.server.MobSpawnerData; -+import net.minecraft.server.NBTTagCompound; +import org.bukkit.craftbukkit.inventory.CraftItemStack; +import org.bukkit.craftbukkit.util.CraftMagicNumbers; +import org.bukkit.inventory.ItemStack; @@ -119,7 +126,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + @Override + public void setSpawnedItem(ItemStack itemStack) { + Preconditions.checkArgument(itemStack != null && !itemStack.getType().isAir(), "spawners cannot spawn air"); -+ net.minecraft.server.ItemStack item = CraftItemStack.asNMSCopy(itemStack); ++ net.minecraft.world.item.ItemStack item = CraftItemStack.asNMSCopy(itemStack); + NBTTagCompound compound = new NBTTagCompound(); + NBTTagCompound entity = new NBTTagCompound(); + entity.setString("id", IRegistry.ENTITY_TYPE.getKey(EntityTypes.ITEM).toString()); diff --git a/Spigot-Server-Patches/No-Tick-view-distance-implementation.patch b/Spigot-Server-Patches/No-Tick-view-distance-implementation.patch index 0220d701f5..5504153408 100644 --- a/Spigot-Server-Patches/No-Tick-view-distance-implementation.patch +++ b/Spigot-Server-Patches/No-Tick-view-distance-implementation.patch @@ -182,6 +182,18 @@ diff --git a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java b/src/ index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java +@@ -0,0 +0,0 @@ import net.minecraft.network.protocol.game.PacketPlayOutLightUpdate; + import net.minecraft.network.protocol.game.PacketPlayOutMapChunk; + import net.minecraft.network.protocol.game.PacketPlayOutMount; + import net.minecraft.network.protocol.game.PacketPlayOutViewCentre; ++import net.minecraft.network.protocol.game.PacketPlayOutViewDistance; + import net.minecraft.server.MCUtil; + import net.minecraft.server.MinecraftServer; + import net.minecraft.server.level.progress.WorldLoadListener; ++import net.minecraft.server.network.PlayerConnection; + import net.minecraft.util.CSVWriter; + import net.minecraft.util.EntitySlice; + import net.minecraft.util.MathHelper; @@ -0,0 +0,0 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { private boolean updatingChunksModified; private final ChunkTaskQueueSorter p; @@ -492,7 +504,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + // Paper end - per player view distance } - protected void addEntity(Entity entity) { + public void addEntity(Entity entity) { // Paper - protected -> public @@ -0,0 +0,0 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { } diff --git a/Spigot-Server-Patches/Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch b/Spigot-Server-Patches/Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch index a83c001557..b6d1534aa8 100644 --- a/Spigot-Server-Patches/Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch +++ b/Spigot-Server-Patches/Only-process-BlockPhysicsEvent-if-a-plugin-has-a-lis.patch @@ -25,7 +25,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 private int tickPosition; public final Convertable.ConversionSession convertable; public final UUID uuid; -+ boolean hasPhysicsEvent = true; // Paper ++ public boolean hasPhysicsEvent = true; // Paper @Override public Chunk getChunkIfLoaded(int x, int z) { // Paper - this was added in world too but keeping here for NMS ABI return this.chunkProvider.getChunkAt(x, z, false); diff --git a/Spigot-Server-Patches/Optimise-TickListServer-by-rewriting-it.patch b/Spigot-Server-Patches/Optimise-TickListServer-by-rewriting-it.patch index 2859d77721..e6b4725875 100644 --- a/Spigot-Server-Patches/Optimise-TickListServer-by-rewriting-it.patch +++ b/Spigot-Server-Patches/Optimise-TickListServer-by-rewriting-it.patch @@ -67,25 +67,18 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 @@ -0,0 +0,0 @@ +package com.destroystokyo.paper.server.ticklist; + ++import java.util.function.Function; ++import net.minecraft.CrashReport; ++import net.minecraft.CrashReportSystemDetails; ++import net.minecraft.ReportedException; ++import net.minecraft.core.BlockPosition; ++import net.minecraft.nbt.NBTTagList; ++import net.minecraft.resources.MinecraftKey; +import net.minecraft.server.MCUtil; +import net.minecraft.server.MinecraftServer; +import it.unimi.dsi.fastutil.longs.Long2ObjectMap; +import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; +import it.unimi.dsi.fastutil.objects.ObjectRBTreeSet; -+import net.minecraft.server.BlockPosition; -+import net.minecraft.server.ChunkCoordIntPair; -+import net.minecraft.server.ChunkProviderServer; -+import net.minecraft.server.CrashReport; -+import net.minecraft.server.CrashReportSystemDetails; -+import net.minecraft.server.IBlockData; -+import net.minecraft.server.MinecraftKey; -+import net.minecraft.server.NBTTagList; -+import net.minecraft.server.NextTickListEntry; -+import net.minecraft.server.ReportedException; -+import net.minecraft.server.StructureBoundingBox; -+import net.minecraft.server.TickListPriority; -+import net.minecraft.server.TickListServer; -+import net.minecraft.server.WorldServer; +import java.util.ArrayDeque; +import java.util.ArrayList; +import java.util.Collections; @@ -93,8 +86,15 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 +import java.util.Iterator; +import java.util.List; +import java.util.function.Consumer; -+import java.util.function.Function; +import java.util.function.Predicate; ++import net.minecraft.server.level.ChunkProviderServer; ++import net.minecraft.server.level.WorldServer; ++import net.minecraft.world.level.ChunkCoordIntPair; ++import net.minecraft.world.level.NextTickListEntry; ++import net.minecraft.world.level.TickListPriority; ++import net.minecraft.world.level.TickListServer; ++import net.minecraft.world.level.block.state.IBlockData; ++import net.minecraft.world.level.levelgen.structure.StructureBoundingBox; + +public final class PaperTickList extends TickListServer { // extend to avoid breaking ABI + @@ -334,7 +334,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + private boolean warnedAboutDesync; + + @Override -+ protected void nextTick() { ++ public void nextTick() { + ++this.currentTick; + if (this.currentTick != this.world.getTime()) { + if (!this.warnedAboutDesync) { @@ -702,9 +702,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 +package com.destroystokyo.paper.server.ticklist; + +import com.destroystokyo.paper.util.set.LinkedSortedSet; -+import net.minecraft.server.NextTickListEntry; -+import net.minecraft.server.TickListPriority; +import java.util.Comparator; ++import net.minecraft.world.level.NextTickListEntry; ++import net.minecraft.world.level.TickListPriority; + +// represents a set of entries to tick at a specified time +public final class TickListServerInterval { @@ -904,6 +904,14 @@ diff --git a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java b index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java +@@ -0,0 +0,0 @@ import net.minecraft.SystemUtils; + import net.minecraft.core.BlockPosition; + import net.minecraft.core.SectionPosition; + import net.minecraft.network.protocol.Packet; ++import net.minecraft.server.MCUtil; + import net.minecraft.server.level.progress.WorldLoadListener; + import net.minecraft.util.MathHelper; + import net.minecraft.util.profiling.GameProfilerFiller; @@ -0,0 +0,0 @@ public class ChunkProviderServer extends IChunkProvider { } // Paper end @@ -1101,7 +1109,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 // Paper end + // Paper start -+ protected void nextTick() {} ++ public void nextTick() {} + // Paper end + public void b() { diff --git a/Spigot-Server-Patches/Optimise-random-block-ticking.patch b/Spigot-Server-Patches/Optimise-random-block-ticking.patch index 2a4ba98fcc..da28faa376 100644 --- a/Spigot-Server-Patches/Optimise-random-block-ticking.patch +++ b/Spigot-Server-Patches/Optimise-random-block-ticking.patch @@ -326,7 +326,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 private short e; final DataPaletteBlock blockIds; // Paper - package-private -+ final com.destroystokyo.paper.util.maplist.IBlockDataList tickingList = new com.destroystokyo.paper.util.maplist.IBlockDataList(); // Paper ++ public final com.destroystokyo.paper.util.maplist.IBlockDataList tickingList = new com.destroystokyo.paper.util.maplist.IBlockDataList(); // Paper + // Paper start - Anti-Xray - Add parameters @Deprecated public ChunkSection(int i) { this(i, null, null, true); } // Notice for updates: Please make sure this constructor isn't used anywhere diff --git a/Spigot-Server-Patches/Optimize-Collision-to-not-load-chunks.patch b/Spigot-Server-Patches/Optimize-Collision-to-not-load-chunks.patch index dedc80678d..470762f973 100644 --- a/Spigot-Server-Patches/Optimize-Collision-to-not-load-chunks.patch +++ b/Spigot-Server-Patches/Optimize-Collision-to-not-load-chunks.patch @@ -17,6 +17,22 @@ diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/ma index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java +@@ -0,0 +0,0 @@ import net.minecraft.server.ScoreboardServer; + import net.minecraft.server.level.DemoPlayerInteractManager; + import net.minecraft.server.level.EntityPlayer; + import net.minecraft.server.level.PlayerInteractManager; ++import net.minecraft.server.level.TicketType; + import net.minecraft.server.level.WorldServer; + import net.minecraft.server.network.PlayerConnection; + import net.minecraft.sounds.SoundCategory; +@@ -0,0 +0,0 @@ import net.minecraft.world.effect.MobEffect; + import net.minecraft.world.entity.Entity; + import net.minecraft.world.entity.EntityTypes; + import net.minecraft.world.entity.player.EntityHuman; ++import net.minecraft.world.level.ChunkCoordIntPair; + import net.minecraft.world.level.EnumGamemode; + import net.minecraft.world.level.GameRules; + import net.minecraft.world.level.World; @@ -0,0 +0,0 @@ public abstract class PlayerList { entityplayer1.forceSetPositionRotation(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch()); // CraftBukkit end @@ -33,8 +49,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 private CraftEntity bukkitEntity; PlayerChunkMap.EntityTracker tracker; // Paper -+ boolean collisionLoadChunks = false; // Paper - Throwable addedToWorldStack; // Paper - entity debug ++ public boolean collisionLoadChunks = false; // Paper + public Throwable addedToWorldStack; // Paper - entity debug public CraftEntity getBukkitEntity() { if (bukkitEntity == null) { diff --git a/src/main/java/net/minecraft/world/level/ICollisionAccess.java b/src/main/java/net/minecraft/world/level/ICollisionAccess.java diff --git a/Spigot-Server-Patches/Optimize-Hoppers.patch b/Spigot-Server-Patches/Optimize-Hoppers.patch index 7aa4a69ed9..5c43c83e14 100644 --- a/Spigot-Server-Patches/Optimize-Hoppers.patch +++ b/Spigot-Server-Patches/Optimize-Hoppers.patch @@ -81,6 +81,14 @@ diff --git a/src/main/java/net/minecraft/world/level/block/entity/IHopper.java b index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/IHopper.java +++ b/src/main/java/net/minecraft/world/level/block/entity/IHopper.java +@@ -0,0 +0,0 @@ + package net.minecraft.world.level.block.entity; + + import javax.annotation.Nullable; ++import net.minecraft.core.BlockPosition; + import net.minecraft.world.IInventory; + import net.minecraft.world.level.World; + import net.minecraft.world.level.block.Block; @@ -0,0 +0,0 @@ public interface IHopper extends IInventory { return IHopper.c; } diff --git a/Spigot-Server-Patches/Optimize-Light-Engine.patch b/Spigot-Server-Patches/Optimize-Light-Engine.patch index 75ebfff942..222b90a119 100644 --- a/Spigot-Server-Patches/Optimize-Light-Engine.patch +++ b/Spigot-Server-Patches/Optimize-Light-Engine.patch @@ -382,6 +382,14 @@ diff --git a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java b/src/ index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java +@@ -0,0 +0,0 @@ import net.minecraft.world.level.chunk.storage.RegionFile; + import net.minecraft.world.level.levelgen.structure.StructureStart; + import net.minecraft.world.level.levelgen.structure.templatesystem.DefinedStructureManager; + import net.minecraft.world.level.storage.Convertable; ++import net.minecraft.world.level.storage.WorldDataServer; + import net.minecraft.world.level.storage.WorldPersistentData; + import net.minecraft.world.phys.Vec3D; + import it.unimi.dsi.fastutil.objects.ObjectRBTreeSet; // Paper @@ -0,0 +0,0 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { } // Paper end @@ -599,6 +607,14 @@ diff --git a/src/main/java/net/minecraft/world/level/lighting/LightEngineLayer.j index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/level/lighting/LightEngineLayer.java +++ b/src/main/java/net/minecraft/world/level/lighting/LightEngineLayer.java +@@ -0,0 +0,0 @@ import net.minecraft.world.level.EnumSkyBlock; + import net.minecraft.world.level.IBlockAccess; + import net.minecraft.world.level.block.Blocks; + import net.minecraft.world.level.block.state.IBlockData; ++import net.minecraft.world.level.chunk.IChunkAccess; + import net.minecraft.world.level.chunk.ILightAccess; + import net.minecraft.world.level.chunk.NibbleArray; + import net.minecraft.world.phys.shapes.VoxelShape; @@ -0,0 +0,0 @@ public abstract class LightEngineLayer, S e protected final EnumSkyBlock b; protected final S c; diff --git a/Spigot-Server-Patches/Optimize-Network-Manager-and-add-advanced-packet-sup.patch b/Spigot-Server-Patches/Optimize-Network-Manager-and-add-advanced-packet-sup.patch index e430b90fbd..2f18e8eb80 100644 --- a/Spigot-Server-Patches/Optimize-Network-Manager-and-add-advanced-packet-sup.patch +++ b/Spigot-Server-Patches/Optimize-Network-Manager-and-add-advanced-packet-sup.patch @@ -31,6 +31,22 @@ diff --git a/src/main/java/net/minecraft/network/NetworkManager.java b/src/main/ index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/network/NetworkManager.java +++ b/src/main/java/net/minecraft/network/NetworkManager.java +@@ -0,0 +0,0 @@ import net.minecraft.network.chat.ChatMessage; + import net.minecraft.network.chat.IChatBaseComponent; + import net.minecraft.network.protocol.EnumProtocolDirection; + import net.minecraft.network.protocol.Packet; ++import net.minecraft.network.protocol.game.PacketPlayOutBoss; ++import net.minecraft.network.protocol.game.PacketPlayOutChat; ++import net.minecraft.network.protocol.game.PacketPlayOutKeepAlive; + import net.minecraft.network.protocol.game.PacketPlayOutKickDisconnect; ++import net.minecraft.network.protocol.game.PacketPlayOutTabComplete; ++import net.minecraft.network.protocol.game.PacketPlayOutTitle; + import net.minecraft.server.CancelledPacketHandleException; ++import net.minecraft.server.MCUtil; ++import net.minecraft.server.level.EntityPlayer; + import net.minecraft.server.network.LoginListener; + import net.minecraft.server.network.PlayerConnection; + import net.minecraft.util.LazyInitVar; @@ -0,0 +0,0 @@ public class NetworkManager extends SimpleChannelInboundHandler> { public int protocolVersion; public java.net.InetSocketAddress virtualHost; diff --git a/Spigot-Server-Patches/Optimize-NetworkManager-Exception-Handling.patch b/Spigot-Server-Patches/Optimize-NetworkManager-Exception-Handling.patch index ba89ac75cd..858d904481 100644 --- a/Spigot-Server-Patches/Optimize-NetworkManager-Exception-Handling.patch +++ b/Spigot-Server-Patches/Optimize-NetworkManager-Exception-Handling.patch @@ -43,6 +43,21 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 for (int i = 0; i < abyte.length; ++i) { if (!bytebuf.isReadable()) { +diff --git a/src/main/java/net/minecraft/network/protocol/Packet.java b/src/main/java/net/minecraft/network/protocol/Packet.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/net/minecraft/network/protocol/Packet.java ++++ b/src/main/java/net/minecraft/network/protocol/Packet.java +@@ -0,0 +0,0 @@ package net.minecraft.network.protocol; + + import io.netty.channel.ChannelFuture; // Paper + import java.io.IOException; ++import net.minecraft.network.NetworkManager; + import net.minecraft.network.PacketDataSerializer; + import net.minecraft.network.PacketListener; ++import net.minecraft.server.level.EntityPlayer; + + public interface Packet { + diff --git a/src/main/java/net/minecraft/network/protocol/PlayerConnectionUtils.java b/src/main/java/net/minecraft/network/protocol/PlayerConnectionUtils.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/network/protocol/PlayerConnectionUtils.java diff --git a/Spigot-Server-Patches/Optimize-NibbleArray-to-use-pooled-buffers.patch b/Spigot-Server-Patches/Optimize-NibbleArray-to-use-pooled-buffers.patch index 78572026af..9f06ad044b 100644 --- a/Spigot-Server-Patches/Optimize-NibbleArray-to-use-pooled-buffers.patch +++ b/Spigot-Server-Patches/Optimize-NibbleArray-to-use-pooled-buffers.patch @@ -21,6 +21,14 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 import java.io.IOException; import java.util.Iterator; import java.util.List; + import net.minecraft.core.SectionPosition; + import net.minecraft.network.PacketDataSerializer; + import net.minecraft.network.protocol.Packet; ++import net.minecraft.server.MCUtil; ++import net.minecraft.server.level.EntityPlayer; + import net.minecraft.world.level.ChunkCoordIntPair; + import net.minecraft.world.level.EnumSkyBlock; + import net.minecraft.world.level.chunk.NibbleArray; @@ -0,0 +0,0 @@ public class PacketPlayOutLightUpdate implements Packet { private List h; private boolean i; diff --git a/Spigot-Server-Patches/Optimize-PlayerChunkMap-memory-use-for-visibleChunks.patch b/Spigot-Server-Patches/Optimize-PlayerChunkMap-memory-use-for-visibleChunks.patch index 9b3ca031ad..9775d18262 100644 --- a/Spigot-Server-Patches/Optimize-PlayerChunkMap-memory-use-for-visibleChunks.patch +++ b/Spigot-Server-Patches/Optimize-PlayerChunkMap-memory-use-for-visibleChunks.patch @@ -120,7 +120,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + public final com.destroystokyo.paper.util.map.Long2ObjectLinkedOpenHashMapFastCopy pendingVisibleChunks = new com.destroystokyo.paper.util.map.Long2ObjectLinkedOpenHashMapFastCopy(); // Paper - this is used if the visible chunks is updated while iterating only + public transient com.destroystokyo.paper.util.map.Long2ObjectLinkedOpenHashMapFastCopy visibleChunksClone; // Paper - used for async access of visible chunks, clone and cache only when needed private final Long2ObjectLinkedOpenHashMap pendingUnload; - final LongSet loadedChunks; // Paper - private -> package + public final LongSet loadedChunks; // Paper - private -> public public final WorldServer world; @@ -0,0 +0,0 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { diff --git a/Spigot-Server-Patches/Optimize-redstone-algorithm.patch b/Spigot-Server-Patches/Optimize-redstone-algorithm.patch index d4af264dd5..b140e10da6 100644 --- a/Spigot-Server-Patches/Optimize-redstone-algorithm.patch +++ b/Spigot-Server-Patches/Optimize-redstone-algorithm.patch @@ -49,19 +49,18 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 +import java.util.Map; +import java.util.concurrent.ThreadLocalRandom; + ++import net.minecraft.core.BlockPosition; ++import net.minecraft.world.item.ItemStack; ++import net.minecraft.world.item.Items; ++import net.minecraft.world.level.World; ++import net.minecraft.world.level.block.Block; ++import net.minecraft.world.level.block.BlockRedstoneWire; ++import net.minecraft.world.level.block.state.IBlockData; +import org.bukkit.event.block.BlockRedstoneEvent; + +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; + -+import net.minecraft.server.Block; -+import net.minecraft.server.BlockPosition; -+import net.minecraft.server.BlockRedstoneWire; -+import net.minecraft.server.IBlockData; -+import net.minecraft.server.Items; -+import net.minecraft.server.ItemStack; -+import net.minecraft.server.World; -+ +/** + * Used for the faster redstone algorithm. + * Original author: theosib diff --git a/Spigot-Server-Patches/Option-to-prevent-armor-stands-from-doing-entity-loo.patch b/Spigot-Server-Patches/Option-to-prevent-armor-stands-from-doing-entity-loo.patch index 6d8b22caeb..a20acb0cc4 100644 --- a/Spigot-Server-Patches/Option-to-prevent-armor-stands-from-doing-entity-loo.patch +++ b/Spigot-Server-Patches/Option-to-prevent-armor-stands-from-doing-entity-loo.patch @@ -34,6 +34,14 @@ diff --git a/src/main/java/net/minecraft/world/level/World.java b/src/main/java/ index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/level/World.java +++ b/src/main/java/net/minecraft/world/level/World.java +@@ -0,0 +0,0 @@ import net.minecraft.world.DifficultyDamageScaler; + import net.minecraft.world.damagesource.DamageSource; + import net.minecraft.world.entity.Entity; + import net.minecraft.world.entity.EntityTypes; ++import net.minecraft.world.entity.decoration.EntityArmorStand; + import net.minecraft.world.entity.player.EntityHuman; + import net.minecraft.world.item.ItemStack; + import net.minecraft.world.item.crafting.CraftingManager; @@ -0,0 +0,0 @@ public abstract class World implements GeneratorAccess, AutoCloseable { // Paper end } diff --git a/Spigot-Server-Patches/PortalCreateEvent-needs-to-know-its-entity.patch b/Spigot-Server-Patches/PortalCreateEvent-needs-to-know-its-entity.patch index 771b2a7459..9e0087b2d4 100644 --- a/Spigot-Server-Patches/PortalCreateEvent-needs-to-know-its-entity.patch +++ b/Spigot-Server-Patches/PortalCreateEvent-needs-to-know-its-entity.patch @@ -21,6 +21,14 @@ diff --git a/src/main/java/net/minecraft/world/level/block/BlockFire.java b/src/ index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/level/block/BlockFire.java +++ b/src/main/java/net/minecraft/world/level/block/BlockFire.java +@@ -0,0 +0,0 @@ import net.minecraft.core.EnumDirection; + import net.minecraft.server.MCUtil; + import net.minecraft.server.level.WorldServer; + import net.minecraft.world.item.context.BlockActionContext; ++import net.minecraft.world.item.context.ItemActionContext; + import net.minecraft.world.level.GameRules; + import net.minecraft.world.level.GeneratorAccess; + import net.minecraft.world.level.IBlockAccess; @@ -0,0 +0,0 @@ public class BlockFire extends BlockFireAbstract { } @@ -38,6 +46,14 @@ diff --git a/src/main/java/net/minecraft/world/level/block/BlockFireAbstract.jav index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/level/block/BlockFireAbstract.java +++ b/src/main/java/net/minecraft/world/level/block/BlockFireAbstract.java +@@ -0,0 +0,0 @@ import net.minecraft.world.damagesource.DamageSource; + import net.minecraft.world.entity.Entity; + import net.minecraft.world.entity.player.EntityHuman; + import net.minecraft.world.item.context.BlockActionContext; ++import net.minecraft.world.item.context.ItemActionContext; + import net.minecraft.world.level.GeneratorAccess; + import net.minecraft.world.level.IBlockAccess; + import net.minecraft.world.level.World; @@ -0,0 +0,0 @@ public abstract class BlockFireAbstract extends Block { super.a(iblockdata, world, blockposition, entity); } @@ -62,6 +78,14 @@ diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java +@@ -0,0 +0,0 @@ import net.minecraft.world.item.EnumColor; + import net.minecraft.world.item.Item; + import net.minecraft.world.item.ItemStack; + import net.minecraft.world.item.context.BlockActionContext; ++import net.minecraft.world.item.context.ItemActionContext; + import net.minecraft.world.level.BlockAccessAir; + import net.minecraft.world.level.GeneratorAccess; + import net.minecraft.world.level.IBlockAccess; @@ -0,0 +0,0 @@ public abstract class BlockBase { PacketDebug.a(world, blockposition); } @@ -79,6 +103,14 @@ diff --git a/src/main/java/net/minecraft/world/level/portal/BlockPortalShape.jav index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/level/portal/BlockPortalShape.java +++ b/src/main/java/net/minecraft/world/level/portal/BlockPortalShape.java +@@ -0,0 +0,0 @@ import net.minecraft.tags.Tag; + import net.minecraft.tags.TagsBlock; + import net.minecraft.util.MathHelper; + import net.minecraft.world.entity.EntitySize; ++import net.minecraft.world.item.context.ItemActionContext; + import net.minecraft.world.level.GeneratorAccess; + import net.minecraft.world.level.block.BlockPortal; + import net.minecraft.world.level.block.Blocks; @@ -0,0 +0,0 @@ public class BlockPortalShape { } diff --git a/Spigot-Server-Patches/PreCreatureSpawnEvent.patch b/Spigot-Server-Patches/PreCreatureSpawnEvent.patch index a1ee0f2024..a9374a7baa 100644 --- a/Spigot-Server-Patches/PreCreatureSpawnEvent.patch +++ b/Spigot-Server-Patches/PreCreatureSpawnEvent.patch @@ -18,6 +18,14 @@ diff --git a/src/main/java/net/minecraft/world/entity/EntityTypes.java b/src/mai index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/entity/EntityTypes.java +++ b/src/main/java/net/minecraft/world/entity/EntityTypes.java +@@ -0,0 +0,0 @@ import net.minecraft.nbt.NBTTagList; + import net.minecraft.network.chat.ChatMessage; + import net.minecraft.network.chat.IChatBaseComponent; + import net.minecraft.resources.MinecraftKey; ++import net.minecraft.server.MCUtil; + import net.minecraft.server.MinecraftServer; + import net.minecraft.server.level.WorldServer; + import net.minecraft.tags.Tag; @@ -0,0 +0,0 @@ public class EntityTypes { @Nullable diff --git a/Spigot-Server-Patches/Prevent-headless-pistons-from-being-created.patch b/Spigot-Server-Patches/Prevent-headless-pistons-from-being-created.patch index 9107c929b7..0e6f3a9e31 100644 --- a/Spigot-Server-Patches/Prevent-headless-pistons-from-being-created.patch +++ b/Spigot-Server-Patches/Prevent-headless-pistons-from-being-created.patch @@ -26,6 +26,23 @@ diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/j index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java +@@ -0,0 +0,0 @@ import java.util.Set; + import javax.annotation.Nullable; + import net.minecraft.core.BaseBlockPosition; + import net.minecraft.core.BlockPosition; ++import net.minecraft.core.EnumDirection; + import net.minecraft.core.particles.Particles; + import net.minecraft.server.level.WorldServer; + import net.minecraft.sounds.SoundCategory; +@@ -0,0 +0,0 @@ import net.minecraft.world.level.block.Block; + import net.minecraft.world.level.block.BlockFireAbstract; + import net.minecraft.world.level.block.Blocks; + import net.minecraft.world.level.block.entity.TileEntity; ++import net.minecraft.world.level.block.piston.BlockPistonExtension; ++import net.minecraft.world.level.block.piston.TileEntityPiston; + import net.minecraft.world.level.block.state.IBlockData; + import net.minecraft.world.level.material.Fluid; + import net.minecraft.world.level.storage.loot.LootTableInfo; @@ -0,0 +0,0 @@ public class Explosion { if (f > 0.0F && this.l.a(this, this.world, blockposition, iblockdata, f) && blockposition.getY() < 256 && blockposition.getY() >= 0) { // CraftBukkit - don't wrap explosions diff --git a/Spigot-Server-Patches/Reduce-sync-loads.patch b/Spigot-Server-Patches/Reduce-sync-loads.patch index dd4b79545e..41ac7f9723 100644 --- a/Spigot-Server-Patches/Reduce-sync-loads.patch +++ b/Spigot-Server-Patches/Reduce-sync-loads.patch @@ -116,14 +116,13 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 +import com.mojang.datafixers.util.Pair; +import it.unimi.dsi.fastutil.longs.Long2IntMap; +import it.unimi.dsi.fastutil.longs.Long2IntOpenHashMap; -+import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap; +import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; -+import net.minecraft.server.World; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.WeakHashMap; ++import net.minecraft.world.level.World; + +public class SyncLoadFinder { + diff --git a/Spigot-Server-Patches/Remove-some-streams-from-structures.patch b/Spigot-Server-Patches/Remove-some-streams-from-structures.patch index e8e0ee621a..26ea65bd35 100644 --- a/Spigot-Server-Patches/Remove-some-streams-from-structures.patch +++ b/Spigot-Server-Patches/Remove-some-streams-from-structures.patch @@ -17,7 +17,12 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 import java.util.stream.Stream; import javax.annotation.Nullable; import net.minecraft.core.BaseBlockPosition; -@@ -0,0 +0,0 @@ import net.minecraft.world.level.levelgen.structure.StructureStart; +@@ -0,0 +0,0 @@ import net.minecraft.world.level.chunk.ChunkStatus; + import net.minecraft.world.level.chunk.IStructureAccess; + import net.minecraft.world.level.levelgen.GeneratorSettings; + import net.minecraft.world.level.levelgen.feature.StructureGenerator; ++import net.minecraft.world.level.levelgen.structure.StructurePiece; + import net.minecraft.world.level.levelgen.structure.StructureStart; public class StructureManager { @@ -80,6 +85,14 @@ diff --git a/src/main/java/net/minecraft/world/level/biome/BiomeBase.java b/src/ index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/level/biome/BiomeBase.java +++ b/src/main/java/net/minecraft/world/level/biome/BiomeBase.java +@@ -0,0 +0,0 @@ import net.minecraft.world.level.levelgen.WorldGenStage; + import net.minecraft.world.level.levelgen.feature.StructureGenerator; + import net.minecraft.world.level.levelgen.feature.WorldGenFeatureConfigured; + import net.minecraft.world.level.levelgen.structure.StructureBoundingBox; ++import net.minecraft.world.level.levelgen.structure.StructureStart; + import net.minecraft.world.level.levelgen.surfacebuilders.WorldGenSurfaceComposite; + import net.minecraft.world.level.levelgen.synth.NoiseGenerator3; + import net.minecraft.world.level.material.Fluid; @@ -0,0 +0,0 @@ public final class BiomeBase { int l1 = j1 << 4; diff --git a/Spigot-Server-Patches/Return-chat-component-with-empty-text-instead-of-thr.patch b/Spigot-Server-Patches/Return-chat-component-with-empty-text-instead-of-thr.patch index 6d1ca064bb..507823c09a 100644 --- a/Spigot-Server-Patches/Return-chat-component-with-empty-text-instead-of-thr.patch +++ b/Spigot-Server-Patches/Return-chat-component-with-empty-text-instead-of-thr.patch @@ -9,6 +9,14 @@ diff --git a/src/main/java/net/minecraft/world/inventory/Container.java b/src/ma index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/inventory/Container.java +++ b/src/main/java/net/minecraft/world/inventory/Container.java +@@ -0,0 +0,0 @@ import net.minecraft.CrashReportSystemDetails; + import net.minecraft.ReportedException; + import net.minecraft.core.IRegistry; + import net.minecraft.core.NonNullList; ++import net.minecraft.network.chat.ChatComponentText; + import net.minecraft.server.level.EntityPlayer; + import net.minecraft.util.MathHelper; + import net.minecraft.world.IInventory; @@ -0,0 +0,0 @@ public abstract class Container { } private IChatBaseComponent title; diff --git a/Spigot-Server-Patches/Send-attack-SoundEffects-only-to-players-who-can-see.patch b/Spigot-Server-Patches/Send-attack-SoundEffects-only-to-players-who-can-see.patch index 2b02167dab..fd0750db39 100644 --- a/Spigot-Server-Patches/Send-attack-SoundEffects-only-to-players-who-can-see.patch +++ b/Spigot-Server-Patches/Send-attack-SoundEffects-only-to-players-who-can-see.patch @@ -9,6 +9,14 @@ diff --git a/src/main/java/net/minecraft/world/entity/player/EntityHuman.java b/ index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/entity/player/EntityHuman.java +++ b/src/main/java/net/minecraft/world/entity/player/EntityHuman.java +@@ -0,0 +0,0 @@ import net.minecraft.network.chat.ChatMessage; + import net.minecraft.network.chat.IChatBaseComponent; + import net.minecraft.network.chat.IChatMutableComponent; + import net.minecraft.network.protocol.game.PacketPlayOutEntityVelocity; ++import net.minecraft.network.protocol.game.PacketPlayOutNamedSoundEffect; + import net.minecraft.network.syncher.DataWatcher; + import net.minecraft.network.syncher.DataWatcherObject; + import net.minecraft.network.syncher.DataWatcherRegistry; @@ -0,0 +0,0 @@ public abstract class EntityHuman extends EntityLiving { int i = b0 + EnchantmentManager.b((EntityLiving) this); diff --git a/Spigot-Server-Patches/Store-reference-to-current-Chunk-for-Entity-and-Bloc.patch b/Spigot-Server-Patches/Store-reference-to-current-Chunk-for-Entity-and-Bloc.patch index 9f114c71ca..401300aae5 100644 --- a/Spigot-Server-Patches/Store-reference-to-current-Chunk-for-Entity-and-Bloc.patch +++ b/Spigot-Server-Patches/Store-reference-to-current-Chunk-for-Entity-and-Bloc.patch @@ -48,6 +48,14 @@ diff --git a/src/main/java/net/minecraft/world/level/block/entity/TileEntity.jav index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/TileEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/TileEntity.java +@@ -0,0 +0,0 @@ import net.minecraft.world.level.World; + import net.minecraft.world.level.block.EnumBlockMirror; + import net.minecraft.world.level.block.EnumBlockRotation; + import net.minecraft.world.level.block.state.IBlockData; ++import net.minecraft.world.level.chunk.Chunk; + import org.apache.logging.log4j.LogManager; + import org.apache.logging.log4j.Logger; + import org.apache.logging.log4j.util.Supplier; @@ -0,0 +0,0 @@ public abstract class TileEntity implements net.minecraft.server.KeyedObject { / getMinecraftKey(); // Try to load if it doesn't exists. return tileEntityKeyString; diff --git a/Spigot-Server-Patches/Timings-v2.patch b/Spigot-Server-Patches/Timings-v2.patch index 2d1c5518a2..cf4b724918 100644 --- a/Spigot-Server-Patches/Timings-v2.patch +++ b/Spigot-Server-Patches/Timings-v2.patch @@ -552,9 +552,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 @@ -0,0 +0,0 @@ +package co.aikar.timings; + -+import net.minecraft.server.World; -+import net.minecraft.server.WorldDataServer; -+import net.minecraft.server.WorldServer; ++import net.minecraft.server.level.WorldServer; ++import net.minecraft.world.level.World; ++import net.minecraft.world.level.storage.WorldDataServer; + +/** + * Set of timers per world, to track world specific timings. diff --git a/Spigot-Server-Patches/Update-entity-Metadata-for-all-tracked-players.patch b/Spigot-Server-Patches/Update-entity-Metadata-for-all-tracked-players.patch index 0cb7e92f17..aa44593890 100644 --- a/Spigot-Server-Patches/Update-entity-Metadata-for-all-tracked-players.patch +++ b/Spigot-Server-Patches/Update-entity-Metadata-for-all-tracked-players.patch @@ -31,7 +31,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 // Refresh the current entity metadata - this.sendPacket(new PacketPlayOutEntityMetadata(entity.getId(), entity.getDataWatcher(), true)); + // Paper start - update entity for all players -+ PacketPlayOutEntityMetadata packet = new PacketPlayOutEntityMetadata(entity.getId(), entity.datawatcher, true); ++ PacketPlayOutEntityMetadata packet = new PacketPlayOutEntityMetadata(entity.getId(), entity.getDataWatcher(), true); + if (entity.tracker != null) { + entity.tracker.broadcast(packet); + } else { diff --git a/Spigot-Server-Patches/Update-itemstack-legacy-name-and-lore.patch b/Spigot-Server-Patches/Update-itemstack-legacy-name-and-lore.patch index 2e881b444e..9ddc416970 100644 --- a/Spigot-Server-Patches/Update-itemstack-legacy-name-and-lore.patch +++ b/Spigot-Server-Patches/Update-itemstack-legacy-name-and-lore.patch @@ -8,6 +8,14 @@ diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/ja index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java +@@ -0,0 +0,0 @@ import net.minecraft.core.IRegistry; + import net.minecraft.nbt.NBTBase; + import net.minecraft.nbt.NBTTagCompound; + import net.minecraft.nbt.NBTTagList; ++import net.minecraft.nbt.NBTTagString; + import net.minecraft.network.chat.ChatComponentText; + import net.minecraft.network.chat.ChatComponentUtils; + import net.minecraft.network.chat.ChatHoverable; @@ -0,0 +0,0 @@ public final class ItemStack { list.sort((Comparator) enchantSorter); // Paper } catch (Exception ignored) {} diff --git a/Spigot-Server-Patches/Use-TerminalConsoleAppender-for-console-improvements.patch b/Spigot-Server-Patches/Use-TerminalConsoleAppender-for-console-improvements.patch index 9b1d9a1a37..18359bf41d 100644 --- a/Spigot-Server-Patches/Use-TerminalConsoleAppender-for-console-improvements.patch +++ b/Spigot-Server-Patches/Use-TerminalConsoleAppender-for-console-improvements.patch @@ -81,7 +81,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 @@ -0,0 +0,0 @@ +package com.destroystokyo.paper.console; + -+import net.minecraft.server.DedicatedServer; ++import net.minecraft.server.dedicated.DedicatedServer; +import net.minecrell.terminalconsole.SimpleTerminalConsole; +import org.bukkit.craftbukkit.command.ConsoleCommandCompleter; +import org.jline.reader.LineReader; @@ -380,11 +380,11 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 import java.util.concurrent.ExecutionException; import java.util.logging.Level; -import jline.console.completer.Completer; ++import net.minecraft.server.dedicated.DedicatedServer; import org.bukkit.craftbukkit.CraftServer; import org.bukkit.craftbukkit.util.Waitable; + +// Paper start - JLine update -+import net.minecraft.server.DedicatedServer; // Paper +import org.jline.reader.Candidate; +import org.jline.reader.Completer; +import org.jline.reader.LineReader; diff --git a/Spigot-Server-Patches/Use-distance-map-to-optimise-entity-tracker.patch b/Spigot-Server-Patches/Use-distance-map-to-optimise-entity-tracker.patch index 5f3baa4b8a..cb657d3f50 100644 --- a/Spigot-Server-Patches/Use-distance-map-to-optimise-entity-tracker.patch +++ b/Spigot-Server-Patches/Use-distance-map-to-optimise-entity-tracker.patch @@ -33,6 +33,14 @@ diff --git a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java b/src/ index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java +@@ -0,0 +0,0 @@ import net.minecraft.network.protocol.game.PacketPlayOutMapChunk; + import net.minecraft.network.protocol.game.PacketPlayOutMount; + import net.minecraft.network.protocol.game.PacketPlayOutViewCentre; + import net.minecraft.server.MCUtil; ++import net.minecraft.server.MinecraftServer; + import net.minecraft.server.level.progress.WorldLoadListener; + import net.minecraft.util.CSVWriter; + import net.minecraft.util.EntitySlice; @@ -0,0 +0,0 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { // Paper start - distance maps @@ -44,7 +52,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + + // inlined EnumMap, TrackingRange.TrackingRangeType + static final org.spigotmc.TrackingRange.TrackingRangeType[] TRACKING_RANGE_TYPES = org.spigotmc.TrackingRange.TrackingRangeType.values(); -+ final com.destroystokyo.paper.util.misc.PlayerAreaMap[] playerEntityTrackerTrackMaps; ++ public final com.destroystokyo.paper.util.misc.PlayerAreaMap[] playerEntityTrackerTrackMaps; + final int[] entityTrackerTrackRanges; + + private int convertSpigotRangeToVanilla(final int vanilla) { @@ -311,6 +319,14 @@ diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/jav index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java +@@ -0,0 +0,0 @@ import net.minecraft.network.syncher.DataWatcherObject; + import net.minecraft.network.syncher.DataWatcherRegistry; + import net.minecraft.resources.MinecraftKey; + import net.minecraft.resources.ResourceKey; ++import net.minecraft.server.MCUtil; + import net.minecraft.server.MinecraftServer; + import net.minecraft.server.level.EntityPlayer; + import net.minecraft.server.level.PlayerChunkMap; @@ -0,0 +0,0 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne } // CraftBukkit end @@ -318,13 +334,13 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + // Paper start - optimise entity tracking + final org.spigotmc.TrackingRange.TrackingRangeType trackingRangeType = org.spigotmc.TrackingRange.getTrackingRangeType(this); + -+ boolean isLegacyTrackingEntity = false; ++ public boolean isLegacyTrackingEntity = false; + + public final void setLegacyTrackingEntity(final boolean isLegacyTrackingEntity) { + this.isLegacyTrackingEntity = isLegacyTrackingEntity; + } + -+ final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet getPlayersInTrackRange() { ++ public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet getPlayersInTrackRange() { + return ((WorldServer)this.world).getChunkProvider().playerChunkMap.playerEntityTrackerTrackMaps[this.trackingRangeType.ordinal()] + .getObjectsInRange(MCUtil.getCoordinateKey(this)); + } diff --git a/Spigot-Server-Patches/Vanished-players-don-t-have-rights.patch b/Spigot-Server-Patches/Vanished-players-don-t-have-rights.patch index d492a8258a..c1426380b1 100644 --- a/Spigot-Server-Patches/Vanished-players-don-t-have-rights.patch +++ b/Spigot-Server-Patches/Vanished-players-don-t-have-rights.patch @@ -55,6 +55,25 @@ diff --git a/src/main/java/net/minecraft/world/level/World.java b/src/main/java/ index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/level/World.java +++ b/src/main/java/net/minecraft/world/level/World.java +@@ -0,0 +0,0 @@ import net.minecraft.network.protocol.Packet; + import net.minecraft.resources.MinecraftKey; + import net.minecraft.resources.ResourceKey; + import net.minecraft.server.MinecraftServer; ++import net.minecraft.server.level.EntityPlayer; + import net.minecraft.server.level.PlayerChunk; + import net.minecraft.sounds.SoundCategory; + import net.minecraft.sounds.SoundEffect; +@@ -0,0 +0,0 @@ import net.minecraft.world.level.saveddata.maps.WorldMap; + import net.minecraft.world.level.storage.WorldData; + import net.minecraft.world.level.storage.WorldDataMutable; + import net.minecraft.world.phys.AxisAlignedBB; ++import net.minecraft.world.phys.shapes.OperatorBoolean; ++import net.minecraft.world.phys.shapes.VoxelShape; ++import net.minecraft.world.phys.shapes.VoxelShapeCollision; ++import net.minecraft.world.phys.shapes.VoxelShapes; + import net.minecraft.world.scores.Scoreboard; + import org.apache.logging.log4j.LogManager; + import org.apache.logging.log4j.Logger; @@ -0,0 +0,0 @@ public abstract class World implements GeneratorAccess, AutoCloseable { this.tileLimiter = new org.spigotmc.TickLimiter(spigotConfig.tileMaxTickTime); } diff --git a/Spigot-Server-Patches/Workaround-for-Client-Lag-Spikes-MC-162253.patch b/Spigot-Server-Patches/Workaround-for-Client-Lag-Spikes-MC-162253.patch index 04b96a82b3..0d08522d50 100644 --- a/Spigot-Server-Patches/Workaround-for-Client-Lag-Spikes-MC-162253.patch +++ b/Spigot-Server-Patches/Workaround-for-Client-Lag-Spikes-MC-162253.patch @@ -15,6 +15,14 @@ diff --git a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java b/src/ index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java +@@ -0,0 +0,0 @@ import net.minecraft.world.level.World; + import net.minecraft.world.level.chunk.Chunk; + import net.minecraft.world.level.chunk.ChunkConverter; + import net.minecraft.world.level.chunk.ChunkGenerator; ++import net.minecraft.world.level.chunk.ChunkSection; + import net.minecraft.world.level.chunk.ChunkStatus; + import net.minecraft.world.level.chunk.IChunkAccess; + import net.minecraft.world.level.chunk.ILightAccess; @@ -0,0 +0,0 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { } diff --git a/Spigot-Server-Patches/fixup-Load-chunks-asynchronously-for-players.patch b/Spigot-Server-Patches/fixup-Load-chunks-asynchronously-for-players.patch new file mode 100644 index 0000000000..b2e9c2b2fa --- /dev/null +++ b/Spigot-Server-Patches/fixup-Load-chunks-asynchronously-for-players.patch @@ -0,0 +1,18 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Mariell Hoversholm +Date: Tue, 16 Mar 2021 11:25:11 +0100 +Subject: [PATCH] fixup! Load chunks asynchronously for players. + + +diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/net/minecraft/server/level/EntityPlayer.java ++++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java +@@ -0,0 +0,0 @@ import net.minecraft.core.NonNullList; + import net.minecraft.core.SectionPosition; + import net.minecraft.nbt.DynamicOpsNBT; + import net.minecraft.nbt.NBTTagCompound; ++import net.minecraft.network.NetworkManager; + import net.minecraft.network.chat.ChatComponentText; + import net.minecraft.network.chat.ChatHoverable; + import net.minecraft.network.chat.ChatMessage; diff --git a/Spigot-Server-Patches/implement-optional-per-player-mob-spawns.patch b/Spigot-Server-Patches/implement-optional-per-player-mob-spawns.patch index 097059cb1f..a833b1736f 100644 --- a/Spigot-Server-Patches/implement-optional-per-player-mob-spawns.patch +++ b/Spigot-Server-Patches/implement-optional-per-player-mob-spawns.patch @@ -49,14 +49,13 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 +import it.unimi.dsi.fastutil.longs.Long2ObjectLinkedOpenHashMap; +import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; +import it.unimi.dsi.fastutil.objects.ObjectLinkedOpenHashSet; -+import net.minecraft.server.ChunkCoordIntPair; -+import net.minecraft.server.EntityPlayer; -+import net.minecraft.server.SectionPosition; -+import org.spigotmc.AsyncCatcher; -+import java.util.HashMap; +import java.util.List; +import java.util.Map; -+import java.util.Set; ++import net.minecraft.core.SectionPosition; ++import net.minecraft.server.level.EntityPlayer; ++import net.minecraft.world.level.ChunkCoordIntPair; ++import org.spigotmc.AsyncCatcher; ++import java.util.HashMap; + +/** @author Spottedleaf */ +public final class PlayerMobDistanceMap { @@ -576,6 +575,14 @@ diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/ma index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java +@@ -0,0 +0,0 @@ import net.minecraft.world.effect.MobEffects; + import net.minecraft.world.entity.Entity; + import net.minecraft.world.entity.EntityInsentient; + import net.minecraft.world.entity.EntityLiving; ++import net.minecraft.world.entity.EnumCreatureType; + import net.minecraft.world.entity.EnumMainHand; + import net.minecraft.world.entity.IEntityAngerable; + import net.minecraft.world.entity.animal.horse.EntityHorseAbstract; @@ -0,0 +0,0 @@ public class EntityPlayer extends EntityHuman implements ICrafting { public boolean queueHealthUpdatePacket = false; public net.minecraft.network.protocol.game.PacketPlayOutUpdateHealth queuedHealthUpdatePacket; @@ -608,6 +615,14 @@ diff --git a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java b/src/ index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java +@@ -0,0 +0,0 @@ import net.minecraft.util.thread.ThreadedMailbox; + import net.minecraft.world.entity.Entity; + import net.minecraft.world.entity.EntityInsentient; + import net.minecraft.world.entity.EntityTypes; ++import net.minecraft.world.entity.EnumCreatureType; + import net.minecraft.world.entity.ai.village.poi.VillagePlace; + import net.minecraft.world.entity.boss.EntityComplexPart; + import net.minecraft.world.entity.player.EntityHuman; @@ -0,0 +0,0 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { public final Int2ObjectMap trackedEntities; private final Long2ByteMap z; diff --git a/Spigot-Server-Patches/living-entity-allow-attribute-registration.patch b/Spigot-Server-Patches/living-entity-allow-attribute-registration.patch index d95db8dce1..a6bf271d9e 100644 --- a/Spigot-Server-Patches/living-entity-allow-attribute-registration.patch +++ b/Spigot-Server-Patches/living-entity-allow-attribute-registration.patch @@ -24,7 +24,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + + // Paper - start + public void registerAttribute(AttributeBase attributeBase) { -+ net.minecraft.server.AttributeModifiable attributeModifiable = new net.minecraft.server.AttributeModifiable(attributeBase, net.minecraft.server.AttributeModifiable::getAttribute); ++ AttributeModifiable attributeModifiable = new AttributeModifiable(attributeBase, AttributeModifiable::getAttribute); + attributeMap.put(attributeBase, attributeModifiable); + } + // Paper - end