diff --git a/Bukkit/src/main/java/com/intellectualcrafters/plot/api/PlotAPI.java b/Bukkit/src/main/java/com/intellectualcrafters/plot/api/PlotAPI.java
index 62cd84868..ca456b97b 100644
--- a/Bukkit/src/main/java/com/intellectualcrafters/plot/api/PlotAPI.java
+++ b/Bukkit/src/main/java/com/intellectualcrafters/plot/api/PlotAPI.java
@@ -33,7 +33,6 @@ import java.util.UUID;
/**
* PlotSquared API.
*
- * @version API 3.3.2
*
* Useful classes:
* @see BukkitUtil
@@ -42,7 +41,7 @@ import java.util.UUID;
* @see com.intellectualcrafters.plot.object.Location
* @see PlotArea
* @see PS
- * @version 3.3.1
+ * @version 3.3.3
>>>>>>> origin/master
*/
public class PlotAPI {
diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitChunkManager.java b/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitChunkManager.java
index f09f0fb6a..aecbaa448 100644
--- a/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitChunkManager.java
+++ b/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitChunkManager.java
@@ -513,10 +513,11 @@ public class BukkitChunkManager extends ChunkManager {
for (short y = 0; y <= maxY; y++) {
Block block = world.getBlockAt(x, y, z);
Material id = block.getType();
+ if (storeNormal) {
+ int typeId = id.getId();
+ ids[y] = new PlotBlock((short) typeId, typeId == 0 ? 0 : block.getData());
+ }
if (!id.equals(Material.AIR)) {
- if (storeNormal) {
- ids[y] = new PlotBlock((short) id.getId(), block.getData());
- }
try {
BlockLoc bl = new BlockLoc(x + offsetX, y, z + offsetZ);
if (block.getState() instanceof InventoryHolder) {
diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitUtil.java b/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitUtil.java
index 26f5b008e..59a500efd 100644
--- a/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitUtil.java
+++ b/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitUtil.java
@@ -12,6 +12,8 @@ import com.intellectualcrafters.plot.util.TaskManager;
import com.intellectualcrafters.plot.util.UUIDHandler;
import com.intellectualcrafters.plot.util.WorldUtil;
import com.plotsquared.bukkit.object.BukkitPlayer;
+import java.util.Arrays;
+import java.util.List;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.OfflinePlayer;
@@ -32,9 +34,6 @@ import org.bukkit.material.Tree;
import org.bukkit.material.WoodenStep;
import org.bukkit.material.Wool;
-import java.util.Arrays;
-import java.util.List;
-
public class BukkitUtil extends WorldUtil {
private static String lastString = null;
@@ -157,6 +156,11 @@ public class BukkitUtil extends WorldUtil {
return null;
}
+ @Override
+ public Location getSpawn(PlotPlayer pp) {
+ return getLocation(((BukkitPlayer) pp).player.getBedSpawnLocation());
+ }
+
@Override
public Location getSpawn(String world) {
org.bukkit.Location temp = getWorld(world).getSpawnLocation();
diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/util/block/FastQueue_1_8_3.java b/Bukkit/src/main/java/com/plotsquared/bukkit/util/block/FastQueue_1_8_3.java
index 16a50885d..4fe6218af 100644
--- a/Bukkit/src/main/java/com/plotsquared/bukkit/util/block/FastQueue_1_8_3.java
+++ b/Bukkit/src/main/java/com/plotsquared/bukkit/util/block/FastQueue_1_8_3.java
@@ -1,7 +1,5 @@
package com.plotsquared.bukkit.util.block;
-import static com.intellectualcrafters.plot.util.ReflectionUtils.getRefClass;
-
import com.intellectualcrafters.plot.object.ChunkLoc;
import com.intellectualcrafters.plot.object.PseudoRandom;
import com.intellectualcrafters.plot.util.ChunkManager;
@@ -16,12 +14,6 @@ import com.intellectualcrafters.plot.util.SetQueue;
import com.intellectualcrafters.plot.util.SetQueue.ChunkWrapper;
import com.intellectualcrafters.plot.util.TaskManager;
import com.plotsquared.bukkit.util.SendChunk;
-import org.bukkit.Chunk;
-import org.bukkit.Material;
-import org.bukkit.World;
-import org.bukkit.World.Environment;
-import org.bukkit.block.Biome;
-
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
@@ -31,6 +23,14 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;
import java.util.Set;
+import org.bukkit.Chunk;
+import org.bukkit.Material;
+import org.bukkit.World;
+import org.bukkit.World.Environment;
+import org.bukkit.block.Biome;
+
+
+import static com.intellectualcrafters.plot.util.ReflectionUtils.getRefClass;
public class FastQueue_1_8_3 extends SlowQueue {
@@ -46,7 +46,7 @@ public class FastQueue_1_8_3 extends SlowQueue {
private final RefField fieldWorld;
private final RefMethod methodGetIdArray;
private final RefMethod methodGetWorld;
- private final RefField tileEntityUnload;
+ private final RefField tileEntityListTick;
public FastQueue_1_8_3() throws RuntimeException {
RefClass classCraftChunk = getRefClass("{cb}.CraftChunk");
@@ -63,7 +63,7 @@ public class FastQueue_1_8_3 extends SlowQueue {
this.methodGetIdArray = classChunkSection.getMethod("getIdArray");
this.methodAreNeighborsLoaded = classChunk.getMethod("areNeighborsLoaded", int.class);
this.classChunkSectionConstructor = classChunkSection.getConstructor(int.class, boolean.class, char[].class);
- this.tileEntityUnload = classWorld.getField("c");
+ this.tileEntityListTick = classWorld.getField("tileEntityList");
this.methodGetWorld = classChunk.getMethod("getWorld");
this.sendChunk = new SendChunk();
TaskManager.runTaskRepeat(new Runnable() {
@@ -135,10 +135,8 @@ public class FastQueue_1_8_3 extends SlowQueue {
sections1.setAccessible(true);
Field tileEntities = clazz.getDeclaredField("tileEntities");
Field entitySlices = clazz.getDeclaredField("entitySlices");
-
Object[] sections = (Object[]) sections1.get(c);
HashMap, ?> tiles = (HashMap, ?>) tileEntities.get(c);
- Collection