Dont lock objects (for now)

This commit is contained in:
Daniel Mills 2021-07-20 14:27:59 -04:00
parent 509c32db70
commit 72f86069a2

View File

@ -44,6 +44,7 @@ import org.bukkit.block.TileState;
import org.bukkit.block.data.BlockData; import org.bukkit.block.data.BlockData;
import org.bukkit.block.data.Waterlogged; import org.bukkit.block.data.Waterlogged;
import org.bukkit.block.data.type.Leaves; import org.bukkit.block.data.type.Leaves;
import org.bukkit.entity.ThrownExpBottle;
import org.bukkit.util.BlockVector; import org.bukkit.util.BlockVector;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
@ -67,7 +68,7 @@ public class IrisObject extends IrisRegistrant {
private int w; private int w;
private int d; private int d;
private int h; private int h;
private transient final IrisLock readLock = new IrisLock("read-conclock"); private transient final IrisLock readLock = new IrisLock("read-conclock").setDisabled(true);
private transient BlockVector center; private transient BlockVector center;
private transient volatile boolean smartBored = false; private transient volatile boolean smartBored = false;
private transient IrisLock lock = new IrisLock("Preloadcache"); private transient IrisLock lock = new IrisLock("Preloadcache");
@ -577,6 +578,8 @@ public class IrisObject extends IrisRegistrant {
int lowest = Integer.MAX_VALUE; int lowest = Integer.MAX_VALUE;
y += yrand; y += yrand;
readLock.lock(); readLock.lock();
try
{
for (BlockVector g : getBlocks().keySet()) { for (BlockVector g : getBlocks().keySet()) {
BlockData d; BlockData d;
TileData<? extends TileState> tile = null; TileData<? extends TileState> tile = null;
@ -615,13 +618,17 @@ public class IrisObject extends IrisRegistrant {
BlockData newData = j.getReplace(rng, i.getX() + x, i.getY() + y, i.getZ() + z, rdata).clone(); BlockData newData = j.getReplace(rng, i.getX() + x, i.getY() + y, i.getZ() + z, rdata).clone();
if (newData.getMaterial() == data.getMaterial()) if (newData.getMaterial() == data.getMaterial())
{
data = data.merge(newData); data = data.merge(newData);
}
else else
{
data = newData; data = newData;
} }
} }
} }
} }
}
data = config.getRotation().rotate(data, spinx, spiny, spinz); data = config.getRotation().rotate(data, spinx, spiny, spinz);
xx = x + (int) Math.round(i.getX()); xx = x + (int) Math.round(i.getX());
@ -669,6 +676,12 @@ public class IrisObject extends IrisRegistrant {
} }
} }
} }
}
catch(Throwable e)
{
Iris.reportError(e);
}
readLock.unlock(); readLock.unlock();
if (stilting) { if (stilting) {